Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.10.2011, 17:58   #1
PROkaZZZniK
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 121
По умолчанию C# Попадание в зашифрованную область.

ОШИБКА!!!
проблема в 1 четверти с 3 все в порядке
мой код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Double x, y, R;//x=y=R=0
Console.WriteLine("Введите R = ");
R = Convert.ToDouble(Console.ReadLine() );
Console.WriteLine("Введите X и y ");
x = Convert.ToDouble(Console.ReadLine() );
y = Convert.ToDouble(Console.ReadLine() );

if (x >= 0 && y >= 0 && (x * x + y * y) <= R * R)//1-я Четверть
{
Console.WriteLine("ПОПАЛ!!!");
return;
}
{
if (x <= 0 && y <= 0 && x >= -R && Math.Pow(x + R, 2) + Math.Pow(y + R, 2) >= R * R)//3-я Четверть
{
Console.WriteLine("попал");
return;
}
}
Console.WriteLine("мимо");
}
}
}



1-я: Радиус 12, x=1, y=6. Должен быть промах, а пишет попадание.
1. R=10, x=10, y=10. Это точка на границе, но пишет "мимо" - границы считаются попаданием.
2. R=10, x=10, y=9 Это точка внутри полукруга первой четверти, но пишет "мимо".

помогите пожайлуста
Изображения
Тип файла: jpg IMG.jpg (34.5 Кб, 123 просмотров)
PROkaZZZniK вне форума
Старый 23.10.2011, 18:00   #2
PROkaZZZniK
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 121
По умолчанию

Пользовался формулой- (X*X+Y*Y)=R*R
но она тут не подходит
какой формулой нужно пользоваться для нахождения?
PROkaZZZniK вне форума
Старый 23.10.2011, 18:30   #3
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

1)
Код:
if (x >= 0 && y >= 0 && ((x-R) * (x-R) + y * y) <= R * R)//1-я Четверть
2)
Код:
if (x <= 0 && y <= 0 && x >= -R && y >= -R && Math.Pow(x + R, 2) + Math.Pow(y + R, 2) >= R * R)//3-я Четверть

В общем виде формула ((X-X0)*(X-X0)+(Y-Y0)*(Y-Y0))=R*R где X0, Y0 кординаты центра окружности.
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."

Последний раз редактировалось val_nnm; 23.10.2011 в 18:34.
val_nnm вне форума
Старый 23.10.2011, 22:25   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) код нужно оформять тегами

2) данная тема является КРОССПОСТОМ.
исходная тема тут:

C# Попадание точки в зашифрованную область.


p.s.
с поправкой val_nnm полностью согласен!

Последний раз редактировалось Serge_Bliznykov; 23.10.2011 в 22:30.
Serge_Bliznykov вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# Попадание точки в зашифрованную область. PROkaZZZniK Помощь студентам 4 22.10.2011 15:15
попадание точки в область arshavin Паскаль, Turbo Pascal, PascalABC.NET 4 04.05.2011 15:28
Попадание точки в область (С++) Evgenii90 Помощь студентам 10 16.04.2010 22:41
Попадание точки в область С++ Geg[C/c++] Помощь студентам 3 03.05.2009 12:58