- •Лабораторная работа №4
- •11) Среднее арифметическое значение Sr элементов массива и среднее
- •21) Среднее арифметическое значение элементов массива и число пар элементов
- •37) Число тех элементов целочисленного массива ,которые
- •Минимальные значения элементов массива с четными и нечетными индексами.
- •Var j,lim:integer;
- •Var j,lim:integer;
- •Var j,lim:integer;
- •Var j :integer; m1,m2 :Data;
- •Величины минимального и следующего по величине элементов массива.
- •Var j,nmin:integer;
- •Var j : integer;
- •Var j:integer; min1: Data;
- •Var j,nmin:integer;
- •Var j :integer; m1,m2 :Data;
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.