ПОМОГИТЕ С ПРОГРАММОЙ. Язык #паскаль. Дана строка, состоящая из русских слов, разделенных...

0 голосов
95 просмотров
ПОМОГИТЕ С ПРОГРАММОЙ. Язык #паскаль.
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним символом "."(точка). В конце строки точку не ставить.

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

вот простая и легкая программа, так как уже запостить нельзя, то выкладываю в комментах, держи на здоровье: var s: string; i: integer;begin readln(s); while (Length(s)>0) and (s[Length(s)]=' ') do Delete(s,Length(s),1); while Pos(' ',s)>0 do Delete(s,Pos(' ',s),1); for i:=1 to length(s) do if s[i]=' ' then s[i]:='.'; writeln(s)end.

0

она была ошибочной, но стоит добавить один пробел в коде - она работает )

0

вот и весь прикол, а программа была ощибочна, хотя согласен, программа сама по себе простая.

0

нет,все равно не так

0

я пишу на fpc, только оказалось, что после копирования решения, html съел один пробел в кавычках, поэтому там нужно два пробела

0

ты на делфи пишешь, может?:3

0

http://znanija.com/task/3931165 помогите плииз еще с этой

0

abc

0

не может быть, а что у вас за паскаль такой?

0

пишет строку просто без пробелов

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

Var
s,s1,s2:string;
l,l1:char;
i,x,x1:integer;
begin
readln(s);
for I:= 2 to length(s)-1 do begin
l:=s[i];l1:=s[i+1];x:=ord(x);x1:=ord(l1);
if (l=' ') and (x1<>32) then s1:=s1+'.' else if x<>32 then s1:=s1+l;
end;
s1:=copy(s,1,1)+s1+copy(s,length(s),1);
while ((s1[1]=' ') or (s1[1]='.')) do
s1:=copy(s1,2,length(s)-1);
writeln(s1);
end.

(862 баллов)
0

а,нет,сори. Все работает. Спасибо большое

0

нет, пишет в одно слово

0

все, один пробел забыл поставить

0

пишет: ожидание вывода

0

не работает

0

все,поправил, учитывает пробелы перед первым словом

0

там не работало, я когда в знания скопировал, забыл пробел.