Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

PASCAL (3) dr Anna Kwiatkowska.

Podobne prezentacje


Prezentacja na temat: "PASCAL (3) dr Anna Kwiatkowska."— Zapis prezentacji:

1 PASCAL (3) dr Anna Kwiatkowska

2 Funkcje ujęcie pewnych działań w osobną strukturę programistyczną
stosuje się, gdy pewne czynności w algorytmie w różnych miejscach powtarzają się ich wynikiem jest jedna wartość chcemy zwiększyć przejrzystość programu

3 Funkcje deklaracja funkcji (segment FUNCTION):
FUNCTION nazwa(par_formalne):typ_wyniku; część opisowa (deklaracje zmiennych lokalnych) BEGIN część wykonawcza (musi zawierać instrukcję nazwa:=wartość;) END;

4 Funkcje gdzie nazwa jest dowolną unikalną w danym programie, poprawną nazwą w języku PASCAL, par_formalne to wykaz zmiennych określający typ i ilość danych potrzebnych do wykonania

5 Funkcje przy deklaracji segmentu FUNCTION należy pamiętać:
o zadeklarowaniu typu wyniku w nagłówku funkcji o podstawieniu otrzymanego wyniku pod nazwę segmentu w treści funkcji

6 Funkcje wywołanie segmentu FUNCTION nie jest instrukcją, zatem musi wchodzić w skład innej instrukcji wywołanie ma postać: nazwa(par_aktualne) par_aktualne muszą być zgodne z par_formalne co do ilości, kolejności i typu

7 Procedury deklaracja procedury: PROCEDURE nazwa(lista_par_formalnych);
część opisowa BEGIN część wykonawcza END;

8 Procedury lista_par_formalnych zawiera zarówno dane, jak i wyniki
dane (w procedurze nie ulegają zmianie ich wartości) wymienione są w postaci: zm1:typ1; zm2:typ2;... wyniki ( wartości tych zmiennych są określane wewnątrz procedury) poprzedzane muszą być słowem kluczowym VAR : VAR wy1:typ1;...

9 Procedury wywołanie procedury jest instrukcją:
nazwa_procedury(lista_par_aktualn); lista_par_aktualn musi być zgodna z lista_par_formalnych co do ilości, kolejności i typów danych oraz wyników

10 Typ rekordowy rekordem nazywa się złożoną strukturę danych, której składowe zwane polami mogą należeć do różnych typów

11 Typ rekordowy definicja typu rekordowego określa typ i identyfikator dla każdego pola: TYPE nazwa_typu=RECORD lista_deklaracji_pol END; każda z deklaracji pól ma postać: nazwy_pol:typ;

12 Typ rekordowy odwołanie się do pola rekordu: zm_rekordowa.identyf_pola
instrukcja wiążąca upraszcza sposób odwołania się do pola rekordu postać: WITH zm_rekordowa DO instrukcje; wewnątrz, w instrukcjach można używać tylko nazw pól

13 Moduł podstawa programowania modularnego
służy do grupowania funkcji i procedur w biblioteki nie stanowi samoistnego programu jego użycie w programie wymaga deklaracji USES po zadeklarowaniu modułu w danym programie dostępny jest każdy obiekt w nim zadeklarowany, kazda funkcja i procedura w nim zawarta

14 Ogólna postać modułu UNIT nazwa_modułu; cześć opisowa;
część implementacyjna; część inicjująca; END.

15 Moduł kropka kończy moduł nazwa modułu musi być unikalna
obiekty zadeklarowane w module w części opisowej będą dostępne w programie lub innym module wykorzystującym dany moduł

16 Postać modułu INTERFACE dekl_modulow; def_literalow; def_typow;
dekl_zmiennych; lista_naglowkow_proc_i_fun; - wszystkie, które występują w części implementacyjnej

17 Postać modułu IMPLEMENTATION
{umieszczamy tu deklaracje lokalnych obiektów, niedostępnych w programie} {opisy funkcji i procedur} {nagłówki mogą być bez parametrów} część inicjująca; END.

18 Współpraca z plikami do obsługi fizycznych zbiorów danych stosuje się pliki plik jest logicznym modelem zbioru danych każdy plik składa się z elementów tego samego typu elementy pliku posiadają swoje numery porządkowe (zaczynające się od 0)

19 Współpraca z plikami pliki przetwarza się sekwencyjnie
wszelkie operacje na plikach mogą być wykonywane jedynie za pomocą procedur standardowych dostęp do pliku uzyskuje się za pomocą zmiennej plikowej - zmiennej deklarowanej jako zmienna odpowiedniego typu plikowego

20 Typ plikowy W Turbo Pascalu rozróżniamy trzy klasy plików:
zdefiniowane tekstowe niezdefiniowane

21 Zdefiniowane definicja typu dla plików zdefiniowanych:
TYPE id_pliku = FILE OF opis_typu_el; typ elemntów nie może być typu plikowego Przykład: TYPE liczby=FILE OF REAL;

22 Tekstowe dla plików tekstowych jest predefiniowany typ TEXT
elementami plików tekstowych są wiersze zakończone parą znaków sterujących CR/LF po ostatnim wierszu występuje CTRL Z Przykład TYPE blog=TEXT;

23 Niezdefiniowane dla plików niezdefiniowanych TYPE id_pliku = FILE;

24 ETAPY PRZETWARZANIA PLIKU
CZĘŚĆ OPISOWA OPIS ZMIENNEJ PLIKOWEJ SKOJARZENIE PLIKU Z FIZYCZNYM ZBIOREM DANYCH OTWARCIE PLIKU CZĘŚĆ WYKONAWCZA WYKONANIE OPERACJI NA PLIKU ZAMKNIĘCIE PLIKU ETAPY PRZETWARZANIA PLIKU

