PASCAL Dr Anna Kwiatkowska
Podstawowe pojęcia Programowanie strukturalne – rozwiązywanie problemów metodą „top-down” (od szczegółu do ogółu) Program strukturalny a)konstruowany bez instrukcji skoku b)instrukcje wykonują się sekwencyjnie
Język PASCAL Specjalny język do nauki programowania strukturalnego Pakiet programowy zawierający interakcyjny system programowania zawierający: kompilator języka TURBO PASCAL złączony z nim ekranowy edytor tekstu program lokalizowania i usuwania usterek (debugger)
Alfabet języka PASCAL Alfabet języka: litery małe i duże alfabetu angielskiego oraz znak _ cyfry od 0 do 9 znaki specjalne (pozostałe znaki dostępne z klawiatury) znaki sterujące (tablica ASCII)
Słowa kluczowe języka PASCAL absolute and array begin case const costructor destructor div do downto else end external file for forward function goto if implementation in inline interface interrupt label mod nil
Słowa kluczowe języka PASCAL Słowa kluczowe (c.d.) not object of or packed procedure program record repeat set shl shr string then to type unit until uses var virtual while with xor
Literały W języku PASCAL występują następujące stałe: liczbowe całkowite -ciąg cyfr ze znakiem lub bez(np. –123) rzeczywiste w postaci z kropką dziesiętną (część całkowita zawsze musi wystąpić, np. –0.5) w postaci wykładniczej mEc (wartosc = m 10c), gdzie m – mantysa (liczba rzeczywista w postaci z kropką dziesiętną, zawsze musi wystąpić) oraz c – cecha liczby ( liczba całkowita)(np. 1E-1, 0e2) szesnastkowe – poprzedzone znakiem $ najwyżej osiem cyfr szesnastkowych
Literały znakowe – pojedyncze znaki ujęte w apostrofy (‘‘) lub poprzedzony znakiem # kod ASCII tekstowe (łańcuchy) – ujęte w apostrofy ciągi maksymalnie 255 znaków logiczne – dwie wartości TRUE oraz FALSE komentarz – ciągi znaków ujęte w nawiasy klamrowe {} lub (* *) ( są ignorowane przez PASCAL)
Nazwa W TURBO PASCALU poprawna nazwa dowolnego obiektu to ciąg liter i cyfr zaczynający się od litery zakończony spacją (znak _ jest uważany za literę)
Priorytety działań Ustalone są następujące priorytety dla działań (począwszy od największego) operacje w nawiasach operatory zmiany znaku i logiczne NOT *, /, div, mod, AND +, -, OR =,<>,<,>,<=,>= Jeżeli na danym poziomie występują operatory o takim samym priorytecie, to są wykonywane w kolejności od lewej do prawej
Podstawowe funkcje arytmetyczne SQRT(x) x SQR(x) x2 ABS(x) |x| LN(X) ln x EXP(X) ex SIN(x) sin x COS(x) cos x
Klasyfikacja typów danych
Typ wyliczeniowy Stosuje się dla zbiorów o niewielkiej liczbie elementów Definicja: TYPE nazwa_typu=(lista_elementów) np. TYPE pora=(wiosna, lato, jesien, zima); Ten sam element nie może występować w dwóch typach wyliczeniowych W obrębie jednego typu elementy muszą być różne
Typ okrojony służy do ograniczania zakresów wartości dowolnego typu porządkowego definicja: TYPE nazwa_typu=ogr_dolne..ogr_gorne; np. TYPE duza=‘A’..’Z’; ogr_dolne i ogr_gorne może być opisane wyrażeniem, ale nie może zaczynać się od nawiasu i wartość wyrażenia musi być typu przeliczeniowego
Typy całkowite nazwa zakres zajętość pamięci SHORTINT -128..127 1 bajt BYTE +0..255 INTEGER -32768..32767 2 bajty WORD +0..65535 LONGINT -21474833648..2147483647 4 bajty
Pozostałe typy porządkowe typ logiczny BOOLEAN, wartości TRUE oraz FALSE typ znakowy CHAR elementami są znaki ASCII
Typy rzeczywiste standardowy REAL : najmniejsza liczba dodatnia 2.9 e-39 największa wartość 1.7 e38 zajętość pamięci 6 bajtów mantysa 11 lub 12 cyfr znaczących
Typy rzeczywiste (c.d.) jeśli włączona jest opcja korzystania z koprocesora, lub jego emulacja wtedy dostępne są dodatkowe typy rzeczywiste nazwa zajętość pamięci najmniejsza wartość dodatnia największa wartość mantysa (ilość cyfr znaczących) SINGLE 4 bajty 1.5 e-45 3.4 e38 7 lub 8 DOUBLE 8 bajtów 5.0 e-324 1.7 e308 15 lub 16 EXTENDED 10 bajtów 3.4 e-4932 1.1 e4932 19 lub 20
Typ łańcuchowy służy do reprezentowania tekstów deklaracja TYPE nazwa=STRING[rozmiar]; gdzie rozmiar to liczba typu BYTE brak wartości rozmiar powoduje domyślne przyjęcie rozmiar=255
Struktura programu PROGRAM nazwa; część opisowa (deklaracje) BEGIN część wykonawcza (instrukcje) END.
Deklaracje USES wykaz modułów - deklaracja modułów (bibliotek funkcji i procedur) np. USES CRT; CONST – definicje stałych programu, np. CONST tekst=‘TURBO’; TYPE – deklaracja typów użytkownika VAR – deklaracja zmiennych występujących w programie FUNCTION, PROCEDURE – deklaracja funkcji i procedur
Instrukcje
Wprowadzanie danych READ(lista_we); - powoduje wprowadzenie znaków z klawiatury i przypisanie danych do zmiennych wymienionych jako lista_we READLN(lista_we); - dodatkowo przechodzi do następnego wiersza, bez lista_we oczekuje na wciśnięcie klawisza <ENTER> lista_we to wykaz zmiennych oddzielonych przecinkami, których wartości należy wprowadzić
Wyprowadzanie wyników WRITE(lista_wy); - wyprowadza na ekran po kolei elementy z lista_wy WRITELN(lista_wy); - dodatkowo przesuwa kursor do nowego wiersza lista_wy może zawierać stałe, zmienne i wyrażenia np. WRITE(‘DLA N=’,n,’ wynik =‘,2*n+1);
Wyprowadzanie wyników (c.d) wartość rzeczywista jest standardowo wyprowadzana w postaci wykładniczej wyświetlenie wartości rzeczywistej w postaci ‘z kropką dziesiętną’ można uzyskać dając format dla wyświetlanej wartości: WRITE(X:n:m) – n to ilość miejsc dla całej wyświetlanej liczby, m to ilość miejsc po przecinku np. WRITE(X:12:2)
Instrukcja podstawienia pozwala nadać zmiennej wartość postać ogólna zmienna:=wyrażenie; po lewej stronie instrukcji może stać tylko jedna zmienna wartość wyrażenia musi być zgodna z typem zmiennej wyjątki: zmienna rzeczywista, wartość wyrażenia całkowita oraz zmienna łańcuchowa i wartość wyrażenia znakowa
Instrukcja złożona powoduje, że grupa instrukcji jest uznawana przez PASCAL za jedną postać ogólna BEGIN instrukcja1; instrukcja2;..instrukcja n; END;
Instrukcja warunkowa pozwala podejmować w programie decyzje postać skrócona IF warunek THEN instrukcja; warunek – wyrażenie typu BOOLEAN instrukcja – dowolna instrukcja języka PASCAL (tylko jedna!) Jeżeli warunek ma wartość TRUE, to wykona się instrukcja, w przeciwnym razie instrukcja zostanie pominięta
Instrukcja warunkowa postać pełna IF warunek THEN instr1 ELSE instr2; Jeżeli warunek ma wartość TRUE, to wykona się instr1, w przeciwnym wypadku wykona się instr2