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

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

Форум «Всё о Паскале» _ Задачи _ Координаты графика!

Автор: LoLzZ 5.06.2006 1:41

Напечатать координаты точек, попадающих в заштрихованную фигуру, если координата х изменяется от –2.6 до 2.2 с шагом Dх=0.2, а координата у меняется от –2.5 до 2.5 с шагом Dу=0.5.

вот к какому графику

http://img129.imageshack.us/img129/5140/graph6fi.jpg

Есть сама программа только никак не могу правильно подобрать условие.

Код
program rg;
uses graph;
var a,b:real; c:integer;
begin
a:=-2.6;c:=1;
repeat
b:=-2.5;
repeat
if
{здесь доолжно быть условие}
then begin
writeln ('(' ,a:4:2, '; ' ,b:4:2, ')');
c:=c+1;
if (C mod 24)=0 then begin
Writeln('Push enter');
readln;
end;
end;
b:=b+0.5;
until b>2.5;
a:=a+0.2;
until a>2.2;
readln;
end.


Не забываем код оформлять в теги!

Автор: Bokul 5.06.2006 2:00

((0>=y>=x-2) and (0<=x<=2)) or
((0>=y>=-x) and (1<=x<=2)) or

((0<=y<=x+2) and (-2<=x<=0)) or
((-x-2<=y<=0) and (-2<=x<=-1))

Автор: LoLzZ 5.06.2006 2:24

Он пишет что Error 89: ">" expected. Это что такое?

Автор: APAL 5.06.2006 2:35

Потому что ((0>=y>=x-2) надо раскладывать пораздельно:

(y<=0) and (y>=x-2)

Автор: Bokul 5.06.2006 2:35

Я написал решения в "математическом" представлении, а тебе надо в "паскалевском"...
Например

Код

((0>=y>=x-2) and (0<=x<=2))

надо переписать
Код

((0>=y) and (y>=x-2) and (0<=x) and (x<=2))

Автор: volvo 5.06.2006 2:36

Паскаль не поддерживает двусторонних условий.
Надо расписывать условие типа
A < x < B
вот так: (A < x) and (x < B)... Так что твое условие преобразуется к такому:

((0>=y)and(y>=x-2)) and ((0<=x)and(x<=2))) or
(((0>=y)and(y>=-x)) and ((1<=x)and(x<=2))) or

(((0<=y)and(y<=x+2)) and ((-2<=x)and(x<=0))) or
(((-x-2<=y)and(y<=0)) and ((-2<=x)and(x<=-1)))