Пожалуйста помогите в Pascal ABC . (Двумерные массивы). Указание: для каждой задачи...

0 голосов
24 просмотров

Пожалуйста помогите в Pascal ABC .
(Двумерные массивы).
Указание: для каждой задачи создайте алгоритм и программу. Заполните двумерный числовой массив B(6,6) случайными целыми числами в интервале [-65; 65]. Введите значения элементов массива в виде матрицы, причем на каждый элемент отведите 4 позиции. Ответ каждой задачи следует выводить с новой строки и с пояснительным текстом. Кроме того, следует каждый раз производить вывод массива на экран, если в нем произошли изменения : перестановка, замена, изменение значения элементов и т. д.
Задание №1.Найдите сумму положительных элементов третьего столбца.

Задание №2.Обнулите отрицательные элементы, стоящие в четных строках.


Информатика (128 баллов) | 24 просмотров
Дан 1 ответ
0 голосов

Поскольку к элементам третьего столбца массива можно обращаться, как B[i,3], достаточно использовать цикл по строкам.
Для просмотра только четных строк массива достаточно начать со второй и менять номер строки с шагом 2.

const
  n = 6;
var
  b:array[1..n,1..n] of integer;
  i,j,s: integer;
begin
  Randomize;
  Writeln('Исходный массив');
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      b[i,j]:=Random(131)-65;
      Write(b[i,j]:4)
    end;
    Writeln
  end;
  { задание 1 }
  s:=0;
  for i:=1 to n do
    if b[i,3]>0 then s:=s+b[i,3];
  Writeln('Значение найденной суммы: ',s);
  { задание 2 }
  i:=2;
  while i<=n do begin<br>    for j:=1 to n do
      if b[i,j]<0 then b[i,j]:=0;<br>    i:=i+2
  end;
  Writeln('Результирующий массив');
  for i:=1 to n do
  begin
    for j:=1 to n do Write(b[i,j]:4);
    Writeln
  end
end.

Тестовое решение:
Исходный массив
   1 -28 -22 -23 -15 -35
 -34 -44  57  43  33  62
  56   5  58 -32  -6 -52
  24 -15 -54 -45  41  32
  40  31 -31  28 -31  46
   7  31  56 -16 -62 -52
Значение найденной суммы: 171
Результирующий массив
   1 -28 -22 -23 -15 -35
   0   0  57  43  33  62
  56   5  58 -32  -6 -52
  24   0   0   0  41  32
  40  31 -31  28 -31  46
   7  31  56   0   0   0

(142k баллов)