Opisz najczęściej używane moduły CRT- obsługa konsoli, DOS - wywołanie systemowe i GRAPH - grafika.
Moduły (ang. unit) są to skompilowane biblioteki, zawierające gotowe do użycia funkcje i procedury.
Najczęściej wykorzystywane moduły.
SYSTEM - nie wiele osób w ogóle wie, że używa tego modułu - jest to moduł dołączany automatycznie podczas kompilacji zawiera funkcje wyświetlające, wczytujące dane oraz podstawowe funkcje matematyczne
CRT (lub CRT2) - ten moduł już sami musimy zadeklarować, zawiera on dodatkowe funkcje uzupełniające bibliotekę SYSTEM o funkcje i procedury ekranowe - sam skrót CRT pochodzi od Cathode Ray Tube - czyli po prostu ekranu
DOS - zbiór funkcji i procedur systemu operacyjnego DOS
GRAPH - zestaw funkcji i procedur do obsługi trybu graficznego
Moduł CRT
Moduł CRT (lub też CRT2 - dla nowszych procesorów) zawiera dodatkowe funkcje uzupełniające bibliotekę SYSTEM o funkcje i procedury ekranowe - sam skrót CRT pochodzi od Cathode Ray Tube - czyli po prostu ekranu.
Przydatne funkcje modułu CRT
ClrEol - czyszczenie bieżącej linii
ClrScr - czyszczenie ekranu
Delay(milisekundy) - opóźnia wykonywanie dalszej części programu
GotoXY(wspolrzedna_X,wspolrzedna_Y) - ustawia kursor w danym położeniu (tryb tekstowy to 25 linii i 80 kolumn)
WhereX, WhereY - funkcje zwracające odpowiednio współrzędne: X i Y aktualnej pozycji kursora
TextColor(kolor) - ustawia kolor tekstu, kolor może być typu string np. yellow lub też liczbą całkowitą z zakresu 0-15.
TextBackground(kolor) - ustawia kolor tła, ma ograniczoną paletę tylko do 8 kolorów, liczby całkowite 0-7
HighVideo - zwiększa intensywność kolorów na odpowiedniki Light, dla Lighr pozostaje Light wyjątek: dla szarego przechodzi na biały
LowVideo - zmniejsza intensywność kolorów na odpowiedniki Dark, dla Dark pozostaje Dark, powraca także z HighVideo do poprzedniego trybu
ReadKey - odczytuje jeden znak, odpowiednik getch z C, stosuje się tę funkcję np. na zakończenie programu zamiast ReadLn
Sound(czestotliwosc) - włącza dźwięk o podanej częstotliwości z wewnętrznego głośnika
NoSound - bez parametrów, wyłącza głośnik wewnętrzny
Opis wszystkich funkcji, procedur, oraz zmiennych dostępnych w module CRT wraz z licznymi przykładami można odnaleźć w dokumentacji modułu, bądź też w Helpie dostępnym wraz z kompilatorem Borlanda.
Podaje trzy proste przykłady:
Manipulowanie intensywnością kolorów:
Oraz dźwiękami:
Moduł DOS
Moduł DOS zawiera wiele funkcji dostępnych w systemie DOS, które możemy użyć w programie, są to m.in. funkcje i procedury:
pobierania i ustawiania daty i czasu
sprawdzania statusu dysków twardych, CD-ROMów, dyskietek i innych napędów
obsługi, wyszukiwania plików, ustawiania ich parametrów
obsługi przerwań z tablicy wektorów oraz przerwań programowych systemu DOS
obsługi procesów, wykonywania i podtrzymywania procesów systemu DOS
Moduł DOS zawiera pokaźny zbiór funkcji i procedur związanych z systemem DOS. Są to m.in. funkcje pozwalające funkcjonować na operacjach, plikach i katalogach. Najczęściej przytaczaną przykładową funkcją z tego modułu jest funkcja FindFirst:
uses Dos;
var
DirInfo: SearchRec;
begin
FindFirst('*.PAS', Archive, DirInfo); { w maskach do szukania mozna takze uzywac '?' }
while DosError = 0 do
begin
Writeln(DirInfo.Name);
FindNext(DirInfo);
end;
readln;
end.
Moduł Graph
Każda firma produkująca kompilatory Pascala dołącza do niego potężny zestaw gotowych już funkcji i procedur graficznych dostępnych w module Graph. Na pewno go mamy. Jeśli nie - można znaleźć go na wielu stronach i serwisach poświęconych programowaniu.
W pierwszym programiku wykorzystującym moduł Graph uruchomiam autotest a później zainicjuję tryb graficzny odpowiadający karcie graficznej.
Opiszę najważniejsze fragmenty programu:
Poniższa procedura wykrywa kartę oraz tryb graficzny, który obsługuje.
DetectGraph(Karta,Tryb); { karta 9 - VSA, tryb 2 - VGAHi }
Po detekcji jest inicjalizacja. Poniższa procedura stawia już tylko przysłowiową kropkę nad i. Trzecim parametrem jest katalog, w którym znajdują się sterowniki graficzne i czcionki.
InitGraph(Karta,Tryb,'c:\bp\bgi');
Spójrzmy na prostą detekcję karty graficznej i jej parametrów.
program detekcja;
uses graph;
var i,x,y : integer;
Karta, Tryb : Integer;
begin
DetectGraph(Karta,Tryb);
InitGraph(Karta,Tryb,'c:\bp\bgi');
{ jestesmy teraz 'wewnatrz' trybu graficznego }
x:= getmaxx;
y:= getmaxy;
CloseGraph;
writeln('Sterownik graficzny numer: ',Karta);
writeln('Tryb : ',Tryb);
writeln('Rozdzielczosc: ',x,' X ',y);
Readln;
end.
W kolejnym programie zaprezentuję procedurę PutPixel(z modułu Graph), jej parametrami są: pozycja X, pozycja Y, kolor zapisany jako łańcuch lub jako wartość liczbowa.
Program rysuje koło z wykorzystaniem funkcji sinus i cosinus.
Oczywiście w module Graph są gotowe funkcje rysujące koła , ale chciałem pokazać na jakiej zasadzie są one tworzone - wszystkie bowiem figury są opisywane przez równania matematyczne.
program kolo_sin_cos_biegunowo;
uses
graph,crt;
var i,x,y : integer;
Karta, Tryb : Integer;
begin
DetectGraph(Karta,Tryb); { karta 9 - VSA, tryb 2 - VGAHi }
InitGraph(Karta,Tryb,'c:\bp\bgi');
for i:=1 to 360 do
PutPixel(GetMaxX div 2+Round(SIN(i)*50), GetMaxY div 2+Round(COS(i)*50),Yellow);
Readln;
CloseGraph;
end.
4