Предмет: Информатика, автор: polinkavidineeva

Изменить данную программу, так, чтобы она удаляла все отрицательные элементы!
Type LinMass = array [1..100] of Integer;
Var A : LinMass;
N, i, j, i1 : Integer;
begin
Write('Количество элементов массива: ');
ReadLn(N);
i1:=0;
For I := 1 To N Do
Begin
Write('Введите A[', I, '] ');
ReadLn(A[i]);
if(A[i]<0)and(i1=0)then i1:=i;
End;
if i1=0 then write('Отрицательных элементов нет')
else
begin
if i1=n then n:=n-1
else
begin
for i:=i1 to n-1 do
A[i]:=A[i+1];
n:=n-1;
end;
writeln('Удаление первого отрицательного элемента');
For I := 1 To N Do write(a[i]:6);
end;
end.

Ответы

Автор ответа: archery
0
var
    A: array [1..100] of Integer;
    N, i, j, k: Integer;

begin
    Write('Количество элементов массива: ');
    ReadLn(N);
    k := 0;
    
    for i := 1 To N Do
    begin
        Write('A[', I, '] = ');
        ReadLn(A[i]);
        {A[i] := Random(100) - 50;
        write(A[i], ' ');}
        if A[i] < 0 then k := i;
    end;
    writeln;
    
    {фильтр, если нет отрицательных}
    if k = 0 then begin
        write('Отрицательных элементов нет');
        halt;
    end;
    
    writeln('Удаление отрицательных элементов');
    k := 1;
    while (n > 0) and (k <= n) do
    begin
        if A[k] < 0 then begin
            for i := k to n - 1 do
                A[i] := A[i + 1];
            n := n - 1;
        end
        else k := k + 1;
    end;
    
    for i := 1 To N Do
        write(A[i], ' ');
end.

а вообще правильнее создать еще один массив и переписать туда нужные элементы - куда меньше операций, циклов и затрат памяти. Массив не предназначен для "удаления" элементов в нем
Похожие вопросы
Предмет: Английский язык, автор: staskostisin040
Предмет: Биология, автор: Шпильки
Выберите несколько правильных ответов.⦁ Выберите признаки мейоза:А) в результате деления количество хромосом в клетке остается прежнимБ) процесс завершается в результате одного деленияВ) в результате деления образуется 4 ядраГ) процесс проходит два этапа деленияД) процесс обеспечивает рост и развитие организма, его бесполое размножениеЕ) процесс обеспечивает образование гамет и половое размножение животных.⦁ Характеристика гамет - яйцеклеток:⦁ неподвижность⦁ активная подвижность⦁ содержат гаплоидный набор хромосом⦁ запас питательных веществ отсутствует⦁ содержат диплоидный набор хромосом⦁ запас питательных веществ в цитоплазме (желток)⦁ гамета крупная⦁ гамета мелкая.⦁ Верно ли суждение (если верно-отметить это суждение знаком «+», если нет - «-»)⦁ Репликация – это процесс самоудвоения нитей ДНК⦁ Мейоз состоит из 2-х идущих подряд делений.⦁ Веретено деления прикрепляется с одной стороны к центромере  хромосомы, а другой к центриолям у полюсов клетки.⦁ Клеточный цикл – это совокупность последовательных и взаимосвязанных процессов , происходящих в клетке в период подготовки ее к делению и в период деления.⦁ Оформленное ядро присутствует как у эукариот, так и у прокариот.⦁ Мейоз – это тип деления клетки, приводящий к редукции числа хромосом.4.Особенности ,характерные для митоза:1) две дочерние клетки,2) четыре дочерние клетки,3) одно деление,4) два деления,5) диплоидные дочерние клетки,6) гаплоидные дочерние клетки.