Programming
C++
Turbo Pascal
Delphi
Ver. 1.0 Beta, Don't have a compiler? Now you can write simple scripts ONLINE! This is a basic version -does not include all the Pascal statements. Only to learn basics
Pisanie w³asnych modu³ów w Turbo Pascalu i Delphi
Modu³y (units)
Modu³ CrtModu³ Crt zawiera procedury i funkcje przydatne w prostych operacjach u¿ywanych przewa¿nie w trybie tekstowym. Polecenia modu³u Crt pomagaj± te¿ w odczytywaniu stanu klawiatury. ClrScr; -Procedura powoduj±ca wyczyszczenie zawarto¶ci ekranu i ustawienie kursora graficznego w lewym górnym rogu. ClrEol; -Procedura która czy¶ci liniê tekstu od pozycji kursora do koñca lini. Delay(czas: Word) -Procedura, która czeka tyle milisekund (milisekunda=1/1000 sekundy) ile wynosi zmienna czas. Zmienna Czas musi byæ typu WORD (word to liczba ca³kowita od 0 do 65535). DelLine; -Procedura czy¶ci ca³± linie, w której znajduje siê kursor GotoXY(X,Y: Byte); przenosi kursor do pozycji X i Y. Pozycja 1,1 oznacza lewy górny róg ekranu. HighVideo; -Rozja¶nia kolory, tzn. je¿eli wpiszesz ciemny czerwony i co¶ chcesz nim narysowaæ, bêdzie narysowane to jasnym czerwonym. InsLine; Wstawia pust± liniê tam, gdzie siê znajduje kursor a resztê przenosi w dó³. KeyPressed - Funkcja która zwraca warto¶æ TRUE je¿eli zosta³ naci¶niêty klawisz lub FALSE je¿eli nie. LowVideo -Przyciemnia kolory patrz HighVideo. NormVideo -Przywraca normalne kolory. NoSound; -Wy³±cza d¼wiêk ze SPEAKERA (g³o¶niczka wbudowanego w komputer). ReadKey; -Wczytuje wci¶niêty klawisz z klawiatury. 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 musisz wpisaæ: Sound(200); Najmniejsz± liczb± jaka mo¿e byæ u¿yta jako d¼wiêk mo¿e byæ warto¶æ oko³o 60 Hz! TextBackground(kolor:Byte); Ustawia kolor t³a pod tekstem. Standardowo jest czarne. Poni¿ej podano jaki kolor odpowiada jakiej liczbie. Przyk³ad u¿ycia : TextBackground(5); TextColor(kolor:Byte); Ustawia kolor liter na warto¶æ jak± przyjmuje zmienna kolor. Przyk³ad u¿ycia : TextColor(15); lub je¶li masz jak±¶ zmienn± np. k:=15; piszesz TextColor(k); TextMode(mode:integer); Ustawia specyficzny tryb tekstowy. Normalny ma 80 znaków w pozycji X i 25 w pozycji Y. Instrukcja ta zmienia ten tryb. WhereX; -Funkcja, która przyjmuje warto¶æ typu Byte zawieraj±c± pozycjê poziom± (inaczej pozycja X) kursora tekstowego. WhereY; -Funkcja przyjmuje pozycjê Y kursora. Window(X1,Y1,X2,Y2:Byte); Procedura ta ustawia w pamiêci okno, w którym mo¿na pisaæ. Od tej pory ka¿dy tekst bêdzie wypisywany w tym oknie. X1 oznacza od którego znaku w poziomie ma siê zaczynaæ okno, Y1 -od którego ma siê zaczynaæ okno w pozycji Y, a X2 i Y2 to wspó³rzêdne koñcowe, np. Window(10,10,70,15); Pozycja 1,1 to górny lewy róg ekranu. Warto¶ci kolorów Kolory podane w poni¿szej tabelce s± wykorzystywane w procedurach TextBackGround i TextColor a tak¿e w trybie graficznym modu³u Graph.
Modu³ GraphModu³ Graph jest odpowiedzialny za tworzenie grafiki w trybie VGA -czyli w niskich rozdzielczo¶ciach. Standardowo u¿ywa rozdzielczo¶ci ekranu 640x480 oraz 16 kolorów. Bardzo czêsto jest wykorzystywany podczas nauki programowania w szkole. Dobrze nadaje siê do tworzenia wykresów, prezentowania wyników obliczeñ. Jest do¶æ powolny i raczej nie stosuje siê go do tworzenia animowanych gier komputerowych. Wymaga plików ze sterownikami grafiki, np. egavga.bgi, który domy¶lnie znajduje siê w katalogu BGI w Turbo Pascalu. Najczê¶ciej u¿ywane polecenia (Dok³adny opis w pomocy Turbo Pascala -Shift + F1): Opis niektórych poleceñ: ClearDevice – Czyszczenie zawarto¶ci ekranu FloodFill – Wype³nienie figury zadanym kolorem Rectangle – Narysowanie prostok±ta TextWidth – Sprawdzenie szeroko¶ci napisu Modu³ DosModu³ 'Dos' odpowiada za funkcje systemowe. Potrafi przegl±daæ pliki i katalogi, odczytywaæ godzinê i datê. Za jego pomoc± tworzy siê tak¿e obs³ugê tzw. przerwañ -czyli podprogramów, które s± wykonywane przy okre¶lonych zdarzeniach (naci¶niêcie klawisza, poruszenie myszk±). Najczê¶ciej u¿ywane polecenia: Opis niektórych poleceñ: SetIntVec – ustawienie procedury, która bêdzie siê wykonywaæ podczas wywo³ania przerwania FindFirst, FindNext – Odnajdywanie plików i katalogów na dysku. Exec – Wykonanie innego programu W³asne modu³yModu³y udostêpnia nie tylko firma Borland, która napisa³a Turbo Pascala. Modu³ mo¿e stworzyæ ka¿dy, równie¿ Ty. Nie jest to nic skomplikowanego. Modu³ buduje siê do¶æ podobnie do zwyk³ego programu. Równie¿ trzeba utworzyæ nowy plik o rozszerzeniu .pas. Modu³ rozpoczyna siê od s³owa unit, a koñczy s³owem end. (z kropk± na koñcu). Ka¿dy modu³ mo¿e korzystaæ z innych, wcze¶niej stworzonych modu³ów. Przed u¿yciem innych modu³ów nale¿y wpisaæ s³owo kluczowe interface. Po ich u¿yciu nastêpuje czê¶æ nag³ówka. Nag³owek pozwala zdefiniowaæ, które procedury i funkcje bêd± widoczne dla innych tworzonych przez Ciebie plików. Czê¶æ procedur i funkcji, które znajduj± siê w Twoim module mo¿e byæ 'prywatna', dostêpna tylko wewn±trz tego modu³u. Po czê¶ci nag³ówka nastêpuje czê¶æ implementacji. W tej czê¶ci piszesz ju¿ w³asny program. Ka¿da z pisanych procedur i funkcji musi sk³adaæ siê jeszcze raz z nag³ówka a nastêpnie z w³asnego kodu. unit nazwa; interface uses Crt, Dos; {Mo¿na dodaæ inne modu³y, z których korzysta Twój modu³} {nag³ówki w³asnych procedur i funkcji} procedure moja_procedura(zmienna1, zmienna2 : Byte); {przyk³ad definicji procedury} function nowa_funkcja(parametr : Integer) : Integer; {przyk³ad definicji funkcji} implementation {czê¶æ implementacyjna} procedure moja_procedura(zmienna, zmienna2 : Byte); {przyk³ad definicji} begin WriteLn('Wpisa³es liczby: ', zmienna, ' i ', zmienna2); end; {jeszcze raz nag³ówek, ale ju¿ z implementacj±} function nowa_funkcja(parametr : Integer) : Integer; begin nowa_funkcja := parametr * 5; {przyk³ad tworzenia wyniku funkcji} end; end. A jak w swoim programie u¿yæ w³asnego modu³u? Najpierw trzeba skompilowaæ taki modu³. S³u¿y do tego klawisz F9. Przeznaczenie (Destination) musi byæ ustawione na Disk. Wstêp do programowania opisuje jak ustawiæ te opcje. Je¿eli powy¿szy modu³ nazwa³by¶ nazwa.pas to mog³oby to wygl±daæ nastêpuj±co: program test_modulu; uses nazwa; {Dodajemy w³asny modu³ do listy dostêpnych} begin moja_procedura(1, 2); {tu ju¿ korzystamy z w³asnych procedur i funkcji} WriteLn('nowa_funkcja(2) da wynik: ', nowa_funkcja(2)); end. Modu³y powinny byæ pogrupowane tematycznie. Mo¿esz na przyk³ad utworzyæ modu³ obs³uguj±cy myszkê, modu³ do obs³ugi klawiatury, do grafiki, muzyki oraz inne. Je¿eli chcia³by¶ zdobyæ wiêcej wiedzy na temat w³asnych modu³ów, przede wszystkim musisz samemu poeksperymentowaæ. Nie bój siê wymy¶laæ nowych rozwi±zañ. Spróbuj zrozumieæ zasady programowania. |
ON-LINE scripts!