Уровень А 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
function greatest_common_divisor(m, n: integer): integer; var modulo: integer; begin modulo := m mod n; if modulo = 0 then greatest_common_divisor := n else greatest_common_divisor := greatest_common_divisor(n, modulo) end;
procedure reduce_the_fraction(a, b: integer); var gcd: integer; sign: string; begin gcd := greatest_common_divisor(a, b); if a * b < 0 then sign := '-'; writeln(sign, abs(a) / gcd, '/', abs(b) / gcd); end;
begin write('Enter two numbers: '); readln(a, b); reduce_the_fraction(a, b); end.
ответ:var n:byte;
a,b,h:real;
begin
writeln ('Введи номер фигуры 1-квадрат, 2-трапеция, 3-круг, 4-прямоугольник');
readln(n);
if n=1 then
begin
writeln ('Введи сторону квадрата');
readln(a);
writeln('Площадь квадрата=',sqr(a));
end;
if n=2 then
begin
writeln ('Введи длины оснований и высоту');
readln(a, b, h);
writeln ('Площадь трапеции =', (a+b)/2*h:1:1);
end;
if n=3 then
begin
writeln ('Введи радиус');
readln(a);
writeln ('Площадь круга =', pi*sqr(a):1:1);
end;
if n=4 then
begin
writeln ('Введи длины cторон');
readln(a, b);
writeln ('Площадь прямоугольника =', a*b);
end;
end.
Объяснение: