Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Вывод слов строки

Автор: Вячеслав Людской 22.10.2009 17:00

Копирую:
Все работает, выводится верный ответ, НО через некоторое время после вывода (секунд 5) появляется ошибка в разделе вывода: выход за пределы 1..255 в строке <какой-то>. Я так понимаю после перебора строки и вывода слов выполнение тела внутреннего цикла не прекращается, до тех пор пока значение не выйдет за 255. Что-то вроде зацикливания, наверное.

Вопрос: Как избавиться от вывода этой ошибки?

var
i,n:integer;
st:string;
begin

readln(st);

i:=0;
n:=0;

for n:=0 to length(st) do

begin
repeat
inc(i);
write(st[i]);
until st[i]=' ';
writeln;
end;

end.



Автор: volvo 22.10.2009 17:15

Цитата
Вопрос: Как избавиться от вывода этой ошибки?
Очень просто:
  readln(st);
i := 0;

repeat
repeat
inc(i);
write(st[i]);
until (i > length(st)) or (st[i]=' ');
writeln;
until i > length(st);


Автор: Вячеслав Людской 22.10.2009 17:54

Спасибо, разобрался.