50 баллов. PascalABC Дан текст, состоящий из слов: между словами произвольное число...

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

50 баллов. PascalABC
Дан текст, состоящий из слов: между словами произвольное число пробелов, после последнего слова точка.
Напечатать все слова, удалив из них две последние буквы.


Информатика (250 баллов) | 55 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Var s1,s2:string;
i:integer;
begin
writeln('Введите строку:');
readln(s1);
while pos('  ',s1)>0 do delete(s1,pos('  ',s1),1);
s1[length(s1)]:=' ';
s2:='';
for i:=1 to length(s1)-2 do
 if (s1[i+2]<>' ')and(s1[i+1]<>' ')
  then s2:=s2+s1[i];
writeln(s2);
end.

Пример:
Введите строку:
все слова    удалив   две   последние      буквы.
в сло удал д последн бук

(194k баллов)
0

Тоже неточность в коде. Но в остальных задач всё написал правильно. Можешь тупо поменять код на тот, что ниже в комментариях и отмечу как лучший ответ.

0

var str,sl,sn: string;
i: integer;
begin
write('Введите текст:');
readln(str); str:=str+' '; sl:=''; sn:='';
for i:=1 to length(str) do
if str[i]<>' ' then sl:=sl+str[i] else
if length(sl)>0 then
begin
if length(sl)>2 then begin delete(sl,(length(sl)-1),2); end;
sn:=sn+' '+sl;
sl:='';
end;
write('Конечный текст: ',sn);
end.

0

Код жуткий и малочитабельный

0

вообще такие задачи регекспами решаются

0 голосов

Var
  l,i:integer;
  s,w:string;
  prt:boolean;
  c:char;

begin
  { s:='  Арбуз    вагон  барабан Goodday   dummy.  '; }
  Write('Введите строку: ');
  Readln(s);
  l:=Pos('.',s);
  s:=Copy(s,1,l-1)+' ';
  i:=1;
  prt:=False;
  w:='';
  while i<=l do<br>  begin
    c:=s[i];
    if c=' ' then
    begin
      if prt then
        begin
        if Length(w)>2 then Write(Copy(w,1,Length(w)-2),' ');
        w:='';
        prt:=not prt
        end
    end
    else
    begin
      w:=w+s[i];
      prt:=True
    end;  
    Inc(i)
  end;
  Writeln
end.

(2.0k баллов)
0

Код не работает на ввод. При вводе строки с клавиатуры программа не выводит результат.

0

Я уже эту задачу сам решил.

0

Решения на "отлюбись" мне не интересны.

0

И остальные я уже почти все решил)