72 (189)

72 (189)



108 Turbo Pascal • Ćwiczenia praktyczne

zegar aż do momentu naciśnięcia przez użytkownika klawisza Enter. Jest jednak na to sposób — użycie przerwania zegarowego. Przerwanie zegarowe wywołuje się co 55 milisekund, powodując chwilowe opuszczenie dotychczas wykonywanego programu (nawet w trakcie wykonywania Readln) i wykonanie procedury obsługi przerwania.

ĆWICZENIE

4.19


Wyświetlanie czasu „w tle"

Napisz program odpytujący z tabliczki mnożenia. W czasie udzielania odpowiedzi przez użytkownika w rogu ekranu powinien pojawiać się czas pozostały do momentu udzielenia prawidłowej odpowiedzi. Należy wykorzystać przerwanie zegarowe.

Numer przerwania zegarowego zapisany szesnastkowo w Pascalu to $1C. Aby obsłużyć przerwanie, program na początku zapamiętuje aktualny wektor przerwań (GetIntVec) — w celu odtworzenia go na końcu programu — a następnie nakierowuje go na naszą procedurę (za pomocą SetIntVec). Od tej pory regularnie około 18 razy na sekundę program będzie „zaglądał” do naszej procedury. Przed procedurą znajduje się kilka dyrektyw kompilatora {$F+,S-,W-}, a po nagłówku występuje słowo interrupt. Nie będziemy wnikać w znaczenie tych niuansów. Wystarczy nam na razie wiedza, że zaleca się stosowanie takiej konstrukcji podczas tworzenia procedury obsługi przerwania. W momencie wejścia do procedury kursor może się znajdować w dowolnym miejscu ekranu. Należy więc zapamiętać położenie kursora (funkcje WhereX, WhereY), a przy wyjściu z procedury — odtworzyć je na ekranie.

program cw4_19;

{ Program wyświetla licznik sekund na ekranie niezależnie }

{ od czynności wykonywanych aktualnie przez użytkownika. }

{ Wykorzystane jest przerwanie zegarowe.    }

{ Katalog r4_03 : 4_19.pas    }

uses

Crt, Dos; var

Licznik : Word;

StaryWektor : Pointer;

{$F+,S-,W-}

procedurę Rysuj Licznik; interrupt;

var X, Y ; Word; begin

if (Licznik mod 18) - O then

begin

X WhereX;

Y WhereY;

GotoXY(75, 1);

WriteCLicznik div 18, ' ');

GotoXY(X, Y);

end;

if Licznik>0 then

Dec(Licznik);

end;

{$F-,S+>

procedurę Sprawdzian; var

I, A, B, Wynik, Prawidłowe : Integer;


Wyszukiwarka

Podobne podstrony:
70 (198) 106 Turbo Pascal • Ćwiczenia praktyczne ĆWICZENIE 4.17Określanie daty urodzeniaNapisz progr
74 (177) 110 Turbo Pascal • Ćwiczenia praktyczne else if Zmienna-wartosc2 then dzialanie2 else
76 (177) 112 Turbo Pascal • Ćwiczenia praktyczne begin if (X+dX>-l) and (X+dX<-80) and (Y+dY&g
78 (168) 114 Turbo Pascal • Ćwiczenia praktyczne Utworzymy dwa zbiory oparte na typie znakowym. W pi
80 (171) 116 Turbo Pascal • Ćwiczenia praktyczne ĆWICZENIE 4.24Wykorzystanie typu zbiorowegoZdefiniu
82 (164) 118 Turbo Pascal • Ćwiczenia praktyczne program cw4_25; { Program wczytujący do zmiennej ty
84 (153) 120 Turbo Pascal • Ćwiczenia praktyczne program cw4_26; { Program wczytujący do tablicy z r
Turbo Pascal Ćwiczenia praktyczne Wydanie I Porno) połowowe ;a;ady programowania Noocz twcłzyć alg
Zgodnie z praktyką międzynarodową aż do momentu wymiany not ratyfikacyjnych strony mają prawo do wpr
Więcej zajęć praktycznych, np. ćwiczenia z praktykami (a nie zmuszanie do wykładów otwartych - bardz
Krew0013 Ćwiczenia praktyczne 1)    Pobieranie krwi do badania •    Um
25 □ LEKCJA 26 Turbo Pascal -instrukcje warunkoweZASOBY Q Instrukcje warunkowe o Ćwiczenia O
Zeszyt Cwiczeń FUNKCJI POZNAWCZYCH 1 (39) ĆWICZENIA PRAKTYCZNE Inne ćwiczenia praktyczne, które może
Przykłady opisów: Kostera-Kostrzewski, Marek. Ilustrator 9. Ćwiczenia praktyczne. Gliwice, 2002. ISB
Wykłady, Ćwiczenia, Praktyka zawodowa (PZ): 1. zaliczenie testowe oraz pytania otwarte: A: Pytania z
ramach ćwiczeń praktycznych (wyjazdowych) w ośrodkach zajmujących się biotechnologią w rozrodzie
Ćwiczenia praktyczne: 1.    Definiowanie roli menedżera w organizacj i. 2.

więcej podobnych podstron