Algorytmy i struktury danych

Podobne dokumenty
Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Wstęp do programowania. Różne różności

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Algorytmy i struktury danych. wykład 1

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Podstawy programowania

OPERACJE NA PLIKACH. Podstawowe pojęcia:

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Podstawy programowania skrót z wykładów:

1 Podstawy c++ w pigułce.

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Pascal - wprowadzenie

Typ użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość.

Podstawy Programowania C++

Wstęp do programowania

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

PLIKI. Składnia deklaracji zmiennej plikowej: file of <typ>

Algorytmy i struktury danych

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

Język programowania PASCAL

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Zasady Programowania Strukturalnego

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

1 Podstawy c++ w pigułce.

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Informatyka 1. Przetwarzanie tekstów

Język ludzki kod maszynowy

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

PODSTAWY PROGRAMOWANIA

C++ wprowadzanie zmiennych

ForPascal Interpreter języka Pascal

Wykład 4. Tablice. Pliki

Powtórka algorytmów. Wprowadzenie do języka Java.

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Pliki. Operacje na plikach w Pascalu

Wykład PASCAL - Pliki tekstowe

Języki programowania zasady ich tworzenia

Wstęp do programowania 2

Podstawy programowania

PLIKI TEKSTOWE F C E 30 0D 0A 42 6F 72 6C 61 6E 64 1A T U R B O _ P A S C A L _ 7. 0

Podstawy Programowania

Systemy liczenia. 333= 3*100+3*10+3*1

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Instrukcja standardowa Writeln

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Powtórka algorytmów. Wprowadzenie do języka Java.

MATERIAŁY DO ZAJĘĆ II

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Elementy języków programowania

Zmienne, stałe i operatory

Algorytmy i struktury danych

Podstawy programowania w języku C

Specyfikacja zadania informatycznego nr 1

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Programowanie w języku Pascal

Obliczenia, zmienne. Proste działania, zmienne, rodzaje zmiennych, proste operacje i działania na zmiennych.

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

PASCAL WPROWADZENIE. 1. Uruchom kompilator. 2. Struktura programu w Pascalu. 3. Komentarze

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Pracownia Komputerowa wykład IV

LibreOffice Calc VBA

Kodowanie informacji. Przygotował: Ryszard Kijanka

Visual Basic for Application (VBA)

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Wszystkie zmienne typu plikowego, z wyjątkiem Output i Input muszą być zadeklarowane w sekcji deklaracji programu, który z nich korzysta.

Wprowadzenie do języka Java

Języki i metodyka programowania. Wprowadzenie do języka C

Języki skryptowe w programie Plans

Podstawy programowania w BASCOM BASIC AVR

Interpreter - EasyCompile

Wprowadzenie Tablica jednowymiarowa Tablice wielowymiarowe Algorytmy Rekordy Pliki Zadania Bibliografia

2 Przygotował: mgr inż. Maciej Lasota

Algorytmika i Programowanie VBA 1 - podstawy

Typy danych, zmienne i tablice. Tomasz Borzyszkowski

Transkrypt:

Algorytmy i struktury danych Zmienne Proste typy danych Strukturalne typy danych Witold Marańda maranda@dmcs.p.lodz.pl 1 Zmienne Liczby (i struktury danych) występują w algorytmach i programach komputerowych w postaci zmiennych. Zmienna jest obiektem, który posiada dwa atrybuty: - nazwę, czyli symbol poprzez który odwołujemy się do zmiennej, - wartość, czyli liczbę przypisaną do danego symbolu. Podstawowe operacje wykonywane na zmiennych: arytmetyczne : a+4 b-a a+d*5 przypisanie : a 5 b a c a+b ( operator := ) porównanie : a=5 b>a c<=a+b Symbole operatorów przypisania i porównania zaleŝą od języka programowania, ale zawsze operator przypisania zmienia wartość zmiennej, a operatory porównania nie. WyraŜenie zawierające operatory porównania moŝna oceniać w sensie logiki matematycznej (prawda lub fałsz). 2 1

Typy danych Wszystkie obiekty w programach na których dokonuje się operacji, cechuje pewna własność (matematyczna) zwana typem. KaŜda stała, zmienna, wyraŝenie lub funkcji jest określonego typu. Typ obiektu określa zbiór wartości, które mogą przyjmować stałe lub zmienne, albo które moŝe przyjmować wyraŝenie, lub które mogą być zwracane przez funkcję. Typy muszą być określone przez deklarację zawsze przed uŝyciem obiektu (typ danej moŝna określić na podstawie ich postaci lub deklaracji). 3 Standardowe typy danych Standardowe (wbudowane) typy danych są typami podstawowymi, zdefiniowanymi dla większości języków programowania. Typów tych nie potrzeba deklarować przed ich uŝyciem. 4 2

