Opisz moduły CRT DOS GRAPH


Temat: Opisz najczęściej używane moduły CRT - obsługa konsoli, DOS - wywołania systemowe i Graph - grafika.

Modułem w języku Pascal można nazywać plik z zawartym w nim kodem programu Mimo, że brzmi to dziwnie, jest jednak prawdziwe. Na początek można sobie wyobrazić, że moduł jest tylko dodatkowym plikiem, w którym umieszczamy swoje procedury i funkcje aby oddzielić je od programu i nie przewijać na ekranie 10 000 linii umieszczonych w jednym pliku, a przełączać się pomiędzy 10 plikami po 1000 linii. Takie jest wytłumaczenie sensu istnienia modułów. Ludzie szybko zauważyli, że dzięki nim mogą pogrupować raz napisane, lecz przydatne w wielu programach funkcje i procedury, a następnie wielokrotnie je wykorzystywać. Jeśli grupa funkcji jest powiązana tematycznie, to moduły je zawierające możemy nazywać biblioteką. W ten sposób np. w Pascalu została zdefiniowana biblioteka obsługi ekranu (w trybie znakowym crt, w trybie graficznym graph), czy też biblioteka udostępniająca polecenia systemu operacyjnego (dos).

Moduły mogą także zostać wykorzystane do podzielenia dużego programu na logiczne części (np. w jednym umieszczamy procedury interfejsu użytkownika, w drugim procedury obliczeniowe, w trzecim procedury komunikacji z urządzeniami zewnętrznymi itd.).

Moduł CRT

Jest to moduł, który ułatwia pracę w trybie tekstowym. Tryb tekstowy jest przydatny w obliczeniach i programach, które nie wymagają graficznego interfejsu . Moduł ten zawiera też obsługę głośniczka wbudowanego w komputer . Moduł CRT

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.

Funkcje i procedury modułu CRT:

Sound(Hz:Word); -Włącza dźwięk w SPEAKERZE o częstotliwości Hz, np. aby wydać dźwięk o częstotliwości 200Hz należy wpisać: Sound(200); Najmniejszą liczbą jaka może być użyta jako dźwięk może być 60!

Moduł DOS zawiera wiele funkcji dostępnych w systemie DOS, które możemy użyć w naszym programie, są to m.in. funkcje i procedury:

Moduł DOS

Zawiera procedury i funkcje służące do komunikowania się z systemem operacyjnym DOS i wykonywania operacji na zbiorach danych.

Typ czasowy DataTime jest stosowany w procedurach UnpackTime i PackTime do tworzenia wartości zawierającej datę i czas używanych w procedurach GetTime i SetTime

Type DateTime = record

Year, Month, Day, Hour, Min, Sec : Word

End;

Procedury związane z czasem

GetData (rok, miesiąc, dzień, dzień-tygodnia), określa bieżącą datę

GetTime(godzina, minuta, sekunda, setna część sekundy)określa bieżący czas

Gdzie wszystkie argumenty powinny być zmiennymi typu Word.

Zakresy wartości są następujące

Rok 19980 2099

Miesiąc 1..12

Dzień 1..31

Sekunda 0..59

Dzień_tygodnia 0..6 (0-niedziela, 1 - poniedziałek)

Godzina 0..23

Minuta 0..59

Setna_część_sekundy 0..99

SetData (rok, miesiąc, dzień, dzień-tygodnia),ustala nową bieżącą datę

SetTime(godzina, minuta, sekunda, setna część sekundy) ustala nowy bieżący czas

Argumenty dla tych funkcji muszą być z zakresu wartości podanych wyżej, inaczej procedura jest ignorowana. Procedury PackTime i UnpackTime przekształcają rekord typu czasowego na liczbę całkowitą Longint i odwrotnie. Wartość daty i czasu w postaci liczby jest wykorzystywana w procedurze SetFTime.

PackTime(zmienna_typu_czasowego, czas)

UnpackTime (czas, zmienna_typu_czasowego)

Do otrzymania daty zapisu zbioru dyskowego służy procedura

GetFTime(Zmienna_plikowa, czas) Plik skojarzony ze zmienną plikowa musi być otwarty. Na zmianę daty zapisu pliku na dysku pozwala funkcja

SetFTime (zmienna_plikowa, czas)

W przykładowym programie ustala się datę zapisu zbioru na 1998.12.01.

program stary_plik;

uses dos;

var rekordczas,rekord:datetime;

s100 : word;

czas,czas1 : longint;

plik : text;

begin

assign ( plik,'nazwa.pas'); {nalezy podać nazwę pliku z katalogu BIN} reset (plik); (otwarcie pliku do odczytu}

with rekordczas do

begin

gettime(hour, min, sec,s100);

year :=1986;

month :=12;

day :=1;

end;

packTime(rekordczas,czas);

SetFTime(plik,czas);

getftime(plik,czas1);

UnpackTime(czas1,rekord); {zmiana spakowanego czasu na rekord)

write('Oto',rekord.year,' ',d.month,' '‚rekord.day,' '‚ rekord.hour);

close(plik);

end.

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 przedstawię na jakiej zasadzie są one tworzone - wszystkie bowiem figury są opisywane przez równanie 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.

 

5



Wyszukiwarka

Podobne podstrony:
Opisz najczęściej używane moduły CRT obsługa konsoli, DOS – wywołanie systemowe i GRAPH – g
PAS, uses Crt,Graph,Mouse;
4 Dos ppt
DOS komendy DOS-a-ściąga, szkoła, technik informatyki, INFORMATYKA-all, Ściąga z informatyki-2003
MS DOS Ćwiczenia2
Opisz budowę i zasadę działania zwalniacza w autobusie na0 i?R
strona tytułowa dos prawozdania
dos lid fun der goldener pawe c moll pfte vni vla vc vox
16 1 Moduły finansowe i ich połączenie z logistyką i produkcją
dos pliki wsadowe
Etimologia dos nomes dos países
DOS Wykład
konspekt dos win unix
Komendy DOS 02
Opisz style kierowania – dokonaj ich oceny, Szkoła, wypracowania, ściągi
DOS POLECENIA, INFORMATYKA, informatyka
Opisz drogę duchową wspólnoty modlącej się Księga Psalmów

więcej podobnych podstron