Учеба и наука

Рядковые величины - вопрос №139433

Подсчитать в тексте количество букв A и В, если А>B то все А с текста удалить, если В>A, то все В удалить!

Дополнение автора от ноябрь 7, 2011 г., 23:45:27

Текст-любое предложение

Криони Евгений Сергеевич ноябрь 7, 2011 г.

  • Всего ответов: 2

  • Nikolay - аватарка

    Nikolay

    44-й в Технологиях

    нужен алгоритм или реализация на конкретном языке?

    ноябрь 11, 2011 г.
  • Дмитрий Проничев - аватарка

    Дмитрий Проничев

    503-й в Учебе и науке

    Решение задачи на Pascal

    program bukva;

    var s:string; /в этой переменной будет содержаться весь текст/

    k,l,i:integer; / i -это индекс, k и l будут хранить количество проверяемых букв/

    begin

    readln(s);k=0;l=0; /Вводим исходный текст/

    for i:=1 to length(s) do

    begin

    if s[i]='A' then k:=k+1; /подсчитываем поличество букв A в исходном тексте/

    if s[i]='B' then l:=l+1 /подсчитываем поличество букв В в исходном тексте/ end; if k>l then /Здесь проиходит сравнение количества букв, если условие           выполнится..../

    begin for i:=1 to lenggth(s) do /то проходя всю строку.../

    if s[i]='A' then /находим все символы А.../

    begin delete(s,i,1); /и удаляем их по одному, но при этом, если вдруг в тексте есть сдвоенные буквы АА, то вторая перейдет на место удаленной, а так как эта позиция уже проверена то программа ничего не удалит и сразу перейдет к следующей позиции, поэтому нужно эту пизици проверить еще раз/

    i:=i-1;

    end;

    end;

    if l>k then /все то же самое но для символа В/

    begin for i:=1 to lenggth(s) do

    if s[i]='B' then

    begin

    delete(s,i,1);

    i:=i-1;

    end;

    end;

    write(s); выводим очищенный текст

    end.

    /В условии задачи не оговаривается ситуация когда А=В, поэтому мы ничего про нее не пишем/

    ноябрь 12, 2011 г.