В программе генерируются только убывающие последовательности (a[i]:=-i+random()+20;). Можно при желании массив вводить с клавиатуры. const n=15; var a:array[1..n] of real; i:integer; b:boolean; begin Randomize; for i:=1 to n do begin a[i]:=-i+random()+20; write(a[i]:5:2,' '); end; writeln; b:=true; for i:=1 to n-1 do if a[i+1]>=a[i] then b:=false; if b then begin writeln('Последовательность убывающая'); writeln('p = ',a[n]*a[n div 2+1]:5:2); end else writeln('Последовательность не убывающая') end.
{ 1. Дан массив из n элементов, n не больше 30. отсортировать по возрастанию элементы второй половины }
const n=20; var k,x,i,j: integer; var a: array[1..n] of integer; begin if n mod 2 =0 then k:=(n div 2)+1 else k:=(n div 2)+2; writeln ('Исходный массив'); for i:=1 to n do begin a[i]:=random(100); write (a[i]:3); end; writeln; for i:=k to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin x:=a[i]; a[i]:=a[j]; a[j]:=x end; writeln; writeln ('Измененный массив'); for i:=1 to n do write (a[i]:3); end.
{ Дан массив из n элементов, n не более 30, n-четное. Поменять местами первую и вторую половину }
const n=20; var k,x,i: integer; var a: array[1..n] of integer; begin k:=(n div 2); writeln ('Исходный массив'); for i:=1 to n do begin a[i]:=random(100); write (a[i]:3); end; writeln; for i:=1 to k do begin x:=a[i]; a[i]:=a[i+k]; a[i+k]:=x end; writeln; writeln ('Измененный массив'); for i:=1 to n do write (a[i]:3); end.
const n=15;
var a:array[1..n] of real;
i:integer; b:boolean;
begin
Randomize;
for i:=1 to n do begin
a[i]:=-i+random()+20;
write(a[i]:5:2,' ');
end;
writeln;
b:=true;
for i:=1 to n-1 do
if a[i+1]>=a[i] then b:=false;
if b
then
begin
writeln('Последовательность убывающая');
writeln('p = ',a[n]*a[n div 2+1]:5:2);
end
else writeln('Последовательность не убывающая')
end.
Пример:
19.02 18.28 17.91 16.67 15.03 14.68 13.10 12.86 11.91 10.19 9.66 8.35 7.37 6.55 5.20
Последовательность убывающая
p = 66.86
const n=20;
var
k,x,i,j: integer;
var a: array[1..n] of integer;
begin
if n mod 2 =0
then k:=(n div 2)+1
else k:=(n div 2)+2;
writeln ('Исходный массив');
for i:=1 to n do begin
a[i]:=random(100);
write (a[i]:3);
end;
writeln;
for i:=k to n-1 do
for j:=i+1 to n do
if a[i]>a[j]
then begin x:=a[i]; a[i]:=a[j]; a[j]:=x end;
writeln;
writeln ('Измененный массив');
for i:=1 to n do
write (a[i]:3);
end.
Результат:
Исходный массив
52 49 94 71 98 80 83 94 26 59 66 74 97 59 27 32 90 97 43 37
Измененный массив
52 49 94 71 98 80 83 94 26 59 27 32 37 43 59 66 74 90 97 97
{ Дан массив из n элементов, n не более 30, n-четное. Поменять местами первую и вторую половину }
const n=20;
var
k,x,i: integer;
var a: array[1..n] of integer;
begin
k:=(n div 2);
writeln ('Исходный массив');
for i:=1 to n do begin
a[i]:=random(100);
write (a[i]:3);
end;
writeln;
for i:=1 to k do begin
x:=a[i];
a[i]:=a[i+k];
a[i+k]:=x
end;
writeln;
writeln ('Измененный массив');
for i:=1 to n do
write (a[i]:3);
end.
Результат:
Исходный массив
37 8 74 17 8 96 1 47 69 77 69 21 2 67 93 35 74 58 48 53
Измененный массив
69 21 2 67 93 35 74 58 48 53 37 8 74 17 8 96 1 47 69 77