PASCAL (3) dr Anna Kwiatkowska.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Podstawowe polecenia systemu mgr inż. Edward Surlas
Katarzyna Szafrańska kl. II ti
Wstęp do strumieni danych
Język C/C++ Funkcje.
Programowanie obiektowe
Programowanie w języku Visual Basic
Język ANSI C Funkcje Wykład: Programowanie komputerów
typy całkowite (całkowitoliczbowe)
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
Kurs Pascala – spis treści
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Ogólne jednostki programowe 1
Tablice jednowymiarowe 1
Typy prywatne 1 Typy prywatne W Adzie typy prywatne (private types) służą do bezpiecznego udostępniania danych zdefiniowanych w pakiecie, z którego korzysta.
Rekordy 1 Definicja Typ strukturalny nazywamy typem rekordowym, jeżeli zawiera pewną liczbę nazwanych składowych, które mogą być różnych typów. Dostęp.
Język ANSI C Operacje we/wy
Wykład 2 struktura programu elementy języka typy zmienne
1 Języki i techniki programowania prowadzący dr Grzegorz Filipczyk.
Wstęp do programowania obiektowego
PASCAL Dr Anna Kwiatkowska.
Wprowadzenie do programowania w języku Turbo Pascal
Pliki. Pliki Pliki jako pamięć nieulotna Pliki jako pamięć nieulotna Nazwy, atrybuty i prawa dostępu Nazwy, atrybuty i prawa dostępu atrybuty atrybuty.
Typy wskaźnikowe, dynamiczne struktury danych
Podprogramy.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
Programowanie w języku Fortran 95
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Podstawy programowania
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Programowanie strukturalne i obiektowe
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Andrzej Jędryczkowski Nie da się napisać większego programu bez podziału go na części zwane podprogramami. Podprogram to wyróżniona część programu.
Turbo Pascal Turbo Pascal - jedna z popularniejszych implementacji kompilatorów języka PASCAL, zintegrowane srodowisko programistyczne, produkt firmy Borland.
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
Struktura programu w Turbo Pascalu.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Podstawy informatyki Struktury, operatory, wyjątki
Wyrażenia w Turbo Pascalu.
Procedury i funkcje.
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
1. Język ObjectPascal - typ tablicowy (array)
Podstawy programowania
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
ANNA BANIEWSKA SYLWIA FILUŚ
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Zbiory i rekordy mgr inż. Agata Pacek. Deklaracja typu zbiorowego (określa ilość elementów w zbiorze) type biegi=set of 0..6; Definiowanie zmiennej typu.
Informatyka MPZI Wykład 4 Podprogramy Pliki Typ zbiorowy Rekurencja.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Wykład 10 typ zbiorowy rekurencja.
1 Strumienie Hierarchie klas strumieniowych, strumienie bajtowe - klasy InputStream i OutputStream i ich metody, klasa File, strumienie plikowe, strumienie.
PL/SQL – dalsza wędrówka
Projektowanie stron WWW
Informatyka 2 MPDI Wykład 9 Delphi tablice, rekordy.
Programowanie strukturalne i obiektowe C++
System plików.
Informatyka MPDI2 Wykład 10 DELPHI cd. - zmienne tablicowe,
Podstawowe struktury danych. Typy danych.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Wykład 1 Informatyka II MPZI2 sem.letni. Tablice Tablice deklarujemy array [ lista typów indeksów ] of typ bazowy (składowych) np. var t1,t2:array [1..5,
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Zapis prezentacji:

PASCAL (3) dr Anna Kwiatkowska

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

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;

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

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

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

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

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;...

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

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

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;

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

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

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

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ł

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

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.

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)

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

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

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;

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;

Niezdefiniowane dla plików niezdefiniowanych TYPE id_pliku = FILE;

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

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

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!!!

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’

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

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

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

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ść

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

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);

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

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)

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

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)

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.

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.

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

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’

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