Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.