Есть задача:
найти максимальное число идущих вподряд пробелов в вводимом тексте
заранее спасибо!!!
киньте если есть готовую задачу или идеи...
Идея простая.. Примерно так:
for i:=1 to Length(s) do if s[i]=' ' then begin
Inc(n);
if n>m then Inc(m)
end
else n:=0;
Воть...Сам решил. Смотрите кому интересно или тоже нужна...
program probel;
uses crt;
var s,e:string;
Begin
clrscr;
writeln('Введите фразу:');
readln(s);
e:=' ';
while length(e)<255 do insert(' ',e,1);
repeat
if pos(e,s)<>0 then write(length(e)) else delete(e,1,1);
until pos(e,s)<>0;
write('Наибольшее число стоящих рядом пробелов в введённой фразе равно ',length(e));
readkey;
end.
Поздравляю!
То, что сам решил - безусловно хорошо!
Но если разберешься с моим советом - будет еще лучше. Этот код (я сейчас грубо прикинул) работает примерно в 150 раз быстрее твоего..
Добавлено через 8 мин.
Кстати, сейчас только обратил внимание - там у тебя в цикле стоит Write, который в принципе не может отработать. Зачем?..
Да и вообще if в цикле почти не нужен.. Единственная ситуация, где он может пригодиться - это когда все 255 символов - пробелы. Но и ее можно избежать, заменив repeat на while.
for i:=1 to Length(s) do if s[i]=' ' then begin
Inc(n);
if n>m then Inc(m)
end
else n:=0;
Как я понял m это переменная для временного хранения максимального числа последовательности пробелов, с которой впоследствии сравниваются все группы пробелов идущих подряд.