Произведение минимальной и максимальной цифр - PascalABC.NET
Формулировка задачи:
Задача : Даны три целых положительных числа a, b и c. Найти в каж-
дом числе произведение минимальной и максимальной цифр.
Нужно сделать с помощью подпрограмм.
Есть набросок программы,непонятно,что надо использовать функцию или процедуру,так и не понял в чем толком их различие.
И даже если пытаться запустить программу в таком виде,выдает ошибку неверное число параметров функции.
Решение задачи: «Произведение минимальной и максимальной цифр»
textual
Листинг программы
//поскольку нужно получить 2 значения, лучше процедура, хотя можно и функцию,
//но она будет по сути процедурой
procedure MaxMin(n:integer; var max, min : byte);
var m:byte;
begin
n:=abs(n);//вдруг число отрицательное
max:=0;
min:=9;
While n<>0 do
begin
m:=n mod 10;
if m>max then max:=m;
if m<min then min:=m;
n:=n div 10;
End;
end;
function Proizv(var a,b:byte):byte;
begin
Proizv:=a*b;
end;
var a:integer;
i,mn,mx:byte;
begin
for i:=1 to 3 do
begin
write('Введите целое число a=');
readln(a);
MaxMin(a, mn, mx);
writeln('Произведение минимальной и максимальной цифр=',Proizv(mn,mx));
end;
end.
Объяснение кода листинга программы
- Введен код на языке PascalABC.Net
- Объявлена процедура MaxMin(n:integer; var max, min : byte) для нахождения максимального и минимального значения цифр числа n
- В процедуре используется цикл while, который выполняется до тех пор, пока n не равно 0
- На каждой итерации цикла значение переменной m равно остатку от деления n на 10 (это последняя цифра числа n)
- Если значение m больше max, то max присваивается значение m
- Если значение m меньше min, то min присваивается значение m
- Значение n делится на 10 (удаляется последняя цифра числа n)
- Введен код функции Proizv(var a,b:byte):byte для умножения двух чисел
- В основной программе объявлены переменные a, i, mn, mx типа byte
- В цикле for, который выполняется 3 раза, пользователю предлагается ввести целое число a
- При вводе числа, вызывается процедура MaxMin(a, mn, mx), которая находит максимальное и минимальное значение цифр числа a
- Выводится произведение минимальной и максимальной цифр (значение функции Proizv(mn, mx))
- Цикл for выполняется 3 раза