Определить, какой столбец матрицы имеет наибольшую сумму - Turbo Pascal

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

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

Листинг программы
  1. program lab4_1;
  2. uses crt;
  3. var
  4. i, j, n, max, y: integer;
  5. a: array [1..20, 1..20] of integer;
  6. b: array[1..20]of integer;
  7. begin
  8. clrscr;
  9. writeln('Введите количество строк и столбцов квадратной матрицы');
  10. readln(n);
  11. randomize;
  12. for i := 1 to n do
  13. begin
  14. for j := 1 to n do
  15. begin
  16. a[i, j] := random(21);
  17. write(a[i, j]:5);
  18. end;
  19. writeln;
  20. end;
  21. for j := 1 to n do
  22. for i := 1 to n do
  23. begin
  24. b[j] := b[j] + a[i,j];
  25. end;
  26. for j := 1 to n do
  27. writeln('Сумма элементов ', j, ' столбца: ', b[j]);
  28. max := 0;
  29. for i := 1 to n do
  30. if b[i] > max then
  31. begin
  32. max := b[i];
  33. y := i;
  34. end;
  35. writeln('Наибольшую сумму имеет столбец ', y);
  36. end.
Нужно сделать эту задачу при помощи функции

Решение задачи: «Определить, какой столбец матрицы имеет наибольшую сумму»

textual
Листинг программы
  1. program lab4_1;
  2.  
  3. uses
  4.   crt;
  5.  
  6. type
  7.   arr = array [1..20, 1..20] of integer;
  8.   ar = array[1..20]of integer;
  9.  
  10. var
  11.   r, s, n, f: integer;
  12.   a: arr;
  13.   b: ar;
  14.  
  15. function ds(var v: arr; var c: ar): integer;
  16. var
  17.   max, y, i, j: integer;
  18. begin
  19.   for j := 1 to n do
  20.     for i := 1 to n do
  21.     begin
  22.       c[j] := c[j] + v[i, j];
  23.     end;
  24.   for j := 1 to n do
  25.     writeln('Сумма элементов ', j, ' столбца: ', b[j]);
  26.   max := 0;
  27.   for i := 1 to n do
  28.     if c[i] > max then
  29.     begin
  30.       max := c[i];
  31.       y := i;
  32.     end;
  33.   writeln('Наибольшую сумму имеет столбец ', y);
  34. end;
  35.  
  36. begin
  37.   clrscr;
  38.   writeln('Введите количество строк и столбцов квадратной матрицы');
  39.   readln(n);
  40.   randomize;
  41.   for r:= 1 to n do
  42.   begin
  43.     for s := 1 to n do
  44.     begin
  45.       a[r, s] := random(21);
  46.       write(a[r, s]:5);
  47.     end;
  48.     writeln;
  49.   end;
  50.   ds(a, b);
  51.  
  52. end.

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

  1. Создается программа lab4_1.
  2. Используются стандартные библиотеки.
  3. Определяется тип данных arr, который представляет собой массив целых чисел размером от 1 до 20 в каждой из 20 строк.
  4. Определяется тип данных ar, который представляет собой массив целых чисел размером от 1 до 20.
  5. Определяются переменные r, s, n и f, которые будут использоваться в программе.
  6. Создается переменная a, которая будет представлять собой массив arr.
  7. Создается переменная b, которая будет представлять собой массив ar.
  8. Определяется функция ds, которая будет находить столбец с наибольшей суммой элементов.
  9. Внутри функции ds объявляются переменные max, y, i и j, которые будут использоваться для поиска столбца с наибольшей суммой.
  10. В цикле for j := 1 до n do происходит заполнение массива b значениями из массива c.
  11. После заполнения массива b выводится информация о столбце с наибольшей суммой.
  12. В основной части программы считывается количество строк и столбцов матрицы.
  13. Используется функция randomize для инициализации генератора случайных чисел.
  14. Заполняется матрица a значениями из диапазона от 0 до 20.
  15. Вызывается функция ds(a, b).
  16. Программа завершается.

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


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

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

11   голосов , оценка 4 из 5

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

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

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