Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для yevrowl
304 / 75 / 6
Регистрация: 27.04.2022
Сообщений: 238

Зависает при опросе клавиатуры

19.03.2023, 17:57. Показов 1374. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Переделываю под IBM Advanced Basic исходник, написанный в Turbo Basic — https://sf.net/projects/twicc/

По непонятной причине зависает при опросе клавиатуры, причём во втором однотипном блоке.

Функционирует:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1030 REM first
1040 LET K$ = INKEY$
1050 IF K$ = CHR$(49) THEN LET CR1 = 1
1060 IF K$ = CHR$(50) THEN LET CR1 = 2
1070 IF K$ = CHR$(51) THEN LET CR1 = 3
1080 IF K$ = CHR$(52) THEN LET CR1 = 4
1090 IF K$ = CHR$(53) THEN LET CR1 = 5
1100 IF K$ = CHR$(54) THEN LET CR1 = 6
1110 IF K$ = CHR$(55) THEN LET CR1 = 7
1120 IF K$ = CHR$(56) THEN LET CR1 = 8
1130 IF K$ = CHR$(57) THEN LET CR1 = 9
1140 IF K$ = CHR$(27) THEN SYSTEM
1150 IF K$ = CHR$(49) OR K$ = CHR$(50) OR K$ = CHR$(51) OR K$ = CHR$(52) OR K$ = CHR$(53) OR K$ = CHR$(54) OR K$ = CHR$(55) OR K$ = CHR$(56) OR K$ = CHR$(57) OR K$ = CHR$(27) THEN GOTO 1160 ELSE GOTO 1040
1160 RETURN
Виснет:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1170 REM second
1180 LET K$ = INKEY$
1190 IF K$ = CHR$(49) THEN GOTO 1200
1200 IF CR1 = 1 OR CI1 = 1 THEN GOTO 1170 ELSE LET CR2 = 1
1210 IF K$ = CHR$(50) THEN GOTO 1220
1220 IF CR1 = 2 OR CI1 = 2 THEN GOTO 1170 ELSE LET CR2 = 2
1230 IF K$ = CHR$(51) THEN GOTO 1240
1240 IF CR1 = 3 OR CI1 = 3 THEN GOTO 1170 ELSE LET CR2 = 3
1250 IF K$ = CHR$(52) THEN GOTO 1260
1260 IF CR1 = 4 OR CI1 = 4 THEN GOTO 1170 ELSE LET CR2 = 4
1270 IF K$ = CHR$(53) THEN GOTO 1280
1280 IF CR1 = 5 OR CI1 = 5 THEN GOTO 1170 ELSE LET CR2 = 5
1290 IF K$ = CHR$(54) THEN GOTO 1300
1300 IF CR1 = 6 OR CI1 = 6 THEN GOTO 1170 ELSE LET CR2 = 6
1310 IF K$ = CHR$(55) THEN GOTO 1320
1320 IF CR1 = 7 OR CI1 = 7 THEN GOTO 1170 ELSE LET CR2 = 7
1330 IF K$ = CHR$(56) THEN GOTO 1340
1340 IF CR1 = 8 OR CI1 = 8 THEN GOTO 1170 ELSE LET CR2 = 8
1350 IF K$ = CHR$(57) THEN GOTO 1360
1360 IF CR1 = 9 OR CI1 = 9 THEN GOTO 1170 ELSE LET CR2 = 9
1370 IF K$ = CHR$(27) THEN SYSTEM
1380 IF K$ = CHR$(49) OR K$ = CHR$(50) OR K$ = CHR$(51) OR K$ = CHR$(52) OR K$ = CHR$(53) OR K$ = CHR$(54) OR K$ = CHR$(55) OR K$ = CHR$(56) OR K$ = CHR$(57) OR K$ = CHR$(27) THEN GOTO 1390 ELSE GOTO 1180
1390 RETURN
Прошу подсказать, в чём может заключаться причина?
Вложения
Тип файла: 7z tcc.7z (2.6 Кб, 3 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.03.2023, 17:57
Ответы с готовыми решениями:

таймаут при опросе ns серверов
собсна есть массив из трех ns-серверов.. сделал следующую конструкцию для установке таймаута в 5 секунд при опросе сервера our...

При перемещении по дереву с клавиатуры mmc зависает
здравствуйте. проблема такая: после открытия оснастки управление компьютером начинаю перемещаться стрелками по дереву консоли и список...

Как посчитать количество одинаково ответивших при социальном опросе?
опрос как вопрос и надо выбрать одну цифру из четырех. Внес данные в excel. как посчитать процент и количество людей ответивших цифрой 1...

3
 Аватар для STAR WARS
34 / 40 / 3
Регистрация: 24.11.2016
Сообщений: 159
19.03.2023, 20:16
Попробуйте взаместо ГОТО перехода использовать подпрограммы или DO.......LOOP....➡

Добавлено через 2 минуты
GOTO переход хорошая вещь но не здесь ↔

Добавлено через 10 минут
Попробуйте SELECT CASE ⏯
1
 Аватар для yevrowl
304 / 75 / 6
Регистрация: 27.04.2022
Сообщений: 238
19.03.2023, 20:24  [ТС]
Цитата Сообщение от STAR WARS Посмотреть сообщение
Попробуйте взаместо ГОТО перехода использовать подпрограммы или DO.......LOOP....
DO ... LOOP не поддерживается BasicA (IBM Advanced Basic).

Цитата Сообщение от STAR WARS Посмотреть сообщение
Попробуйте SELECT CASE
Аналогично не поддерживается.

P. S. Цель переноса кода — дальнейшее портирование на MSX Basic.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
22.03.2023, 19:20
Прошу подсказать, в чём может заключаться причина?
Задам один лишь вопрос, как это недоразумение должно функционировать? По сути код 2 раза спрашивает одно и то же,
на кой фиг он это делает? 1 раз опроси клавиатуру, далее делай логику, отдельно, так нормальные люди делают.
Ведь если CI1 либо CR1 не равны нулю, а простираются в обозначенном диапазоне, то код всегда будет циклиться.
А уж какая там логика самой проги это нам вообще должно быть по барабану, это уж твоя забота,
ввязался - разгребай.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.03.2023, 19:20
Помогаю со студенческими работами здесь

Подобрать оптимальный инструмент для конкретной задачи при опросе персонала
Всем доброго дня! Прошу помочь решить такую задачу. Проведены анонимные опросы в 4-х предприятиях, входящих в холдинг. Имеем 4...

Чему равна сумма цифр числа n. Параметр n задать при опросе.
Чему равна сумма цифр числа n. Параметр n задать при опросе. помогите пожалуйста...

Устойчива ли работа OPC серверов WinCC при опросе с каждого них большого (до 30 тыс.) количества тегов
Добрый день. Кто-нибудь опрашивал большое количество данных с серверов WinCC по OPC (da или hda). Интересует не в целом вопрос опроса,...

комп зависает намертво при работе с новым винчестером, после перезагрузки компа зависает при загрузке BIOS
купил новый винчестер. комп стал зависать намертво. при перезагрузке, зависает уже при загрузке на заставке выбора выхода в BIOS (Press DEL...

При опросе координат курсора и состояния кнопок мыши (int 33h ax=0003h), значение координат не изменяется
Не пойму в чём проблема. Графический режим, прога ждёт нажатия левой кнопки, после этого в регистры CX и DX автоматически помещается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru