Определить номер столбца с максимальной суммой и строки с минимальным произведением элементов - Pascal

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

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

Здравствуйте! Прошу помочь с задачкой...Начало положено, но что-то выводит совсем не то, что хотелось бы... Исходное условие:Дана двумерная матрица А вещественных чисел. 1. Определить номер столбца, в котором сумма элементов матрицы максимальна и номер строки, в которой произведение элементов минимальна. 2. Упорядочить элементы второго столбца по возрастанию абсолютных значений элементов. На первом пункте уже застопорилась...Если хотя бы эту часть подправить, дальше доделаю Спасибо!
Листинг программы
  1. Program Use;
  2. const n=10;
  3. var
  4. a:array[1..n,1..n] of integer;
  5. stosum:array[1..n] of integer;//массив для хранения сумм столбцов
  6. i,j,nomer,sum : integer;
  7. begin
  8. Randomize;
  9. for i:=1 to n do
  10. for j:=1 to n do
  11. a[i,j]:= Random(10); //заполняем массив
  12. writeln('*** alphaues is thinking... ***');
  13. for j:=1 to n do
  14. begin
  15. sum:=0;
  16. for i:=1 to n do
  17. sum:=sum+a[i,j]; // находим сумму столбца
  18. stosum[j]:=sum;
  19. end;
  20. nomer:=1;
  21. sum:=stosum[1];
  22. for j:=1 to n do
  23. begin
  24. if sum<stosum[j] then sum:=stosum[j];
  25. nomer:=j;
  26. end;
  27. writeln;
  28. for i:=1 to n do
  29. begin
  30. for j:=1 to n do
  31. write(a[i,j]:5);//выводим массив
  32. writeln;
  33. end;
  34. writeln('*** столбец с максимальной суммой - ',nomer,'-й');
  35. end.

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

textual
Листинг программы
  1. const
  2.   n=10;
  3. var
  4.   a:array[1..n,1..n] of real;
  5.   i,j,maxcol,minrow:integer;
  6.   sum,maxsum,dob,mindob,tmp:double;
  7. begin
  8.   Randomize;
  9.   for i:=1 to n do
  10.     begin
  11.       for j:=1 to n do
  12.         begin
  13.           a[i,j]:=Random(19)-10+Random(100)/100;//диапазон от -9.99 до 9,99
  14.           write(a[i,j]+#9);
  15.         end;
  16.       writeln;
  17.     end;
  18. //1.1
  19.   maxsum:=0;
  20.   maxcol:=0;
  21.   for i:=1 to n do
  22.     begin
  23.       sum:=0;
  24.       for j:=1 to n do
  25.         sum:=sum+a[j,i];
  26.       if sum>maxsum then
  27.         begin
  28.           maxcol:=i;
  29.           maxsum:=sum;
  30.         end;
  31.     end;
  32.   writeln('Максимальная сумма:'+maxsum+' в '+maxcol+'колонке');
  33.  
  34. //1.2
  35.   mindob:=0;
  36.   minrow:=0;
  37.   for i:=1 to n do
  38.     begin
  39.       dob:=1;
  40.       for j:=1 to n do
  41.         dob:=dob*a[i,j];
  42.       if dob<mindob then
  43.         begin
  44.           minrow:=i;
  45.           mindob:=dob;
  46.         end;
  47.     end;
  48.   writeln('Минимальное произведение елементов по строкам:'+mindob+' в '+minrow+'строке');
  49.  
  50. //сортируем по модулю
  51.   for i := 2 to n do
  52.     for j:=n downto i do
  53.       if abs(a[j-1,2]) > abs(a[j,2]) then
  54.         begin
  55.           tmp:=a[j-1,2];
  56.           a[j-1,2]:=a[j,2];
  57.           a[j,2]:=tmp;
  58.         end;
  59. //вывод второй после сортировки        
  60.   for i:=1 to n do
  61.     begin
  62.       for j:=1 to n do
  63.         write(a[i,j]+#9);
  64.       writeln;
  65.     end;
  66.   readln;
  67. end.

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

  1. Создание переменной a типа array[1..n,1..n] of real; и заполнение её случайными числами от -9.99 до 9.99.
  2. Вычисление максимальной суммы и номера столбца с помощью цикла for.
  3. Вычисление минимального произведения и номера строки с помощью цикла for.
  4. Сортировка массива a по модулю с помощью двух вложенных циклов for.
  5. Вывод содержимого массива a после сортировки.
  6. Чтение пользовательского ввода с помощью функции readln.
  7. Остановка программы с помощью оператора readln.

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


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

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

7   голосов , оценка 3.857 из 5

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

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

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