25 Przetwarzanie plików w części opisowej należy zadeklarować zmienna plikową jako zmienną odpowiedniego typu plikowego – tego samego jak plik, który ma reprezentować zmienna typu plikowego tekstowego nie może obsługiwać pliku np.z elementami typu rzeczywistego, gdyż będą potraktowane jako tekst

26 Typ plikowy Polecenia realizujące poszczególne etapy współpracy z plikami: ASSIGN(zm_plik, łańcuch); zm_plik – zmienna plikowa odpowiedniego typu łańcuch – określa fizyczny zbiór danych (nie więcej niż 79 znaków) Plik o podanym identyfikatorze nie może być otwarty!!!

27 Typ plikowy za pomocą tej procedury można skojarzyć zmienną plikową z:
klawiaturą ‘CON’, ekranem monitora ‘CON’, drukarkami ’LPT1’,...,’LPT3’ portami we/wy ‘COM1’, ‘COM2’ zbiorem danych znajdującym się na dyskach wymiennych ‘ścieżka dostępu’

28 Przykłady TYPE plik=FILE OF INTEGER; VAR pl1:plik; BEGIN
ASSIGN(pl1, ‘c:\przyklady\dane.txt’); END;

29 Typ plikowy W zależności od przesyłania elementów do lub z pliku są trzy standardowe procedury jego otwierania REWRITE RESET APPEND

30 REWRITE(zm_plik, rozmiar_pliku);
Otwieranie pliku gdy chcemy, aby plik zdefiniowany lub tekstowy został stworzony używamy procedury REWRITE (zm_plik); dla plików niezdefiniowanych REWRITE(zm_plik, rozmiar_pliku); jeśli nie podamy rozmiaru, to jest przyjmowane 128 bajtów

31 REWRITE użycie procedury REWRITE powoduje:
utworzenie pustego pliku w miejscu określonym w ASSIGN otworzenie nowoutworzonego pliku do zapisu/odczytu UWAGA!!! procedura zastosowana do istniejącego pliku kasuje jego zawartość

32 RESET(zm_plik, rozmiar);
Plik już istniejący otwiera procedura RESET(zm_plik); lub RESET(zm_plik, rozmiar); dla plików niezdefiniowanych

33 Otwarcie pliku procedura ta umieszcza wskaźnik pliku na pierwszym elemencie do otwarcia pliku tekstowego, aby dopisać do zapamiętanego tekstu ciąg dalszy służy procedura: APPEND(zm_plik);

34 Zamknięcie pliku zamknięcie pliku powoduje procedura CLOSE(zm_plik);
zamknięcie pliku jest praktycznie jedynym sposobem na bezpieczne zapisanie w nim wszystkich danych po zamknięciu pliku zmienną plikową można skojarzyć z innym zbiorem danych

35 Zapis elementów do pliku
Zapis elementów do pliku realizują następujące procedury: dla plików zdefiniowanych WRITE(zm_plik, lista_argumentów) dla plików tekstowych WRITELN(zm_plik, lista_argumentów)

36 Zapis do pliku dla plików niezdefiniowanych
BLOCKWRITE(zm_plik, bufor, licznik); lub BLOCKWRITE(zm_plik,bufor, licznik, wynik); gdzie licznik- max liczba zapisów bufor- nazwa zmiennej, której pierwszy bajt jest początkiem zapisu wynik – zmienna zawierająca ilość dokonanych zapisów

37 Odczytywanie elementów z pliku
dla plików zdefiniowanych READ(zm_plik, el_wejsciowe); dla plików tekstowych READLN(zm-plik, el_wejsciowe); dla plików niezdefiniowanych BLOCKREAD(zm_plik, bufor, licznik); lub BLOCKREAD(zm_plik, bufor, licznik, wynik)

38 Przykład Zapisanie tekstu wprowadzanego z klawiatury na dyskietkę
PROGRAM pliki1; VAR txt:STRING; pl:TEXT; BEGIN ASSIGN(pl,’A:teksty.TXT’); REWRITE(pl); WRITE(‘NAPISZ TEKST MAX 256 ZNAKÓW’); WRITELN; READLN(txt); WRITELN(pl,txt); CLOSE(pl): END.

39 Przykład Wydrukować na drukarce tekst zapisany w pliku poprzednim
PROGRAM PLIKI2; VAR txt:STRING; pl:TEXT; BEGIN ASSIGN(pl,’A:tekst.txt’); RESET(PL); READLN(PL,txt); CLOSE(PL); ASSIGN(pl,’LPT1’); REWRITE(pl); WRITELN(pl,txt); CLOSE(pl); END.

40 Procedury współpracujące z systemem operacyjnym
ChDir(łańcuch); - zmiana katalogu aktualnego MkDir(łańcuch); - utworzenie katalogu RmDir(łańcuch);- skasowanie katalogu

41 Procedury współpracujące z systemem operacyjnym
Po procedurze CLOSE(zm_plik); Erase(zm_plik); - skasowanie pliku skojarzonego ze zmienną plikową Rename(zm_plik, łańcuch); - zmiana nazwy skojarzonej ze zmienną plikową na podaną w ‘łańcuch’

42 Procedury współpracujące z systemem operacyjnym
Eof(zm_plik); - TRUE gdy koniec pliku Eoln(zm_plik); - TRUE gdy na znaku końca wiersza FilePos(zm_plik); - pozycja wskaźnika w pliku FileSize(zm_plik); - ilość element.ów w pliku Seek(zm_plik, numer); - określa nr elementu, na którym ma być wskaźnik


Pobierz ppt "PASCAL (3) dr Anna Kwiatkowska."

Podobne prezentacje


Reklamy Google