В реальной жизни выполнение всяких действий связано с расходом различных ресурсов: материалов, энергии и времени. Даже производя какие-либо записи, мы расходуем ресурсы (например, бумагу, чернила и время). Еще недавно некоторые задачи нельзя было решить из-за слишком большого числа необходимых для этого операций и слишком малой скорости их выполнения. Появление электронных вычислительных машин сделало такие задачи разрешимыми. Это значит, что «математизируя» понятие алгоритма, нужно абстрагироваться, отвлечься от ограниченности ресурсов, требуя только их конечности, иначе теория алгоритмов устареет, как только развитие науки и техники позволит переступить через существующие границы ресурсов. Алгоритму в интуитивном смысле в книге противопоставляется алгоритм в математическом, или формальном смысле. В последнем случае считается, что понятие определено методами, принятыми в математике, и основывается либо на других понятиях, имеющих математическое определение, либо на первоначальных, описанных настолько четко, что их свойства могут быть приняты за аксиомы новой теории. Теорию алгоритмов, которой посвящена эта книга, мы называем содержательной в том смысле, что именно алгоритмы как таковые во всем их разнообразии являются ее предметом. В этом отношении она является противоположностью традиционных теорий, которые изучали вопросы существования и несуществования алгоритмов путем сведения вопросов к исследованию какого-либо одного узкого класса алгоритмов и потому очень многие важнейшие проблемы оставляли вне своего поля зрения.
USES CRT; VAR A:array[1..5,1..5] of integer; i,j,min,s:integer; BEGIN CLRSCR; Randomize; {заполняем массив случайными числами от 0 до 10} for i:=1 to 5 do for j:=1 to 5 do A[i,j]:=random(10);
{Выводим массив на экран} for i:=1 to 5 do begin for j:=1 to 5 do Write(A[i,j]:2, ' '); Writeln; end;
min:=A[1,1]; {Присваиваем минимальному значению первый элемент массива}
{Ищем минимальный элемент в массиве} for i:=1 to 5 do for j:=1 to 5 do if A[i,j]<min then min:=A[i,j];
Writeln('Минимальный элемент в данном массиве = ',min);
{Обнуляем счетчик} s:=0;
{Считаем сколько минимальных элементов в каждой строке и выводим на экран}
for i:=1 to 5 do begin for j:=1 to 5 do if A[i,j]=min then s:=s+1; Writeln('В ',i,' строке минимальный элемент встечается ',s,' раз'); s:=0; end;
USES CRT;
VAR A:array[1..5,1..5] of integer;
i,j,min,s:integer;
BEGIN
CLRSCR;
Randomize;
{заполняем массив случайными числами от 0 до 10}
for i:=1 to 5 do
for j:=1 to 5 do
A[i,j]:=random(10);
{Выводим массив на экран}
for i:=1 to 5 do
begin
for j:=1 to 5 do
Write(A[i,j]:2, ' ');
Writeln;
end;
min:=A[1,1]; {Присваиваем минимальному значению первый элемент массива}
{Ищем минимальный элемент в массиве}
for i:=1 to 5 do
for j:=1 to 5 do
if A[i,j]<min then min:=A[i,j];
Writeln('Минимальный элемент в данном массиве = ',min);
{Обнуляем счетчик}
s:=0;
{Считаем сколько минимальных элементов в каждой строке и выводим на экран}
for i:=1 to 5 do
begin
for j:=1 to 5 do
if A[i,j]=min then s:=s+1;
Writeln('В ',i,' строке минимальный элемент встечается ',s,' раз'); s:=0;
end;
READLN;
END.