Удалите первое вхождение w в строку, если такое есть - Pascal ABC

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

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

Очень нужно на завтра!!! Известно, что в начале строки S находится не более 40 латинских букв, за которыми следуют пробелы. Напечатайте эту строку, предварительно преобразовав ее так, как показано ниже, и используя следующий фрагмент программы:
Удалите первое вхождение w, если такое есть (образовавшуюся «дыру» заполните последующими буквами, а в конец добавьте точку); Заранее спс)

Решение задачи: «Удалите первое вхождение w в строку, если такое есть»

textual
Листинг программы
uses crt;
 
type
  stroka = array [1..80] of char;
 
var
  s:stroka;  //по-русски не работает
  i:integer;
  b:boolean; //проверка, была ли буква W
Begin        //true-была, false-не было
  b:=false;
  write('ishodnaya stroka: ');
  for i:=1 to 40 do
    begin
      s[i]:=Char(Random(26)+97); //заполняю массив случайными МАЛЕНЬКИМИ латинскими буквами
      write(s[i],' ');
    end;
  writeln;
  
  write('itogovaya stroka: ');
  for i:=1 to 40 do
    begin
      if not b then    // если W еще не было
        begin
          if s[i]='w' then  //проверка символа
            begin
              b:=true;      //отмечаю, что W была
              s[i]:=' ';    //заменяю на пробел(не понял, как заменить на пустоту, ->
            end;                   //- > несовместимость типов Char и String...
        end
      else           // если W уже была
        begin
          s[i-1]:=s[i];  //замена предыдущего символа на этот(смещение,грубо говоря)
        end;
      if s[i]<>' ' then  //а это просто чтобы сразу выводилось, если нужно, то выведите отдельным циклом
        write(s[i],' ');
    end;
End.

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

  1. Создается тип данных stroka, который представляет собой массив из 80 символов типа char.
  2. Создается переменная s типа stroka, которая будет использоваться для хранения итоговой строки.
  3. Создается переменная i типа integer, которая будет использоваться для итерации по массиву s.
  4. Создается переменная b типа boolean, которая будет использоваться для отслеживания наличия в строке символа 'w'.
  5. Выводится сообщение ishodnaya stroka:, после чего начинается цикл, который заполняет массив s случайными маленькими латинскими буквами.
  6. После завершения цикла выводится сообщение itogovaya stroka:.
  7. Запускается внутренний цикл, который проверяет каждый символ в строке s на равенство 'w'.
  8. Если символ равен 'w', то устанавливается значение переменной b в true, что означает, что символ 'w' был найден.
  9. Если символ не равен 'w', то происходит проверка следующего символа в строке.
  10. Если все символы в строке были проверены и ни один из них не равен 'w', то выводится символ, следующий за последним проверенным символом.
  11. Если в строке был найден символ 'w', то происходит замена предыдущего символа на текущий символ.
  12. После завершения внутреннего цикла выводится символ, следующий за последним проверенным символом.
  13. Конец программы.

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


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

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

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