Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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);

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} (* КОНЕЦ БЛОКА УСЛОВНОЙ КОМПИЛЯЦИИ *)


Дата добавления: 2015-07-11; просмотров: 59 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.008 сек.)