Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №3 2013г..doc
Скачиваний:
0
Добавлен:
11.01.2020
Размер:
128 Кб
Скачать

11

Лабораторная работа № 3

Разработка программ, связанных с формированием и обработкой одномерных массивов.

Цель работы.

Приобретение навыков написания программ, связанных с формированием

и обработкой одномерных массивов, удовлетворяющих заданному условию.

Примеры выполнения лабораторной работы на одномерные массивы

Пример 1

В целочисленном массиве Х(5; -7; 16; 12; -5; 22; -8; 15; 6; 2) расставить элементы в возрастающем порядке. Напечатать исходный и измененный массивы.

Program Lab_3_primer1;

const n=10;

type mass=array[1..n] of integer;

Var I,j:integer; buf:integer;

const x:mass=(5,-7,16,12,-5,22,-8,15,6,2); {в лаб.работе- ввод массива из файла}

begin

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

for i:=1 to n do

write(x[i],’ ‘);

writeln;

for j:=1 to n-1 do

for i:=1 to n-j do

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

begin

buf:=x[i];

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

x[i+1]:=buf

end;

writeln(' полученный массив ') {в лаб.работе- вывод в файл}

for i:=1 to n do

write(x[i], ' ');

writeln;

end.

ответ

исходный массив

5 -7 16 12 -5 22 -8 15 6 2

полученный массив

-8 -7 -5 2 5 6 12 15 16 22

******************************************************************

Пример 2

В массиве Х(3,5; -7,4; 1,7; 12,9;-5,6; 21,3; -8,6; 4,5; 0,6; 2,5) найти максимальный элемент среди элементов меньше 5. Затем расставить элементы, стоящие левее максимального в возрастающем порядке. Исходный массив и результаты вычислений записать в файл.

Program Lab_3_primer2;

const n=10;

Var I,j,k,p:integer; max,buf:real; f:text;

X:array[1..10] of real;

Begin

assign(f,'massiv2.pas');

reset(f);

readln(f);

for i:=1 to 10 do

read(f,x[i]);

for i:=1 to n do

if (x[i]<5) and (k=0) then begin max:=x[i];k:=i end //выбор 1-го элемента по условию x[i]<5

else if x[i]<5 then

if x[i]>max then begin k:=i; max:=x[i] end;

assign(f,'rezult2.pas');

rewrite(f);

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

for i:=1 to n do

write(f,' x[',i,']=',x[i]:4:1,'; ');

writeln(f);

writeln(f,'max=',max:4:1,'; индекс max=',k);

p:=k-1;

for j:=1 to p-1 do

for i:=1 to p-j do {сортировка с 1 по k-1 элемент}

if x[i]>x[i+1] then begin buf:=x[i];

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

x[i+1]:=buf

end;

writeln(f,'отсортированный массив:');

for i:=1 to n do write(f,x[i]:4:1,' ');

writeln(f);

close(f)

End.

Ответ (файл rezalt2.pas)

исходный массив:

x[1]= 8.5; x[2]=-7.4; x[3]= 1.7; x[4]=12.9; x[5]=-5.6;

x[6]=21.3; x[7]=-8.6; x[8]= 4.5; x[9]= 0.6; x[10]= 2.5;

max= 4.5; индекс max=8

отсортированный массив:

-8.6 -7.4 -5.6 1.7 8.5 12.9 21.3 4.5 0.6 2.5

***************************************************************************

Пример 3

В целочисленном массиве Х(2; 12; 7; 9; 6; 3; -9; 1; 10; 21; -6; 13) найти максимальный элемент среди элементов >3, имеющих нечетные индексы. Затем расставить элементы, стоящие левее максимального в убывающем порядке

Исходный массив и результаты вычислений записать в файл.

program lab3_Primer3;

const n=12;

type mas=array[1..n] of integer;