Podstawy programowania Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe 1
Podstawy programowania Część I Łańcuchy znaków 2
I. Zmienne łańcuchowe Klasyfikacja zmiennych statycznych porządkowy całkowity logiczny prosty rzeczywisty znakowy typ łańcuchowy tablicowy złożony rekordowy plikowy 3
I. Łańcuchy Deklaracja łańcuchów Przykładowa deklaracja zmiennej łańcuchowej ma postać: var Napis : string; Stałe łańcuchowe zapisuje się w postaci ciągów znaków ujętych w apostrofy (podobnie jak stałe znakowe): const STALY_NAPIS = 'Turbo Pascal' 4
I. Łańcuchy Długość łańcucha Aby "skrócić" łańcuch (dana typu string zajmuje zawsze 256 bajtów, niezależnie od rzeczywistej długości tekstu), można wykorzystać deklarację Var nazwa_zmiennej : string[długość]; Możliwość ta jest szczególnie cenna, jeśli w programie wykorzystujesz np. tablicę łańcuchów: Zerowy element łańcucha przechowuje jego aktualną długość (tzw. długość dynamiczną); będąc typu znakowego może on przyjmować wartości od 0 do 255. Stąd właśnie wynika ograniczenie długości łańcucha do 255 znaków. Length(s) - zwraca bieżącą długość łańcucha s; 5
I. Łańcuchy Odwołanie do poszczególnych elementów łańcucha Dowolny łańcuch (string) przechowywany jest w programie w postaci ciągu znaków, który może być interpretowany jako specyficzna tablica: array[1..255] of char Odwołania do poszczególnych znaków łańcucha realizuje się w sposób analogiczny jak dla tablicy. s[5] := 'x - wstawi znak x na piątą pozycję w łańcuchu s 6
I. Łańcuchy Operacje na łańcuchach Operacje na łańcuchach w zasadzie nie różnią się zapisem od operacji na zmiennych typu prostego. Do wprowadzania, wyprowadzania i przypisywania łańcuchów wykorzystuje się - podobnie jak dla zmiennych typów prostych - procedury Read/ReaLn, Write/WriteLn oraz operator przypisania. Również porównanie dwóch łańcuchów zapisywane jest identycznie, przy czym "wewnętrznie" odbywa się ono przez porównanie kodów odpowiadających sobie znaków. Tak więc: 'C' < 'Pascal' (kod ASCII znaku 'C' jest mniejszy od kodu 'P') 'c' > 'Pascal' (kod ASCII znaku 'c' jest większy od kodu 'P') 'C' > '' (dowolny łańcuch jest większy od łańcucha pustego) 7
I. Łańcuchy Operacje na łańcuchach Bardziej wymyślne operacje na łańcuchach wymagają użycia specjalnie do tego celu przeznaczonych funkcji: Length(s) - zwraca bieżącą długość łańcucha s; Concat(s1, s2) - skleja łańcuchy s1 i s2 (podobnie, jak operator +) Copy(s, m, n) - zwraca podłańcuch o długości m znaków wycięty z łańcucha s poczynając od pozycji n; Pos(ch, s) - zwraca numer pozycji, na której w łańcuchu s znajduje się znak ch; Delete(s, m, n) - usuwa n znaków z łańcucha s poczynając od pozycji m. 8
I. Łańcuchy Operacje na łańcuchach 9
I. Łańcuchy Operacje na łańcuchach 10
Podstawy programowania Część II - Procedury i funkcje Parametry formalne i aktualne Przesłanianie zmiennych Przekazywanie parametrów przez wartość i przez zmienną 11
II. Procedury i funkcje Procedury bez parametrów Tablica zadeklarowana globalnie widoczna dla programu głównego i wszystkich procedur Zmienna zadeklarowana lokalnie tworzona jest w momencie wywołania procedury i znika gdy procedura kończy pracę 12
II. Procedury i funkcje Zakres widoczności zmiennych i tab_los i, suma 13
II. Procedury i funkcje Procedury z parametrami Parametry formalne i aktualne 1. Parametry formalne a) deklarowane są w nagłówku funkcji (procedury) b) są to identyfikatory (nazwy) symbolizujące dane przekazywane do funkcji; 2. Parametry aktualne a) rzeczywiste wartości zmiennych, stałych i wyrażeń podstawiane podczas wywołania w miejsce parametrów formalnych Parametry formalne opisują jedynie postać informacji przekazywanej do funkcji (procedury); Rzeczywistą informację niosą ze sobą dopiero parametry aktualne. 14
II. Procedury i funkcje Procedury z parametrami Przysłanianie zmiennych jest to zadeklarowanie parametru o nazwie takiej samej, jak zmienna globalna (w ogólności - zmienna zadeklarowana w bloku nadrzędnym) wystąpi wówczas efekt przysłaniania, tj. wszelkie odwołania wewnątrz funkcji korzystającej z parametru będą odnosiły się do niego, a nie do przysłoniętej zmiennej globalnej 100 100 15
Literatura: W prezentacji wykorzystano przykłady i fragmenty: Piotr Fulmański, Ścibór Sobieski, Wstęp do informatyki, Podręcznik, Wydawnictwo Uniwersytetu Łódzkiego, 2005. http://www.inf.sgsp.edu.pl/ http://deuter.am.put.poznan.pl/zwm/ R. Jarża, Turbo Pascal. Szkoła programowania, Wydawnictwo Robomatic 2000. (dostępne w bibliotece uczelni) J. Bishop, Turbo Pascal, Wydawnictwo RM, Warszawa 1999. T. M. Sadowski, Turbo Pascal. Programowanie, Helion 1996. 16 dr Artur Bartoszewski - Nowoczesne technologie informatyczne - WYKŁAD