ответь на во Какова роль процедур и функций в программировании?
Как записывается общий вид процедуры?
Как записывается общий вид функции?
Как записываются операторы вызовов процедуры и функции?
Что такое локальная переменная?
В чем сходство и различия между процедурой и функцией?
Какие преимущества дает использование процедур и функций при написании программ?
Какие подпрограммы более удобны в применении: процедуры или функции?
Проанализируйте код проекта «Процедура и функции». Изучите различия в работе процедуры и функции. Какой вариант эффективнее? Почему? Приведите примеры, основанные на фактических данных
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, b: integer;
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.