Liczby całkowite - Integer Obiekty typu całkowitego przyjmują wartości ze zbioru liczb całkowitych. Ze względu na ograniczoną reprezentację w pamięci komputera zakres przyjmowanych wartości zaleŝy od implementacji. Wartości obiektów typu całkowitego są przechowywane w pamięci zawsze dokładnie (tj. bez zaokrągleń, czy przybliŝeń). RównieŜ wyniki operacji na obiektach typu całkowitego są dokładne. Jedynym problemem jest moŝliwość przekroczenia zakresu. Najczęściej stosowane typy całkowite spotykane w róŝnych językach programowania i ich zakresy: short 8-bitów od 128 do +127 lub od 0 do 255 integer 16-bitów od 2 15 do 2 15-1 lub od 0 do 2 16-1 long 32-bity od 2 31 do 2 31-1 lub od 0 do 2 32-1 5 Liczby całkowite - Integer Typy całkowite w języku PASCAL: SHORTINT (-128...127) 1 bajt INTEGER (-32 768...32 767) 2 bajty LONGINT (-2 147 483 648...2 147 483 647) 4 bajty BYTE (0...255) 1 bajt WORD (0...65 535) 2 bajty Przykład deklaracji zmiennych (PASCAL): A: byte; x,y,z: integer; Przykład uŝycia zmiennych (PASCAL): A:= 12; x:= y+z; 6 3

Liczby rzeczywiste - Real Nie moŝna zapisać w skończonej liczbie bitów wszystkich liczb rzeczywistych, nawet z określonego zakresu. Pomiędzy kaŝdymi dwoma liczbami rzeczywistymi, zawsze będzie nieskończona ilość liczb, których nie będzie moŝna zapisać w danej maszynie. Zbiór liczb typu rzeczywistego uŝywane w komputerach opisuje się przez podanie największej i najmniejszej liczby (dodatniej i ujemnej) moŝliwej do zapisania w pamięci maszyny. max- min- 0 min+ max+ W reprezentacji komputerowej liczb rzeczywistych, pomiędzy min+ a max+ (oraz max- a min-) znajduje się jedynie ograniczona ilość liczb, przy czym odstępy miedzy nimi nie są jednakowe. MoŜliwe jest ponadto zapisanie liczby 0. Natomiast nie jest moŝliwy zapis liczb znajdujących się pomiędzy 0 a min+ (oraz min- a 0) oraz większych od max+ (i mniejszych od min-). 7 Liczby rzeczywiste - Real Wyniki operacji na liczbach rzeczywistych nie muszą być dokładne, tj. wynik moŝe być wyraŝony jako przybliŝenie lub zaokrąglenie. Z tego powodu, nie ma sensu operacja porównywanie dwóch liczb rzeczywistych operatorem =, zamiast tego naleŝy stosować relacje większości lub mniejszości. Liczby rzeczywiste zapisywane są w pamięci komputera w postaci wykładniczej, tj. za pomocą wykładnika i mantysy. Najczęściej stosowane typy rzeczywiste spotykane w róŝnych językach programowania i ich zakresy: Typ liczba bitów min (-,+) max (-,+) cyfry znaczące single (float) 32 1.2e-38 3.4e+38 6-9 double 64 2.2e-308 1.8e+308 15-17 extended double 80 3.4e-4932 1.2e+4932 18-21 8 4

Liczby rzeczywiste - Real Typy zmiennoprzecinkowe w języku PASCAL: SINGLE REAL DOUBLE EXTENDED 4 bajty 6 bajtów 8 bajtów 10 bajtów Przykład deklaracji zmiennych (PASCAL): X,Y: double; a10, b11, c0: real; Przykład uŝycia zmiennych (PASCAL): X:= 12.4; Y:= (a10+b11)/2.0; 9 Wartości logiczne - Boolean Obiekty typu boolean mogą przyjmować tylko dwie wartości 1 (prawda-true) lub 0 (fałsz-false). Zmienne typu boolean stosowane są zwykle do sterowania przebiegiem programu, gdy podejmowane są decyzje wymagające odpowiedzi prawda lub fałsz. Wszystkie instrukcje wyboru i cykli wymagają jako warunku wyraŝenia typu boolean. Przykład deklaracji zmiennych (PASCAL): x,y: boolean; gotowe: boolean stop: boolean; Przykład uŝycia zmiennych (PASCAL): gotowe:= true; gotowe:= false; stop:= (a>0); if (stop) then writeln( Koniec ); 10 5

