168____________________________________________

'стирание очередного символа IP (k% < 0) OR (k% > 9) THEN 'проверка на ошибку ввода

PRINT "НЕ ЦИФРА!": SYSTEM 'выход по ошибке ввода END IF 'конец условного оператора a(i%) = k% 'ввод очередной цифры NEXT i% 'конец цикла записи числа dh$ = "" 'заготовка для вывода first% = 1 'номер начального разряда DO 'начало цикла перевода j% = О

FOR i% = first% ТО last% j% = j% * 10 + a(i%) a(i%) = j% \ 16 j% = j% MOD 16 NEXT i%

IP a(first%) = 0 THEN first% = first% + 1 dh$ = MID$(digits$, j% + 1, 1) + dh$

'формирование строки вывода LOOP WHILE first% < last% 'конец цикла перевода PRINT dh$ 'вывод результата SYSTEM 'возврат в MS DOS

которые очень похожи друг на друга. Для запуска этих утилит необходимо в своем каталоге создать файлы H_TO_D.BAT и D_TO_H.BAT с содержимым

QBASIC /RUN H_TO_D.BAS И

QBASIC /RUN D_TO_H.BAS

соответственно.

Проверка правильности работы этих утилит должна производиться совместно. Для этого нужно произвольное (в пределах допустимой разрядности) число перевести из десятичной системы в шестнадцатеричную и обратно. Если в результате будет получено первоначальное число, то правдоподобие их правильности возрастает. Многократные проверки такого рода при их положительных результатах в конце концов подтверждают отсутствие ошибок с возрастающей вероятностью.

В результате девятого занятия желающие составить какие-либо полезные для своей деятельности утилиты ознакомились со средствами решения этой задачи. Здесь также показана возможность осуществления вычислений с целыми числами такой разрядности, которая ограничена размерами строки.

4.10. ВЫЗОВ ПРЕРЫВАНИЙ НА ПРИМЕРЕ МЫШИ

Вы уже наверняка заметили один существенный недостаток языка QBasic — отсутствие процедур и функций, осуществляющих ввод информации от мыши. Это довольно странно, потому что компания Microsoft ши-