| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Pascal ABC] строка не выводится на экран |
| Автор: petri 4.4.2012, 11:39 | ||
Строка y не выводится на экран, т.е. курсор просто остается в начале строки и все.
При этом если выводить символы по ходу цикла: {writeln(y[j]);}, то они нормально выводятся, их конечное число, т.е. зацикливания не происходит. Строка s той же длины также нормально выводится: {writeln(s);}. Почему y не выводится на экран? |
| Автор: Mirkes 4.4.2012, 18:56 |
| Гениальный текст! еще более гениальная среда исполнения - PascalABC (я с ним работаю, но не знал, что в нем есть такая ошибка). Вы создали пустую строку y. То есть массив из нуля элементов типа char. А потом начинаете писать в разные элементы этого массива. В результате все приличные паскали выдали бы выход за границу массива range chesk error. А эта зараза пропустила Чтобы исправить ваш код нужно сделать одно из двух. 1. До цикла написать y:=s; 2. В цикле вместо y[j]:=s[i] написать y:=y+s[i]; Но только что-то одно. Проверить мою гипотезу о работе программы очень просто. До всех модификаций сразу за строкой writeln(y); добавьте строку writeln(length(y)); Должен вывестись ноль! |
| Автор: petri 5.4.2012, 02:25 |
| Спасибо, все получилось. Не полумал о том, что строка это массив и поэтому длина ограничена. |