Посчитать сумму всех элементов в массиве - PascalABC.NET
Формулировка задачи:
Условие задачи:
Реализовать функцию ForEach, которая принимает в качестве аргументов
массив чисел и функцию f и применяет функцию f к каждому элементу
массива. С помощью данной функции посчитать сумму всех элементов в
массиве.
Просьба: если не знаете как решить задачу или лень писать код, то хотя бы напишите как мне её в общем решить, потому что весь интернет облазил и нигде нет нормальной информации по этой функции на Pascal'e
Решение задачи: «Посчитать сумму всех элементов в массиве»
textual
Листинг программы
- // Иллюстрация процедурных переменных как параметров подпрограмм
- // Для процедурного типа в PascalABC.NET реализована структурная эквивалентность типов
- // Процедурный тип реализован через делегаты .NET
- procedure for_each(var a: array of real; p: procedure(var r: real));
- var i: integer;
- begin
- for i := 0 to a.Length-1 do
- p(a[i]);
- end;
- procedure mult2(var r: real);
- begin
- r := 2*r
- end;
- procedure print(var r: real);
- begin
- write(r,' ');
- end;
- var a: array of real := (1,2,3,6,7);
- begin
- for_each(a,print); writeln;
- for_each(a,mult2);
- for_each(a,print);
- end.
Объяснение кода листинга программы
В данном коде представлена процедура for_each, которая принимает два аргумента: массив a и процедуру p. Внутри цикла for, который выполняется от 0 до a.Length-1, вызывается процедура p, передавая в нее каждый элемент массива a. Также в коде присутствуют три процедуры:
- mult2 - принимает один аргумент типа real и удваивает его значение.
- print - принимает один аргумент типа real и выводит его значение на экран. В конце кода объявлен массив a, содержащий пять элементов, и вызываются три раза процедура for_each, каждый раз передавая в качестве процедуры p одну из трех описанных выше процедур.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д