Szczygieł, Informatyka, wykład 6.DOC

(61 KB) Pobierz
Wykład 12

Wykład 7

 

Przetwarzanie plików :

 

W języku Turbo Pascal  wyróżniamy trzy klasy plików ( zdefiniowane, tekstowe i niezdefiniowane). Poza przypadkiem korzystania z predefiniowanych zmiennych plikowych tekstowych Input i Output w pozostałych przypadkach  odpowiednia zmienna plikowa musi być zawsze opisana, a  także skojarzona z własciwym fizycznym zbiorem danych. Przed przystąpieniem  do przetwarzania tego zbioru należy jeszcze zmienną plikową 'otworzyć' a po zakończeniu przetwarzania  - ' zamknąć'             

 

Plik jest strukturą danych, której elementy tworzą ciąg i są tego samego typu

 

 

 

Ogólny schemat przetwarzania pliku

 

1.              Deklaracja zmiennych plikowych

2.              Skojarzenie zmiennej plikowej z plikiem fizycznym

3.              Otwarcie pliku

4.              Operacje na zawartości pliku fizycznego

5.              Zamknięcie pliku

 

 

 

Ad.1 Deklaracja typu plikowego :

 

TYPE  id_typu_plikowego  =   FILE OF   id_typu_plikowego

 

VAR  zmienna   :  id_typu_plikowego

 

Ad.2              Skojarzenie zmiennych plikowych z plikami fizycznymi

 

ASSIGN(id_zmiennej_plikowej,nazwa_pliku_fizycznego);                  

 

Przykład :

1)               var   plik1   :   Text;

.............

Assign (plik1,'LPT1');

2)                            var   plik2   :   file of  Real;

..............

Assign  (plik2,'A:\ZBIORY\ZBIOR2.DOC);

 

Ad.3              Otwarcie pliku

W zależności od kierunku przesyłania elementów do lub z pliku stosowane są trzy standardowe procedury jego otwarcia. Są to procedury : Rewrite, Reset i Apend.

Jeżeli tworzymy nowy fizyczny (zewnętrzny) zbiór danych to należy zastosować procedurę Rewrite, której wywołanie ma postać:

 


              Rewrite (zmienna plikowa)

 

Wywołanie procedury Rewrite powoduje utworzenie nowego fizycznego zbioru danych o nazwie skojarzonej z podaną zmienną plikową (przedtem musi być wywołana procedura Assign). Jeżeli zewnętrzny zbiór danych o takiej nazwie już istnieje  to zostanie on usunięty i w jego miejscu będzie utworzony nowy zbiór. W obu przypadkach na dysku lub dyskietce faktycznie zostanie utworzony zbiór pusty, którego aktualnym położeniem będzie jego początek.

Do otwarcia pliku skojarzonego ze zbiorem już istniejącym służą procedury Reset i Append. Wywołanie procedury Reset ma postać :

 

              Reset(zmienna-plikowa)

 

Reset powoduje po otwarciu pliku ustawienie zewnętrznego zbioru w pozycji początkowej, tj. tuż przed jego pierwszym elementem.

Natomiast wywołanie procedury Append które ma postać :

 

              Append(zmienna-plikowa)

 

dotyczy wyłącznie plików tekstowych (Text) i powoduje po otwarciu pliku ustawienie zbioru na jego końcu. Dzięki temu możliwe staje się bezpośrednie dopisywanie tekstów na końcu zbioru.

 

Przykłady :

 

1)  Type  complex  =  record

