Вопрос по информатике:
Дана программа которая должна удалять пробелы из строки
Program var15_stroki;
Var s:string;
i,endstr:integer;
Begin
Readln(s);
endstr:=Length(s);
for i:=2 to endstr do
if s[i]=' ' then
Delete(s,i,1);
Writeln(s);
Readln;
end.
Вот тут ошибка if s[i]=' ' then программа выдает Ошибка времени выполнения, Индекс находился вне границ массива
Нужно исправить
- 19.03.2017 06:01
- Информатика
- remove_red_eye 11084
- thumb_up 37
Ответы и объяснения 1
Если по мере выполнения цикла for менять значение переменной его границы, то цикл НЕ будет меняться, а так как ты удаляешь пробелы, то длина строки уменьшается. В твоем примере нужно заменить цикл for на цикл while(i<=length(s)) ну и в цикле добавить i:=i+1;
- 20.03.2017 05:35
- thumb_up 8
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.