50 баллов. PascalABC
Дан текст, состоящий из слов: между словами произвольное число пробелов, после последнего слова точка.
Напечатать все слова, удалив из них две последние буквы.
Ответы
Ответ дал:
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
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.
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
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.
Ответ дал:
0
Я уже эту задачу сам решил.
Ответ дал:
0
теперь решай остальные
Ответ дал:
0
Решения на "отлюбись" мне не интересны.
Ответ дал:
0
И остальные я уже почти все решил)
Ответ дал:
0
маладец. Тебя на полке ждет твой пирожок
Ответ дал:
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.
Пример:
Введите строку:
все слова удалив две последние буквы.
в сло удал д последн бук
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.
Пример:
Введите строку:
все слова удалив две последние буквы.
в сло удал д последн бук
Ответ дал:
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.
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
вообще такие задачи регекспами решаются
Вас заинтересует
2 года назад
2 года назад
2 года назад
2 года назад
8 лет назад