ДАЮ 24 БАЛЛА, СРОЧНО
Оформить в виде процедур следующие задачи:
1. swap(a, b)
2. НОД(х, у)
3. максимум из двух чисел
4. минимум из трёх чисел
5. возведение числа а в степень х
6. вычисление n!
Организовать вызов этих процедур в основной программе для введённых значений.

Ну, в общем, лови решение.

{ FreePascal 2.6.4}
program test;
uses
    crt;
var
    a, b, c, d  : integer;
    f : longint;

procedure swap (var x : integer; var y : integer);
var z : integer;
begin
    z := x;
    x := y;
    y := z;
end;

function nod (m, n : integer) : integer;
begin
    while m<>n do begin
        if m>n
        then
            m:=m-n
        else
            n:=n-m;
    end;
    nod := m;
end;

function max (a,b : integer) : integer;
begin
    if a>b
    then max := a
    else max := b;
end;

function min (x, y, z : integer) : integer;
var m : integer;
begin
    m := x;
    if y    if z    min := m;
end;

function mypow (a, b : integer) : integer;
var e, f : integer;
begin
    f := 1;
    for e:=1 to b do f := f*a;
    mypow := f;
end;

function fact(a : integer) : longint;
var
    i : integer;
    res : longint;
begin
    res := 1;
    for i := 1 to a do res := res*i;
    fact := res;
end;

begin
    clrscr;
    writeln(Test of function SWAP);
    write(Input A: );
    readln(a);
    write(Input B: );
    readln(b);
    swap(a, b);
    writeln(A=, a, , B=, b);
    writeln;

    writeln(Test of function NOD);
    write(Input A: );
    readln(a);
    write(Input B: );
    readln(b);
    c := nod(a, b);
    writeln(NOD(, a, ,, b, )=, c);
    writeln;

    writeln(Test of function MAX);
    write(Input A: );
    readln(a);
    write(Input B: );
    readln(b);
    c := max(a, b);
    writeln(MAX(, a, ,, b, )=, c);
    writeln;

    writeln(Test of function MIN);
    write(Input A: );
    readln(a);
    write(Input B: );
    readln(b);
    write(Input C: );
    readln(c);
    d := min(a, b, c);
    writeln(MIN(, a, ,, b, ,, c, )=, d);
    writeln;

    writeln(Test of function POW);
    write(Input A: );
    readln(a);
    write(Input B: );
    readln(b);
    c := mypow(a, b);
    writeln(POW(, a, ,, b, )=, c);
    writeln;

    writeln (Test of function FACT (not large than 12!));
    write(Input A: );
    readln(a);
    f := fact(a);
    writeln(a, !=, f);
    writeln;
    readkey;

end.

Оцени ответ
Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Загрузить картинку