PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations Copyright 2003-2016 by Andrzej Marciniak PP-3(1 z 79)
Na poprzednim wykładzie... Pmaksymy programistyczne (D. Van Tassel) Pogólne zasady programowania zorientowanego obiektowo Pogólna charakterystyka pakietu Embarcadero Delphi XE2 Ppodstawowe pojęcia związane z konstruowaniem programów w zintegrowanym systemie programowania Pposługiwanie się zintegrowanym systemem programowania PP-3(2 z 79)
Na tym wykładzie... Pprzegląd konstrukcji języka Delphi (program, moduł, biblioteka, funkcje i procedury, klasy i obiekty, typy danych, zmienne, instrukcje) Pstruktura programu i modułu Ppodstawowe elementy języka (symbole podstawowe i specjalne, słowa kluczowe i dyrektywy języka, identyfikatory, liczby, łańcuchy, literały logiczne, komentarze i separatory) PP-3(3 z 79)
Przegląd konstrukcji języka Delphi program Program jest główną wykonywalną jednostką programową języka Delphi. Wyróżniamy dwa rodzaje programów: - okienkowe, - tekstowe. Chociaż ogólna struktura obu rodzaju programów jest taka sama, to jednak różnią się one w szczegółach (będzie dalej). PP-3(4 z 79)
Przegląd konstrukcji języka Delphi program W ogólności program składa się z: Pnagłówka - określa nazwę programu, Pdeklaracji modułów - określają moduły, które będą dołączone do programu podczas jego kompilacji, Pbloku - składa się z opisu danych (w programach okienkowych zwykle nie występuje) i części wykonawczej, Pkropki - kończy tekst programu. PP-3(5 z 79)
Przegląd konstrukcji języka Delphi program Ponieważ z każdym programem okienkowym jest skojarzona co najmniej jedna formatka (podstawowy element wizualny), której opis znajduje się w module, więc w programie okienkowym występuje deklaracja co najmniej jednego modułu. Tekst programu okienkowego jest tworzony automatycznie przez środowisko Delphi i na ogół programista nie musi dokonywać w nim zmian. PP-3(6 z 79)
Przegląd konstrukcji języka Delphi w programach okienkowych po wyborze tego polecenia w okienku redakcyjnym zostanie wyświetlony tekst źródłowy programu PP-3(7 z 79)
Przegląd konstrukcji języka Delphi otworzy się okienko redakcyjne z tekstem programu okienkowego PP-3(8 z 79)
Przegląd konstrukcji języka Delphi rozpoczęcie redagowania programu tekstowego PP-3(9 z 79)
Przegląd konstrukcji języka Delphi wybrać ten piktogram PP-3(10 z 79)
Przegląd konstrukcji języka Delphi otworzy się okienko redakcyjne ze szkieletem programu tekstowego PP-3(11 z 79)
Przegląd konstrukcji języka Delphi Pascal Zmiana nazwy projektu! Nie należy w okienku redakcyjnym zmieniać nazwy programu (modułu). W tym celu należy w menu zainicjować polecenie: PFile 6 Save As (jeśli zamierzamy zmienić tylko nazwę aktualnie redagowanego tekstu), PFile 6 Save Project As (gdy chcemy zmienić nazwę wszystkich zbiorów skojarzonych z bieżącym projektem). PP-3(12 z 79)
Przegląd konstrukcji języka Delphi tutaj są te polecenia PP-3(13 z 79)
Przegląd konstrukcji języka Delphi moduł Moduły służą do: Popisu formatek (każda formatka ma swój własny moduł, zapisany w oddzielnym pliku dyskowym), Porganizacji funkcji, procedur i (lub) obiektów w pojedyncze jednostki programowe, Ppodziału większych programów na części (które mogą być napisane przez różnych programistów lub kompilowane oddzielnie). PP-3(14 z 79)
Przegląd konstrukcji języka Delphi rozpoczęcie redagowania modułu niezwiązanego z formatką PP-3(15 z 79)
Przegląd konstrukcji języka Delphi otworzy się okienko redakcyjne ze szkieletem modułu PP-3(16 z 79)
Przegląd konstrukcji języka Delphi biblioteka Biblioteki łączone dynamicznie (biblioteki DLL - skr. ang. dynamic link library) umożliwiają wykorzystanie przez różne programy tych samych wykonywalnych elementów składowych. W programie w języku Delphi można korzystać z bibliotek napisanych w innych językach programowania, a biblioteki napisane w języku Delphi mogą być wykorzystane w programach napisanych w innych językach. PP-3(17 z 79)
Przegląd konstrukcji języka Delphi rozpoczęcie redagowania biblioteki DLL PP-3(18 z 79)
Przegląd konstrukcji języka Delphi wybrać ten piktogram PP-3(19 z 79)
Przegląd konstrukcji języka Delphi otworzy się okienko redakcyjne ze szkieletem biblioteki PP-3(20 z 79)
Przegląd konstrukcji języka Delphi pakiet Moduły języka Delphi mogą być łączone w większe jednostki programowe zwane pakietami. Pakiet jest specjalnym rodzajem biblioteki łączonej dynamicznie, używanym albo przez programy okienkowe, albo przez środowisko Delphi, albo przez jedne i drugie. Dostęp do modułów zawartych w danym pakiecie jest możliwy dopiero po jego zainstalowaniu w środowisku Delphi. PP-3(21 z 79)
Przegląd konstrukcji języka Delphi procedura, funkcja Procedura lub funkcja jest to wyodrębniona część algorytmu, posiadająca jednoznaczną nazwę i ustalony sposób wymiany informacji z pozostałymi częściami programu. Wydzielenie części algorytmu wraz z nadaniem jej nazwy i określeniem parametrów do komunikowania się z otoczeniem nazywa się definicją procedury (definicją funkcji). PP-3(22 z 79)
Przegląd konstrukcji języka Delphi obiekt (klasa) Obiekt (klasa) jest pewnym specjalnym połączeniem danych i metod (procedur i funkcji) operujących na nich. Umożliwia on hierarchizację różnych struktur danych i metod, stanowiąc jednocześnie podstawowy element programowania zorientowanego obiektowo. PP-3(23 z 79)
Przegląd konstrukcji języka Delphi opis danych Do opisu danych służą: Pdefinicje stałych, Pdefinicje typów, Pdeklaracje zmiennych, a konkretne wartości danych, na których działa algorytm, reprezentowane są przez wartości zmiennych oraz przez stałe. PP-3(24 z 79)
Przegląd konstrukcji języka Delphi opis danych Stałe występują w tekście programu (modułu, biblioteki łączonej dynamicznie) jako: Pliterały (liczby, łańcuchy, literały logiczne), których postać jest ściśle określona i które nie wymagają definiowania przez programistę, Pnazwy literałów, tj. nazwy wprowadzone dla określonych stałych i wyrażeń stałych. PP-3(25 z 79)
Przegląd konstrukcji języka Delphi opis danych Wszystkie zmienne występujące w programie napisanym w języku Delphi (module, bibliotece łączonej dynamicznie) powinny być opisane. W deklaracji zmiennej przypisuje się jej określony identyfikator (nazwę) oraz typ, który określa zbiór wartości, jakie dana zmienna może przyjmować. Typ ten może być określony bezpośrednio w deklaracji zmiennej lub w definicji typu. W drugim przypadku w deklaracji zmiennej następuje jedynie odwołanie do odpowiedniego identyfikatora typu. PP-3(26 z 79)
Przegląd konstrukcji języka Delphi opis danych Elementem pośrednim pomiędzy stałą i zmienną są tzw. literały zmienne. Są to literały, którym w definicji nadano początkową wartość i które mogą być stosowane w programie zarówno jako stałe, jak i jako zmienne. Podobną rolę spełniają też zmienne z początkową wartością. PP-3(27 z 79)
Przegląd konstrukcji języka Delphi opis danych klasyfikacja typów PP-3(28 z 79)
Przegląd konstrukcji języka Delphi instrukcja Instrukcje służą do opisu czynności wykonywanych na danych. PP-3(29 z 79)
Przegląd konstrukcji języka Delphi instrukcja podział instrukcji PP-3(30 z 79)
Przegląd konstrukcji języka Delphi wyrażenie Wyrażenie jest sensowną kombinacją operatorów i operandów, tj. Pstałych, Pliterałów zmiennych, Pzmiennych, Pwywołań funkcji. Kolejność wykonywania działań określa priorytet operatorów, ale można ją zmienić przez odpowiednie zastosowanie nawiasów. PP-3(31 z 79)
Program Program jest główną, wykonywalną jednostką programową języka Delphi. Każdy program (okienkowy i tekstowy) w ogólności składa się z: Pnagłówka programu, Pdeklaracji modułów, Pbloku, Pznaku. (kropka). Poszczególne elementy programu zapisuje się w wierszach. Wiersz programu nie może zawierać więcej niż 1024 znaki. PP-3(32 z 79)
Program nagłówek programu Składa się ze słowa kluczowego program, po którym występuje nazwa programu (identyfikator) oraz ewentualnie ujęta w nawiasy okrągłe lista identyfikatorów (elementy tej listy oddziela się przecinkami). Identyfikatory te mogą na przykład podawać pewne informacje o programie, które programista uznał za celowe umieścić w nagłówku. Ponieważ jednak wspomnianej liście nie jest nadawana żadna interpretacja, więc zazwyczaj jest pomijana. PP-3(33 z 79)
Program nagłówek programu W programach tekstowych cały nagłówek programu może zostać pominięty (nie ma on żadnego znaczenia w tekście takiego programu). Zaleca się jednak opatrywać każdy program tekstowy nagłówkiem z podaniem jego nazwy, a po nagłówku zamieszczać komentarz (będzie dalej) opisujący przeznaczenie programu i podający niezbędne informacje o wprowadzanych danych. W programach okienkowych nagłówek jest konieczny, gdyż na podstawie podanej w nim nazwy są tworzone różne pliki dyskowe składające się na projekt (pliki takie mają nazwę identyczną z podaną w nagłówku nazwą programu, a różnią się jedynie rozszerzeniem nazwy). PP-3(34 z 79)
Program nagłówek programu Przykłady: program MatrixMult; program VectorAdd (Input, Output); program Program1 (zbior12); PP-3(35 z 79)
Program deklaracja modułów Bezpośrednio po nagłówku programu okienkowego występuje klauzula uses, za pomocą której są określone moduły i skojarzone z nimi formatki. W programach tekstowych klauzula ta może być pominięta, chociaż z uwagi na poprawną konstrukcję takiego programu zaleca się pozostawić tę klauzulę z deklaracją modułu standardowego System.SysUtils (deklaracja ta jest tworzona standardowo w tekście każdego programu tekstowego). PP-3(36 z 79)
Program deklaracja modułów Przygotowując dowolny program użytkownik może wykorzystać moduły standardowe, tj. moduły będące częścią składową języka, jak również napisać własne moduły. Głównymi modułami standardowymi są: System (jego deklaracja jest zbędna), System.SysUtils i System.Math. Zawierają one m. in. podstawowe funkcje i procedury wykorzystywane do obsługi operacji wejścia-wyjścia, przydzielania i zwalniania pamięci zmiennym dynamicznym, obliczania przybliżonych wartości funkcji matematycznych itp. Z modułów tych korzysta się w programach tekstowych i okienkowych. PP-3(37 z 79)
Program deklaracja modułów W celu skorzystania w programie (module utworzonym przez programistę lub bibliotece łączonej dynamicznie) z dowolnego modułu standardowego (poza modułem System), jak również wykorzystania własnych (przygotowanych wcześniej) modułów, należy nazwy tych modułów zadeklarować za pomocą następującej konstrukcji: uses lista-nazw-modułów przy czym poszczególne nazwy (występujące w liście) powinny być oddzielane przecinkami, a całość listy zakończona średnikiem. PP-3(38 z 79)
Program deklaracja modułów Przykłady: uses System.SysUtils, System.Math; deklaracja standardowych modułów System.SysUtils i System.Math (udostępnienie uses NumLib; ich w programie użytkownika) deklaracja modułu niestandardowego o nazwie NumLib, który powinien zostać wcześniej utworzony, tj. napisany PP-3(39 z 79) i skompilowany
Program blok programu W ogólności blok programu składa się z: Pczęści opisowej (opisu danych), Pczęści wykonawczej, przy czym w tekstach programów okienkowych, tworzonych automatycznie przez środowisko Delphi, część opisowa nie występuje. PP-3(40 z 79)
Program blok programu W części opisowej definiuje się typy, nazwy literałów, podaje się deklaracje etykiet i zmiennych, a także definicje i deklaracje procedur i funkcji. W jednej części opisowej może wystąpić wiele definicji i deklaracji. Na przykład po definicji typów, mogą wystąpić definicje zmiennych, po czym definicje innych typów itd. Część wykonawcza jest instrukcją złożoną, zawierającą instrukcje, które będą wykonywane sekwencyjnie. Instrukcja złożona będzie zdefiniowana dokładniej dalej. W tym miejscu zasygnalizujemy jedynie, że ograniczają ją słowa kluczowe begin i end. PP-3(41 z 79)
Program ogólna struktura programu tekstowego program nazwa-programu; {$APPTYPE CONSOLE} {$R *.res} deklaracje-modułów część-opisowa begin ciąg-instrukcji end. PP-3(42 z 79)
ogólna struktura programu okienkowego program nazwa-programu; uses Forms, moduł-1 in nazwa-zbioru-dyskowego-1,... moduł-n in nazwa-zbioru-dyskowego-n ; deklaracje-innych-modułów część-opisowa {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar:=True; ciąg-instrukcji Application.Run end. PP-3(43 z 79) Program
Moduł Moduły służą przede wszystkim do grupowania stałych, typów danych, w tym klas, zmiennych, funkcji i procedur w większe jednostki programowe. Tekst każdego modułu jest zapisywany w oddzielnym pliku dyskowym o rozszerzeniu nazwy PAS, a jego skompilowana wersja w pliku o rozszerzeniu nazwy DCU (skr. ang. Delphi Compiled Unit). PP-3(44 z 79)
Moduł Konstrukcja każdej nowej formatki w środowisku Delphi powoduje automatyczne utworzenie dla niej modułu z odpowiednim kodem programowym. Oznacza to, że kod źródłowy każdego programu okienkowego przygotowanego za pomocą środowiska Delphi jest zapisany w co najmniej dwóch plikach dyskowych: Ppliku programowym (.DPR), Pco najmniej jednym pliku z modułem (.PAS). PP-3(45 z 79)
Moduł Moduły nie muszą być jednak skojarzone z formatkami. Moduły takie służą, oprócz wspomnianego grupowania różnych elementów, także do dzielenia dużych programów (lub innych modułów) na powiązane logiczne części. Chociaż skompilowane moduły są zapisywane w oddzielnych plikach dyskowych, to jednak nie stanowią samoistnych programów (nie mogą być bezpośrednio wykonywane), a ich użycie w programach, innych modułach lub bibliotekach łączonych dynamicznie wymaga deklaracji. PP-3(46 z 79)
Moduł ogólna postać unit nazwa-modułu; część-opisowa-modułu część-implementacyjna części-inicjująca-i-finalizująca end. Części inicjująca i finalizująca są opcjonalne. Zwracamy uwagę na wystąpienie kropki po słowie end kończącym definicję modułu. PP-3(47 z 79)
Moduł nagłówek modułu Nagłówek modułu określa jego nazwę i składa się ze słowa unit, po którym następuje identyfikator, a następnie średnik. Identyfikator określa zarazem pliki dyskowe, w których będą zapisane tekst źródłowy modułu i jego wersja skompilowana. Na przykład dla nagłówka unit MojModul; tekst źródłowy modułu zostanie zapisany w pliku MOJMODUL.PAS, a jego wersja skompilowana w pliku MOJMODUL.DCU. W obrębie jednego projektu nazwa modułu powinna być unikatowa. PP-3(48 z 79)
Moduł część opisowa Część opisowa modułu określa elementy (literały, typy, w tym klasy, zmienne, funkcje i procedury) dostępne w programie, innym module lub bibliotece łączonej dynamicznie, w której zadeklarowano dany moduł. Dla takiego programu, modułu lub biblioteki łączonej dynamicznie elementy te są dostępne w taki sam sposób, jak gdyby były zadeklarowane (zdefiniowane) w ich własnych częściach opisowych (pewne wyjątki dotyczą elementów zdefiniowanych w typach klasowych będzie dalej). PP-3(49 z 79)
Moduł część opisowa Postać: interface deklaracje-modułów definicje-literałów definicje-typów deklaracje-zmiennych lista-nagłówków-procedur-i-funkcji Wszystkie elementy (poza słowem kluczowym interface) są opcjonalne. Jeżeli jednak w części opisowej występują deklaracje modułów, to muszą one wystąpić bezpośrednio po słowie interface. Pozostałe elementy mogą występować w dowolnej kolejności, a także powtarzać się. Elementy listy nagłówków składają się z nagłówków procedur i funkcji których definicje występują w części implementacyjnej. PP-3(50 z 79)
Moduł część implementacyjna Część implementacyjna modułu rozpoczyna się słowem implementation i zawiera, obok definicji procedur i funkcji (których nagłówki podano w części opisowej modułu) oraz definicji metod (których nagłówki zostały wyszczególnione w klasach zdefiniowanych w części opisowej), także deklaracje etykiet, literałów i zmiennych oraz definicje typów, funkcji i procedur wewnętrznych w danym module. Elementy te nie są dostępne w programie, innym module lub bibliotece łączonej dynamicznie, zawierającej deklarację danego modułu. PP-3(51 z 79)
Moduł część implementacyjna W części implementacyjnej można także zadeklarować inne moduły, przy czym odpowiednia konstrukcja ze słowem kluczowym uses musi wówczas wystąpić bezpośrednio po słowie implementation. Elementy zdefiniowane i (lub) zadeklarowane w częściach opisowych takich modułów są jednak dostępne wyłącznie w części implementacyjnej danego modułu. PP-3(52 z 79)
Moduł część implementacyjna Ogólna postać: implementation deklaracje-modułów definicje-literałów definicje-typów deklaracje-zmiennych definicje-funkcji-i-procedur-wewnętrznych definicje-funkcji-i-procedur-o-nagłówkach-podanych-w-części-opisowej definicje-metod-o-nagłówkach-podanych-w-definicjach-klas-w-części-opisowej Poza ostatnimi dwoma elementami pozostałe elementy są opcjonalne. PP-3(53 z 79)
Podstawowe elementy języka symbole podstawowe i specjalne znaki zestawu znaków Unicode: - alfabetyczne (litery), - alfanumeryczne (cyfry), - kreska podkreślenia (łącznik, zaliczany do liter), - odstęp, - znaki sterujące (o kodach od $0000 do $001F) znaki specjalne: +! * / = ^ < > ( ) [ ] { }., : ; ' # $ & @ PP-3(54 z 79)
Podstawowe elementy języka symbole podstawowe i specjalne Małe i wielkie litery nie są rozróżnialne (nie dotyczy to łańcuchów). Niektóre operatory i inne elementy języka zapisuje się za pomocą dwóch następujących bezpośrednio po sobie znaków specjalnych. Należą do nich: operator przypisania: := operatory relacji: < > <= >= zakres:.. nawiasy kwadratowe: (..) nawiasy klamrowe: (* *) początek komentarza: // PP-3(55 z 79)
Podstawowe elementy języka słowa kluczowe Słowem kluczowym nazywamy każdy z 64 następujących wyrazów języka angielskiego: and array as asm begin case class const constructor destructor dispinterface div do downto else end except exports file finalization finally for function goto if implementation in inherited initialization inline (;) interface is PP-3(56 z 79)
Podstawowe elementy języka słowa kluczowe Słowem kluczowym nazywamy każdy z 64 następujących wyrazów języka angielskiego: label library mod nil not object of or packed procedure program property raise record repeat resourcestring set shl shr string then threadvar to try type unit until uses var while with xor PP-3(57 z 79)
Podstawowe elementy języka słowa kluczowe Słowo inline nie ma żadnego znaczenia (pozostawiono je, gdyż występowało w poprzednich wersjach języka Pascal firmy Borland). Słowa kluczowe są integralną częścią języka Delphi i są zastrzeżone, tzn. nie mogą być zdefiniowane przez programistę (dotyczy to także słowa inline). PP-3(58 z 79)
Podstawowe elementy języka dyrektywy języka Dyrektywy języka są używane w kontekstach, w których nie może wystąpić identyfikator zdefiniowany przez programistę. Dyrektywą języka jest każdy z 59 następujących wyrazów: absolute abstract assembler at automated (!) cdecl contains default deleyed deprecated dispid dynamic export (;) external far (;) final forward implements index inline library local message name PP-3(59 z 79)
Podstawowe elementy języka dyrektywy języka Dyrektywy języka są używane w kontekstach, w których nie może wystąpić identyfikator zdefiniowany przez programistę. Dyrektywą języka jest każdy z 59 następujących wyrazów: near (;) nodefault on operator out overload override package pascal platform private (!) protected (!) public (!) published (!) read readonly reference register reintroduce requires resident safecall sealed static PP-3(60 z 79)
Podstawowe elementy języka dyrektywy języka Dyrektywy języka są używane w kontekstach, w których nie może wystąpić identyfikator zdefiniowany przez programistę. Dyrektywą języka jest każdy z 59 następujących wyrazów: stdcall stored strict unsafe varargs vinapi virtual write writeonly PP-3(61 z 79)
Podstawowe elementy języka dyrektywy języka W odróżnieniu od słów kluczowych, dyrektywy języka nie są zastrzeżone podane wyrazy mogą więc być identyfikatorami zdefiniowanymi przez programistę, co jednak nie jest zalecane. Pewnym wyjątkiem są dyrektywy automated, private, protected, public i published, które w definicjach typów klasowych (ale tylko w nich) są słowami zastrzeżonymi. PP-3(62 z 79)
Podstawowe elementy języka identyfikatory Identyfikatorem (nazwą) nazywamy ciąg liter i cyfr zaczynający się od litery. Liczba znaków identyfikatora może być dowolna, lecz tylko pierwszych 255 znaków jest znaczących. Identyfikatory służą do oznaczania programów, modułów, bibliotek łączonych dynamicznie, pakietów, stałych, literałów zmiennych, typów, zmiennych, etykiet, pól w rekordach, procedur, funkcji, modułów, parametrów formalnych oraz pól, metod i własności w klasach. Wiele identyfikatorów posiada predefiniowane znaczenie. Nie są one jednak słowami zastrzeżonymi i jeżeli programista zadeklaruje taki identyfikator, to w obszarze ważności tej deklaracji zostanie przesłonięte jego pierwotne znaczenie. PP-3(63 z 79)
Podstawowe elementy języka identyfikatory W przypadku zdefiniowania identyfikatora w więcej niż jednym miejscu, np. w dwóch modułach, z których korzysta dana jednostaka programowa, zachodzi konieczność kwalifikacji identyfikatora: identyfikator-1.identyfikator-2 co oznacza, że identyfikator-1 kwalifikuje identyfikator-2. Identyfikatorami nie mogą być słowa kluczowe. Istnieje jednak sposób obejścia tego ograniczenia, który polega na poprzedzeniu identyfikatora ampersandem, np.: var &const : Integer; PP-3(64 z 79)
Podstawowe elementy języka liczby Liczbą całkowitą (literałem liczbowym całkowitym, stałą liczbową całkowitą) nazywamy ciąg cyfr dziesiętnych lub szesnastkowych poprzedzony ewentualnie znakiem + (plus) lub! (minus), przy czym ciąg cyfr szesnastkowych powinien być poprzedzony znakiem $ (znak dolara). Znak ten należy umieścić po ewentualnym znaku liczby, tj. + lub!. W systemie szesnastkowym kolejne cyfry są symbolami 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E i F. PP-3(65 z 79)
Podstawowe elementy języka liczby Liczby całkowite są stałymi typu całkowitego i gdy są ciągami cyfr dziesiętnych, muszą należeć do przedziału [!2 63, 2 64!1], tj. [!9223372036854775805, 18446744073709551615]. PP-3(66 z 79)
Podstawowe elementy języka liczby Liczba rzeczywista (literał liczbowy rzeczywisty, stała liczbowa rzeczywista) składa się z mantysy, litery E (może to być mała litera e) oraz cechy. Mantysa jest liczbą dziesiętną. Składa się z części całkowitej, kropki, części ułamkowej i może być poprzedzona znakiem + (plus) lub! (minus). Cecha (wykładnik) jest liczbą całkowitą, poprzedzoną ewentualnie znakiem wartości (tj. znakiem + lub!). PP-3(67 z 79)
Podstawowe elementy języka liczby Mantysa i cecha może zawierać wyłącznie cyfry dziesiętne. Litera E oznacza, że podstawą wykładnika jest liczba 10. W zapisie liczby rzeczywistej dozwolone jest opuszczenie części ułamkowej wraz z poprzedzającą ją kropką albo litery E i cechy. Ograniczeniami liczb rzeczywistych są liczby!1.189731495357231766e4932 i 1.189731495357231766e4932 PP-3(68 z 79)
Podstawowe elementy języka liczby Przykłady!12.34 1.2e!3!5.43E+02 98E12 0e0 0E!0!0.0 +0.0e!0!0.0E+0 pięć ostatnich przykładów przedstawia wartość liczbową zero PP-3(69 z 79)
Podstawowe elementy języka łańcuchy Łańcuchy (literały łańcuchowe) służą do reprezentowania ciągu znaków. Jeżeli łańcuch przedstawia tylko jeden znak, to nazywa się go literałem znakowym. W ogólności łańcuch składa się z ciągu do 255 znaków zapisanych w jednym wierszu, zawartych pomiędzy apostrofami, znaków sterujących oraz znaków w postaci dziesiętnej i szesnastkowej. PP-3(70 z 79)
Podstawowe elementy języka łańcuchy Jeżeli w ciągu znaków łańcucha ma wystąpić apostrof, to należy go przedstawić za pomocą dwu kolejnych apostrofów. Znaki w postaci dziesiętnej składają się z symbolu numeru # (ang. hash), po którym występują właściwe cyfry dziesiętne. Znaki w postaci szesnastkowej składają się z bezpośrednio po sobie następujących znaków: symbolu numeru #, znaku dolara $ i właściwych cyfr szesnastkowych. Znaki w postaci dziesiętnej i szesnastkowej powinny przedstawiać wartość całkowitą z przedziału [0, 65535] (szesnastkowo [0, FFFF]). Określają one kod znaku w zestawie znaków Unicode. PP-3(71 z 79)
Podstawowe elementy języka łańcuchy Znaki sterujące wprowadza się poprzez podanie ich kodów (w postaci dziesiętnej lub szesnastkowej). Każdy znak łańcucha pamiętany jest w dwu bajtach pamięci. PP-3(72 z 77)
Podstawowe elementy języka łańcuchy Przykłady Delphi Pascal łańcuch przedstawia jeden znak (apostrof) #127 reprezentacja znaku o kodzie dziesiętnym ASCII równym 127 (znak DEL) #$7F reprezentacja znaku o kodzie szesnastkowym ASCII równym 7F (taki sam znak jak w poprzednim przykładzie) Pascalo #$8#13 Pascalo #8#$D dwa ostatnie łańcuchy przedstawiają identyczny ciąg dziewięciu znaków, z których dwa ostatnie są znakami sterującymi PP-3(73 z 79)
Podstawowe elementy języka literały logiczne Literały logiczne przedstawiają wartości logiczne prawda i fałsz. Zapisuje się je za pomocą wyrazów angielskich True i False. PP-3(74 z 79)
Podstawowe elementy języka komentarze i separatory Komentarzem nazywamy dowolny ciąg znaków, ograniczony z lewej strony nawiasem klamrowym otwierającym { i z prawej strony nawiasem klamrowym zamykającym } lub rozpoczynający się od znaków // do końca wiersza. Wśród znaków komentarza rozpoczynającego się od znaku { nie może znajdować się znak }. Znakami ograniczającymi komentarz mogą być też symbole złożone, odpowiednio (* i *). Komentarze ograniczone nawiasami { i } mogą być zagnieżdżone w komentarzach ograniczonych symbolami złożonymi (* i *), tzn. być względem tych ostatnich wewnętrzne. Możliwa jest też sytuacja odwrotna. PP-3(75 z 79)
Podstawowe elementy języka komentarze i separatory Jeżeli bezpośrednio po znaku { lub (* rozpoczynającym komentarz wystąpi znak dolara $, to komentarz taki jest interpretowany jest jako dyrektywa kompilatora, przy czym dyrektywa taka nie może występować w komentarzu zagnieżdżonym. Komentarze stosuje się zwykle do opisania zmiennych występujących w programie (module, bibliotece łączonej dynamicznie), parametrów funkcji, procedur i metod, opisu czynności wykonywanych w określonym fragmencie programu (modułu, biblioteki łączonej dynamicznie) lub przez pojedynczą instrukcję, oddzielenia poszczególnych części programu (modułu, biblioteki łączonej dynamicznie) itp. Nie wpływają one na przebieg obliczeń lub sekwencję wykonywanych instrukcji. PP-3(76 z 79)
Podstawowe elementy języka komentarze i separatory Przykłady { To jest komentarz } (* To także jest komentarz *) // I to też jest komentarz {To jest komentarz (*a to jest komentarz zagnieżdżony*)} (*To jest komentarz {a to też jest komentarz zagnieżdżony}*) {$I pr01.pas} dyrektywa kompilatora (poleca dołączyć tekst źródłowy zapisany w pliku PR01.PAS) PP-3(77 z 79)
Podstawowe elementy języka komentarze i separatory Komentarze, odstępy (spacje) oraz wszystkie znaki sterujące (znaki o kodach od 0 do 31) nazywamy separatorami. Dowolne dwa identyfikatory, słowa kluczowe, dyrektywy języka i liczby muszą być rozdzielone co najmniej jednym separatorem. PP-3(78 z 79)
Dziekuję za uwagę i...... zapraszam na następny wykład! PP-3(79 z 79)