Межрегиональный центр переподготовки специалистов Лабораторная работа №1






Скачать 85.71 Kb.
НазваниеМежрегиональный центр переподготовки специалистов Лабораторная работа №1
Дата публикации19.10.2013
Размер85.71 Kb.
ТипЛабораторная работа
ley.se-todo.com > История > Лабораторная работа


Федеральное агентство связи
Сибирский Государственный Университет Телекоммуникаций и Информатики
Межрегиональный центр переподготовки специалистов

Лабораторная работа № 1



по дисциплине:

Операционные системы




Выполнил:

Группа:

Проверил:
Новосибирск,

2012 г.

Лабораторные работы основаны на лекционном материале и выполняются после изучения соответствующего теоретического раздела. В методических указаниях к лабораторным работам дополнительно рассматривается необходимый для их выполнения теоретический материал. Помимо этого, конкретно каждая работа снабжена подробными методическими указаниями, сопровождающими текст задания. Среда программирования – Turbo Pascal 7.0.

Начальные данные во все программы передавать с помощью параметров командной строки. При запуске любой программы без параметров выводить образец требуемого формата ввода командной строки.

Резидентная программа, использующая прерывания, не может быть запущена из интегрированной среды программирования. Следует создавать на диске exe-модуль и запускать его из командной строки.

Необходимо предусмотреть обработку любых возможных ошибок, т.е. программа не должна «зависать» ни при каких начальных данных, а в случае ошибки выдавать соответствующее сообщение и завершать работу.

По каждой лабораторной работе необходимо выполнять отчёт, включающий в себя:

  1. постановку задачи;

  2. описание входных данных программы и её результатов;

  3. описание основных переменных, а также основных блоков и подпрограмм;

  4. алгоритм решения задачи;

  5. текст программы;

  6. результаты работы, если они есть (вариант – копия экрана), или результаты тестирования;

  7. ответы на контрольные вопросы.

На проверку преподавателю помимо отчёта о выполнении работы обязательно предоставлять как исходный код, так и откомпилированный модуль (exe-файл) программы. Если ответ на контрольные вопросы предполагает изменение кода, то следует прилагать все варианты файлов с пояснениями в отчёте, какой из файлов к какому вопросу относится. Если изменение кода незначительное (одна – две строки, не более), то допускается сделать только соответствующие пояснения в отчёте – при ответе на соответствующий вопрос указать: «в программе должны быть сделаны следующие изменения…» (например, «строку с №… необходимо заменить на ... такую-то…» или «условие … заменить на …»)

Оглавление

  1. Постановку задачи 3

  2. Описание входных данных программы и её результатов 3

  3. Описание основных переменных, а также основных блоков и подпрограмм 4

  4. Алгоритм решения задачи 4

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

  6. Результаты работы, если они есть (вариант – копия экрана) 5

  7. Ответы на контрольные вопросы 7


Лабораторная работа
Тема: Обработка прерываний клавиатуры.
Задание для выполнения лабораторной работы №1



  1. Постановка задачи


Написать программу, которая должна «озвучивать» клавиатуру, т.е. после запуска этой программы нажатие любой клавиши на клавиатуре будет сопровождаться звуковым сигналом. Клавиатура при этом должна оставаться работоспособной, т.е. продолжать выполнять свои основные функции в нормальном темпе.

Программа должна быть резидентной, т.е. оставаться в памяти после своего завершения.

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

Необходимо предоставить пользователю возможность «выключать» и «включать» заново звуковое сопровождение работы клавиш. Использовать для «выключения/включения» звука нестандартную комбинацию клавиш: сочетание нажатой клавиши с какой-либо ещё, например, +
Решение задачи может быть обеспечено, если бы клавиатура сохраняя свои функции, как устройство ввода, печатала вводимые символы и выполняла функции управляющих клавиш и одновременно служила вводом данных для воспроизведения звука при нажатии клавиш по заданным параметрам частоты и длительности звучания. Очевидно, что решение подобной задачи в программе возможно с использованием прерываний.


  1. Описание входных данных программы и её результатов



Входными данными в программе являются длительность звучания воспроизводимого звука и его частота, задаваемая встроенной процедурой модуля Crt: Sound(frequency:word);

Длительность звучания задается паузой между процедурами Sound(frequency:word); - включение звука, и Nosound; - выключение звука. Начальная частота и длительность звучания задается в программе в виде значения переменных dl:=2000; (длительность звучания в милисекундах) и ch:=1000; (в герцах).

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

