Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/60: Рейтинг темы: голосов - 60, средняя оценка - 4.52
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932

Оператор INKEY$

11.03.2010, 08:47. Показов 12476. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто-нибудь может мне объяснить, что это такое? А то в учебнике непонятно написано. Я понял, что это оператор, следящий за нажатыми клавишами. Но как он работает?
Я пишу
PureBasic
1
2
3
4
cls
input "Write anything ", x
a$=inkey$
if a$="0; 60" then print "A"
Но он мне выдаёт "Write anything",я нажимаю F2, а он ничего не делает! Заранее благодарен за помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2010, 08:47
Ответы с готовыми решениями:

аналог INKEY$ в С++
Здравствуйте!! В Qbasic есть оператор INKEY$ который работает обычно в цикле и по которому можно узнать какая клавиша была нажата и...

Синоним Inkey в Си
Здравствуйте, переучиваюсь с бэйсика на си, и сталкнулся с проблемкой считать один символ с клавиатуры, помогите найти команду как можно...

Аналог inkey$
В QuicBasic есть очень хороший оператор INKEY$, я так понимаю он служит чтоб программа выполняла какие то операции но при этом ждала что я...

21
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
11.03.2010, 09:01
Попробуйте выводить на экран значения a$. Для функциональных клавиш и стрелок вроде бы формируется два кода, соответственно требуется два вызова INKEY$. Также лучше зациклить ввод символов и их вывод на экран.
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
11.03.2010, 09:20
Цитата Сообщение от Hagrael Посмотреть сообщение
Кто-нибудь может мне объяснить, что это такое? А то в учебнике непонятно написано. Я понял, что это оператор, следящий за нажатыми клавишами. Но как он работает?
Я пишу
PureBasic
1
2
3
4
cls
input "Write anything ", x
a$=inkey$
if a$="0; 60" then print "A"
Но он мне выдаёт "Write anything",я нажимаю F2, а он ничего не делает! Заранее благодарен за помощь.
оператор inkey$ считывает 1 сигнал от нажатой клавиши. Например, он может остановить программу, если вы напишете выполнение цикла до нажатия клавиши, он может выдать вам какое-то действие, если вы нажмёте клавишу, например, что-то напечатать (как у вас)
Но! Если события не произошло, то он ничего вам не выдаст, потому что, как бы медленно ни работал Бейсик, он всё равно выполняет миллионы операций в секунду и не станет ждать вас. Поэтому программа ваша написана безграмотно, ничего печатать она не стала бы, даже если бы оператор if вы написали бы правильно, а не так как у вас.
PureBasic
1
2
3
4
cls
input "Write anything ", x 'что вы здесь вводите и зачем, если нигде не используете?
a$=inkey$ 'эта команда сама по себе вам ничего не даст, потому что вы не успеете нажать клавишу, а комп уже перескочит через эту команду
if a$="0; 60" then print "A" ' что за странное условие: if a$="0; 60"?
Это input ждёт нажатия, а к inkey$ надо возвращать программу, например, циклом do loop


Добавлено через 10 минут
Цитата Сообщение от Yurii_74 Посмотреть сообщение
Попробуйте выводить на экран значения a$. Для функциональных клавиш и стрелок вроде бы формируется два кода, соответственно требуется два вызова INKEY$. Также лучше зациклить ввод символов и их вывод на экран.
Не пишите глупостей, если не знаете язык
1
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
11.03.2010, 17:08
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Не пишите глупостей, если не знаете язык

Не по теме:

:D То, что я его давно не использовал еще не значит того, что я его не знаю.
Но если бы он все это зациклил, при нулевом значении тут же еще раз делал a$=inkey$ внутри цикла и распечатывал, то увидел бы вполне понятный интерпретируемый результат. Разве нет?
Про стрелки действительно подзабыл. Там значения где-то в районе 35-50.

2
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
11.03.2010, 17:25
Цитата Сообщение от Yurii_74 Посмотреть сообщение

Не по теме:

:D То, что я его давно не использовал еще не значит того, что я его не знаю.

Но ведь 2*2 -то вы хорошо помните, значит Бейсик, всё же, не так хорошо знали...
вот пример использования inkey$
Программа останавливается по нажатию пробела
PureBasic
1
2
3
4
DO
   a$ = INKEY$
   LOOP UNTIL a$ = CHR$(32)
   PRINT "yes"
1
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
11.03.2010, 17:46
В цикл можно вставить что-то наподобие этого:
PureBasic
1
PRINT ASC(a$)
Будет красиво и понятно (если я снова ничего не напутал ).
1
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
11.03.2010, 17:54
да, но это команду надо писать после цикла, иначе прога работать не будет, а так выведется 32 - код клавиши пробел
1
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
11.03.2010, 18:40
Не, Бегемот. Ты не совсем прав.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
DO
 a$ = INKEY$
 PRINT a$
 IF a$ <> "" THEN
   PRINT "ASC(a$) = "; ASC(a$)
   PRINT LEN(a$)
   FOR i = 1 TO LEN(a$)
     PRINT "ASC(a$("; i; "))="; ASC(MID$(a$, i, 1))
   NEXT i
 END IF
 SLEEP (1000)
