Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
готово 8 вариает.doc
Скачиваний:
5
Добавлен:
20.09.2019
Размер:
222.72 Кб
Скачать

Практическая часть Задание 1 Задача 1

В массиве хранятся данные об атмосферном давлении зп месяц. Найти:

1)найти среднее значение давления за время наблюдения

2)максимальное и минимальное значение давления

3)колличесво дней, в которые давление превышало заданную велечину Q

4)Колличество дней, в которые давление имело одинаковое значение

Блок схема

Листинг программы

program davlinie;

uses crt;

var a,b,d,e,i,max,min,j,k:integer;

c:real;

x:array[1..700]of integer;

begin

clrscr;

writeln('день давление');

randomize;

for i:=1 to 30 do begin

x[i]:=random(600)+100;

writeln(i,'-значение давления:=',x[i]);

end;

c:=0;

min:=x[1];e:=0;

max:=x[1];j:=0;

writeln('введите значение давление для определения колличества');

read(d);

for i:=1 to 30 do begin

if x[i]>d then e:=e+1;

for j:=1 to n do if x[i]=x[j+1] then k:=k+1;

if x[i]>max then max:=x[i] else if x[i]<min then min:=x[i];

c:=x[i]+c;

end;

c:=c/30;

writeln('среднее значение=',c);

writeln('макс:=',max,'мин:=',min);

writeln('колличество ',e);

writeln('колличество колллич. одинаковых дней ',j);

readkey;

end.

Результат программы

Задача 2

Сдвинуть все отрицательные элементы в конец массива, сохраняя порядок их следовани в исходный массив сформировать с помощью генератора случайных чисел

Блок схема

Листинг программы

program mas;

uses crt;

var

e,max,i,j:integer;

a,b:array[1..100] of integer;

begin

clrscr;

randomize;

writeln('исходный массив');

for i:=1 to 10 do

begin a[i]:=random(20)-10; write(a[i],' '); end;

writeln;writeln('массив после обработки');

for j:=1 to 10 do

for i:=1 to 9 do begin

if a[i]<0 then

while a[i+1]>0 do

begin

e:=a[i];

a[i]:=a[i+1];

a[i+1]:=e; end;

end;

for i:=1 to 10 do write(a[i],' ');

readkey;

end.

Результат программы

Задача 3

Задан массив размера N. Найти наибольшее колличество идущих элементов массива , значение которых равно 0. Для отладки использовать генератор случайных чисел.

Блок схема

Листинг програимы

PROGRAM V12;

USES CRT;

VAR

A:ARRAY [1..100] OF INTEGER;

i,ChE,MaxChE:INTEGER;

BEGIN CLRSCR;

RANDOMIZE;

ChE:=0;

MaxChE:=0;

WRITELN('PROIZVOLNAY POSLEDOVATELNOST IZ 100 NATURALNIH CHISEL: ');

FOR i:=1 TO 20 DO

BEGIN

A[i]:=random(2)-1;

WRITE(A[i],' ');

END;

FOR i:=1 TO 20 DO BEGIN IF A[i]=0 THEN ChE:=ChE+1 ELSE

BEGIN

IF ChE>MaxChE THEN MaxChE:=ChE;

ChE:=0;

END;

END;

WRITELN;

WRITELN('число повторяющихся элементов равная 0 равна ',MaxChE);END.

Результат программы

Теоретическая часть

Сортировка одномерного массива

Cамым простым методом сортировки является метод "пузырька". Чтобы понять, как он работает, представим, что массив (таблица) расположен вертикально.

Элементы с большим значением всплывают вверх наподобие больших пузырьков.

При первом проходе вдоль массива, начиная проход "снизу", берется первый элемент и поочередно сравнивается с последующими. При этом: * если встречается элемент с меньшим значением, то они меняются местами; * при встрече с более "тяжелым" элементом, последний становится "эталоном" для сравнения, и все следующие сравниваются с ним . В результате наибольший элемент оказывается в самом верху массива. Во время второго прохода вдоль массива находится второй по величине элемент, который помещается под элементом, найденным при первом проходе, т.е на вторую сверху позицию, и т.д. При втором и последующих проходах, нет необходимости рассматривать ранее "всплывшие" элементы, т.к. они уже больше оставшихся. Другими словами, во время j-го прохода не проверяются элементы, стоящие на позициях выше j.

Программа:

begin

for j:=1 to N-1 do

for i:=1 to N-j do

if M[i] > M[i+1] then

begin t:=M[i]; M[i]:=M[i+1]; M[i+1]:=t; end;

end;

Задание 2

Упорядочить одномерный массив так, что бы в начале распологались четные элементы в порядке возростания их значений, а за тем нечетные элементы в порядке убывания их значений. Для отладки использовать генератор случайных чисел.