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

Задача 4.

const

MAX = 100;

type

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

var

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

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

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

min_positive : real; { минимальный положительный элемент массива }

f : boolean;

begin

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

repeat

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

readln(n);

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

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

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

writeln;

{ установить флаг в False,

значение переменной min_positive не определено }

f := False;

for i:=1 to n do

begin

if f then

begin

if (A[i] >= 0) And (A[i] < min_positive) then

min_positive := A[i];

end

else

if A[i] >= 0 then

begin

f := True;

min_positive := A[i];

end;

end;

{ вывод результата }

if f then

writeln('Минимальный положительный элемент массива равен ',

min_positive:0:4)

else

writeln('Элемент не найден.');

end.

Задача 5

const

MAX = 100;

type

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

var

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

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

X, Y : TArray; { массивы координат точек }

len : real; { расстояние до точки }

imin : integer; { индекс наименее удаленной точки }

min_len : real; { расстояние до наименее удаленной точки }

begin

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

repeat

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

readln(n);

until (n > 0) and (n <= MAX);

writeln('Ввод точек:');

for i:=1 to n do

begin

write('Точка ', i, ' (x, y): ');

read(X[i], Y[i]);

end;

writeln;

{ инициализация переменных }

imin := 1;

min_len := sqrt(X[1] * X[1] + Y[1] * Y[1]);

for i:=2 to n do

begin

len := sqrt(X[i] * X[i] + Y[i] * Y[i]); { расстояние до i-ой точки }

if len < min_len then

begin

imin := i;

min_len := len;

end;

end;

writeln('Наименее удаленная точка ', imin,

' (', X[imin], ', ', Y[imin], ')',

' с расстоянием до нее равным ', min_len:0:4);

end.

Задача 6.

const

MAX = 100;

type

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

var

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

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

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

f : boolean;

k : integer; { количество барьерных элементов }

begin

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

repeat

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

readln(n);

until (n > 2) and (n <= MAX);

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

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

writeln;

k := 0; { количество барьерных элементов }

for i:=2 to n-1 do

begin

f := True; { полагаем что i-ый элемент является барьерным }

for j:=1 to n do

begin

if j < i then

begin

if A[j] > A[i] then f := False;

end

else

if j > i then

begin

if A[j] < A[i] then f := False;

end;

if Not f then break;

end;

{ вывести элемент если он барьерный }

if f then

begin

write(A[i]:0:4, ' ');

k := k + 1;

end;

end;

if k = 0 then writeln('Барьерные элементы не найдены.')

else writeln;

end.