Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
05.06.2018
Размер:
30.21 Кб
Скачать

Билет №29. Программы, управляемые событиями.

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

Однако концепция последовательной программы, несмотря на свою универсальность, оказывается неэффективной для современного персонального компьютера, имеющего развитую систему ввода (с клавиатуры, мыши, сканнера и др.). В таких компьютерах работу программы целесообразно рассматривать как ожидание некоторого события (нажатия клавиши, щелчка на кнопке мыши и др.) и программную реакцию на возникшее событие. Такая программа и называется программой, управляемой событиями. Она представляет собой новый стиль программ, обеспечивающий современный пользовательский интерфейс. Этот стиль применяется практически во всех современных программных системах, реализующих пользовательский интерфейс.

Событие можно представлять как некоторое сообщение (пакет информации), идентифицирующее и описывающее ситуацию, на которую должна реагировать программа. Все такие события можно разделить на несколько функциональных групп: события клавиатуры (нажатия, отпускания клавиш, удерживания нажатой клавиши), события мыши (нажатие, отпускание, удерживание нажатой кнопки, щелчок, двойной щелчок) и другие. Особую группу составляют сообщения от операционной системы и от других компонент прикладных программ. Особенностью событий является их неделимость: они не разбиваются на более мелкие части.

Программы, управляемые событиями, обычно включают три характерных фазы:

 Инициализация (начальная установка, настройка).

 Режим ожидания событий (бесконечный цикл ожидания).

 Завершение программы (освобождение памяти и других ресурсов).

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

Задача 4.2.6(29)

program alex29;

type mas=array[1..4,1..5]of integer;

var a:mas;

i,j,k,l:integer;

sr1,sr2:real;

procedure proc(x:mas;n,m:integer;var kol:integer;var sr:real);

var i,j:integer;

begin

kol:=0;

sr:=0;

for j:=n to m do

for i:=1 to 3 do

begin

if x[i,j]=0 then kol:=kol+1

else sr:=sr+x[i,j];

end;

end;

begin

for i:=1 to 3 do

for j:=1 to 4 do

read(a[i,j]);

proc(a,1,2,k,sr1);

writeln('v levoi polovine ',k,'elementov');

proc(a,3,4,l,sr2);

writeln('v pravoi polovine ',l,'elementov');

if sr1<sr2 then writeln('v levoi menshe ')

else if sr2<sr1 then writeln('v pravoi menshe')

else writeln('odinakovo');

readln;

end.

Соседние файлы в папке 1 семестр сессия