Удалите первое вхождение 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.
Объяснение кода листинга программы
- Создается тип данных stroka, который представляет собой массив из 80 символов типа char.
- Создается переменная s типа stroka, которая будет использоваться для хранения итоговой строки.
- Создается переменная i типа integer, которая будет использоваться для итерации по массиву s.
- Создается переменная b типа boolean, которая будет использоваться для отслеживания наличия в строке символа 'w'.
- Выводится сообщение
ishodnaya stroka:
, после чего начинается цикл, который заполняет массив s случайными маленькими латинскими буквами. - После завершения цикла выводится сообщение
itogovaya stroka:
. - Запускается внутренний цикл, который проверяет каждый символ в строке s на равенство 'w'.
- Если символ равен 'w', то устанавливается значение переменной b в true, что означает, что символ 'w' был найден.
- Если символ не равен 'w', то происходит проверка следующего символа в строке.
- Если все символы в строке были проверены и ни один из них не равен 'w', то выводится символ, следующий за последним проверенным символом.
- Если в строке был найден символ 'w', то происходит замена предыдущего символа на текущий символ.
- После завершения внутреннего цикла выводится символ, следующий за последним проверенным символом.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д