Помощь - Поиск - Пользователи - Календарь
Полная версия: И опять эта строка..
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Merlin
Задача : Составить программу для вычеркивания из слов текста всех букв, стоящих на нечетных местах после буквы "а".

Помогите разобраться с задачкой.

1. Под вычёркиванием понимется удаление ?
2. Не могу что то разобраться, как найти буквы, стоящие на нечётных местах ?
volvo
Цитата
1. Под вычёркиванием понимется удаление ?
Именно удаление...
Цитата
2. Не могу что то разобраться, как найти буквы, стоящие на нечётных местах ?

i := 1;
while i <= {длины СЛОВА} do begin
{ s[i] - будут буквы на НЕчетных местах }
inc(i, 2);
end;


Хотя по-моему задание немного некорректное... Смотри:
Цитата
perestanovki
какие буквы будешь удалять? n, v, i? Они же стоят на 1, 3, 5 месте после a... НО!!! В то же время с начала слова они как раз стоят на четных (8, 10, 12) позициях...
Merlin
Program;
Var
st:string;
i:integer;
begin
writeln('Введите строку');
readln('st);
while i<=length(st) do begin
if s[i]='a' then delete(st, ......


А дальше не знаю, я совсем уже запутался dry.gif
klem4
тебе же volvo показал как надо сделать ...

1 вариант :

i := 2;
while(i<=length(s)) do begin
if s[pred(i)] = 'a' then
delete(s,i,1);
inc(i,2);
end;


2 вариантб чувствительный к сдвигу, то есть из строки

amama получится aaa, это наверное и нужно

i := 2;
while(i<=length(s)) do begin
if s[pred(i)] = 'a' then begin
delete(s,i,1);
dec(i);
end;
inc(i,2);
end;
Merlin
good.gif Спасибо за помощь
Merlin
Меня препод завалил, задание я не так понял...

При вводе строки : amnmnmn

Должно получиться : annn

Подскажите как это сделать ?
volvo
mad.gif А при вводе "ammnmnmn" что должно быть? Почему ты все время даешь САМЫЕ неподходящие примеры?
klem4
Merlin, Надо всего чуть-чуть подумать

i := 2;
while(i<=length(s)) do
if s[succ(i)] = 'n' then begin
delete(s,i,1);
inc(i);
end
else inc(i,2);



Volvo, я думаю тут надо удалять элементы, стоящие на четных позиция, после которых стоит буква 'n'
volvo
klem4,
Цитата
Надо всего чуть-чуть подумать
и к тебе тоже относится... Ты не удаляешь буквы ПОСЛЕ "а", ты удаляешь ПЕРЕД "n" ... Я для чего задал вопрос, как ты думаешь? Просто от скуки? Тогда перечитай задание в первом посте...
Merlin
Вот ещё пара примеров( я думаю так должно быть ) :

1).Ввод строки : amaanon
Вывод :aaao


2).Ввод строки : ammnmnmn
Вывод : ammm
klem4
Volvo, извини, ты прав yes2.gif

Merlin, ты можешь выложить задание а не тестовые примеры, как видишь мои догадки были не правилными, а заниматься дешифровкой твоих примеров и выискивать в них каки-либо закономерности желания нету ..
Merlin
Цитата
Merlin, ты можешь выложить задание


Задание ?

Задача : Составить программу для вычеркивания из слов текста всех букв, стоящих на нечетных местах после буквы "а".

to klem4:

Ты условие спрашивал или моё решение ?
Если решение, то я незнаю как сделать эту задачу, поэтому и обратился за помощью.
klem4
Ну все ... теперь я точно понял что ты от нас хочешь

в строке ammnmnmn

удаляем выделенные символы ... получается amnnn


uses crt;
var
s : string;
i : byte;

begin
clrscr;
readln(s);

i := 1;

while (i<=length(s)) and (s[i] <> 'a') do inc(i);

inc(i);

if i<=length(s) then begin
if not(odd(i)) then inc(i);
while(i<=length(s)) do begin
delete(s,i,1);
inc(i);
end;
end;

writeln('s=',s);

readln;
end.


А задача звучала в таком случае у тебя некорректно, дожно быть так : После первого вхождения буквы A удалить все символы, стоящие на нечетных позициях Я прав ?!
Merlin
smile.gif Спасибо за задачу... теперь я смогу переделать под любое условие, если опять препод начнёт возникать...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.