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

  1. Очень нужно на завтра!!! Известно, что в начале строки S находится не более 40 латинских букв, за которыми следуют пробелы. Напечатайте эту строку, предварительно преобразовав ее так, как показано ниже, и используя следующий фрагмент программы:


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. Дана строка, слова разделены одним пробелом, в конце точка. Продублировать первое слово, если слово максимально длины встречается более 2 раз. В противном случае удалить последнее слово.

  1. Вот программа, нужно добавить процедуру, которая последний элемент ставит на 1 место, помогите пожалуйста.

  1. Здравствуйте, помогите написать программу которая проверяет повторяется ли в предложении первое слово. Главное не использую массив из слов. Заранее благодарю.

  1. Удалите все столбцы, в которых находится минимальный элемент, а затем строки, в которых больше одного максимального элемента. Если такого столбца или строки нет, то вывести сообщение об этом.

  1. Задан массив D(12). Первое число в каждой паре чисел заменить суммой, второе – произведением этим чисел, если ни одно из чисел этой пары не равно нулю. В противном случае числа пары переписать в мас сив B.

  1. Задан массив А (10). Удалите из него все четные элементы

  1. Написать процедуру, удаляющую из строки первое слово.

  1. В данной строке удалите все пробелы! Заранее спасибо!

  1. Pascal1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 uses crt; var s1, s2, s3, s4 : string; k, n, i : byte; a : set of char; ch : char; begin s2 := ''; s4 := ''; a := []; write('строка S1= '); readln(s1); n := length(s1); writeln('длина строки S1 = ', n, ' символов'); write('первое слово:'); i := 1; while (i <= n) and (s1[i] <> ' ') do begin write(s1[i]); include(a, s1[i]); s4 := s4 + s1[i]; i:=i+1; end; writeln; writeln('введите символы строки S2 (окончание ввода цифра):'); repeat ch := readkey; if ch in a then begin write(ch); s2 := s2 + ch end until ch in ['0'..'9']; writeln; writeln(s4); s3 := concat(s1, s2); writeln('объединенная строка: ', s3); while (pos( S4,  S3) <> 0) do delete( S3, pos(S4,S3) , length(S4)); Writeln('третья строка без вхождений первого слова:'); writeln(S3); end.