Помощь - Поиск - Пользователи - Календарь
Полная версия: задачка про координаты
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
RrgTt_fx32!b
Помогите пожалуйста решить задачку, а то мне препод неаттестацию влепит ((
подскажите хотябы как решать пожалуйста!

сама задача:
написать программу, которая определяет попадает ли точка с заданными координатами в заштрихованную область, результат вывести в виде текстового сообщения.
вот рисунокНажмите для просмотра прикрепленного файла
volvo
Координаты центров и радиусы - военная тайна?
RrgTt_fx32!b
Цитата
Координаты центров и радиусы - военная тайна?

почему?
Michael_Rybak
Потому что ты их не указал, а без них задачу решит только военный разведчик
RrgTt_fx32!b
они не даны нужно самому вводить и чтоб прога определила попала точка в круг или параболу или не
Michael_Rybak
А как это математически проверить, ты шаришь?
RrgTt_fx32!b
Цитата
А как это математически проверить, ты шаришь?

шарил бы не лез с вопросами.
ну пусть радиус будет 5 или 10(потом ведь можно будет изменить)
Michael_Rybak
Условие (точка принадлежит кругу) выражается так: расстояние до центра меньше либо равно радиусу (или строго меньше, если контур не включается). Координаты выражаешь через радиус. Расстояние считаешь по теореме Пифагора.

С параболой немного хитрее: если функция, графиком которой явлется парабола, имеет вид y = -ax^2 + b, то точка (x0, y0) лежит ниже ее графика, если y0 <= -ax0^2 + b (или строго меньше, если контур не включается)

В случае параболы не забудь проверить что y0>0
RrgTt_fx32!b

не мог бы написать на паскале пожалуйста
Michael_Rybak
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
я тетрадку посеял...
а как радиус круга записать?
так не прокатывает:
r:=(x1,y1);
RrgTt_fx32!b
нифига не получется! у меня уже мозги кипят. Вообще я плохо в этом шарю, да еще лекций нету. помогите!
мисс_граффити
r:=(x1,y1);

естественно!
а ты бы понял, если бы тебе сказали: "построй круг радиуса 2;5"? радиус - это одно число.
RrgTt_fx32!b
кто-нибудь поможет двоечнику с решением? )))
Michael_Rybak
Помочь - тебе уже помогли.
Гость
yes2.gif cool.gif
RrgTt_fx32!b
вот так правильно?

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
всем спасибо за помощь.
оказалось задача совсем простая и решалась так
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
Конечно поможем. Мы тут добрые.

 ! 
Мы тут, конечно добрые, только вот флуд у нас наказывается!

Автору вопроса - для новых задач открываешь новую тему, ибо "Одна тема - один вопрос"

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.