АД
Анастасия Дудина

помогите дорешать задачу по паскалю, строки

Нужно ввести строку с клавиатуры, и удалить ВСЕ буквы 'a'. У меня удаляет в том случаи когда в строке нет подряд два символа 'a'. Например 'asadfagfasa'. НО если 'aaaaafghadfjfaaaad'. То получается лабуда. В программе у меня сначало стаяло вместо d, просто 1. Т. е. удаляет один символ. Но блин последующие символы 'a', не удаляет (((. Я решил пусть считает d и оно пойдет в оператор удаление. Но всеровно, нето удалит часть букв 'a', остальные оставит в покое. Вот такая вот печаль.
Вот я написал, но она к сожелению не всегда вы полняет условие выполнение задачи.... (
program gfg;
var
st: string;
i,y,d: integer;
begin
writeln('введите строку');
read(st);
y:=length(st);
writeln('длина строки ',' ',y);
d:=0;
for i:=1 to y do
if st='a' then begin
d:=d+1;
delete(st,i,d);
end;
writeln('строка без букв а',' ',st);
end.

блин не правельно написал
if st='a' then begin....

АШ
Анастасия Шенц

program gfg;
var
st: string;
p: integer;
begin
writeln('Введите строку: ');
readln(st);
writeln('Длина строки: ', length(st));
repeat
p := pos('a', st);
if p > 0 then
delete(st, p, 1)
until p = 0;
writeln('Строка без букв "a": ', st)
end.

Функция pos ищет в строке букву 'a'. Если результат функции не равен нулю, то в строке есть эта буква, удаляем её в позиции, которую вернула pos. Повторяем цикл, пока функция pos не вернёт ноль: букв 'a' больше в строке нет.

Алексей Буньков
Алексей Буньков

Проходи по строке в обратном направлении.

Иринка
Иринка

вместо for делай так:
i:=1;
while i < length(st) do begin{проверка по длине каждый цикл! }
if st[ i ] = 'a' then delete(st, i, 1){если удаляем, то не надо увеличивать i - ведь строка уменьшилась! }
else i:= i + 1;
end;

или в for собирай новую строку по символу.

НП
Наталья Посыльная

Program DeleteA; uses crt;
var st:string;
i:integer;

Begin clrscr;
Write(' Введите строку: '); Readln(St);
Writeln(' Длинна строки: ', Length(St));

for i:=Length(St) downto 1 do
if ((St[ i ]=#65) or (St[ i ]=#97)) then Delete(St,i,1);

Writeln(' Строка без букв "A": ', St);
end.

Похожие вопросы
Помогите дорешать задачу)
Помогите с задачей в Паскале!
Помогите с задачей (Паскаль)
Помогите задача паскаль : )
Помогите с паскалем (строки)
помогите в задаче по паскалю
Помогите дорешать задачу
Помогите дорешать задачу!
Задача паскаль! ПОМОГИТЕ
Помогите с задачей паскаль!