Znaki drukowalne - Char Dane typu char reprezentują znaki drukarki lub terminala, które obejmują litery, cyfry, znaki przestankowe i inne. Najbardziej znany jest zbiór znaków, znany jako kod ASCII (American Standard Code for Information Interchange). Dane typu char słuŝą najczęściej do komunikacji maszyny z uŝytkownikiem. Dane typu char tworzą zbiór spójny i uporządkowany. Na obiektach typu char dopuszczalne są pewne operacje arytmetyczne np. porównanie, natomiast inne nie mają sensu np. dodawanie. 11 Znaki drukowalne - Char kod ASCII 0 31 32 33 47 48 57 58 127 opis niewidoczne znaki sterujące znak odstępu (spacja) znaki interpunkcyjne i inne cyfry duŝe i małe litery i inne znaki Przykład deklaracji zmiennych (PASCAL): p,k: char; znak: char; Przykład uŝycia zmiennych (PASCAL): p:= 'A'; p:= 'a'; znak:= #13; 12 6

Typy okrojone Typy okrojone są typami zbudowanymi na podstawie typu liczb całkowitych (integer) i znakowych (char). Wartości typów okrojonych naleŝą do zdefiniowanego zakresu. Typy okrojone nie naleŝą do typów wbudowanych, więc przed ich uŝyciem zmiennych tego typu danych, naleŝy go zdefiniować. Stosowanie zmiennych typów okrojonych pozwala na lepsza kontrolę nad ich wartościami, gdyŝ kaŝde przekroczenie zadeklarowanego zakresu powoduje zgłoszenie błędu przez kompilator języka. 13 Typy okrojone Deklaracja: type T = min..max gdzie T jest nazwą typu, a min i max są dolnym i górnym zakresem dla wartości typu. Przykład deklaracji typu (PASCAL): type rok = 1900..1999 type dzientygodnia = 1..7 type litera = A.. Z Przykład deklaracji zmiennych (PASCAL): x,y : rok; dd : dzientygodnia; znak : litera 14 7

Typy wyliczeniowe Typ wyliczeniowy definiuje się przez wyliczenie zbioru wszystkich jego wartości. Typy wyliczeniowe stosuje się dla ułatwienia programowania i poprawienia czytelności programu, gdyŝ operowanie nazwami symbolicznymi jest łatwiejsze od zapamiętywania liczb. 15 Typy wyliczeniowe Deklaracja: type T = (c1, c2, c3,, cn) gdzie T jest nazwą typu, a c1, c2 cn są wartościami typu. Przykład deklaracji typu (PASCAL): type kolor = (czerwony, zolty, zielony) type plec = (mezczyzna, kobieta) type waluta = (frank, zloty, dolar, marka) Przykład deklaracji zmiennych (PASCAL): osoba : plec; swiatlo : kolor Przykład uŝycia zmiennych (PASCAL): osoba:= kobieta; swiatlo:= zielony; swiatlo:= zolty; 16 8

Typy strukturalne Tablice Rekordy 17 Tablice - Array Tablica struktura złoŝona z elementów tego samego typu, wskazywanych przez indeks lub zespół indeksów Tablice są szczególnie wygodne do reprezentowania danych tworzących regularne zespoły. Odpowiednikiem tablic w matematyce są np. wektory i macierze. Deklaracja tablicy 1-wymiarowej (PASCAL): type T = array[t i ] of T 0 gdzie T jest nazwą typu tablicowego, T i jest typem indeksowym, a T 0 jest typem elementów tablicy. Deklaracja tablicy n-wymiarowej (PASCAL): type T = array[t i1,..,t i2,.., T in ] of T 0 gdzie T jest nazwą typu tablicowego, T i1..t in są typami indeksowymi, a T 0 jest typem elementów tablicy. 18 9

Tablice - Array Tablica nazywa się 1-wymiarową jeśli w deklaracji typu występuje tylko jeden typ indeksowy. W przypadku wystąpienia n-typów indeksowych, tablica jest n-wymiarową. Liczba elementów tablicy wynika z liczby elementów typu indeksowego: zwykle jest to typ okrojony lub wyliczeniowy np. 1..10, 0..99 itp. W przypadku tablic 2-wymiarowych pierwszy indeks jest numerem wiersza, drugi numerem kolumny. 19 Tablice - Array Jeśli zadeklarowany został typ tablicowy, moŝliwe jest deklarowanie i uŝywanie w programie zmiennych tablicowych. Dostęp do danego elementu tablicy odbywa się przez podanie jego indeksów w nawiasach kwadratowych, po nazwie zmiennej tablicowej. Przykład deklaracji typu (PASCAL): type wektor = array[1..100] of integer; type macierz = array[1..10,1..10] of real; type waluta = (frank, złoty, dolar, marka); type konto = array[waluta] of real; Przykład deklaracji zmiennych (PASCAL): A,B,C : macierz; T : wektor; PKO : konto; Przykład dostępu do elem. składowych: A[1,1]:=0.0; B[3,3]:=C[2,7]; T[79]:=100; PKO[dolar]:=100000; 20 10

Tablice - przykład type Wiersz = array[1..5] of real; type Macierz = array[1..5,1..3] of real; x : Wiersz; wy : Macierz; Wiersz x Macierz wy x[1] 0.5 [1,1] 12 [1,2] 31 [1,3] 22 x[2] 0.25 [2,1] 34 [2,2] 34 [2,3] 43 x[3] 0.125 [3,1] 8 [3,2] 54 [3,3] 11 x[4] 0.0625 [4,1] 23 [4,2] 87 [4,3] 12 x[5] 0.03125 [5,1] 1 [5,2] 22 [5,3] 29 21 Tablice - przykład Przykład uŝycia zmiennych tablicowych: znajdowanie największego elementu w tablicy const w = 100; k = 100; type macierz = array[1..w,1..k] of real; i,j : integer; max : real; X : macierz; begin {zakładamy, Ŝe wszystkie elementy macierzy X mają nadane wartości} max:=x[1,1]; for j:=1 to k do for i:=1 to w do if (X[i,j]>max) then max:= X[i,j]; writeln( Największa liczba w tablicy wynosi:,max); end 22 11

Rekordy - Record Rekord - struktura złoŝoną z elementów niekoniecznie tego samego typu. Rekordy są szczególnie uŝyteczne przy posługiwaniu się kompletami danych róŝnego typu. Rekordy znajdują zastosowanie zwłaszcza przy konstrukcji baz danych. Na przykład, komplet danych o studencie mogą stanowić: nazwisko, nr. indeksu, kierunek, rok studiów. Dane takie, choć róŝnego typu (np. tekstowe i liczbowe) stanowią logiczną całość i wygodnie jest nimi manipulować jako jednym obiektem. 23 Rekordy - Record Deklaracja: type T = record p 1 : T 1 ; p 2 : T 2 ; p n : T n ; gdzie T jest nazwą typu rekordowego, p 1.. p n są polami rekordu typu T 1.. T n. Typ rekordowy definiuje strukturę, w skład której wchodzą elementy o podanych identyfikatorach p i, zwanych polami rekordu i zadeklarowanym typie T i. Jeśli zadeklarowany został typ rekordowy, moŝliwe jest deklarowanie i uŝywanie w programie zmiennych rekordowych. Dostęp do danego elementu rekordu, zwanego polem, odbywa się przez podanie jego nazwy oddzielonej kropką od nazwy zmiennej rekordowej. 24 12

Przykład deklaracji typu strukturalnego Przykład deklaracji typu (PASCAL): type wektor = array[1..100] of integer; type data = record dzien : 1..31; miesiac : 1..12; rok : integer; type punkt = record x : real; y : real; kolor : (czerwony,zielony,niebieski); type student = record nazwisko : array[1..20] of char; indeks : integer; kierunek : array[1..10] of char; rok : integer; 25 1.2 Przykład deklaracji typu strukturalnego punkt b czerwony -2.3 Przykład deklaracji zmiennych (PASCAL): urodziny : data; a,b,c : punkt; obecny: student; grupa : array[1..30] of student; Przykład dostępu do pól rekordów (PASCAL): type wektor = array[1..100] of integer; type data = record dzien : 1..31; miesiac : 1..12; rok : integer; type punkt = record x : real; y : real; kolor : (czerwony,zielony,niebieski); type student = record nazwisko : array[1..20] of char; indeks : integer; kierunek : array[1..10] of char; rok : integer; urodziny.dzien:=13; urodziny.miesiac:=10; urodziny.rok:=1984; b.x:=1.2; b.y:=-2.3; b.kolor:=czerwony; obecny.nazwisko:= Nowak ; obecny.indeks:=120034; grupa[5].nazwisko:= Kowalski ; grupa[5].indeks:=34534; 26 13

