Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
asd / корзина / задания / Лабораторная работа _5.doc
Скачиваний:
11
Добавлен:
09.03.2016
Размер:
83.97 Кб
Скачать

7

Лабораторная работа № 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

begin

write(' x[',i,']=',x[i]);

if i=5 then writeln

end;

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

begin

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

if i=5 then writeln

end;

writeln;

end.

ответ

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

x[1]=5 x[2]=-7 x[3]=16 x[4]=12 x[5]=-5

x[6]=22 x[7]=-8 x[8]=15 x[9]=6 x[10]=2

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

x[1]=-8 x[2]=-7 x[3]=-5 x[4]=2 x[5]=5

x[6]=6 x[7]=12 x[8]=15 x[9]=16 x[10]=22

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

Пример 2

В массиве Х(3,5; -7,4; 1,7; 2,9; -5,6; 2,3; -4,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]);

writeln(f);

writeln(f);

writeln(f,' max=',max:5:2,' k=',k);

for j:=1 to k-1 do

for i:=1 to k-j-1 do ?????

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]:5: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

В массиве Х(3,5; -7,4; 1,7; 12,9; -5,6; 21,3; -8,6; 4,5; 0,6; 2,5) найти максимальное значение произведения xi*xj, где ij. Напечатать значения i и j, при которых это произведение будет максимальным. Переставить элементы массива, стоящие левее i -го в порядке возрастания. Напечатать исходный измененный массивы.

const n=10;