uses
Crt;
const
N = 9;
var
a: array [1..N] of integer;
i,j,Nmax,res,tmp: integer;
f: boolean;
begin
ClrScr;
Randomize;
WriteLn('Array:');
for i := 1 to N do
begin
a[i] := Random(80 - 40);
Write(a[i], ' ');
end;
{ part 1}
f := false;
res := -1;
for i := 1 to N do
if (abs(a[i]) > 5) then
if not f then
f := true
else
begin
res := i;
break;
end;
if res > 0 then
WriteLn(#10, 'Part 1: a[', res, '] = ', a[res])
else
WriteLn('Part 1: No!');
{ part 2 }
for i := 1 to N div 2 do
begin
tmp := a[i];
a[i] := a[N - i + 1];
a[N - i + 1] := tmp;
end;
WriteLn('Part 2:');
for i := 1 to N do
Write(a[i], ' ');
{ part 3 }
WriteLn(#10, 'Part 3:');
Nmax := N;
for i := 2 to N div 2 + 1 do
begin
for j := i to N - 1 do
a[j] := a[j + 1];
Dec(Nmax);
end;
for i := 1 to Nmax do
Write(a[i], ' ');
ReadLn;
end.
Следующий вариант
Модуль
unit unit1;
interface
const nmax=100;
type mas=array[1..nmax] of integer;
procedure Vvod(var a:mas; var n:byte);{ввод массива}
procedure More(a:mas;n:byte);{второе число по модулю больше 5}
procedure Invers(var a:mas;n:byte);{инверсия}
procedure Compress(var a:mas;var n:byte);{сжатие-удаление с нечетными индексами}
implementation
procedure Vvod;
var i:byte;
begin
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
for i:=1 to n do
begin
a[i]:=random(20)-9;
write(a[i]:4);
end;
writeln;
writeln;
end;
procedure More;
var i,k:byte;
begin
k:=0;
for i:=1 to n do
begin
if abs(a[i])>5 then k:=k+1;{если модуль больше 5, считаем}
if k=2 then{если 2}
begin
writeln('Второй элемент по модулю > 5=',a[i]);{выводим}
break;{выходим из цикла}
end;
end;
if k<2 then writeln('В массиве нет двух элементов по модулю > 5!');
writeln;
end;
procedure Invers;
var i:byte;
x:integer;
begin
for i:=1 to n div 2 do{до середины массива}
begin
x:=a[i];
a[i]:=a[n-i+1];{симметрично от концов обмениваем элементы местами}
a[n-i+1]:=x;
end;
writeln('Инверсия массива:');
for i:=1 to n do
write(a[i]:4);
writeln;
writeln;
end;
procedure Compress;
var i,j:byte;
begin
if odd(n) then n:=n-1;{если размер нечетный, отбросим последний элемент}
n:=n div 2;{новый размер массива}
for i:=1 to n do
a[i]:=a[2*i];{присваиваем значения только элементов с четными индексами}
writeln('Удаление с нечетными индексами:');
for i:=1 to n do
write(a[i]:4);
end;
end.
Программа
uses crt,unit1;
var y:mas;
n:byte;
begin
clrscr;
randomize;
Vvod(y,n);
More(y,n);
Invers(y,n);
Compress(y,n);
readln
end.