Другие языки программирования и технологии

одномерные массивы паскаль

Заполнить массив десятью элементами с помощью генератора псевдослучайных чисел. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами.
Давно было сделано во freepascal-е, в принципе должно работать и в Turbo и в PascalABC

program minmAx;
uses crt;
const
N = 10;
type
a = array [ 1..10 ] of integer;
procedure print(ar:a);
var i:integer;
begin
writeln('array');
for i := 1 to N do
write(ar [ i ] :3);
writeln;
end;
procedure swap(var a1, a2:integer);
var temp:integer;
begin
temp:=a1;
a1:=a2;
a2:=temp;
end;
procedure reverse(var ar:a; iM, iX:integer);
var i,j:integer;
begin
j := iX - 1;
i := iM + 1;
repeat

swap(ar [ i ] , ar [ j ]);
inc(i);
dec(j);

until((j < i));
writeln;
end;
var
i,j,min,max,iX,iM:integer;
ar:a;
begin
clrscr;
Randomize;
for i := 1 to N do
ar [ i ] := Random(100);
print(ar);

min := ar [ 1 ];
max := ar [ 1 ];
iM := 1;
iX := 1;
for i := 2 to N do
begin
if min > ar [ i ] then
begin
min := ar [ i ] ;
iM := i;
end;
if max < ar [ i ] then
begin
max := ar [ i ] ;
iX := i;
end;
end;

if iX < iM then
begin
swap(iM,iX);
end;

writeln('index 1 :',iM:2, ', index 2 :',iX:2);

if(iX - iM > 2)then
reverse(ar, iM, iX);
print(ar);
readln;

end.
Андрей .
Андрей .
1 394
Лучший ответ
Заполнил.
Переставил.
Беги платить.

Похожие вопросы