Изучение языка программирования
Турбо Паскаль (Turbo 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.
Скачать исходник