`                         re,im    :   Real

      end;

       var   plik   :   file   of   complex;

       ......................

       Assign  (plik3,'A:ZBIOR3.OUT);

       Rewrite  (plik3);

 

Po skojarzeniu zmiennej plikowej  plik3 (typu rekordowego complex) ze zbiorem ZBIOR.OUT, znajdującym się na dyskietce w napędzie A, nastąpi otwarcie pliku.

 

2)  var  plik5   :   file   of   record

                                             re,im   :   Real

                                          end;

       .....................

       Assign  (plik5,'B:ZBIOR5.IN);

        Reset  (plik5);

 

3)  var  plik6   :   Text;

      .................

      Assign  (plik6,'C:\ZBIORY\ZBIOR6.TXT);

       Append  (plik6);

 

Po otwarciu pliku możliwe jest wykonanie na nim określonych operacji po których zakończeniu należy plik zamknąć . Operację zamknięcia pliku dokonuje się poprzez wywołanie procedury Close:

 


              Close (zmienna-plikowa)

 

 

 

 

Ad. 4   (Operacje na zawartości pliku :)

 

-              zakładanie, (tj. tworzenie, nowego fizycznego zbioru danych) pliku

-              wprowadzanie do założonego pliku elementu,

-              dodawanie nowych elementów do pliku juz istniejącego

-              przeszukiwanie pliku - odnajdywanie w nim elementów

-              wyprowadzanie elementów z pliku

-              wymiana elementów pliku

 

 

ElementyGrafiki Komputerowej

 


Grafika komputerowa w Pascalu jest realizowana za pomocą funkcji i procedur zgrupowanych w obrębie modułu Graph. Procedury i funkcje tego modułu pozwalają rysować na ekranie pracując w trybie graficznym krzywe różnych kształtów i kolorów, wypełniać kontury określonym kolorem, a także wyświetlać na ekranie napisy (poziomo i pionowo) w różnych krojach pisma, z możliwością ich zmniejszania i powiększania.

 


Mikrokomputery typu PC mogą by_ wyposażone w różne karty graficzne np. CGA, EGA, HERCULES, VGA obsługujące ekrany monitorów o różnej rozdzielczości. Oczywiście rozdzielczość  ekranu , czyli liczba wyświetlanych w poziomie i pionie punktów (pixels) jest ściśle związana z procedurami i funkcjami graficznymi . W celu uniezależnienia systemu Turbo Pascal od karty graficznej przewidziano dla najczęściej używanych kart sterowniki tj. programy  obsługujące związek procedur i funkcji modułu Graph z tymi kartami

 

 

 

 

ELEMENTY GRAFIKI KOMPUTEROWEJ

 

 

 

Funkcje i procedury graficzne   ð  modu_ GRAPH

 

 

Możliwości :

                -              krzywe różnych kształtów i kolorów

-              wypełnia_ kontury określonym kolorem

-              wyprowadza_ napisy na ekran  ( poziomo i pionowo)

-              wybór kroju pisma i wielkości

 

Karty graficzne :         CGA, EGA, HERCULES, VGA, SVGA

 

 

 

Rozdzieczość ekranu : Liczba wyświetlanych w poziomie i                                                    pionie  punktów (pixels)

 

 

Sterowniki : programy obsługujące związek procedur i funkcji                             modułu  GRAPH z pracującymi kartami.

 

 

 

W programie część  graficzną  można podzielić na trzy części

 

-              inicjacjalizację trybu graficznego

-              część wykonawczą części graficznej

-              zamknięcie trybu graficznego

 

 

 


 

              STRUKTURA PROGRAMU GRAFICZNEGO

 

 

 

Program  nazwa;

uses  Graph;

.............

begin

    ............

    InitGraph ( sterownik, tryb, skorowidz);

     ........                                         

     CloseGraph;                          

      RestoreCrt

end.

 

 

Program do sprawdzenia sprzętu komputerowego

 

Program AM52;

uses Graph;

var sterownik,tryb  :  Integer;

begin

    DetectGraph (sterownik,tryb);

    Writeln ('sterownik = ',sterownik,' tryb = ',tryb)

end.

 

 

Przykład :

1) Jeśli zmienne sterownik i tryb są zmiennymi typu Integer to    wykonanie   instrukcji :

 

      sterownik := Detect;

      InitGraph (sterownik,tryb,'C:\TP55');

 

spowoduje zainicjowanie trybu graficznego właściwego dla karty graficznej jaką posiada zestaw komputerowy


 


 


 

Procedury Modułu GRAPH

 


 

 


InitGraph (VAR Ster, tryb : Integer; sciezka : string)  -  inicjacja grafiki

 

 

 

CloseGraph              -  zamknięcie trybu graficznego

 

 

RestoreCrtGraph  -  chwilowe przejście do trybu tekstowego

 

SetGraphMode  -  powrót do trybu graficznego

 

DetectGraph -  rozpoznanie karty graficznej

 

ClearDevice   -  czyszczenie ekranu

             

 

              Procedury graficzne do rysowania

 

 

Move To(X,Y : Integer)  -  przemieszcza kursor graficzny do punktu X,Y

 

MoveRel(Dx,Dy : Integer)  - przemieszcza kursor graficzny o Dx i Dy

 

Line(x1,y1,x2,y2) -  rysuje linię o podanych współrzędnych ko_ca i pocz_tku

 

Line Rel(dx,dy)  -                rysuje linię zaczynającą się w punkcie wskazanym przez kursor i kończącą się w punkcie o współrzędnych określonych względem jego pozycji.

 


LineTo(x,y)                     -              rysuje linię zaczynającą się w punkcie wskazanym przez kursor i kończącą się w punkcie o podanych współrzędnych

 

 


 

Procedury graficzne modułu GRAPH

 

 

Rectangle(x1,y1,x2,y2)   -  rysuje prostokąt

 

Circle(x,y,r)  -  rysuje okrąg

 

DrawPoly(n : word;var wierzcholki)  -  rysuje linię łamaną o zadanych wierzchołkach                                                                                                  

 

 

SetColor(param)  -  ustala aktualny kolor kreślenia linii

 

SetBkColor(param)  -  ustala aktualny kolor tła

 

 

 

  Przykład :

...

Zgłoś jeśli naruszono regulamin