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