Помогите пожалуйста решить задачку, а то мне препод неаттестацию влепит (( подскажите хотябы как решать пожалуйста!
сама задача: написать программу, которая определяет попадает ли точка с заданными координатами в заштрихованную область, результат вывести в виде текстового сообщения. вот рисунокНажмите для просмотра прикрепленного файла
volvo
7.12.2006 3:26
Координаты центров и радиусы - военная тайна?
RrgTt_fx32!b
7.12.2006 3:29
Цитата
Координаты центров и радиусы - военная тайна?
почему?
Michael_Rybak
7.12.2006 3:37
Потому что ты их не указал, а без них задачу решит только военный разведчик
RrgTt_fx32!b
7.12.2006 3:39
они не даны нужно самому вводить и чтоб прога определила попала точка в круг или параболу или не
Michael_Rybak
7.12.2006 3:48
А как это математически проверить, ты шаришь?
RrgTt_fx32!b
7.12.2006 3:58
Цитата
А как это математически проверить, ты шаришь?
шарил бы не лез с вопросами. ну пусть радиус будет 5 или 10(потом ведь можно будет изменить)
Michael_Rybak
7.12.2006 4:06
Условие (точка принадлежит кругу) выражается так: расстояние до центра меньше либо равно радиусу (или строго меньше, если контур не включается). Координаты выражаешь через радиус. Расстояние считаешь по теореме Пифагора.
С параболой немного хитрее: если функция, графиком которой явлется парабола, имеет вид y = -ax^2 + b, то точка (x0, y0) лежит ниже ее графика, если y0 <= -ax0^2 + b (или строго меньше, если контур не включается)
В случае параболы не забудь проверить что y0>0
RrgTt_fx32!b
7.12.2006 4:18
не мог бы написать на паскале пожалуйста
Michael_Rybak
7.12.2006 4:25
var x0, y0, r, ... : real; begin Writeln('Input x0: '); Readln(x0); Writeln('Input y0: '); ...
if (...) then Writeln('Inside') else if (y0 >= 0) and (...) then Writeln('Inside') else Writeln('Outside'); end.
Остальное попробуй сам. Не может же быть, что вам вообще примеров не приводили.
RrgTt_fx32!b
7.12.2006 4:37
я тетрадку посеял... а как радиус круга записать? так не прокатывает: r:=(x1,y1);
RrgTt_fx32!b
7.12.2006 4:56
нифига не получется! у меня уже мозги кипят. Вообще я плохо в этом шарю, да еще лекций нету. помогите!
мисс_граффити
7.12.2006 14:13
r:=(x1,y1);
естественно! а ты бы понял, если бы тебе сказали: "построй круг радиуса 2;5"? радиус - это одно число.
RrgTt_fx32!b
7.12.2006 19:02
кто-нибудь поможет двоечнику с решением? )))
Michael_Rybak
7.12.2006 19:18
Помочь - тебе уже помогли.
Гость
7.12.2006 19:38
RrgTt_fx32!b
7.12.2006 20:08
вот так правильно?
program qwer; uses crt; var s,r,x1,y1,x2,y2: real; a,b,c: real; begin clrscr; writeln ('задайте коорд. центра окружности'); readln (x1,y1); writeln ('задайте коорд. точки'); readln (x2,y2); writeln ('введите значения a,b,c для формулы y=-ax^2+bx+c'); readln (a,b,c); r:=sqrt(sqr(x1)+sqr(y1)); s:=sqrt(sqr(x1-x2)+sqr(y1-y2)); if s<=r then writeln ('точка принадлежит окр-ти'); if s>r then writeln ('точка не принадлежит окр-ти'); if (y2>=0) and (y2<=-a*(sqrt(x2))+b*x2+c) and (a<>0) and (x2<>0) then writeln ('точка лежит в параболе') else if (y2<0) then writeln ('точка не лежит в параболе'); readln; end.
RrgTt_fx32!b
9.12.2006 1:10
всем спасибо за помощь. оказалось задача совсем простая и решалась так
program qwerty; uses crt; const r=5; var x,y: real; begin clrscr; writeln ('задайте координаты точки'); readln (x,y); if (x<0) and (y<0) and (sqr(x)+sqr(y)<=sqr®) then writeln ('точка принадлежит окружности') else writeln ('точка не принадлежит окружности'); if (x>0) and (y>0) and (sqr(x)+sqr(y)<=sqr®) then writeln ('точка принадлежит полукругу') else writeln ('точка не принадлежит полукругу'); readln; end.
еще 3 задачки решить поможите???
Michael_Rybak
9.12.2006 2:22
Конечно поможем. Мы тут добрые.
!
Мы тут, конечно добрые, только вот флуд у нас наказывается!
Автору вопроса - для новых задач открываешь новую тему, ибо "Одна тема - один вопрос"
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.