Вывод заголовка pаботы в виде "бегущей стpоки". Методы вывода и основные параметры

Страницы работы

Содержание работы

Министерство Связи РФ СибГУТИ

                                                                                                                                       Кафедра ПМиК

Курсовая работа

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

вариант №20.

Выполнила:

Гр П-12

Проверила: Бах ОА

Дата:

Новосибирск 2003 г

Задачи.

1. Вывод заголовка pаботы (фамилия и имя автоpа и название pаботы) в виде "бегущей стpоки". Место вывода (верх или низ экрана) задавать в качестве параметра.

2. Два пpоцесса: один генеpиpует случайные числа и выбиpает в буфеp те, котоpые являются полным квадpатом, втоpой выводит их из буфеpа на экpан (по материалам лаб. работы №7).

3. В огpаниченной области экpана pазместить движущийся объект (напpимеp, летающий и отpажающийся от гpаниц окна шаpик).

4. В углу экрана с заданными в качестве параметров координатами поместить часы, показания которых должны соответствовать системному времени. Использовать в качестве основы материал лабораторной работы №6.

Procedure Ramka(x1,x2,y1,y2:integer)

Рисует рамки для всех процессов и меню. При вызове процедуры передаются параметры левого верхнего угла (х1), правого верхнего (х2), левого нижнего (у1) и правого нижнего угла (у2).

Procedure In_Buf;

Генерирует квадраты чисел. Берем рандомом любое число (j) и проверяем, если round(sqrt(j))-sqrt(j)=0, то оно является полным квадратом и мы его заносим в буфер квадратов.

Procedure Out_buf;

Осуществляет вывод занесенных в буфер полных квадратов.

Procedure Process4

Процедура выводит считанный в буфер текст в заданном окне.

Procedure Dvig;

Процедура осуществляет движение объекта в заданном окне(параметры окна задаются при вызове процедуры).

ProcedureStrka

Вывод заголовка pаботы (фамилия и имя автоpа и название pаботы) в виде "бегущей стpоки". Место вывода (верх или низ экрана) задается в качестве параметра.

ProcedureKlava

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

ProcedureTime

Процедура выводит на экран часы и считает тики. Место вывода (верх или низ экрана) задается в качестве параметра.

ProcedureError

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

uses dos,crt;

const max=20;

var s_x,s_y : byte;

ver,gor : boolean;

time_y,time_x : byte;

free : integer;

Buffer_Sqrt: Array [1..max] Of Integer;

buf_x,buf_y : byte;

i : integer;

oldklava,Oldhandler:procedure;

diskret,time1 : integer;

temp_sec,h, m, sec, Sec100 : Word;

cod1,cod2,cod3,cod4 : integer;

ox,oy,count1,count2 : integer;

n1,n2,n3,n4 : integer; {znachenie diskreta}

cs,in_b,out_b,exit1,clock,stroka,objekt : boolean;

time_v : array[1..4] of byte;

procedure error;

begin

clrscr;

writeln ('Формат вывода: turbo.exe [p1] [p2] [p3] [p4]');

writeln;

writeln ('p1:  Вывод бегущей строки вверху экрана ');

writeln ('      1  вверху экрана ');

writeln ('      2  внизу  экрана ');

writeln ('p2: Часы по X');

writeln ('      1  вверху экрана ');

writeln ('      2  внизу  экрана ');

writeln ('p3: Часы по Y');

writeln ('      1  вверху экрана ');

writeln ('      2  внизу  экрана ');

writeln ('p4:     Значение дискрета');

writeln;

writeln ('Пример: turbo 0 1 1 1');

end;

procedure klava;

interrupt;

begin

if port[$60]=59 then

{F1}

if (clock) then

begin

clock:=(not clock);

gotoxy(59,6);

write('off');

end

else

begin

clock:=true;

gotoxy(59,6);

write('on  ');

end;

if port[$60]=60 then

{F2}

if (stroka) then

begin

stroka:=(not stroka);

gotoxy(59,7);

write('off');

end

else

begin

stroka:=true;

gotoxy(59,7);

write('on  ');

end;

if port[$60]=61 then

{F3}

if (objekt) then

begin

objekt:=(not objekt);

gotoxy(59,8);

write('off');

end

else

begin

objekt:=true;

gotoxy(59,8);

write('on  ');

end;

if port[$60]=62 then

{F3}

if (in_b) then

begin

in_b:=(not in_b);

gotoxy(59,9);

write('off');

end

else

begin

in_b:=true;

gotoxy(59,9);

write('on  ');

end;

if port[$60]=63 then

{F3}

if (out_b) then

begin

out_b:=(not out_b);

gotoxy(59,10);

write('off');

end

else

begin

out_b:=true;

gotoxy(59,10);

write('on  ');

end;

if port[$60]=1 then exit1:=true;

Похожие материалы

Информация о работе