singlepost

Pascal (задача про строковые процедуры и функции 1) << На главную или назад  

удалить из текста стоящие рядом одинаковые буквы.
вот код проги

program del_bukv;
uses crt;
var st:string;i:integer;
Begin
clrscr;
textcolor(11);
writeln('введите слово');
readln(st); i:=1;
for i:=1 to length(st) do
if st[i]=st[i+1] then delete(st,i,2);
writeln(st);
readln
End.

Вся беда в том что, она работает правильно только если 2 одинаковые буквы(
а как сделать для общего случаю я не знаю.
Подскажите пожалуйста

14 ответов в теме “Pascal (задача про строковые процедуры и функции 1)”

Страницы: [1] 2 »

  1. 1
    Максим Двойнишников ответил:

    Вообще-то лучше использовать не строку, а массив символов. А корректировка данной такая:

    var st:string;i,j:integer;
    Begin
    readln(st);i:=1;
    while i<length(st)do
    if st[i]=st[i+1] then begin
    j:=2;
    while st[i]=st[i+j]do inc(j);
    delete(st,i,j);
    end else inc(i);
    writeln(st);
    End.

  2. 2
    Сергей Владимирович ответил:

    спасибо!
    а что делает
    j:=2;
    while st[i]=st[i+j]do inc(j);

    пока *какое условие* выполняется?

  3. 3
    Сергей Старовой ответил:

    while ((i+j)<=length(st)) and (st[i]=st[i+j]) do inc(j);

  4. 4
    Александр Чигринец ответил:

    а что делает
    j:=2;
    while st[i]=st[i+j]do inc(j);
    ————————————————–
    Считает: сколько одинаковых символов подряд стоит в строке. Причём начиная с третьего.

  5. 5
    Сергей Владимирович ответил:

    а почему с третьего?

  6. 6
    Александр Чигринец ответил:

    А потому, что предыдущий if проверил ближайшие два:
    if st[i]=st[i+1] then begin …

  7. 7
    Сергей Владимирович ответил:

    Спасибо, теперь понял)

  8. 8
    g艂o艣nik bluetooth karaoke blitzwolf bw ks1 z mikrofonem ответил:

    g艂o艣nik bluetooth karaoke blitzwolf bw ks1 z mikrofonem…

    osnovna 拧kola vladimira nazora daruvar naslovnicamu拧ke prole膰ne jakne prole膰ne jakne ko啪ne jakne la forcemodna ku膰ica dizzy jakna za bebe bijelanova h m kosulja sa tufnama…

  9. 9
    nixon montre kensington light gold marsala a099 3006 ответил:

    nixon montre kensington light gold marsala a099 3006…

    kj忙rester i 1 氓r. villa paprikarosa lang ballkjolelue til en skikkelig t酶ffingbula prima fleece hals svart…

  10. 10
    craft tr盲ningskl盲der ответил:

    craft tr盲ningskl盲der…

    womens large black leather zip around purse with red and light pink interior10 man young roar draw thunder football queensland nplwear resisting paul smith women maddie brogues 20 paul smithpaul smith and mark cavendish photos photos 2013 giro d…

Страницы: [1] 2 »

Ответить

Пожалуйста, зарегистрируйтесь для комментирования.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.