Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
контрольная работа 7.doc
Скачиваний:
3
Добавлен:
14.08.2019
Размер:
72.7 Кб
Скачать

Задача 1

const

MAXSIZE = 100;

type

TArray = array[1..MAXSIZE] of integer;

var

n : integer; { количество элементов массива }

i, j : integer; { параметры циклов }

A : TArray; { массив исходных данных }

f : boolean; { флаг, проверки справедливости условия }

k : integer; { кол-во элементов, удовлетворяющих заданным условиям }

Max : integer;

IndMax : Integer;

begin

repeat

write('Введите количество элементов массива, N: ');

readln(n);

until (n > 1) and (n <= MAXSIZE);

writeln('Ввод элементов массива:');

for i:=1 to n do read(A[i]);

writeln;

Max := a[1];

IndMax := 1;

k := 0;

For i := 2 to N do

If a[i] > Max

then begin

Max := a[i];

IndMax := i;

Writeln(' ind = ', IndMax, ' item = ', Max);

inc(k);

end ;

writeln;

end.

Задача 2

const

U_BOUND = 100;

type

TArray = array[1..U_BOUND] of real;

var

n : integer; { количество элементов массива }

A : TArray; { массив исходных данных }

i : integer; { параметр цикла }

i1 : integer; { индекс начала последовательности }

i2 : integer; { индекс конца последовательности }

cnt : integer; { количество элементов в последовательности }

i1max : integer; { индекс начала максимальной последовательности }

i2max : integer; { индекс конца максимальной последовательности }

max : integer; { количество элементов в максимальной последовательности }

begin

repeat

write('Введите количество элементов массива, N: ');

readln(n);

until (n > 1) and (n <= U_BOUND);

writeln('Ввод элементов массива:');

for i:=1 to n do read(A[i]);

writeln;

{ инициализация начальных параметров }

i1 := 1;

max := 0;

for i := 2 to N do begin

if A[i-1] >= A[i] then begin

i2 := i - 1;

cnt := i2 - i1 + 1; { кол-во эл-ов в возрастающей послед. }

if cnt > max then begin

{ запомнить параметры максимальной последовательности }

i1max := i1;

i2max := i2;

max := cnt;

end;

i1 := i; { запомнить начало новой последовательности }

end;

end;

{ проверить последнюю последовательность }

cnt := N - i1 + 1; { кол-во эл-ов в последней возрастающей послед. }

if cnt > max then

begin

{ запомнить параметры максимальной последовательности }

i1max := i1;

i2max := N;

max := cnt;

end;

writeln('Наибольшая возрастающая последовательность:', i1max, ' ',i2max);

for i:=i1max to i2max do write(A[i]:0:2, ' ' );

writeln;

end.

Задача 3.

const

MAX = 99;

type

TArray = array[1..MAX] of integer;

{метод пузырьковой сортировки Arr - массив даннях

n - количество элементов в массиве}

procedure bubble_sort(var Arr : TArray; n : integer);

var

i, j : integer;

tmp : integer;

begin

for i:=1 to n do

for j:=n downto i+1 do

if Arr[j] < Arr[j-1] then

begin

tmp := Arr[j];

Arr[j] := Arr[j-1];

Arr[j-1] := tmp;

end;

end;

var

n : integer; { количество элементов массива }

I : integer; { параметр цикла }

A : TArray; { массив исходных данных }

s : integer; { средний элемент массива }

begin

{ ввод исходных данных }

repeat

write('Введите количество элементов массива, N: ');

readln(n);

until (n > 1) and (n <= MAX) and odd(n);

writeln('Ввод элементов массива:');

for i:=1 to n do read(A[i]);

writeln;

{ отсортировать массив }

bubble_sort(A, n);

{ получить средний элемент отсортированного массива }

s := A[1 + n div 2];

writeln('Средний элемент равен ', s);

end.