Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов - Turbo Pascal

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

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

Дана целочисленная квадратная матрица. Определить: 1. Сумму элементов в тех столбцах, которые не содержат отрицательных эле¬ментов (оформить в виде функции). 2. Минимум среди сумм модулей элементов диагоналей, параллельных побоч¬ной диагонали матрицы (оформить в виде процедуры). В паскаль Помогите пожалуйста
Листинг программы
  1. Program z1;
  2. uses crt;
  3. const
  4. n=10;
  5. type
  6. matr = array[1..n,1..n] of integer;
  7. var
  8. i,j,ks1,ks2,min:integer;
  9. a:matr;
  10. summb:boolean;
  11. procedure summd(m1:matr; var m:integer);
  12. var i,j,k:integer;
  13. s:array[1..n*2] of integer;
  14. begin
  15. k:=0;
  16. for i:=1 to n do begin
  17. for j:=1 to n do begin
  18. s[j+k]:=s[j+k]+abs(a[i,j]);
  19. end;
  20. k:=k+1;
  21. end;
  22. m:=s[1];
  23. for i:=1 to n*2-1 do
  24. if sum;
  25. end;
  26. function sum(j:integer):integer;
  27. var i,s:integer;
  28. begin
  29. for i:=1 to n do s:=s+a[i,j];
  30. sum:=s;
  31. end;
  32. begin
  33. clrscr;
  34. randomize;
  35. for i:=1 to n do begin
  36. for j:=1 to n do begin
  37. a[i,j]:=random(50)-25;
  38. write(a[i,j]:3);
  39. end;
  40. writeln;
  41. end;
  42. writeln;
  43. for j:=1 to n do begin
  44. summb:=true;
  45. for i:=1 to n do begin
  46. if a[i,j]<0 then summb:=false;
  47. end;
  48. if summb then begin
  49. writeln('Summa ',j,' stolbca = ',sum(j));
  50. ks1:=ks1+1;
  51. end;
  52. end;
  53. if ks1=0 then writeln('Net stolbcov ne soderj otric el-v!');
  54. summd(a,min);
  55. writeln('Minimalnaya summa diagonalei paral gl diag: = ',min);
  56. readkey;
  57. end.

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

textual
Листинг программы
  1. const n = 10;
  2. type  int = 1..n;
  3.       matrix = array[int, int] of integer;
  4. var i, j, k, sizemas : byte;
  5.     mas              : matrix;
  6.    
  7. Function Sum(massiv:matrix; cl:byte) : integer;
  8.          var s : integer;
  9.          Begin
  10.               s:= 0;
  11.               for i:= 1 to sizemas do
  12.                   s:= s + mas[i, cl];
  13.               sum:= s;
  14.          End;
  15.  
  16. BEGIN
  17.      Randomize;
  18.      WriteLn('Введите размер матрицы, меньше ', n, ': ');
  19.      ReadLn(sizemas);
  20.      for i:= 1 to sizemas do
  21.          for j:= 1 to sizemas do
  22.              mas[i, j]:= Random(20)-5;
  23.      for i:= 1 to sizemas do
  24.      begin
  25.          for j:= 1 to sizemas do
  26.              Write(mas[i, j]:4);
  27.          WriteLn;
  28.      end;
  29.      for j:= 1 to sizemas do
  30.      begin
  31.           k:= 0;
  32.          for i:= 1 to sizemas do
  33.              if (mas[i, j] >= 0) then k:= k + 1
  34.              else
  35.                  begin
  36.                       k:= 0;
  37.                       break;
  38.                  end;
  39.          if k = sizemas then
  40.             WriteLn('Сумма элементов ', j, ' столбца = ', Sum(mas, j));
  41.      end;
  42. END.

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

  1. В начале кода объявляются переменные n, тип int, переменная matrix и три переменные типа byte: i, j и k.
  2. Затем объявляется переменная sizemas, которая будет хранить размер матрицы.
  3. Запускается цикл Randomize, который инициализирует генератор случайных чисел.
  4. Пользователю предлагается ввести размер матрицы.
  5. В цикле for i:= 1 до sizemas происходит инициализация каждой ячейки матрицы mas[i, j] случайным числом от 0 до 19.
  6. После этого выводится содержимое каждой ячейки матрицы.
  7. Затем запускается цикл for j:= 1 до sizemas.
  8. Внутри этого цикла переменная k инициализируется значением 0.
  9. В цикле for i:= 1 до sizemas происходит проверка каждого элемента матрицы на положительность.
  10. Если элемент положительный, то к переменной k прибавляется единица.
  11. Если элемент отрицательный, то переменные i и j сбрасываются в начало цикла, и цикл прерывается командой break.
  12. После завершения внутреннего цикла проверяется значение переменной k.
  13. Если k равно размеру матрицы, то выводится сумма элементов текущего столбца.
  14. Конец программы.

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


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

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

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

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

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

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