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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2011, 13:46   #1
VASGENOG
Новичок
Джуниор
 
Регистрация: 13.12.2011
Сообщений: 3
По умолчанию в какой координатной четверти расположен треугольник, образованный прямой, заданной уравнением y=ax+b, и осями координат

Человек не зря придумал координатную плоскость. Однажды Василий Мудрый проводил свой выходной день около компьютера изучая расположение прямой на координатной плоскости и задумался над вопросом, в какой координатной четверти расположен треугольник, образованный прямой, заданной уравнением y=ax+b, и осями координат. Ему далось обнаружить закономерность. А вы сможете решить эту задачу?
Входные данные
Во входных данных заданы два целых числа a и b уравнения прямой y=ax+b, (-100<=a,b<=100)
Выходные данные
В выходных данных вывести номер координатной плоскости 1 или 2 или 3 или 4, в которой расположен треугольник, образованной прямой y=ax+b, или ”no solution”, если такого треугольника не существует.
Пример входных и входных данных
Входные данные Выходные данные
1 2 2
VASGENOG вне форума Ответить с цитированием
Старый 13.12.2011, 14:19   #2
VASGENOG
Новичок
Джуниор
 
Регистрация: 13.12.2011
Сообщений: 3
По умолчанию

Ну очень решение этой задачи! А то завтра!
VASGENOG вне форума Ответить с цитированием
Старый 13.12.2011, 14:20   #3
VASGENOG
Новичок
Джуниор
 
Регистрация: 13.12.2011
Сообщений: 3
По умолчанию

Ну очень нужно решение этой задачи! А то завтра конец будет мне!
VASGENOG вне форума Ответить с цитированием
Старый 13.12.2011, 16:44   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
var a,b:real;
begin
read(a,b);
if (a<0) and(b>0) then writeln('II');
if (a>0) and(b>0) then writeln('I');
if (a<0) and(b<0) then writeln('VI');
if (a>0) and(b<0) then writeln('III');
if (a=0) or (b=0) then writeln('No solution');
readln;
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 14.12.2011, 09:21   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Mad_Cat
к сожалению, это неверное решение...

Посмотрите, даже исходные данные из примера не подходят:
a = 1
b = 2
при y= 1*x + 2 полученный треугольник лежит во II четверти
(и это так, ведь пересечение с осью oX происходит при X = -2 - поэтому треугольник образуется точками (0,0) (-2, 0) (0, 2)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.12.2011, 09:48   #6
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

В самом деле, нужно просто найти пересечения с осями, и уже анализируя эти точки, можно говорить в какой четверти треугольник:

Код:
var x,y,a,b:real;
begin
read(a,b);
if (a=0) or (b=0) then writeln ('no solution') else begin
x:=-b/a;
y:=b;
if (x>0) and(y>0) then writeln('1') else
if (x<0) and(y>0) then writeln('2') else
if (x<0) and(y<0) then writeln('3') else
if (x>0) and(y<0) then writeln('4');
end;
end.
UPD: вот так наверное получше будет, спасибо Serge_Bliznykov за замечание
благодарность - сюда (не забываем писать от кого)

Последний раз редактировалось Zer0; 14.12.2011 в 10:27.
Zer0 вне форума Ответить с цитированием
Старый 14.12.2011, 10:12   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
В самом деле, нужно просто найти пересечения с осями, и уже анализируя эти точки...
ага. полностью согласен.

а по коду замечание маленькое: я бы ещё сделал доппроверку предварительно, на то, что a = 0 (тогда тоже нет решения).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.12.2011, 14:45   #8
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я бы ещё сделал доппроверку предварительно, на то, что a = 0 (тогда тоже нет решения).
Кстати, когда b = 0 решения нет тоже, поскольку в этом случае уравнение принимает вид y = a*x.
График этой функции проходит через начало координат и вместо треугольника появляется угол...
Вадим Мошев вне форума Ответить с цитированием
Старый 14.12.2011, 14:49   #9
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Вадим,я свой пост уже исправил, там это было учтено
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 14.12.2011, 15:00   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а я про b=0 не стал писать, т.к. в начальном варианте, если ни одно из условий не выполнилось, проверка сваливалась в то же самое 'No solution' (а ни одно из условий не выполнилось, т.к. x и y получались в этом случае нулевые, а проверки везде строгие.

впрочем, получившийся вариант (if (a=0) or (b=0) ююю) имхо, ещё лучше и нагляднее!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемка с функцией FK1 и уравнением SyberiuS Общие вопросы Delphi 5 13.06.2011 21:59
Задача на расчёт движения. Заяц бежит вдоль заданной прямой. Собака — за зайцем. Найти траекторию собаки. AndrewSkull Паскаль, Turbo Pascal, PascalABC.NET 3 06.06.2011 20:13
находится ли точка во второй координатной четверти. Эльвик Паскаль, Turbo Pascal, PascalABC.NET 4 22.05.2010 18:10
по заданной дате вычислить какой день недели. Pascal. Яська Помощь студентам 4 28.01.2009 23:51
Проблема с осями onded Паскаль, Turbo Pascal, PascalABC.NET 2 21.01.2009 13:03