Пожалуйста, помогите. Нужно решить в Pascal ABC, тремя способами: с помощью операторов for, while и repeat.
Пожалуйста, помогите. Нужно решить в Pascal ABC, тремя способами: с помощью операторов for, while и repeat.
Ответ(ы) на вопрос:
Гость
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
function y(x:integer):integer;
begin
if x>5 then Result:=18*x
else
if x<2 then Result:=-12*x
else Result:=9*x+10
end;
begin
Writeln('for');
for var i:=-3 to 8 do Writeln(i:2,y(i):5);
Writeln('while');
var i:=-3;
while i<=8 do begin Writeln(i:2,y(i):5); Inc(i) end;
Writeln('repeat');
i:=-3;
repeat Writeln(i:2,y(i):5); Inc(i) until i>8;
end.
Результат выполнения программы:
for
-3 36
-2 24
-1 12
0 0
1 -12
2 28
3 37
4 46
5 55
6 108
7 126
8 144
while
-3 36
-2 24
-1 12
0 0
1 -12
2 28
3 37
4 46
5 55
6 108
7 126
8 144
repeat
-3 36
-2 24
-1 12
0 0
1 -12
2 28
3 37
4 46
5 55
6 108
7 126
8 144
Гость
//Pascal ABC.NET v3.0 сборка 1111
//for
Var
x:integer;
begin
for x:=-3 to 8 do
begin;
if x>5 then writeln('y=(',x,')',18*x);
if (2<=x) and (x<=5) then writeln('y=(',x,')',9*x+10);
if x<2 then writeln('y=(',x,')',-12*x);
end;
end.
//while
Var
x:integer;
begin
x:=-3;
while x<>9 do
begin;
if x>5 then writeln('y=(',x,')',18*x);
if (2<=x) and (x<=5) then writeln('y=(',x,')',9*x+10);
if x<2 then writeln('y=(',x,')',-12*x);
inc(x);
end;
end.
//repeat
Var
x:integer;
begin
x:=-3;
repeat
if x>5 then writeln('y=(',x,')',18*x);
if (2<=x) and (x<=5) then writeln('y=(',x,')',9*x+10);
if x<2 then writeln('y=(',x,')',-12*x);
inc(x);
until x=9;
end.
Не нашли ответ?
Похожие вопросы