Матрицы. Тексты программ: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) |
Mikst (обсуждение | вклад) |
||
Строка 89: | Строка 89: | ||
===Поиск максимумов в столбцах=== | ===Поиск максимумов в столбцах=== | ||
<source lang="Delphi">var | |||
a: Matrix; | |||
maxs: array [1..SzN] of integer; | |||
begin | |||
var m := 5; | |||
var n := 9; | |||
FillMatrixByRandom(a,m,n); | |||
writeln('Исходная матрица: '); | |||
PrintMatrix(a,m,n); | |||
for var j:=1 to n do | |||
begin | |||
var max := a[1,j]; | |||
for var i:=2 to m do | |||
if a[i,j]>max then | |||
max := a[i,j]; | |||
maxs[j] := max; | |||
end; | |||
writeln('Максимумы в столбцах: '); | |||
for var j:=1 to n do | |||
write(maxs[j]:4); | |||
end.</source> | |||
===Поиск сумм в строках=== | ===Поиск сумм в строках=== | ||
===Поиск произведений в столбцах=== | ===Поиск произведений в столбцах=== |
Версия от 09:16, 18 января 2010
Общая часть
Во всех задачах будем считать, что матрица описана следующим образом:
const
SzM = 10;
SzN = 10;
type Matrix = array [1..SzM,1..SzN] of integer;
Кроме того, во всех задачах будем использовать следующие процедуры для заполнения и вывода:
procedure FillMatrixByRandom(var a: Matrix; m,n: integer); // Заполнение случайными
begin
for var i:=1 to M do
for var j:=1 to N do
a[i,j] := Random(100);
end;
procedure PrintMatrix(const a: Matrix; m,n: integer); // Вывод матрицы
begin
for var i:=1 to M do
begin
for var j:=1 to N do
write(a[i,j]:4);
writeln;
end;
end;
Данные участки кода следует писать в начале каждой программы, приводимой в этом пункте.
Заполнение матрицы случайными числами и вывод
var a: Matrix;
begin
var m := 4;
var n := 5;
FillMatrixByRandom(a,m,n);
writeln('Элементы матрицы: ');
PrintMatrix(a,m,n);
end.
Перемена местами двух строк
var a: Matrix;
begin
var m := 5;
var n := 9;
FillMatrixByRandom(a,m,n);
writeln('Исходная матрица: ');
PrintMatrix(a,m,n);
var k1 := 2; // поменять местами строки с номерами k1 и k2
var k2 := 4;
for var j:=1 to n do
Swap(a[k1,j],a[k2,j]);
writeln('Преобразованная матрица: ');
PrintMatrix(a,m,n);
end.
Поиск минимумов в строках
var
a: Matrix;
mins: array [1..SzN] of integer;
begin
var m := 5;
var n := 9;
FillMatrixByRandom(a,m,n);
writeln('Исходная матрица: ');
PrintMatrix(a,m,n);
for var i:=1 to m do
begin
var min := a[i,1];
for var j:=2 to n do
if a[i,j]<min then
min := a[i,j];
mins[i] := min;
end;
writeln('Минимумы в строках: ');
for var i:=1 to m do
write(mins[i]:4);
end.
Поиск максимумов в столбцах
var
a: Matrix;
maxs: array [1..SzN] of integer;
begin
var m := 5;
var n := 9;
FillMatrixByRandom(a,m,n);
writeln('Исходная матрица: ');
PrintMatrix(a,m,n);
for var j:=1 to n do
begin
var max := a[1,j];
for var i:=2 to m do
if a[i,j]>max then
max := a[i,j];
maxs[j] := max;
end;
writeln('Максимумы в столбцах: ');
for var j:=1 to n do
write(maxs[j]:4);
end.