Wstęp do programowania. Pliki. Piotr Chrząstowski-Wachtel

Podobne dokumenty
Pliki. Ze względu na typ zawartych w nich danych rozróżnia się trzy podstawowe rodzaje plików:

Pliki. Operacje na plikach w Pascalu

Informatyka 1. Przetwarzanie tekstów

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

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

Definicja: Algorytmami sortowania zewnętrznego nazywamy takie algorytmy, które sortują dane umieszczone w pamięci zewnętrznej.

Język programowania PASCAL

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

OPERACJE NA PLIKACH. Podstawowe pojęcia:

Pascal - wprowadzenie

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

Programowanie w językach wysokiego poziomu

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

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

Wykłady 3-5. Typy danych w Pascalu. Skalarne typy danych. Działania na typach skalarnych. Funkcje standardowe. Funkcje standardowe

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

Dynamiczne struktury danych: listy

Programowanie w językach

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Podstawy programowania

Lekcja 6: Pascal. Procedura i funkcja

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Zasady programowania Dokumentacja

Podstawy programowania 2. Temat: Wprowadzenie do wskaźników. Przygotował: mgr inż. Tomasz Michno

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

Delphi podstawy programowania. Rejestr systemowy

Podstawy programowania w języku C++

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

2.Sprawdzanie czy podana liczba naturalna jest pierwsza Liczba pierwsza to liczba podzielna tylko przez 1 i przez siebie.

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa.

Funkcje zawarte w bibliotece < io.h >

Informatyka 1. Procedury i funkcje, struktura programu w Pascalu

Zasady Programowania Strukturalnego

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel

Wykład PASCAL - Pliki tekstowe

Wykład 4. Tablice. Pliki

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

PODSTAWY INFORMATYKI wykład 4.

Jerzy Nawrocki, Wprowadzenie do informatyki

Wstęp do programowania. Listy. Piotr Chrząstowski-Wachtel

Podstawy programowania

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Ćwiczenie: JavaScript Cookies (3x45 minut)

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

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Informatyka 1. Wyrażenia i instrukcje cd., ręczna symulacja, operacje wejścia/wyjścia

Podstawy programowania

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Architektura komputerów

Programowanie i struktury danych

Programowanie strukturalne

Funkcje zawarte w bibliotece < io.h >

JAVA?? to proste!! Autor: wojtekb111111

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Metodyka i Technika Programowania 1

Wstęp do programowania

LABORATORIUM SYSTEMÓW POMIAROWYCH KTP IR PW MATERIAŁY POMOCNICZE DO ĆWICZENIA 1 SYMULATOR SYSTEMU POMIAROWEGO W STANDARDZIE IEC-625.

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Przykładowerozwiązania.

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Pliki. Informacje ogólne. Obsługa plików w języku C

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

Argumenty wywołania programu, operacje na plikach

Wprowadzenie Tablica jednowymiarowa Tablice wielowymiarowe Algorytmy Rekordy Pliki Zadania Bibliografia

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

opracował mgr inŝ. Zenon Niewolak-Banach

Jerzy Nawrocki, Wprowadzenie do informatyki

LibreOffice Calc VBA

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Programowanie RAD Delphi

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

Wprowadzenie do programowania współbieżnego

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

Tablice. TYPE identyfikator tablicy = ARRAY [Indeksl,..., Indeksn] OF Typ; Dany identyfikator_ tablicy można wykorzystać w deklaracji VAR:

Podstawy programowania

Języki programowania. Karolina Mikulska-Rumińska Pokój 573, tel Konsultacje wtorek 9-10.

Informatyka I. Wyk lad I. Wprowadzenie. Robert Muszyński Instytut Cybernetyki Technicznej Politechnika Wroc lawska

Podstawy Kompilatorów

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

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Programowanie w Turbo Pascal

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

Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno

4. Pliki Informacje ogólne o dostępie do plików w PHP Sprawdzanie istnienia pliku file_exists()

Obsługa klawiszy specjalnych

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Procedury i funkcje - powtórzenie i uzupełnienia. Przykład funkcji potęgowanie przy wykładniku naturalnym

Podstawy i języki programowania

Wstęp do programowania 2

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

Transkrypt:

Wstęp do programowania Pliki Piotr Chrząstowski-Wachtel

Pamięci zewnętrzne Pamięć wewnętrzna (RAM) jest jednorodna. Dostęp do każdej komórki jest szybki i kosztuje tyle samo W przypadku pamięci zewnętrznych tak nie jest. Szybkość dostępu zależy od rodzaju nośnika sposobu wypełnienia nośnika tego czy zapisujemy, czy odczytujemy informację Szybkośc dostępu do pamięci zewnętrznej jest o rzędy wielkości mniejsza niż dla RAM. 2

Bufory Bez wyjątku transmisja danych do RAM i z RAM odbywa się za pomocą buforów. Buforowanie danych powoduje m.in. to, że przesłanie pojedynczego nawet bitu powoduje zazwyczaj transmisję calego segmentu danych system operacyjny zaklada, że zapewne będziemy zaraz potrzebowali kolejnej danej i na wszelki wypadek ściąga tyle, ile mieści się do bufora. 3

HDD Twarde dyski są najpopularniejszym rodzajem pamięci zewnętrznej, choć pamięć fleszowa jest poważną konkurencją Składają się z: talerzy cylindrów ścieżek sektorów 4

HDD - wygląd W środku: Autor rysunku:artur Kruszewski 5

Typ plikowy type plik=file of typ_plikowy;... gdzie typ plikowy jest dowolnym typem poza innym typem plikowym wskaźnikiem 6