Результатом работы является резидентно установленная программа, озвучивающая нажатие клавиш и выполняющая параллельно работу этих клавиш. Результат действий с клавиатурой отображается на экране. Озвучивание выполняется с помощью системного динамика. Звук может быть отключен и включен пользователем в любое время. Аккордом для переключения принято нажатие двух клавиш: Shift + Esc.

Результаты работы в виде скринов представлены в разделе 6.


  1. ^ Описание основных переменных, а также основных блоков и подпрограмм



В программе переменные заданы глобально в соответствии с нижеследующим описанием:
^ OldKey : procedure; - переменная процедура для сохранения указателя на исходный обработчик события.
сd,cd1 : byte; - переменные целочисленного типа (byte), хранящие состояния порта (клавиатуры) текущее и предыдущее.

sndON :boolean; - переменная логического типа, предназначенная для хранения состояния режима озвучивания (включено\выключено).

np :word; - количество параметров, передаваемых программе при запуске ее.
s1, s2 :string; - строковые переменные для передачи в программу частоты и длительности звучания при включенном режиме озвучивания и нажатии клавиш.

dl, ch :integer; - целочисленные переменные, хранящие длительность звучания и частоту звука.
t,u :integer; - целочисленные переменные для получения введенных строкой параметров, преобразованных в целочисленный тип.


  1. ^ Алгоритм решения задачи


Считываются входные параметры при запуске программы с командной строки. Обработчиком прерываний назначается собственная процедура в которой определяется нажатая клавиша и переключается в случае нажатия клавиш Shift + Esc. режим озвучивания. При режиме включенного озвучивания нажатие клавиш сопровождается звуком заданной частоты и длительности. Управление передается стандартному обработчику прерываний.


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



{$M $1000,0,0}

Program Sounding_Keyboard;

Uses Crt,Dos;

Var OldKey:procedure;

c,c1 :byte;

sndON :boolean;

np :word;

s1,s2 :string;

dl ,ch :integer;

t,u :integer;

{$F+} { - включение директивы компилятора для формирования дальнего вызова}

Procedure Key; interrupt;

Begin

р.8)

begin

if sndON then begin sndON:=false; end {если озвучивание включено… }

else begin s

….

по заданным параметрам }

Inline($9C);

OldKey; { возвращение на исходное событие }

End;

{$F-} {- восстановление прежнего режима }
BEGIN

sndON:=true; { начальное значение состояния режима }

dl:=2000; {исходная длина звучания}

… s2:=paramstr(2);

val(s1,t,u);

if (u=0) then

begin dl:=t; end; {определить длительность звучания}

val(s2,t,u);

if u=0) and (t>0) then begin ch:=t; end; {определить частоту}

end;

c:=0; {обнуление текущего состояния}

GetIntVec($9,@OldKey); {возвращение дальнего адр. хранящегося в указ. векторе прер.}

SetIntVec($9,Addr(Key));{установление адреса процедуры обр. в заданом векторе прер.}

Keep(0); {заверш. программы с сохранение ее в памяти резидентно}

END.


  1. Pезультаты работы, если они есть (вариант – копия экрана), или результаты тестирования;


Рис.1. Запуск скомпилированного модуля LABOS1.exe из командной строки.

Рис.2. Запуск из командной строки с параметрами длительности и частоты.

Внесем в программу (в процедуру Key) вывод установленных параметров звука при включенном режиме озвучивания:
Procedure Key; interrupt;

Begin

c1:=c; {-сохранить состояние в предыдущее}

c:=Port[$0]; {- получить текущее состояние}

If (c=1) and… {- если нажато Shift + Esc. тогда…}

begin

if sndON then begin sndON:=false; end {если озвучивание включено… }



end;

If sndON=true then { если озвучивание включено … }

begin Sound(dl); delay(ch); Nosound;

end;

Inline($9C);

OldKey; { возвращение на исходное событие }

End;

^ Рис.3. Запуск с параметрами измененной программы с выводом заданных параметров при включенном режиме озвучивания.

Рис.4. При вводе очень больших значений программа при включенном режиме озвучивания программа сохраняет предыдущее значение длины звучания. При выключенном режиме озвучивания – значения, установленные при инициализации.

Рис.5. При некорректном задании частоты программа установила значения принятые при инициализации.


  1. Oтветы на контрольные вопросы.



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

^ Ситуация представлена в разделе 6 сохраненными скринами. Если будут заданы неверные значения параметров, будут приняты значения, заданные изначально.

  1. Как будет работать программа, если задавать величину длительности звукового сигнала очень большой? Почему?

