Набор строки и выход из неё в любой момент |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Набор строки и выход из неё в любой момент |
4epenOK |
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: Максим Репутация: 0 |
Здравствуйте!
У меня возникла проблемка, надеюсь на вашу помощь. Пишу я программу по вычислению среднего балла учеников. Нужно чтобы можно было выйти из программы в любой момент времени сразу после нажатия Esc. Проблема заключается в том, что при вводе имени ученика я не могу это реализовать. Пробовал сделать вводить-выводить посимвольно каждую букву, но появились какие-то глюки. Дело в том, что нужно ещё реализовать поддержку клавиш Del, Backspace, end, home. Имя ученика может состоять из любых символов. Компилятор Turbo Pascal 7.0 -------------------- Работать и создавать, сражаться и побеждать, расчитывать и не ошибаться,
бороться и искать, найти и переработать! |
4epenOK |
Сообщение
#2
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: Максим Репутация: 0 |
всё идёт норм, но эта строка в любом случае не будет пустой, после нажатия Enter. Даже если ты ничего не ввёл.
Если ты после запуска проги сразу жмёшь enter, то lenght(s) будет равно 1, а команда ord(s[1]) выдаст 1. А ведь должно быть lenght(s)=0. Кроме того после выполнения программы координата x почему-то устанавливается на 1. То есть, если дополнить прогу так: убрать в конце writeln('s = ', s); и написать write(':'); readln;; то двоеточие выведется в начале строки, а по идее должен вывестись сразу после строки. Почему так? Или это я что-то не так делаю -------------------- Работать и создавать, сражаться и побеждать, расчитывать и не ошибаться,
бороться и искать, найти и переработать! |
Текстовая версия | 27.04.2024 18:45 |