Помогите пожалуйста!!! Разработать программу для выполнения операций ** матрице размером...

0 голосов

Помогите пожалуйста!!!
Разработать программу для выполнения операций на матрице размером 5×5. На печать вывести исходную и преобразованную матрицы. Ввод и вывод матриц оформить подпрограммой-процедурой. Задание: Вычисление сумм положительных и отрицательных элементов отдельно.


спросил от (65 баллов) в категории Информатика
оставил комментарий от (65 баллов)

Это паскаль абс

оставил комментарий от (65 баллов)

прошлый вопрос удалили, пришлось заново задать

оставил комментарий от Архангел (142k баллов)

Pascal ABC или PascalABC.NET ?

оставил комментарий от (65 баллов)

PascalABC.NET

оставил комментарий от Архангел (142k баллов)

"Ввод и вывод матриц оформить подпрограммой-процедурой" - одной и ввд и вывод?

оставил комментарий от (65 баллов)

получается что так

оставил комментарий от Архангел (142k баллов)

Очень неудачная задача, не учитывающая современных возможностей ABC.NET

оставил комментарий от Архангел (142k баллов)

Глупо получается. В Вашем случае НЕ БУДЕТ никакой преобразованной матрицы, поэтому такую процедуру можно сделать. А теперь представьте. что понадобилось её дважды вызвать. При первом вызове будет введена матрица и распечатана (это дичь полная: и так видно, что вводили, дублировать зачем?). Но при вызове второй раз процедура снова начнет данные вводить!ф

оставил комментарий от (65 баллов)

мы еще толком не изучали матрицы и вообще, но задачи на такие темы уже дают

1 Ответ
0 голосов
ответил от Архангел (142k баллов)
 
Лучший ответ

// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
const
  n=5;
type
  Matrix=array[1..n,1..n] of integer;

procedure DummySchool(var a:Matrix);
begin
  Writeln('Ввод элементов матрицы');
  for var i:=1 to n do begin
    Write(n,' элементов строки ',i,': ');
    for var j:=1 to n do Read(a[i,j]);
    end;
  Writeln('Сформирована матрица ',n,'x',n);
  for var i:=1 to n do begin
    for var j:=1 to n do Write(a[i,j]:5);
    Writeln
    end
end;

begin
  var B:Matrix;
  DummySchool(B);
  var sn:=0;
  var sp:=0;
  for var i:=1 to n do
    for var j:=1 to n do
      if B[i,j]<0 then sn+=B[i,j]<br>      else
        if B[i,j]>0 then sp+=B[i,j];
  Writeln('Сумма отрицательных ',sn);
  Writeln('Сумма положительных ',sp)
end.

Тестовое решение:
Ввод элементов матрицы
5 элементов строки 1: 6 23 -5 13 9
5 элементов строки 2: 42 0 -38 16 37
5 элементов строки 3: -5 -18 3 11 8
5 элементов строки 4: 9 13 -11 0 3
5 элементов строки 5: 19 -17 0 15 5
Сформирована матрица 5x5
    6   23   -5   13    9
   42    0  -38   16   37
   -5  -18    3   11    8
    9   13  -11    0    3
   19  -17    0   15    5
Сумма отрицательных -94
Сумма положительных 232

оставил комментарий от (65 баллов)

Все работает, спасибо большое! !

оставил комментарий от Архангел (142k баллов)

А как оно может не работать???

...