Параметр при включенном режиме озвучивания принят равным исходному. Введенное значение не может быть обработанным стандартным способом (блокируется собственным обработчиком).

  1. Как можно определить скан-коды требуемых клавиш?

^ Для определения кодов можно считать содержимое порта $60

  1. В каком случае при нажатии и отпускании клавиши может раздаваться «двойной» сигнал?

^ Если клавиша будет нажата длительное время.

  1. Проверьте, что произойдет, если нажать клавишу и удерживать её в нажатом состоянии? Варианты – раздаётся многократно повторяемый звуковой сигнал, сигнал прозвучал один раз. Что нужно изменить в программе, чтобы она изменила свой вариант поведения на альтернативный?

^ Чтобы изменить на альтернативный, нужно при запомненной клавише обрабатывать таймер, воспроизводя звуки раз в несколько долей секунды.

  1. Видоизменить программу для того, чтобы при нажатии любой клавиши раздавался звук, соответствующий заданной в качестве параметра частоте сигнала, а отпускание клавиши сопровождал звук более высокий (выше на 50% от заданной частоты).

^ Для этого нужно проверять тип полученного кода: соответствует он нажатой клавише или отпущенной. В последнем случае частоту увеличить на заданную величину.

  1. Для некоторых специальных клавиш установить длительность звукового сигнала большей в 2–3 раза (например, для , или ) – сделать в программе соответствующие изменения.

^ Установить проверку кодов специальных клавиш, и при их определении увеличить длину задержки в соответствующее количество раз.

Приложенные файлы в архиве


^ Для получения работы в полном объеме и действующих файлов программы свяжитесь с автором:

ICQ: 482030413 Skype: nikosimych Mobil: 89082204152 или по майлу (см. на главной странице внизу «Контакты»

Литература


  1. Зуев Е.А. Turbo Pascal практическое программирование. М. 1998 г.

  2. Данкан Р. Профессиональная работа в MS-DOS. – М.: Мир. – 1993 г.

  3. А.И. Гордеев. Системное программное обеспечение. С-П: Питер – 2001 г.












Добавить документ в свой блог или на сайт

Похожие:

Межрегиональный центр переподготовки специалистов Лабораторная работа №1 iconМежрегиональный центр переподготовки специалистов Контрольная работа №1 По дисциплине
Ррл, определению параметров передатчика и приёмника, расчёту мощности шумов в канале тч. Варианты заданий выбираются в соответствии...

Межрегиональный центр переподготовки специалистов Лабораторная работа №1 iconЛабораторная работа «Ремонт торцевых уплотнений» Лабораторная работа...
Машины и аппараты химических производств и предприятий строительных материалов, в 2004 г защитил кандидатскую диссертацию по специальности...

Межрегиональный центр переподготовки специалистов Лабораторная работа №1 icon1. общие положения
Аттестационная работа является завершающей стадией процесса обучения специалистов Банка России по программам профессиональной переподготовки,...

Межрегиональный центр переподготовки специалистов Лабораторная работа №1 iconЛабораторная работа №2
Работа со списками. Создание автоматических промежуточных отчетов и сводных таблиц

Межрегиональный центр переподготовки специалистов Лабораторная работа №1 iconДоклада Организация
Ооо «межрегиональный центр обслуживания малых и средних предприятий югинформинвест»

Межрегиональный центр переподготовки специалистов Лабораторная работа №1 iconОрганизация тьюторского сопровождения в общеобразовательном учреждении
Гоу дпо белгородский региональный институт повышения квалификации и профессиональной переподготовки специалистов

Межрегиональный центр переподготовки специалистов Лабораторная работа №1 icon«Заказчик» Директор цпк специалистов О. Н. Шушлина здравоохранения»
Наименование государственного заказчика: Государственное образовательное учреждение дополнительного профессионального образования...

Межрегиональный центр переподготовки специалистов Лабораторная работа №1 iconПримерная программа по раннему обучению английского языка в первом...
Белгородский региональный институт повышения квалификации и профессиональной переподготовки специалистов

Межрегиональный центр переподготовки специалистов Лабораторная работа №1 iconЛабораторная работа 8
Машковский М. Д. Лекарственные средства Медицина, 1984. ч. I, с. 325, 403, ч. II, с. 320, 322

Межрегиональный центр переподготовки специалистов Лабораторная работа №1 iconЛабораторная работа 1
Цель работы: ознакомиться с топографической картой и научиться решать следующие задачи



Школьные материалы


При копировании материала укажите ссылку © 2018
контакты
ley.se-todo.com

Поиск