Pascal

Ответить
Jay-Z
Сообщения: 4
Зарегистрирован: 28 окт 2007, 18:28

В массиве A=(a1, а2, ... а15) удалить все отрицательные элементы, стоящие перед минимальным элементом массива
я тут че то написал

program lab5_var100;
Uses crt;
type arr=array[1..15] of integer;
var a:arr; {массив}
i,j,n: byte; {индексы, длина массива}
i_min: byte; {индекс максимального элемента массива}
min:integer; {максимальный элемент}
begin
writeln;
writeln(' Автор - Иванов И.П., студент гр. ИСЭд-11');
writeln(' Вариант № 100');
writeln(' Дан одномерный массив целых чисел.');
writeln(' Удалить все отрицательные элементы, расположенные справа от максимального ');
writeln;
{$R+} {Включение контроля значений индексов}
clrscr; {Очистка экрана}
n:=15;
randomize;
writeln('Исходный массив:');
for i:=1 to n do {генерация элементов массива}
begin
a:=-20+random(41); {в диапазоне [-20; 20]}
write(a:4);
end;
writeln;
min:=a[15];
i_min:=1;
for i:=1 to n do {поиск максимального элемента массива}
if a<min then
begin
min:=a;
i_min:=i;

end;
writeln(min);
i:=i_min;
writeln (i);

while i>=1 do

begin
if a<0 then {если элемент отрицательный, то}
begin
for j:=i to n-1 do {цикл удаления i-го элемента}
a[j]:=a[j+1];
n:=n-1; {уменьшение длины массива}
end
else
i:=i-1; {иначе переход к следующему элементу}
end;
writeln('Результат обработки:');
for i:=1 to n do
write(a:4);

{$R-} {Выключение контроля значений индексов}
end.

только не могу минимальный элемент оставить.как это сделать?
хелпните мне, плиииииииз
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Поставить изначально не i:=i_min, а i:=i_min-1
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Jay-Z
Сообщения: 4
Зарегистрирован: 28 окт 2007, 18:28

дааа,вот дурак я.
СПАСИБО БОЛЬШОЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ответить