Помощь - Поиск - Пользователи - Календарь
Полная версия: программа с графиком
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Solymr
есть задание, получилась такая программа.
program figura;
const dx=0.5;
dy=0.4;
var x,y: real;
obl1,obl2,obl3,obl4: boolean;
count: integer;
begin
x:=-3.5;
count:=0;
while x<2.5 do
begin
y:=-3.6;
while y<2.4 do
begin
obl1:=(x>=-3) and (x<=-1)and (y<-x-2) and (y>-3);
obl2:=(x>-1) and (x<=0) and (y>-3) and (y<x);
obl3:=(x>=0) and (x<=1) and (y<1) and (y>-sqrt(4-sqr(x)));
obl4:=(x<=2) and (x>1) and (y<x) and (y>-sqrt(4-sqr(x)));
if obl1 or obl2 or obl3 or obl4 then
begin
write('(',x:2:1,',',y:2:1,')',';');
inc(count);
if not odd(count) then
writeln;
end;

y:=y+dy;
end;
x:=x+dx;
end;
readln;
end.
но правильные точки не выводятся, что не так, кто подскажет?
Ozzя
if obl1 or obl2 or obl3 or obl4 then
А ПОЧЕМУ or?
and не пробовал поставить?
Solymr
если ставлю and вообще ничего не выходит
volvo
Цитата
правильные точки не выводятся

А вот так?

program figura;
const
dx=0.5;
dy=0.4;

var
x,y: real;
obl1,obl2,obl3,obl4, obl5: boolean;
count: integer;

begin
x := -3.5;
count := 0;
while x < 2.5 do begin
y := -3.6;
while y < 2.4 do begin

obl1 := (x >= -3) and (x <= 0) and (y < (-x-2)) and (y >= -3);
obl2 := (x >= -1) and (x <= 0) and (y >= -3) and (y <= x);
obl3 := (x >= 0) and (x <= 1) and (y >= 0) and (y <= 1) and (y >= x);
obl4 := (x >= 0) and (x <= 2) and (y >= 0) and (y <= x);
obl5 := (x >= 0) and (x <= 2) and (y <= 0 ) and (y >= -2) and (sqr(x) + sqr(y) <= 4);

if obl1 or obl2 or obl3 or obl4 or obl5 then begin
write('(',x:2:1,',',y:2:1,')',';');
inc(count);
if not odd(count) then writeln;
end;

y:=y+dy;
end;

x:=x+dx;
end;
readln;
end.
Solymr
все равно не те координаты выводит. Может в самой программе что-то не так, а не в областях?
мисс_граффити
Цитата
А ПОЧЕМУ or?

Потому что достаточно попадания в одну из областей.


КАКИЕ точки не вывелись, хотя должны были? Можно КОНКРЕТНЫЕ координаты?
Solymr
(-3;0);(-3;-3);(-1,4;-1,4);(-2;0);(-1;-1);(0;-3);(-3;1);(0;0);(0;1);(1;1);(2;2);(1,4;1,4)
вот эти не знаю как вывести
volvo
Цитата
вот эти не знаю как вывести
Никак ты их с заданным тобой шагом не выведешь... Думать разучился совсем? Что , если ты начинаешь от -3.6 и шаг = 0.4, то у тебя есть шанс попасть в -3.0?

P.S. Если ты запускал мою программу, то должен был видеть, что все, куда можно добраться, например, (-3, 0), она печатает...
Solymr
да, спасибо, че-то я сглупил.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.