Подавление повторяющихся символов - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Вводится последовательность строк, составленных из символов некоторого алфавита. В каждой строке, содержащей последовательность повторяющихся подряд символов, последняя заменяется эквивалентной последовательностью вида *(k)a, где k-число повторений некоторого символа"a".

Решение задачи: «Подавление повторяющихся символов»

textual
Листинг программы
procedure zamena(var s:string);
var i,j,h:byte;
    s1:string;
begin
i:=length(s); //начнем с конца
while i>=1 do
 begin
  h:=0;
  j:=i;
  while (j>=1)and(s[j]=s[i]) do //пока символы равны s[i]
   begin
    h:=h+1; //считаем и идем к началу
    j:=j-1;
   end;
  if h>1 then //если их больше 1
   begin
    delete(s,j+1,h-1);//удалям все одинаковые кроме одного
    s1:='('+inttostr(h)+')'; //такую строку
    insert(s1,s,j+1); //вставляем перед оставшися символом
    i:=j; //переходим вперед на следующий символ
   end
  else i:=i-h; //если не больше 3, просто перешагиваем
 end;
writeln(s);
end;
 
var s,s1:string;
    n,i:integer;
begin
write('Количество строк n=');
readln(n);
writeln('Введите ',n,' строк символов без круглых скобок с группами одинаковых символов');
for i:=1 to n do
 begin
  readln(s);
  zamena(s);
 end;
end.

Объяснение кода листинга программы

Этот код написан на языке Pascal ABC и выполняет следующую задачу: удаляет повторяющиеся символы из строки. Вот как это работает:

  1. Создается процедура zamena, которая принимает строку s в качестве параметра. Внутри процедуры используются три переменные: i, j и h. Переменная i устанавливается равной длине строки s, а переменная j устанавливается равной i. Затем цикл while выполняется до тех пор, пока j больше или равно 1 и символы s[j] и s[i] равны. Внутри цикла переменная h устанавливается равной сумме h и 1, а переменная j устанавливается равной j минус 1. Если h больше 1, то все повторяющиеся символы, кроме одного, удаляются из строки s, и строка преобразуется в формат (n), где n - количество уникальных символов. Затем вставляется оставшийся символ перед последним символом строки s. И, наконец, переменная i устанавливается равной j.
  2. Создается переменная s1 типа string, которая используется для хранения промежуточных результатов.
  3. Создается переменная n типа integer, которая используется для хранения количества строк символов, введенных пользователем.
  4. Выводится сообщение с запросом количества строк символов.
  5. Читается количество строк символов от пользователя.
  6. Для каждой строки символов, введенной пользователем, вызывается процедура zamena, передавая строку в качестве аргумента.
  7. Выводится результат обработки строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы