1 PASCAL Dr Anna Kwiatkowska
2 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
3 Język PASCAL Specjalny język do nauki programowania strukturalnegoPakiet 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)
4 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)
5 Słowa kluczowe języka PASCALabsolute 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
6 Słowa kluczowe języka PASCALSł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
7 Literały W języku PASCAL występują następujące stałe: liczbowecał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
8 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)
9 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ę)
10 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
11 Podstawowe funkcje arytmetyczneSQRT(x) x SQR(x) x2 ABS(x) |x| LN(X) ln x EXP(X) ex SIN(x) sin x COS(x) cos x
12 Klasyfikacja typów danych
13 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
14 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
15 Typy całkowite nazwa zakres zajętość pamięci SHORTINT -128..127 1 bajtBYTE INTEGER 2 bajty WORD LONGINT 4 bajty
16 Pozostałe typy porządkowetyp logiczny BOOLEAN, wartości TRUE oraz FALSE typ znakowy CHAR elementami są znaki ASCII
17 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
18 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
19 Typ łańcuchowy służy do reprezentowania tekstów deklaracjaTYPE nazwa=STRING[rozmiar]; gdzie rozmiar to liczba typu BYTE brak wartości rozmiar powoduje domyślne przyjęcie rozmiar=255
20 Struktura programu PROGRAM nazwa; część opisowa (deklaracje) BEGINczęść wykonawcza (instrukcje) END.
21 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
22 Instrukcje
23 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
24 Wyprowadzanie wynikówWRITE(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);
25 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)
26 Instrukcja podstawieniapozwala 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
27 Instrukcja złożona powoduje, że grupa instrukcji jest uznawana przez PASCAL za jedną postać ogólna BEGIN instrukcja1; instrukcja2;..instrukcja n; END;
28 Instrukcja warunkowa pozwala podejmować w programie decyzjepostać 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
29 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