Модуль: Pascal. Подпрограммы: процедуры и функции - 2


Задача

1/10

Подпрограмма-функция

Теория Нажмите, чтобы прочитать/скрыть

Функция - это подпрограмма, которая возвращает результат (число, символьную строку и др.)

Представьте, что вы заказали товар в Интернет-магазине. С точки зрения программирования Вы вызвали некоторую подпрограмму, и в отличие от процедуры эта подпрограмма должна вернуть результат - доставить Вам товар, который Вы заказали. Вот такие подпрограммы и называются функциями.
Оформляется функция почти так же, как и процедура:

function <имя функции>(список параметров в виде <имя переменной>:<её тип> через точку с запятой): <тип возвращаемого значения>;
begin
    <тело функции>
end;

Отличие функции от процедуры состоит в том, что функция обязательно должна возвращать значение. Для этого необходимо использовать имя функции как переменную или же специальную переменную Result:
function Sum(a, b:integer): integer;
begin
    Sum := a + b;
end;
или
function Sum(a, b:integer): integer;
begin
    Result := a + b;
end;

Функция, которая возвращает среднее арифметическое двух целых чисел, будет выглядеть таким образом:
function average(a, b: integer): real;
begin
    average := (a + b) / 2;
end;
Осталось понять, как вызвать эту функцию в основной программе:
Не следует вызывать функцию также как, и процедуру:
average(10, 5); 
Значение, которое вернет функция, потеряется. Это как будто бы товар из Интернет-магазина никому не вручили, а выбросили. Вряд ли это понравится заказчику.

Правильнее сохранить результат в переменной (или вывести его на экран):
a := average(10, 5); 

или

writeln(average(10, 5));

Задача

Составьте функцию, которая вычисляет сумму цифр натурального числа.
Используя эту функцию, напишите программу, которая среди 5 введенных натуральных чисел, находит число с максимальной суммой цифр. Если таких чисел несколько, то выведите большее число
 
Примеры
Входные данные Выходные данные
1 15
234
11
9
111112
234