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

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

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

Автор: Hunt666 25.02.2007 5:14

задачка такая задана единичная окружность , прямая у=0.6
заданная область находится внутри окружности между прямыми у=0 и у=0.6
вот то что у меня получилось


program pop;
var n,y,x:real;
begin
writeln('vvedi x u y');
read(x,y);
if (sqrt(sqr(x) + sqr(y))<1) and (y>0) and (y<0.6)
then writeln('popadaet');
if (sqrt(sqr(x) + sqr(y))=1) or (y=0.6) or (y=0)
then writeln('na granice')
else writeln('ne popadaet');
readln;
End.


но проблема в том что в этом случае верхняя и нижняя дуги оказваютс "на границе"
у меня не получается сделать так что бы в случае скажем х=0 у=-1 результат был "не попадает" ,а не" на границе"

Автор: volvo 25.02.2007 7:28

Hunt666, очень распространенная ошибка: нельзя сравнивать Real-значения на равенство, можно только на НЕравенство:

program pop;
var n,y,x:real;
begin
writeln('vvedi x u y');
read(x,y);
if (sqrt(sqr(x) + sqr(y))<1) and (y>0) and (y<0.6) then writeln('popadaet')
else
if (sqrt(sqr(x) + sqr(y))>1) or (y>0.6) or (y<0) then writeln('ne popadaet')
else writeln('na granice');

readln;
End.