uses crt;
const nmax=100;
var a:array[1..nmax] of integer;
n,i,i1,imn:byte;
f:boolean;
x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите в массив разные целые положительные и отрицательные числа:');
i1:=0;{индекс первого отрицательного}
imn:=0;{индекс мин. положительного}
f:=true;{пока отрицательных нет}
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
if (a[i]<0)and f then{если отрицательный}
begin
i1:=i;{его индекс}
f:=false;{меняем флаг, больше не запоминаем}
end
else if a[i]>0 then imn:=i;{запомним любой положительный, пока он мин.}
end;
clrscr;
writeln('Исходный массив:');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln;
if i1=0 then writeln('Отрицательного элемента нет')
else
begin
writeln('Первый отрицательный элемент =',a[i1]);
if i1<imn then imn:=imn-1;{если мин. дальше 1отр., то уменьшим его индекс, он сдвинется вперед}
for i:=i1 to n-1 do
a[i]:=a[i+1];{сдвинем массив влево на 1 отр.}
n:=n-1;{уменьшим размер}
end;
if imn=0 then writeln('Положительного элемента нет')
else
begin
for i:=1 to n do
if (a[i]<a[imn])and(a[i]>0) then imn:=i;{найдем индекс самого маленького из положительных}
writeln('Минимальный положительный элемент =',a[imn]);
for i:=imn to n-1 do{также удалим}
a[i]:=a[i+1];
n:=n-1;
end;
writeln('Массив после сжатия:');
for i:=1 to n do
write(a[i],' ');
readln
end.
Похожие записи/страницы:
- Дан массив T(n), n
- В заданной целочисленной матрице A(N, M) замените первый отрицательный элемент максимальным элементом матрицы.…
- В массиве целых положительных чисел, упорядоченных по возрастанию, определить положение наиболее длинной группы,…
- Дан целочисленный массив с количеством элементов n. Сжать массив,выбросив из него каждый второй элемент -…
- Дан массив чисел. Найти наибольший элемент, поставить его первым - Pascal(Паскаль)
- Заменить последний положительный элемент массива, элементы которого вводятся с клавиатуры, на второй элемент…
- Дана матрица A (M,N) действительных чисел. Построить одномерный массив, значения которого равны TRUE, если в…
- Удалить из массива первые встретившиеся максимальный и минимальный элементы - Pascal(Паскаль)