[ Pobierz całość w formacie PDF ]
.Kompilator jednak wie,jak zinterpretowaæ taki zapis.Wybiegam tu troszeczkê do przodu i mo¿e towydawaæ siê niejasne, lecz z czasem zaczniesz taki zapis traktowaæ jakonaturalny.Czytaj¹c tê ksi¹¿kê napotkasz wiele podobnych przyk³adów.Zamiast uczyæ siêznaczenia wszystkich operatorów na pamiêæ staraj siê po prostu zrozumieæ ichdzia³anie.Bardzo szybko nauczysz siê ich stosowaæ.Sta³eJak wspomina³em wczeœniej, sta³e s¹ to identyfikatory posiadaj¹ce wartoœci,które siê nie zmieniaj¹.Okreœlenia „zmienna” i „sta³a” nie s¹ przypadkowe.Wartoœæ zmiennej mo¿e byæ zmieniana przez programistê w dowolnym momencie.Sta³a natomiast, jak sama nazwa wskazuje, ma zawsze sta³¹ wartoœæ.Sta³e s¹deklarowane z u¿yciem s³owa kluczowego const.Aby zadeklarowaæ sta³¹, wpisz poprostu jej nazwê i wartoœæ, przyk³adowo:constDomyslnaSzerokosc = 400;DomyslnaWysokosc = 200;Opis = 'Sta³y napis';Przy deklarowaniu sta³ej, do jej inicjalizacji u¿ywa siê znaku równoœci, a nieznaku przypisania.Zwróæ te¿ uwagê, ¿e nie ma podanego ¿adnego typu.Kompilatorsam okreœla typ sta³ej na podstawie jej wartoœci.Sta³ych mo¿na u¿ywaæ wprogramie wszêdzie tam, gdzie u¿y³o by siê wprost jej wartoœci.Tabela 1.2.Czêsto u¿ywane operatoryOperatorOpisPrzyk³adOperatory arytmetyczne+Dodawaniex := y + z;-Odejmowaniex := y – z;*Mno¿eniex := y * z;/Dzielenie liczb rzeczywistychx := y / 3.14;divDzielenie ca³kowitex := y div 10;Operator przypisania:=Przypisaniex := 10;Operatory logiczneandLogiczne ANDif (x = 1) and (y = 2) then.orLogiczne ORif (x = 1) or (y = 2) then.Operatory relacyjne=Równyif (x = 10) then.Ró¿ny odif (x 10) then.Wiêkszy ni¿if (x > 10) then.= 10) then.Operatory jednoargumentowe^WskaŸnikMojObiekt.Dane^;@Adreswsk := @MojRekord;andBitowe ANDx := x and $02;orBitowe ORx := x or $FFnotBitowe NOTx := x and not $02;notLogiczne NOTif not Prawidlowo then.Inne operatory$Operator kodu szesnastkowegox := $FF;[]Operator indeksux := MojaTablica[5];.Operator odwo³aniakwalifikowanegox := Rekord.Pole;Poprzez rozs¹dne u¿ywanie sta³ych mo¿na uczyniæ program ³atwiejszym domodyfikacji, jeœli zajdzie taka potrzeba.Gdy trzeba na przyk³ad zmieniæ jak¹œwartoœæ u¿ywan¹ w wielu miejscach w programie jako sta³a, wystarczy na pocz¹tkupliku Ÿród³owego zmieniæ deklaracjê tej sta³ej, zamiast mozolnie poszukiwaæwszystkich jej wyst¹pieñ w programie.TabliceWszystkie wbudowane w Object Pascal typy danych mo¿na grupowaæ w tablice.Tablica jest po prostu zestawem wartoœci.Powiedzmy, ¿e chcesz umieœciæ wpamiêci komputera tablicê, w której chcesz zapisaæ 5 liczb typu Integer.Deklaracja takiej tablicy wygl¹da³aby nastêpuj¹co:varMojaTablica : array[0.4] of Integer;Kompilator zaalokuje pamiêæ dla takiej tablicy w sposób przedstawiony narysunku 1.4.Poniewa¿ ka¿dy element tablicy zajmuje 4 bajty, ca³a tablicazajmuje w pamiêci 20 bajtów.Rysunek 1.4.Organizacja w pamiêci tablicy 5 liczb typu IntegerPo zadeklarowaniu tablicy mo¿na j¹ wype³niæ u¿ywaj¹c operatora indeksu []:MojaTablica[0] := -200;MojaTablica[1] := -100;MojaTablica[2] := 0;MojaTablica[3] := 100;MojaTablica[4] := 200;Do poszczególnych elementów tablicy odwo³ywaæ siê mo¿na nastêpuj¹co:X := MojaTablica[3] + MojaTablica[4]; {do zmiennej X wpisana{ zostanie wartoœæ 300}Tablice wielowymiaroweTablice mog¹ posiadaæ wiêcej ni¿ jeden wymiar.Deklaracja utworzeniadwuwymiarowej tablicy liczb typu Integer wygl¹da³aby nastêpuj¹co:varTablica2D : array[0.2, 0.4] of Integer;Tablica ta zawiera 15 liczb i zajmuje w pamiêci 60 bajtów.Dostêp do jejelementów jest taki sam jak w tablicy jednowymiarowej z t¹ ró¿nic¹, ¿e trzebau¿yæ dwóch operatorów indeksu.Mo¿na to zrobiæ na dwa równowa¿ne sposoby:X := Tablica2D[1][1] + Tablica2D[2][1];X := Tablica2D[1, 1] + Tablica2D[2, 1];Rysunek 1.5 ilustruje rozmieszczenie w pamiêci elementów tablicy dwuwymiarowej.Rysunek 1.5.Rozmieszczenie w pamiêci elementów tablicy2-wymiarowejZwykle sprawdzanie zakresu (range checking) uchroni Ciê przed prób¹ zapisu dotablicy poza ostatnim jej elementem.Na przyk³ad, poni¿szy kod nie da siêskompilowaæ:varMojaTablica : array[0.4] of Integer;X : Integer;beginX := MojaTablica[3] + MojaTablica[5];{5 – poza zakresem}end;Pojawi siê komunikat b³êduConstant expression violates subrange bounds,poniewa¿ element MojaTablica[5] (szósty) nie istnieje w tablicy 5-elementowej.Zakres tablicy jest okreœlany przy jej deklarowaniu.Na przyk³ad, gdy chceszutworzyæ tablicê, której pierwszy element ma mieæ numer 10, a ostatni 20,deklarujesz tablicê nastêpuj¹co:varMojaTablica : array[10
[ Pobierz całość w formacie PDF ]
zanotowane.pldoc.pisz.plpdf.pisz.pllisty-do-eda.opx.pl