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
{ Нахождение НОД }
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
4. 23
5. 15
Объяснение:
4.
Построим граф по данным таблицы (смотри картинку)
Рассчитаем длину всех путей из A в E через C
ACE = 4 + 20 = 24
ABCE = 2 + 2 + 20 = 24
ACBE = 4 + 2 + 18 = 24
ACBDE = 4 + 2+ 15 + 2 = 23
Кратчайший путь A в E через C равен 23
5.
Команды:
1) прибавь b
2) умножь на 2
Программа 11121 переводит 5 в 115
Распишем программу по командам (подставив начальное и конечные числа):
1) 5 + b
1) 5 + b + b
1) 5 + b + b + b
2) (5 + b + b + b) * 2
1) ((5 + b + b + b) * 2) + b = 115
Решим получившееся уравнение:
((5 + b + b + b) * 2) + b = 115
((5 + 3b) * 2) + b = 115
10 + 6b + b = 115
10 + 7b = 115
7b = 115 - 10
7b = 105
b = 105 / 7
b = 15
Проведем проверку (выполнив всю программу):
1) 5 + 15 = 20
1) 20 + 15 = 35
1) 35 + 15 = 50
2) 50 * 2 = 100
1) 100 + 15 = 115