
12.09.2009, 13:19
|
|
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
С нами:
9574565
Репутация:
712
|
|
Составить структурированнуб программу преобразования заданных вещественных хначений Х и Т по правилу: - если Х < 0, то X и Т заменить модулем
- если X < 0 или T < 0, то Х и Т увеличить на 0.5
- если Х > T и Т > 0 и ни одно из них не принадлежит отрезку [0.5-2], то Х и Т * 10
в противном случае Х и Т оставить без изменеий
Код:
program z1n17;
uses crt;
var
x,t: real;
begin
clrscr;
writeln ('Enter X,T');
read(x,t);
if (x < 0) and (t < 0) then { ШАГ 1 }
begin
x:=abs(x);
t:=abs(t);
clrscr;
writeln('Result:');
writeln('|X|=', x:5:3, ' and |T|=', t:5:3);
end
else
if (x < 0) or (t < 0) then { ШАГ 2 }
begin
x:=x+0.5;
t:=t+0.5;
clrscr;
writeln('Result:');
writeln('X+0.5=', x:5:3, ' and T+0.5=', t:5:3);
end
else
if (x>0) and (t>0) and (x<0.5) and (x>2) and (t<0.5) and (t>2) then { ШАГ 3 }
begin
x:=x*10;
t:=t*10;
clrscr;
writeln('Result:');
writeln('X*10=', x:5:3, ' and T*10=', t:5:3);
end
else
begin
clrscr;
writeln('Result:');
writeln('X=', x:5:3, ' and T=', t:5:3);
writeln;
writeln('Without changes');
end;
read(x);
end.
Вот у меня проблема на шаге 3:
if (x>0) and (t>0) and (x<0.5) and (x>2) and (t<0.5) and (t>2)
Это условие ни в какую не хочет работать
P.S. После третьего условия у меня действия "смещены" влево, т.к. в паскале повидимому ограничение на количество символов в строке.
Это как-то можно обойти, чтобы код выглядил "красиво" ?) (но это не принципиально, главная проблема с условием)
P.S.S. первая прога на паскале)
|
|
|