Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Программа для "озвучивания" клавиатуры
СообщениеДобавлено: 09 дек 2019, 12:35 
Не в сети
Начинающий
Зарегистрирован:
07 дек 2019, 18:42
Сообщений: 11
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Задание.

Написать программу, которая должна “озвучивать” клавиатуру, т.е. после запуска этой программы нажатие любой клавиши на клавиатуре будет сопровождаться звуковым сигналом. Клавиатура при этом должна оставаться работоспособной, т.е. продолжать выполнять свои основные функции в нормальном темпе.
Программа должна быть резидентной, т.е. оставаться в памяти после своего завершения.
В качестве пробного варианта длительность звукового сигнала и частоту задать константами в программе. Когда будет получена устойчивая работа программы, изменить её таким образом, чтобы длительность звукового сигнала и его частота задавались в качестве параметров при запуске программы.
Необходимо предоставить пользователю возможность “выключать” и “включать” заново звуковое сопровождение работы клавиш. Использовать для “выключения/включения” звука нестандартную комбинацию клавиш: сочетание нажатой клавиши <Shift> с какой-либо ещё, например, <Shift>+<Esc> …

Программу написал. Подскажите пожалуйста какие нужно сделать изменения, чтобы переключение режима выполнялось по нажатию Alt+K? Заранее благодарю

Handler0 - переменная процедурного типа для запуска старой процедуры обработки прерывания клавиатуры.
chast - частота звукового сигнала.
dlit - длительность звукового сигнала.
b - указывает, надо ли озвучивать нажатие клавиш.
keys - хранит статусы специальных клавиш.

Handler – процедура для обработки прерываний клавиатуры.

Алгоритм решения

• Прием и анализ входных параметров;
• Если озвучивание включено, то при нажатии клавиш выдается звуковой сигнал.
• Если нажата левая клавиша Shift и F4, то озвучивание клавиш включается, если было отключено или отключается, если было включено.

Текст программы

program lab1;

{$M $1000, 0, 0}

uses Crt, Dos;

var
Handler0: procedure;
chast: Integer; { Частота звукового сигнала }
dlit: Integer; { Длительность звукового сигнала }
b: Boolean; { Равно True, если надо озвучивать нажатия клавиш }
keys: Byte Absolute $0000:$0417;

{$F+}
{ Обработчик прерывания клавиатуры }
procedure Handler; interrupt;
begin
{ Проверяем нажатие ALT - K }
if (Port[$60] = 37 and keys)then
b := not b;
if b then begin
Sound(chast);
Delay(dlit);
NoSound;
end;
inline($9C);
Handler0;
end;
{$F-}

var
er1, er2: Integer;
begin
if ParamCount <> 2 then begin
Writeln('Должно быть два параметра:');
Writeln('(1) Частота звукового сигнала');
Writeln('(2) Длительность звукового сигнала (максим. значение - 1000)');
Readln;
Halt;
end;
Val(ParamStr(1), chast, er1);
Val(ParamStr(2), dlit, er2);
if (er1 <> 0) or (er2 <> 0) or (chast <= 0) or (dlit <= 0) or (dlit > 1000) then begin
Writeln('Неверные параметры');
Readln;
Halt;
end;
Writeln('Васильев');
Writeln('Left Shift-F4 - включение\выключение озвучивания');
b := True;
GetIntVec($9, @Handler0);
SetIntVec($9, Addr(Handler));
Keep(0);
end.


Последний раз редактировалось Andy 09 дек 2019, 14:10, всего редактировалось 1 раз.
Название темы изменено модератором.

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ 1 сообщение ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Раскладка клавиатуры в формулах

в форуме Microsoft Word

venjar

7

1031

14 июл 2014, 20:59

Многопоточная программа

в форуме Информатика и Компьютерные науки

Nataly-Mak

0

124

27 июн 2019, 09:12

Программа на ассемблере

в форуме Информатика и Компьютерные науки

PINGuinich

0

101

29 июн 2019, 15:06

Программа для рыбалки

в форуме Размышления по поводу и без

Hoper

2

100

23 сен 2019, 11:44

Программа Maxima

в форуме Maple

Shkolnik

2

828

18 апр 2012, 21:22

Материал и программа.

в форуме Информатика и Компьютерные науки

Aleksey_Varov

0

257

08 янв 2012, 17:55

Программа рассчёта

в форуме Информатика и Компьютерные науки

sassha

0

289

05 янв 2012, 20:58

Программа с метками

в форуме Информатика и Компьютерные науки

johnybsraynilol

1

188

02 ноя 2017, 18:23

Программа для обнаружения закономерностей

в форуме Информатика и Компьютерные науки

Alena Alina

12

578

13 ноя 2016, 04:15

Программа для пересчета координат на Си++

в форуме Информатика и Компьютерные науки

Manetty

1

235

14 мар 2017, 09:15


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2020 MathHelpPlanet.com. All rights reserved