Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ задачка про координаты

Автор: RrgTt_fx32!b 7.12.2006 3:14

Помогите пожалуйста решить задачку, а то мне препод неаттестацию влепит ((
подскажите хотябы как решать пожалуйста!

сама задача:
написать программу, которая определяет попадает ли точка с заданными координатами в заштрихованную область, результат вывести в виде текстового сообщения.
вот рисунокПрикрепленное изображение

Автор: 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

yes2.gif cool.gif

Автор: 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

Конечно поможем. Мы тут добрые.

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

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