Найти максимальный элемент каждого из 3 массивов и сложить их - PascalABC.NET
Формулировка задачи:
Нужно найти максимальный элемент каждого из 3 массивов и сложить их .
Выдаёт ошибку: m:=d[1] - Нельзя преобразовать тип array [1..10] of integer к integer
Решение задачи: «Найти максимальный элемент каждого из 3 массивов и сложить их»
textual
Листинг программы
type atype = array [1..10] of integer; function max(d: atype): integer; var i,m: integer; begin m:=d[1]; for i:=1 to 9 do begin if d[i+1]>m then m:=d[i+1]; end; max:=m; end; var a,b,c: atype; // <--- Нужно использовать то же описание типа, которое используется в функции x,y,z,summ,i:integer; begin for i:=1 to 10 do readln(a[i]); for i:=1 to 10 do readln(b[i]); for i:=1 to 10 do readln(c[i]); x:=max(a); y:=max(b); z:=max(c); Summ:=x+y+z; writeln(summ); end.
Объяснение кода листинга программы
В этом коде используется язык программирования PascalABC.Net.
- Тип данных
atypeопределен как массив целых чисел от 1 до 10. - Функция
maxпринимает в качестве параметра массивdи возвращает его максимальный элемент. Она инициализирует переменнуюmзначением первого элемента массиваd, а затем проходит по всем оставшимся элементам, сравнивая каждый из них с текущим максимальным значениемm. Если текущий элемент большеm, он становится новым максимальным значением. - Три переменные
a,bиcопределены как массивы целых чисел, которые будут содержать значения, введенные пользователем. - Цикл
forиспользуется для чтения 10 значений в каждую из переменныхa,bиc. - Затем функция
maxприменяется к каждому из массивовa,bиc, чтобы найти их максимальные значения, которые сохраняются в переменныхx,yиz. - Сумма этих трех максимальных значений сохраняется в переменной
summ. - Наконец, значение переменной
summвыводится на экран с помощью функцииwriteln. Следует отметить, что в данном коде не обрабатываются ошибки, связанные с вводом данных, например, если пользователь вводит некорректные данные (например, буквы вместо чисел) или вводит меньшее количество данных, чем ожидается (например, вводит только одно значение вместо 10).