Определить максимальную и минимальную цифры числа - Free Pascal
Формулировка задачи:
Задание: Дано максимальное число, определить его максимальную и минимальную цифры,используя подпрограммы для нахождения максимальной и минимальной цефры некоторого натурального числа.
Есть обычное решение:
Надо переделать это решение через function либо через procedure)
program min_max
var a,b,max,min:integer;
Begin
write('Vvedite chislo a: ');
readln(a);
max:=-10;
min:=10;
While a<>0 do
Begin
b:=a mod 10;
if b>max then max:=b;
if b<min then min:=b;
a:=a div 10;
End;
writeln('Max= ',max);
writeln('Min= ',min);
End.Решение задачи: «Определить максимальную и минимальную цифры числа»
textual
Листинг программы
function MinDigit(a: Longint): Integer;
var d, r: Integer;
begin
a:=Abs(a); r:=9;
repeat
d:=a mod 10; a:=a div 10;
if r>d then r:=d;
until a=0;
MinDigit:=r;
end;
function MaxDigit(a: Longint): Integer;
var d, r: Integer;
begin
a:=Abs(a); r:=0;
repeat
d:=a mod 10; a:=a div 10;
if r<d then r:=d;
until a=0;
MaxDigit:=r;
end;
var n: Integer;
begin
Write('Число: '); ReadLn(n);
WriteLn('Цифры: min: ',MinDigit(n),' max: ',MaxDigit(n));
end.
Объяснение кода листинга программы
- Функция MinDigit принимает число типа Longint и возвращает тип Integer.
- Переменная
dинициализируется значением остатка от деления числа на 10. - Переменная
rинициализируется значением 9. - В цикле повторяется:
- Вычисляется остаток от деления числа на 10 (переменная
d). - Число делится на 10 (без остатка).
- Если значение переменной
rбольше значения переменнойd, то значение переменнойrобновляется значением переменнойd.
- Вычисляется остаток от деления числа на 10 (переменная
- Цикл повторяется пока число не станет равным 0.
- Значение переменной
rвозвращается как минимальная цифра числа. - Функция MaxDigit принимает число типа Longint и возвращает тип Integer.
- Переменная
dинициализируется значением остатка от деления числа на 10. - Переменная
rинициализируется значением 0. - В цикле повторяется:
- Вычисляется остаток от деления числа на 10 (переменная
d). - Число делится на 10 (без остатка).
- Если значение переменной
rменьше значения переменнойd, то значение переменнойrобновляется значением переменнойd.
- Вычисляется остаток от деления числа на 10 (переменная
- Цикл повторяется пока число не станет равным 0.
- Значение переменной
rвозвращается как максимальная цифра числа. - Переменная
nзапрашивается у пользователя. - Выводится сообщение с минимальной и максимальной цифрами числа.