Решенные задачи на языке Паскаль
Условие задачи - из "гостевой книги".
Дана целочисленная квадратная матрица. Найти наименьшее из значений элементов расположенных в области обозначенной звездочками. Оформить массив состоящий из максимальных элементов каждого столбца.
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.Скачать исходник