Rekordy - przykład Przykład uŝycia zmiennych rekordowych: znajdowanie studenta o największym numerze indeksu. const n = 250; type student = record nazwisko : array[1..20] of char; indeks : integer; kierunek : array[1..10] of char; rok : integer; type zaoczne = array[1..n] of student; i : integer; max, imax : integer; WOiZ : zaoczne; begin {zakładamy, Ŝe wszystkie elementy macierzy WOiZ mają nadane wartości} max:= WOiZ[1].indeks; imax :=1 for i:=2 to n do if (WOiZ[i].indeks > max) then begin max:= WOiZ[i].indeks; imax:=i; writeln( Najwiekszy numer indeksu, który wynosi:,max); writeln( posiada student o nazwisku:,woiz[imax].nazwisko); 27 Pliki - File Plik jest nieograniczoną strukturą danych tego samego typu, w której dostęp do tylko elementów odbywa się sekwencyjnie. Sekwencyjny dostęp oznacza, Ŝe w danej chwili czasowej, moŝliwy jest dostęp tylko do jednego, bieŝącego, elementu pliku, wskazywanego przez aktualną pozycję mechanizmu dostępu. W systemach komputerowych, pliki słuŝą do przechowywania danych o dowolnych rozmiarach w pamięci zewnętrznej komputera, np. na dyskach, taśmach. Zaletą plików jest ich jest nieograniczona pojemność (zaleŝna tylko od pojemnością dysków), ale wadą jest długi czas dostępu do elementów wynikający z natury sekwencyjnego dostępu oraz połoŝenia w pamięci zewnętrznej komputera. 28 14

Pliki - File Deklaracja: type T = file of T 0 gdzie T jest nazwą typu plikowego, a T 0 jest typem elementów składowych pliku. Jeśli zadeklarowany został typ plikowy, moŝliwe jest deklarowanie i uŝywanie w programie zmiennych plikowych. Dostęp do bieŝącego elementu pliku odbywa się za pomocą funkcji read, write oraz pomocniczych assign, reset, rewrite i eof. Plik którego elementami są obiekty typu char, nazywa się plikiem tekstowym. 29 Pliki Przykład deklaracji typu (PASCAL): type list = file of char; type dane = file of integer; type temperatura = file of real; Przykład deklaracji typu (PASCAL): wyniki_obliczeń : dane; konin : temperatura; totolotek : file of array[1..49] of integer; pismo : file of char; 30 15

Pliki - podstawowe operacje write(x,e) Procedura pisania do pliku, x jest zmienną plikową, e jest zmienną, której wartość zostanie dopisana do pliku. Zmienna e musi być typu zgodnego z typem elementów pliku. KaŜda operacja write powoduje automatyczne przesunięcie mechanizmu dostępu na następny element pliku. read(x,e) Procedura czytania z pliku, x jest zmienną plikową, e jest zmienną, której zostanie przypisana wartość bieŝącego elementu z pliku. Zmienna e musi być typu zgodnego z typem elementów pliku. KaŜda operacja read powoduje automatyczne przesunięcie mechanizmu dostępu na następny element pliku. 31 Pliki - podstawowe operacje reset(x) Procedura ustawienia mechanizmu dostępu na pierwszy element pliku (przygotowanie pliku do czytania). rewrite(x) Procedura utworzenia pliku pustego i ustawienie mechanizmu dostępu na jego początek (przygotowanie pustego pliku do pisania). eof(x) Funkcja zwracająca informację o połoŝeniu mechanizmu dostępu dla pliku x. Funkcja zwraca wartość true gdy nie istnieje element następny za wskazywanym (osiągnięto koniec pliku), a false w przeciwnym wypadku. 32 16

Pliki - przykład Przykład uŝycia zmiennych plikowych: obliczanie liczby znaków w dokumencie. dokument : file of char; licznik : integer; znak : char; begin {zakładamy Ŝe plik opis.txt istnieje na dysku} licznik:=0; assign(dokument, opis.txt ); reset(dokument); while (not eof(dokument)) do begin read(dokument,znak); licznik:=licznik+1; close(dokument); writeln( Liczba znaków w pliku wynosi,licznik); 33 17