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
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 progr74 (177) 110 Turbo Pascal • Ćwiczenia praktyczne else if Zmienna-wartosc2 then dzialanie2 else76 (177) 112 Turbo Pascal • Ćwiczenia praktyczne begin if (X+dX>-l) and (X+dX<-80) and (Y+dY&g78 (168) 114 Turbo Pascal • Ćwiczenia praktyczne Utworzymy dwa zbiory oparte na typie znakowym. W pi80 (171) 116 Turbo Pascal • Ćwiczenia praktyczne ĆWICZENIE 4.24Wykorzystanie typu zbiorowegoZdefiniu82 (164) 118 Turbo Pascal • Ćwiczenia praktyczne program cw4_25; { Program wczytujący do zmiennej ty84 (153) 120 Turbo Pascal • Ćwiczenia praktyczne program cw4_26; { Program wczytujący do tablicy z rTurbo Pascal Ćwiczenia praktyczne Wydanie I Porno) połowowe ;a;ady programowania Noocz twcłzyć algZgodnie z praktyką międzynarodową aż do momentu wymiany not ratyfikacyjnych strony mają prawo do wprWięcej zajęć praktycznych, np. ćwiczenia z praktykami (a nie zmuszanie do wykładów otwartych - bardzKrew0013 Ćwiczenia praktyczne 1) Pobieranie krwi do badania • Um25 □ LEKCJA 26 Turbo Pascal -instrukcje warunkoweZASOBY Q Instrukcje warunkowe o Ćwiczenia OZeszyt Cwiczeń FUNKCJI POZNAWCZYCH 1 (39) ĆWICZENIA PRAKTYCZNE Inne ćwiczenia praktyczne, które możePrzykłady opisów: Kostera-Kostrzewski, Marek. Ilustrator 9. Ćwiczenia praktyczne. Gliwice, 2002. ISBWykłady, Ćwiczenia, Praktyka zawodowa (PZ): 1. zaliczenie testowe oraz pytania otwarte: A: Pytania zramach ć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