![](/user_photo/2706_HbeT2.jpg)
- •Лабораторная работа №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;
37) Число тех элементов целочисленного массива ,которые
Не равны а1 и произведение остальных элементов.
38) Минимальные значения элементов массива с четными и нечетными индексами.
Примеры:
Минимальные значения элементов массива с четными и нечетными индексами.
program arr2;
uses Crt;
(*$DEFINE DEBUG*) {для отладки программы сотрите (* *),
тогда можно не тратить время на ввод массива, DEBUG
может быть заменено любым другим идентификатором}
type Data = integer; {В этом месте мы можем изменить тип для всей программы}
const N =6;
{в режиме отладки не надо вводить массив : он уже есть}
mas : array [0..N-1] of Data =(14,17,12,19,15,13);
(*****************************************************)
procedure EvenOddMin(var mas:array of Data; count:integer;var min1,min2:Data );
Var j,lim:integer;
begin
if not Odd(count-1) then lim := count-1 else lim := count-2;
j:=0;min1:=mas[j];
while j <= lim do begin
if mas[j] < min1 then min1 := mas[j];
Inc(j,2); (* т.е. j:=j+2 *)
end;
if Odd(count-1) then lim := count-1 else lim := count-2;
j:=1;min2:=mas[j];
while j <= lim do begin
if mas[j] < min2 then min2 := mas[j];
Inc(j,2); (* т.е. j:=j+2 *)
end
end;
(*****************************************************)
function MinOdd(var mas:array of Data; count:integer): Data;
Var j,lim:integer;
min : Data;
begin
if Odd(count-1) then lim := count-1 else lim := count-2;
j:=1;min:=mas[j];
while j <= lim do begin
if mas[j] < min then min := mas[j];
Inc(j,2); (* т.е. j:=j+2 *)
end;
MinOdd:=min
end;
(******************************************************)
function MinEven(var mas:array of Data; count:integer): Data;
Var j,lim:integer;
min : Data;
begin
if not Odd(count-1) then lim := count-1 else lim := count-2;
j:=0;min:=mas[j];
while j <= lim do begin
if mas[j] < min then min := mas[j];
Inc(j,2); (* т.е. j:=j+2 *)
end;
MinEven:=min
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} (* КОНЕЦ БЛОКА УСЛОВНОЙ КОМПИЛЯЦИИ *)
EvenOddMin(mas,N,m1,m2);
Writeln ('Min even = ',m1);
Writeln ('Min odd = ',m2);
Writeln ('Min even = ',MinEven(mas,N));
Writeln ('Min odd = ',MinOdd(mas,N));
Readln;
end.
Величины минимального и следующего по величине элементов массива.
program arr3;
uses Crt;
(*$DEFINE DEBUG*) {для отладки программы сотрите (* *),
тогда можно не тратить время на ввод массива, DEBUG
может быть заменено любым другим идентификатором}
type Data = integer; {В этом месте мы можем изменить тип для всей программы}
const N =6;
{в режиме отладки не надо вводить массив : он уже есть}
mas : array [0..N-1] of Data =(14,17,12,19,15,13);
procedure MinMin(var mas:array of Data; count:integer;var min1,min2: Data);