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

Ответы на вопрос

Отвечает Казахов Дима.
Поскольку к элементам третьего столбца массива можно обращаться, как 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
for j:=1 to n do
if b[i,j]<0 then b[i,j]:=0;
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
Для просмотра только четных строк массива достаточно начать со второй и менять номер строки с шагом 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
for j:=1 to n do
if b[i,j]<0 then b[i,j]:=0;
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


Топ вопросов за вчера в категории Информатика

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

Информатика 16
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili