begin for i := 0 to 10 do A[i] := i; PrintLn(a); for i := 1 to 11 do begin A[i - 1] := A[11 - i]; PrintLn(a); end; end.
Трасировка второго цикла А [10,1,2,3,4,5,6,7,8,9,10] [10,9,2,3,4,5,6,7,8,9,10] [10,9,8,3,4,5,6,7,8,9,10] [10,9,8,7,4,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10] [10,9,8,7,6,5,6,7,8,9,10]
Уровень А type num=integer; { можно поменять на real, longint, даже char... }
procedure Swap(var a,b:num); { меняет местами значения a и b } var t:num; begin t:=a; a:=b; b:=t end;
procedure Moving(var a,b,c:num); begin if a>b then begin Swap(a,b); if b>c then begin Swap(b,c); if a>b then Swap(a,b) end end else begin if b>c then Swap(b,c); if a>b then Swap(a,b) end end;
var a,b,c:num; begin Write('Введите три числа: '); Read(a,b,c); Moving(a,b,c); Writeln(a,' ',b,' ',c) end.
Уровень В function Gcd(a,b: longint): longint; { Нахождение НОД } var i: longint; begin while b <> 0 do begin a := a mod b; i := b; b := a; a := i end; gcd := a end;
procedure ShortFraction(var m,n:longint); var k:longint; begin k:=Gcd(m,n); m:=m div k; n:=n div k end;
var a,b:longint; begin Write('Введите числитель и знаменатель дроби: '); Readln(a,b); ShortFraction(a,b); Writeln('Дробь после сокращения равна ',a,'/',b) end.
Тестовое решение: Введите числитель и знаменатель дроби: 25 15 Дробь после сокращения равна 5/3
a: array[0..10] of integer;
i, n, k: integer;
begin
for i := 0 to 10 do
A[i] := i;
PrintLn(a);
for i := 1 to 11 do
begin
A[i - 1] := A[11 - i];
PrintLn(a);
end;
end.
Трасировка второго цикла А
[10,1,2,3,4,5,6,7,8,9,10]
[10,9,2,3,4,5,6,7,8,9,10]
[10,9,8,3,4,5,6,7,8,9,10]
[10,9,8,7,4,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
[10,9,8,7,6,5,6,7,8,9,10]
type
num=integer; { можно поменять на real, longint, даже char... }
procedure Swap(var a,b:num);
{ меняет местами значения a и b }
var
t:num;
begin
t:=a; a:=b; b:=t
end;
procedure Moving(var a,b,c:num);
begin
if a>b then begin
Swap(a,b);
if b>c then begin
Swap(b,c);
if a>b then Swap(a,b)
end
end
else begin
if b>c then Swap(b,c);
if a>b then Swap(a,b)
end
end;
var
a,b,c:num;
begin
Write('Введите три числа: '); Read(a,b,c);
Moving(a,b,c);
Writeln(a,' ',b,' ',c)
end.
Уровень В
function Gcd(a,b: longint): longint;
{ Нахождение НОД }
var
i: longint;
begin
while b <> 0 do
begin
a := a mod b;
i := b; b := a; a := i
end;
gcd := a
end;
procedure ShortFraction(var m,n:longint);
var
k:longint;
begin
k:=Gcd(m,n);
m:=m div k; n:=n div k
end;
var
a,b:longint;
begin
Write('Введите числитель и знаменатель дроби: '); Readln(a,b);
ShortFraction(a,b);
Writeln('Дробь после сокращения равна ',a,'/',b)
end.
Тестовое решение:
Введите числитель и знаменатель дроби: 25 15
Дробь после сокращения равна 5/3