Читайте также:
|
|
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} (* КОНЕЦ БЛОКА УСЛОВНОЙ КОМПИЛЯЦИИ *)
Дата добавления: 2015-07-11; просмотров: 76 | Нарушение авторских прав