Информатика, опубликовано 07.06.2020 02:21
Паскаль, Что не так в этой процедуре? Нужно элемент подходящий по условию переставить в конец и при выводе не выводить. Так создаётся эффект удаления элемента.
procedure перестановка;
var
b: string;
begin
writeln('vvod b');
readln(b);
for i: byte := 1 to n-1 do
begin
for j: byte:= 1 to n do
begin
if a[i]=bthen
b:=k10a[j+1];
a[j+1]:=a[j+2];
a[j+2]:=a;
writeln(a[i]);
end;
end;
end;
Ответ оставил: Гость
Алгоритм же элементарный: тупо перебираешь массив с конца, проверяя знак каждого элемента. Вот код:
ОТДЕЛ Задание+;
ПЕР
x: РЯД 100 ИЗ ЦЕЛ;
сч, послПолож: ЦЕЛ;
УКАЗ
послПолож := -1;
сч := РАЗМЕР(x) - 1;
ПОВТОРЯТЬ
ЕСЛИ x[сч] > 0 ТО послПолож := сч КОН;
УМЕНЬШИТЬ(сч)
ДО послПолож # -1 ИЛИ сч < 0
КОН Задание.
ОТДЕЛ Задание+;
ПЕР
x: РЯД 100 ИЗ ЦЕЛ;
сч, послПолож: ЦЕЛ;
УКАЗ
послПолож := -1;
сч := РАЗМЕР(x) - 1;
ПОВТОРЯТЬ
ЕСЛИ x[сч] > 0 ТО послПолож := сч КОН;
УМЕНЬШИТЬ(сч)
ДО послПолож # -1 ИЛИ сч < 0
КОН Задание.
Информатика, опубликовано 09.01.2019 16:01
Информатика, опубликовано 09.01.2019 16:01
Информатика, опубликовано 09.01.2019 16:01
Информатика, опубликовано 09.01.2019 16:01