LOOP UNTIL a$ = CHR$(13)
Блин. Все же стрелки с нуля начинаются!
CHR$(13) - Enter.
Миниатюры
Оператор INKEY$  
1
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
11.03.2010, 19:04
я говорил о своём примере, о том, что в мой цикл эту команду вставить нельзя.
а управляющие клавиши имеют расширенный код, но два inkey$ там всё равно не надо, достаточно выделить код.
1
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
11.03.2010, 19:08
Цитата Сообщение от кот Бегемот Посмотреть сообщение
я говорил о своём примере

Не по теме:

Дак это он и есть... почти :-[
Только в таком виде можно сразу проверить что чему соответствует:).

0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
11.03.2010, 19:17
Цитата Сообщение от Yurii_74 Посмотреть сообщение

Не по теме:

Дак это он и есть... почти :-[
Только в таком виде можно сразу проверить что чему соответствует:).

не-е-е
в моём примере не пойдёт, там нет проверки на ""
0
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
12.03.2010, 09:05  [ТС]
Если честно, то ваших примеров я не понял ваших примеров. Как его использовать? Ведь если не писать "input" (ну или do...loop), то программа по завершении инструкций закончится! Или писать
PureBasic
1
2
3
4
5
CLS
let a$=inkey$
do while a$="0; 75"
print "Yes"
loop
Так писать? Про то, как писать inkey$="" я не очень понял (разве не надо просто писать код кнопки в кавычках?).

Добавлено через 13 минут
А как переключать с русского на английский?
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
12.03.2010, 10:23
давайте проще: что вы хотите получить? Или вам просто хочется посмотреть как inkey$ работает?
переключение языка работает если у вас драйвер русских букв есть, тогда, например правый и левый ctrl+shift
0
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
12.03.2010, 17:57  [ТС]
Мне надо увидеть, как он работает, чтобы знать.
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
12.03.2010, 18:34
программу не переписывайте, а копируйте с экрана, тогда в Бейсике непонятные значки станут русскими буквами

PureBasic
1
2
3
4
5
6
7
8
9
10
11
CLS
LOCATE 10, 20
PRINT "Є®Ј¤  * ¤®Ґбв ᬮваҐвм *  жЁдҐаЄЁ, * ¦¬ЁвҐ Їа®ЎҐ«"
DO
a$ = INKEY$
n = n + 1
LOCATE 12, 30
PRINT n
LOOP UNTIL a$ = CHR$(32)
LOCATE 14, 30
PRINT "а Ў®в  § Є®*зҐ* "
1
БТР - мой друг
 Аватар для Hagrael
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
16.03.2010, 08:23  [ТС]
Что за CHR$ ?
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
16.03.2010, 08:27
Цитата Сообщение от Hagrael Посмотреть сообщение
Что за CHR$ ?
Вообще-то, прежде, чем пытаться составлять программы, нормальные люди изучают все операторы и функции языка. Откройте справку в QBasic и познакомьтесь с этими командами, тогда не надо будет бегать на форум по каждому пустяку и заставлять нас читать лично вам лекции по Бейсику.
0
 Аватар для yevrowl
304 / 75 / 6
Регистрация: 27.04.2022
Сообщений: 238
08.05.2022, 16:53
Прошу подсказать, почему не работает конструкция:

QBasic/QuickBASIC
1
2
3
4
5
6
7
8
SELECT CASE INKEY$
    CASE CHR$(49): PRINT "Key 1"
    CASE CHR$(50): PRINT "Key 2"
    CASE CHR$(51): PRINT "Key 3"
    CASE CHR$(52): PRINT "Key 4"
    CASE CHR$(53): PRINT "Key 5"
    CASE CHR$(27): PRINT "Key Esc"
END SELECT
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
08.05.2022, 18:12
Цитата Сообщение от yevrowl Посмотреть сообщение
Прошу подсказать, почему не работает конструкция
Где? На QBasic? QB? FB? QB64?

Только что на QB4 забил - работает(в цикле само собой). Но сделано криво, я бы так делать не стал.

P.S: В чём проблема создать новую тему? Зачем поднимать тему 12 летней давности?

Добавлено через 11 минут
FreeBASIC Compiler - Version 1.00.0 (09-14-2014), built for win32 (32bit)
Тоже с ходу работает, проверил. Консольный тип сборки. И там и там работает.
1
 Аватар для yevrowl
304 / 75 / 6
Регистрация: 27.04.2022
Сообщений: 238
08.05.2022, 18:57
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Где? На QBasic? QB? FB? QB64?

Только что на QB4 забил - работает(в цикле само собой).
Нюанс с циклом я упустил, теперь засунул в Do Loop и заработало. Спасибо за помощь.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2022, 18:57
Помогаю со студенческими работами здесь

Аналог INKEY$(ф-ция из QuickBasic) на PureBasic
Собственно вопрос в названии темы. Спрашиваю, т.к. нужна данная функция в графическом режиме. Я, конечно её сэмулировал с помощью...

При попытке добавить оператор else, появляется оператор "Ожидался оператор"
Здравствуйте, помогите пожалуйста. У меня есть программа, которая решает квадратные уравнения. Но почему-то, когда я пытаюсь добавить...

Используя условный оператор if и оператор альтернативного выбора otherwise найдите значение функции
Помогите пожалуйста написать алгоритм с проверкой условия. Ни как не пойму, там и в зависит от х, и н зависит от х. Файл прилагается. ...

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые трудности. Будьте добры, помогите решить. Буду...

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1
В С++ я ноль, помогите пожалуйста написать прогу Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru