Задача 244 на Pascal
Дана целочисленная квадратная матрица. Найти наименьшее из значений элементов расположенных в области обозначенной звездочками. Оформить массив состоящий из максимальных элементов каждого столбца.
1 2 3 4 5 6 *
1 2 3 4 * * *
1 2 3 * * * *
1 2 * * * * *
1 2 3 * * * *
1 2 3 4 * * *
1 2 3 4 5 6 *
VAR
a:array[1..7,1..7]of integer; {исходная матрица }
b:array[1..21]of integer; {массив элементов из нужной зоны } c:array[1..5]of integer; {массив из максимальных элементов столбцов} i,j:byte; {для циклов, i - строка, j - столбец } count,min:integer; {счетчик для элементов массива b } {функция возвращает значение максимального элемента столбца в матрице a}
{j-столбец где ищем, min и max-где начать и где закончить поиск } FUNCTION GetMax(const j,min,max:byte):integer;
var
tmp:integer;
BEGIN
tmp:=a[j,min];
for i:=min to max-1 do if a[i,j]>tmp then tmp:=a[i,j];
GetMax:=tmp; END;
{------- основная программа -------------} BEGIN
randomize;
for i:=1 to 7 do
for j:=1 to 7 do a[i,j]:=random(10); {заполняем матрицу числами}
{выводим ее на экран}
for i:=1 to 7 do
begin
for j:=1 to 7 do write(' ',a[i,j]);
writeln;
end;
{загружаем массив C из максимальных элементов нужных столбцов}
c[1]:=GetMax(7,1,7);
c[2]:=GetMax(6,2,6);
c[3]:=GetMax(5,2,6);
c[4]:=GetMax(4,3,5);
c[5]:=a[4,3];
writeln;
writeln('Массив из максимальных элементов столбцов:');
for i:=1 to 5 do write(' ',c[i]);
{загружаем в массив B элементы из нужной зоны}
count:=0;
for i:=2 to 6 do
for j:=5 to 7 do
begin
inc(count);
b[count]:=a[i,j];
end;
b[count+1]:=a[1,7]; {остальные элементы вручную} b[count+2]:=a[7,7];
b[count+3]:=a[3,4];
b[count+4]:=a[4,4];
b[count+5]:=a[5,4];
b[count+6]:=a[4,3]; {находим в массиве B минимальный элемент}
min:=b[1];
for i:=1 to 21 do if min>b[i] then min:=b[i];
writeln;
writeln('Минимальный элемент в выделенной зоне = ',min); readln;
END.
|