Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
682.73 Кб
Скачать

Экзаменационный вопрос № 38. Программирование операций в двумерных массивах (На примере задания 1)

Задание1

Исходные данные.

Дана матрица А размерности 4 × 4: .

1. Найти сумму элементов заданного столбца.

2. Определить сумму элементов заданной строки .

3. Найти сумму элементов на главной диагонали.

4. Определить минимальный и минимальный элементы матрицы. Вывести положение минимального и максимального элементов в матрице.

5. Поменять эти элементы местами.

6. Найти количество положительных элементов.

Код программы.

Program primer2; {название программы}

uses crt; {подключение стандартного пакета}

const

{задание матрицы}

A:array [1..4,1..4] of integer= ((0,–3,2,1),(8,–11,–1,4),(2,10,7,–45),(9,0,67,1));

var i,j,i1,j1: integer; {задание переменных счетчиков}

maxi,mini,maxj,minj,p,k,sum:integer; {переменные для хранения

минимального и максимального элементов, суммы, количества элементов}

begin;

clrscr;{очистка экрана}

sum:=0;

{------------------------------------------------------------------------------------------}

{нахождение суммы элементов заданного столбца}

write('Введите номер столбца для нахождения суммы его эл-тов j1=');

readln(j1);

for i:=1 to 4 do

sum:=sum+a[i,j1];

writeln('Сумма по заданному столбцу: ',sum:5);

{------------------------------------------------------------------------------------------}

{нахождение суммы элементов заданной строки}

write('Введите номер строки для нахождения суммы ее эл-тов i1=');

readln(i1);

for j:=1 to 4 do

sum:=sum+a[i1,j];

writeln('Сумма по заданной строке: ',sum:5);

sum:=0;

{------------------------------------------------------------------------------------------}

{сумма элементов на главной диагонали}

sum:=0;

for i:=1 to 4 do

sum:=sum+a[i,i];

writeln('Сумма элементов на главной диагонали: ', sum:5);

{------------------------------------------------------------------------------------------}

{нахождение и вывод максимального и минимального элементов}

mini:=1;

minj:=1;

maxi:=1;

maxj:=1;

for i:=1 to 4 do

begin;

for j:=1 to 4 do

begin;

if A[i,j]>=A[maxi,maxj] then

begin;

maxi:=i; {запоминаем позицию нового максимального}

maxj:=j;

end;

if A[i,j]<=A[mini,minj] then

begin;

mini:=i; {запоминаем позицию нового минимального}

minj:=j;

end;

end;

end;

writeln('Минимальный элемент: A[',mini,',',minj,']=',A[mini,minj]);

writeln('Максимальный элемент: A[',maxi,',',maxj,']=',A[maxi,maxj]);

{------------------------------------------------------------------------------------------}

{замена местами минимального и максимального элементов}

p:=A[mini,minj];

A[mini,minj]:=A[maxi,maxj];

A[maxi,maxj]:=p;

{Вывод преобразованной матрицы А}

writeln('Матрица после замены местами максимального и минимального

элементов:');

for i:=1 to 4 do

begin;

for j:=1 to 4 do

write(A[i,j]:5);

writeln;

end;

{------------------------------------------------------------------------------------------}

{нахождение кол-ва неотрицательных элементов}

k:=0;

for i:=1 to 4 do

begin;

for j:=1 to 4 do

if A[i,j]>0 then k:=k+1;

end;

writeln('количество положительных элементов: ',k:4);

readln;{ожидание нажатия клавиши ввода}

end.