pascal.doc

(36 KB) Pobierz

program Zamiana_tekstu_na_liczbe;

{$N+} uses  crt;

var   n:integer;

      liczba,potega255:extended;

      tekst:string;

procedure zamienTekstNaLiczbe(tekst:string);

begin

  liczba:=0;

  potega255:=1;

  for n:=length(tekst) downto 1 do

      begin

        liczba:=liczba+ord(tekst[n])*potega255;

        potega255:=potega255*255;

      end;

end;

begin

  clrScr;

  tekst:='Kom';

  zamienTekstNaLiczbe(tekst);

  writeLn(tekst,'=',liczba:1:0);

  readLn;

end.

program Binarne_na_rzeczywiste;

uses crt;

var n: longInt;

    RZ, p: real;

    Bin: string;

begin

  clrScr;

  Bin:='1010101,1100110011';

  p:=1;

  n:=2;

  while (Bin[n]<>',') and (n<=length(Bin)) do

    begin

      p:=p*2;

      n:=n+1;

    end;

  write(Bin,' -> ');

  Rz:=0;

  for n:=1 to length(Bin) do

    begin

      if Bin[n]='1' then Rz:=Rz+p;

      if Bin[n]<>',' then p:=p/2;

    end;

  write(Rz:1:11);

  readLn;

end.

Program Dziesietne_na_binarne;

uses crt;

var liczbaDz:integer;

    liczBin:string;

begin

  clrScr;

  liczbaDz:=85;

  write(liczbaDz,'    -    ');

  liczBin:='';

  repeat

    liczBin:=chr(liczbaDz mod 2+48) +liczBin;

    liczbaDz:=liczbaDz div 2;

  until liczbaDz=0;

  writeLn(liczBin);

  readLn;

end.

program sortowanie_liczb;

uses crt;

var tab:array[1..25] of integer;

    n,k,x:integer;

 

begin

  clrscr; randomize;

  for n:=1 to 25 do begin tab[n]:=round(random(100));write(tab[n],' ');end;

  for n:=1 to 25 do

     for k:=n+1 to 25 do begin if tab[n]>tab[k] then begin

         x:=tab[n]; tab[n]:=tab[k]; tab[k]:=x; end; end;

  writeln; for n:=1 to 25 do write(tab[n],' ');

  readln;

end.

Samą zmienną plikową deklaruje się w sposób następujący:

nazwa : file of typ { dla pliku elementowego }
nazwa : text { dla pliku tekstowego }

Po zadeklarowaniu odpowiedniej zmiennej plikowej można przystąpić do właściwych operacji związanych z zapisywaniem i odczytywaniem danych. Przede wszystkim musimy skojarzyć zmienną plikową z fizycznym plikiem znajdującym się na dysku. Służy do tego procedura assign:

assign(zmienna-plikowa, nazwa-pliku)

Dwiema podstawowymi procedurami używanymi w Pascalu do otwierania plików są reset i rewrite:

reset(zmienna-plikowa)
rewrite(zmienna-plikowa)

odczyt i zapis pliku

read(zmienna-plikowa, lista-elementów)
write(zmienna-plikowa, lista-elementów)

zamknięcie pliku jest praktycznie jedynym sposobem na bezpieczne zapisanie w nim wszystkich danych.

Na szczęście zamknięcie pliku jest bardzo proste. Realizuje je procedura close:

close(zmienna-plikowa)

procedure ZapiszNaDysku(NazwaPliku : string);       var      f : file of Ksiazka;     i : integer;       begin     assign(f, NazwaPliku); { skojarz plik ze zmienną plikową }     rewrite(f); { otwórz (utwórz) plik }     for i := 1 to LbPoz do { zapisz kolejne rekordy }       write(f, Katalog[i]);     close(f); { zamknij plik }   end;

procedure OdczytajZDysku(NazwaPliku : string);       var     f : file of Ksiazka;     i : integer;       begin     assign(f, NazwaPliku); { skojarz plik ze zmienną plikową }     reset(f); { otwórz plik (musi istnieć!) }     i := 0; { wyzeruj licznik rekordów }     while not eof(f) do { czytaj aż do końca pliku }       begin         Inc(i); { kolejny rekord }         read(f, Katalog[i]);       end;     LbPoz := i; { wczytano tyle rekordów }       close(f);   end;

procedure ZapiszNaDysku(NazwaPliku : string);       var     f : text; { tym razem plik tekstowy }     i : integer;       begin     assign(f, NazwaPliku); { skojarz plik ze zmienną plikową }     rewrite(f); { utwórz plik }     for i := 1 to LbPoz do { zapisz kolejne rekordy }       with Katalog[i] do { wyprowadź poszczególne pola rekordu }         begin           writeln(f, 'Pozycja katalogu: ', i);           writeln(f, 'Tytul: ', Tytul);           writeln(f, 'Autor: ', Autor);           if Wypozyczajacy = '' then { nikt nie wypożyczył }             writeln(f, 'Ksiazka znajduje sie na polce.')           else { pole zawiera nazwisko wypożyczającego }             writeln(f, 'Wypozyczajacy: ', Wypozyczajacy);           writeln(f);         end;     close(f); { zamknij plik }   end;

 

...
Zgłoś jeśli naruszono regulamin