есть задание, получилась такая программа. 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я
31.05.2007 19:04
if obl1 or obl2 or obl3 or obl4 then А ПОЧЕМУ or? and не пробовал поставить?
Solymr
31.05.2007 19:32
если ставлю and вообще ничего не выходит
volvo
31.05.2007 19:51
Цитата
правильные точки не выводятся
А вот так?
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
31.05.2007 20:04
все равно не те координаты выводит. Может в самой программе что-то не так, а не в областях?
мисс_граффити
31.05.2007 20:11
Цитата
А ПОЧЕМУ or?
Потому что достаточно попадания в одну из областей.
КАКИЕ точки не вывелись, хотя должны были? Можно КОНКРЕТНЫЕ координаты?
Solymr
31.05.2007 20:27
(-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
31.05.2007 20:40
Цитата
вот эти не знаю как вывести
Никак ты их с заданным тобой шагом не выведешь... Думать разучился совсем? Что , если ты начинаешь от -3.6 и шаг = 0.4, то у тебя есть шанс попасть в -3.0?
P.S. Если ты запускал мою программу, то должен был видеть, что все, куда можно добраться, например, (-3, 0), она печатает...
Solymr
1.06.2007 0:53
да, спасибо, че-то я сглупил.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.