Посчитать сумму всех элементов в массиве - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Условие задачи: Реализовать функцию ForEach, которая принимает в качестве аргументов массив чисел и функцию f и применяет функцию f к каждому элементу массива. С помощью данной функции посчитать сумму всех элементов в массиве.
Просьба: если не знаете как решить задачу или лень писать код, то хотя бы напишите как мне её в общем решить, потому что весь интернет облазил и нигде нет нормальной информации по этой функции на Pascal'e

Решение задачи: «Посчитать сумму всех элементов в массиве»

textual
Листинг программы
  1. // Иллюстрация процедурных переменных как параметров подпрограмм
  2. // Для процедурного типа в PascalABC.NET реализована структурная эквивалентность типов
  3. // Процедурный тип реализован через делегаты .NET
  4. procedure for_each(var a: array of real; p: procedure(var r: real));
  5. var i: integer;
  6. begin
  7.   for i := 0 to a.Length-1 do
  8.     p(a[i]);
  9. end;
  10.  
  11. procedure mult2(var r: real);
  12. begin
  13.   r := 2*r
  14. end;
  15.  
  16. procedure print(var r: real);
  17. begin
  18.   write(r,' ');
  19. end;
  20.  
  21. var a: array of real := (1,2,3,6,7);
  22.  
  23. begin
  24.   for_each(a,print); writeln;
  25.   for_each(a,mult2);
  26.   for_each(a,print);
  27. end.

Объяснение кода листинга программы

В данном коде представлена процедура for_each, которая принимает два аргумента: массив a и процедуру p. Внутри цикла for, который выполняется от 0 до a.Length-1, вызывается процедура p, передавая в нее каждый элемент массива a. Также в коде присутствуют три процедуры:

  1. mult2 - принимает один аргумент типа real и удваивает его значение.
  2. print - принимает один аргумент типа real и выводит его значение на экран. В конце кода объявлен массив a, содержащий пять элементов, и вызываются три раза процедура for_each, каждый раз передавая в качестве процедуры p одну из трех описанных выше процедур.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы