Написать программу в паскале. Удалить из строки все четырехбуквенные слова.

0 голосов
113 просмотров

Написать программу в паскале.
Удалить из строки все четырехбуквенные слова.


Информатика (400 баллов) | 113 просмотров
0

как разделяются слова?

0

пробелом, а в конце предложения ставится точка)))

Дано ответов: 2
0 голосов
Правильный ответ

//PascalABC.NET 3.1 сборка 1200
const
  wordl = 4;

begin
  var s := ReadlnString('s = ');
  var s1 := '';
  var i := 1;
 
  repeat
    var t := pos(' ', s, i + 1);
    
    if ((s[i] = ' ') or (i = 1))
      and (((t = 0) and (Length(s) - i = wordl)) or (t - i - 1 = wordl))
      then
      i := i + wordl + 1
    else begin
      s1 := s1 + s[i];
      i := i + 1;
    end;
  until i > length(s);
 
  writeln(s1)
end.

(53.1k баллов)
0

как по мне немного понятнее первого ответа

0 голосов

Var 
 S: string; 
 i, k: integer; 
 b: boolean;
begin 
 readln(s); 
 var n := Length(s); 
 i := 1; 
 repeat   
  b := true;   
  while (i <= n) and (s[i] <> ' ') do
   begin    
     if b then
        begin        
           k := i;        
           b := false      
    end;     
   inc(i)   
 end;   
 if i - k = 4 then
  begin      
    delete(s, k, 5);      
    i := k;      
    n := n - 5   
   end    
  else inc(i) 
  until i > n; 
  write(s)
end.

(240 баллов)