1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Работа 3.8 Упр.9 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Автор
Семакин, Хеннер, Шеина

Работа 3.8 Упр.9 ГДЗ Семакин 10 класс (Информатика)

Задача

Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 9. Дана строка. Преобразовать ее, удалив каждый символ * и повторив дважды подряд каждый символ, отличный от *. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-8/9 98

Подробный ответ

Нужно пройти по строке и построить новую:

  • если символ равен *, то он удаляется;
  • если символ не равен *, то он записывается дважды подряд.

Удобно обрабатывать строку с конца к началу, чтобы при удалении и вставке символов не сбивались индексы.

Алгоритм:

  1. считать строку s;
  2. для каждого символа от последнего к первому:
    • если $$s[i]=*$$, удалить его;
    • иначе вставить этот символ ещё раз на то же место.

В результате каждый обычный символ будет повторён дважды, а все звёздочки исчезнут.

var s:string;
i:integer;
begin
  writeln(‘введите строку’);
  readln(s);
  for i:=length(s) downto 1 do
    if s[i]=’*’ then delete(s,i,1)
    else insert(s[i],s,i);
  write(s);
end.

Ответ

Строка преобразуется так: каждый символ * удаляется, а каждый другой символ повторяется дважды подряд.



Общая оценка
4.8 / 5
Другие учебники
Другие предметы