Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа с консолью в среде Windows - для студ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
129.02 Кб
Скачать

Задание для самостоятельной работы

С использованием функции ReadConsoleInput разработать программу, реализующую ввод символов с клавиатуры с последующим их отображением на экране. В случае нажати на клавиатуре клавиши “Правый ALT” вывести сообщение вида “< Right Alt pressed >”. Нажатия остальных служебных клавиш не должны приводить к выводу какой-либо информации на экран. Ввод данных с клавиатуры и их вывод на экран осуществлять до тех пор, пока не будет выполнен двойной щелчок любой клавиши мыши.

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

1) В ходе выполнения функция ReadConsoleInput проверяет входной буфер консоли. Если в нем есть записи, то она их обрабатывает; если записей нет, то ждет их появления (то есть ждет любых событий - это может быть даже движение мыши влево, вправо и т.д.- на любое событие операционная система производит заполнение входного буфера консоли, то есть создает запись). В результате выполнения функции ReadConsoleInput заполняется переменная INPUT_RECORD_buf и регистр еах.

2) В результате нажатия клавиши во входном буфере появятся две записи: одна соответствует опусканию клавиши, а вторая - подъему клавиши. Функция ReadConsoleInput проверяет входной буфер консоли и заполнит переменную INPUT_RECORD_buf этими записями. То есть в переменной последовательно появятся две записи, отличающиеся только одним полем - признаком того опустили клавишу или подняли клавишу. При отображении на экране с использованием вызова функции WriteConsole будет выведено два одинаковых символа. Для исключения этой ситуации нужно обработать только опускание клавиши, а подъем - проигнорировать.

3) При нажатии функциональных клавиш, а также клавиш ALT, SHIFT, CTRL и пр. в поле AsciiChar записывается нулевое значение. При выводе на экран символа с кодом ноль отображается пробел. Чтобы не выводить символы с кодом ноль, предварительно необходимо проверить значение поля AsciiChar на ноль, и в случае равенства нулю не производить вывод на экран.

Задание для самостоятельной работы

Написать программу для ввода с клавиатуры массива из 5 целых положительных чисел. Числа должны быть четырехзначными. Отсортировать полученный массив по возрастанию и вывести на экран. Найти сумму максимального и минимального элементов массива и вывести на экран.

"0" = 30h

"1" = 31h

"2" = 32h

"3" = 33h

"4" = 34h

"5" = 35h

"6" = 36h

"7" = 37h

"8" = 38h

"9" = 39h

"Enter" = 0Dh = 13

"Backspace" = 08h = 8

17