Описать функцию, которая возвращает сумму наименьших цифр входящих в запись числа типа Longint - Pascal ABC
Формулировка задачи:
Описать функцию, которая возвращает сумму наименьших цифр входящих в запись числа типа Longint. Я написал через процедуру
Преподаватель не принимает( помогите пожалуйста написать через функцию
Решение задачи: «Описать функцию, которая возвращает сумму наименьших цифр входящих в запись числа типа Longint»
textual
Листинг программы
function pr(a: longint):real; var s: real; b, sum, k: integer; begin a := abs(a); s := 0; k := 0; while a <> 0 do begin b := a mod 10; if b mod 2 <> 0 then begin sum := sum + b; k := k + 1; end; a := a div 10; end; if k <> 0 then s := sum / k else s := 0; pr:=s; end; begin writeln('s1=', pr(123456789)); end.
Объяснение кода листинга программы
- Функция pr принимает аргумент типа longint и возвращает значение типа real.
- В функции объявлены следующие переменные: s - тип real, b, sum, k - типы integer.
- В начале функции абсолютное значение числа a преобразуется в тип real, так как сумма цифр должна быть найдена в десятичной системе счисления.
- Далее, переменные s и k инициализируются нулевыми значениями.
- Затем, в цикле while происходит следующее:
- переменной b присваивается остаток от деления числа a на 10.
- если остаток от деления b на 2 не равен нулю, то переменная sum увеличивается на b, а переменная k увеличивается на 1.
- затем, число a делится на 10 и остаток от деления присваивается переменной a.
- После завершения цикла, проверяется значение переменной k. Если оно не равно нулю, то переменная sum делится на k и присваивается переменной s. В противном случае, переменная s остается равной 0.
- В конце функции, значение переменной s присваивается переменной pr и функция возвращает это значение.
- В основной части программы вызывается функция pr(123456789) и результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д