Помощь - Поиск - Пользователи - Календарь
Полная версия: Обработка строк
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Connected
Отредактировать предложение, удаляя из него лишние пробелы, оставляя только по одному пробелу между словами.


Если возможно, представить алгоритм решения задания.


Заранее, СПАСИБО!
Артемий
readln(s);
for i:=1 to length(s)do begin
if (s[i]=' ') and (s[i+1]=' ') then begin
a:=i;
repeat
delete(s,a,1);
until (s[a+1]<>' ');
end;
end;


Попробуй так...?
Connected
А до этого надо писать uses crt или что-то еще? Если да, то что именно? Заранее спасибо!
Tan
Вот полная программа на основе алгоритма Артемия :
var i,a : integer;
s : string;
begin
readln(s);
for i:=1 to length(s)do begin
if (s[i]=' ') and (s[i+1]=' ') then begin
a:=i;
repeat
delete(s,a,1);
until (s[a+1]<>' ');
end;
end;
writeln (s);
readln;
end.


Модуль CRT здесь не обязателен, вот если бы ты использовал readkey или ClrScr, тогда бы он пригодился.
Алена
Так не проще?

var
p: integer;
s: string;
begin
readln(s);
{ s := '123 12 1222 12 15'; }
repeat
p := pos(' ', s);
if p > 0 then delete(s, p, 1);
until p = 0;
writeln(s);
end.
Артемий
lol.gif yes2.gif
Connected
А как блок-схема выглядит? Кто-то может помочь составить?
Connected
Вот я сам попытался составить блок-схему...
Правильно?
Если нет, то в чем ошибка? Как исправить?

P.S. - схема составлена для программы Алены.
AnTiDoD
Поищи в поиске... В FAQ есть неплохая функция по разбиению слов на массивы, вот там то и есть код ля убирания доп. пробелов
Connected
Цитата(AnTiDoD @ 3.04.2007 17:20) *

Поищи в поиске... В FAQ есть неплохая функция по разбиению слов на массивы, вот там то и есть код ля убирания доп. пробелов


да саму программу я уже составил!
проблема с блок-схемой..
Connected
Цитата(klem4 @ 4.04.2007 13:38) *


сделал всё, как описано в readme...
но прога (Bs) пишет: "ошибка листинга"..
в чем проблема?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.