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

9

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

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

Цель работы.

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

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

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

Пример 1

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

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. Затем расставить элементы, стоящие левее максимального в возрастающем порядке. Исходный массив и результаты вычислений записать в файл.

uses Crt;

const n=10;

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

const

x:array[1..n] of real=(3.5,-7.4,1.7,12.9,-5.6,21.3,-8.6,4.5,0.6,2.5);

begin

for i:=1 to n do

if (x[i]<5) and (k=0) then begin max:=x[i];k:=i end

else if x[i]<5 then

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

assign(f,'array1_1.pas');

rewrite(f);

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

for i:=1 to n do

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

writeln(f);

writeln(f);

writeln(f,' max=',max:4:1,' k=',k);

for j:=1 to k-1 do

for i:=1 to k-1-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);

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

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

writeln(f);

close(f)

End.

Ответ

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

3.5,-7.4,1.7,12.9,-5.6,21.3,-8.6,4.5,0.6,2.5

max= 4.50 k=8

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

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

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

Пример 3

В целочисленном массиве Х(4; 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;