Praca z plikami type plik=file of typ_plikowy; Aby zacząć pracę z plikiem trzeba zadeklarować zmienną typu plikowego związać tę zmienną z konkretnym plikiem fizycznym otworzyć plik wskazując tryb pracy (do zapisu lub odczytu)... a po zakończeniu pracy zamknąć plik Te wszystkie rzeczy robuimy z poziomu języka programowania, ale zazwyczaj zrealizowane są za pomocą specyficznych procedur związanych z daną realizacją języka 7

Praca z plikami - przykład var f:file of Integer; n:integer; A:array[1..maxn]:Integer; Assign(f,'c:\dane.dat'); Reset(f); n:=0; while not eof(f) do n:=n+1; Read(f,A[n]); end; Close(f);... end; 8

Dostępne procedury Dostępne są następujące procedury: Assign(f,s) Reset(f) przygotowanie pliku do odczytu Rewrite(f) przygotowanie pliku do zapisu eof(f) funkcja mówiąca, czy jesteśmy na końcu pliku Close(f) procedura zwalniająca bufor Read(f,dana) Write(f,dana) 9

Pliki tekstowe Szczególnym przykładem plików są pliki tekstowe (dawniej text = file of char, dziś po prostu text) Pliki te mają strukturę wierszową. Klawisz <enter> powoduje zapisanie końca wiersza. Zazwyczaj jest to para znaków #13 #10. W plikach tekstowych dostępna jest funkcja Eoln(f), której wartością jest true, jeśli stoimy na końcu wiersza oraz procedury Readln i Writeln. Eof(f) Eoln(f) 10

Pliki tekstowe Szczególnym przykładem plików są pliki tekstowe (dawniej text = file of char, dziś po prostu text) Pliki te mają strukturę wierszową. Klawisz <enter> powoduje zapisanie końca wiersza. Zazwyczaj jest to para znaków #13 #10. W plikach tekstowych dostępna jest funkcja Eoln(f), której wartością jest true, jeśli stoimy na końcu wiersza oraz procedury Readln i Writeln. Eof(f) Eoln(f) 11

Schemat przetwarzania pliku ogólnego var f:file of integer; zmienna:integer; Assign(f, nazwa_pliku); Reset(f); while not Eof(f) do Read(f, zmienna); Przetwórz(zmienna) end; Close(f); end. 12

Schemat przetwarzania pliku tekstowego var f:text; ch:char; Assign(f, nazwa_pliku); Reset(f); while not Eof(f) do while not Eoln(f) do Read(f, ch) Przetwórz(ch) end; if not Eof(f) then Readln(f); end; Close(f); end. 13

Przykład kłopotliwego zadania Usuń z posortowanego niemalejąco pliku f wszystkie wartości występujące w posortowanym niemalejąco pliku g i wynik zapisz w pliku h. Problem polega na tym, że aby przetworzyć danć musimy ją przeczytać wpierw upewniwszy się, że plik się jeszcze nie skończył 14

Przykład kłopotliwego zadania var f,g,h:file of Integer; fx,gx:integer; Assign(f, nazwa_pliku1); Assign(g, nazwa_pliku2); Reset(f); Reset(g); Rewrite(h); if eof(g) then {Niczego nie wyrzucamy z f; kopiujemy wszystko do h} while not(eof(f) do Read(f,fx); Write(h,fx) end else if not eof(f) then 15

Przykład kłopotliwego zadania - cd. Read(f,fx); Read(g,gx); {teraz jesteśmy gotowi wystartować z porównywaniem decydującym o tym, który plik awansujemy} while (not Eof(f)) and (not eof(g)) do if fx < gx then Write(h,fx); {nie ma w g elementu fx} Read(f,fx) end else if fx > gx then Read(g,gx) {stary element fg już był bezużyteczny} else {fx=gx} Read(f,fx} {stary 16 fx nie powinien być przepisany do h} {...}

Przykład kłopotliwego zadania - cd. if eof(f) then {trzeba sprawdzić, czy w pliku g nie ma wartości fx} while (gx < fx) and (not eof(g) do Read(g,gx); if gx<>fx then Write(h,fx) end else {w pliku g już nie ma niczego, więc tylko wartość gx trzeba wykluczyć z f} while (fx <> gx) and (not eof(f)) do Write(h,fx); Read(f,fx) end; 17

Przykład kłopotliwego zadania - zakończenie. while (fx = gx) and (not eof(f)) do Read(f,fx); {elementów równych gx nie wypisujemy} while not eof(f) do {kopiujemy resztę pliku f - elementy większe od gx} Write(h,fx); Read(f,fx) end; if fx<>gx then Write(h,fx) {i nie zapominamy o ostatnim elemencie} end Close(f);Close(g); Close(h); end; {Uff!} 18

Wirtualne czytanie W naszym przyładzie przyjmijmy, że Istnieje MAXINT W plikach f,g nie ma MAXINT Pokażemy, jak można uprościć nasze zadanie za pomocą wirtualnej procedury czytającej 19

Wirtualne czytanie procedure Czytaj(var p:plik; var x:integer); {procedura przypisuje zmiennej x wartość MAXINT, jeśli jesteśmy na końcu pliku lub czyta z pliku p kolejną wartość i podaje ją jako wartość zmiennej x} if eof(p) then x:=maxint else Read(p,x) end; 20

... i teraz Czytaj(f,fx); Czytaj(g,gx); while (fx < MAXINT) >= (gx < MAXINT) do if fx < gx then Write(h,fx); {nie ma w g elementu fx} Czytaj(f,fx) end else if fx > gx then Czytaj(g,gx) {stary element fg już był bezużyteczny} else {fx=gx} Czytaj(f,fx} {stary fx nie powinien być przepisany do h} Close(f);Close(g); Close(h); 21 end;

i w końcu... Close(Wykład) 22