Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб №4 (массивы).doc
Скачиваний:
1
Добавлен:
27.08.2019
Размер:
72.7 Кб
Скачать

Var j,nmin:integer;

tmp : Data;

begin

(* поиск минимального элемента*)

min1 := mas[0]; tmp :=min1;

for j:= 1 to count-1 do

if mas[j] < min1 then begin

min1 := mas[j];nmin :=j;

end;

(* поместить минимальный в начало массива *)

mas[0] := min1; mas[nmin]:=tmp;

(* поиск следующего по величине элемента *)

min2:=mas[1];

for j:= 2 to count-1 do

if mas[j] < min2 then min2 := mas[j];

(* восстановить начальный массив *)

mas[nmin]:=min1;mas[0]:=tmp;

end;

(******************************************************)

procedure PrnAr(var mas:array of Data; count:integer;n:Byte);

Var j : integer;

begin

(*печать обработанного массива по n в строке*)

for j:= 0 to count-1 do begin

if j mod n=0 then writeln;

write( mas[j],' ')

end;

end;

(******************************************************)

function Min_1(var mas:array of Data; count:integer): Data;

Var j:integer; min1: Data;

begin

(* поиск минимального элемента*)

min1 := mas[0];

for j:= 1 to count-1 do if mas[j] < min1 then min1 := mas[j];

Min_1 :=min1

end;

(******************************************************)

function Min_2(var mas:array of Data; count:integer): Data;

Var j,nmin:integer;

min1,min2,tmp : Data;

begin

(* поиск минимального элемента*)

min1 := mas[0]; tmp :=min1;

for j:= 1 to count-1 do

if mas[j] < min1 then begin

min1 := mas[j];nmin :=j;

end;

(* поместить минимальный в начало массива *)

mas[0] := min1; mas[nmin]:=tmp;

(* поиск следующего по величине элемента *)

min2:=mas[1];

for j:= 2 to count-1 do

if mas[j] < min2 then min2 := mas[j];

(* восстановить начальный массив *)

mas[nmin]:=min1;mas[0]:=tmp;

Min_2:=min2

end;

(******************************************************)

Var j :integer; m1,m2 :Data;

begin

textattr:=30;ClrScr;

{$IFNDEF DEBUG} (* УСЛОВНАЯ КОМПИЛЯЦИЯ *)

(* если не определен DEBUG -отладка, то ввод массива

если определен DEBUG - отладка, то массив уже задан *)

for j:=low(mas) to high(mas) do begin

write (' mas[',j,'] = ');

readln (mas[j]);

end;

{$ENDIF} (* КОНЕЦ БЛОКА УСЛОВНОЙ КОМПИЛЯЦИИ *)

MinMin( mas,N,m1,m2);

writeln ('min1 = ',m1,' min2 = ',m2);

writeln ('min1 = ',Min_1( mas,N),' min2 = ',Min_2( mas,N));

Readln;

end.