Pascal 1. Pliki tekstowe Przykład 1.1. Zapis do pliku tekstowego {deklaracja zmiennej tekstowej 'plik'} plik: text; {skojarzenie zmiennej plikowej 'plik' z plikiem na dysku (podajemy lokalizacje)} {tworzenie pliku lub usuwanie zawartosci} rewrite(plik); {zapis do pliku} writeln(plik,'test zapisu do pliku'); {zamykanie pliku} Przykład 1.2. Dopisywanie do pliku tekstowego plik: text; {dopisanie danych do pliku bez utraty wczesniejszej zawartosci} append(plik); writeln(plik,'test zapisu do pliku nr2'); Przykład 1.3. {deklaracja modulu dos} uses dos; {deklaracja zmiennej plikowej 'plik'} plik: text; {deklaracja zmiennej string} wers: string; {sprawdzenie, czy istnieje plik o nazwie test.txt} if fsearch('c:\documents and settings\xkingu\pulpit\pliki tekstowe\test.txt','')='' then writeln('nie ma takiego pliku'); end else {skojarzenie zmiennej plikowej 'plik' z plikiem 'test.txt'} {otwarcie istniejacego pliku} {wczytanie pod zmienna 'wers' zawartosci 1-go wersu pliku tekstowego} readln(plik, wers);
{zamkniecie pliku} {wyypisanie zawartosci zmiennej 'wers'} writeln(wers); Przykład 1.4. Wypisanie zawartości pliku po wersie plik: text; wers: string; {rozpoczecie petli wypisujacej kolejne wiersze z pliku 'plik'} repeat readln(plik, wers); writeln(wers); {petla konczy dzialanie gdy dojdziemy do konca pliku 'plik'} until eof(plik); 2. Pliki elementowe Przykład 2.1. Zapis liczb od 1 do 100 w pliku binarnym {pliki elementowe to pliki binarne (.dat)} {deklaracja zmiennej plikowej binarnej 'plik'} plik:file of integer; x:integer; {skojarzenie zmiennej 'plik' z plikiem test.dat} assign(plik,'c:\documents and settings\xkingu\pulpit\pliki elementowe\test.dat'); {stworzenie zmiennej plikowej 'plik'} rewrite(plik); for x:=1 to 100 do {zapisanie w pliku 'plik' wartosci zmiennej x} write(plik,x); {zamkniecie pliku} Przykład 2.2. Wypisanie zawatorści pliku binarnego plik:file of integer;
x:integer; assign(plik,'c:\documents and settings\xkingu\pulpit\pliki elementowe\test.dat'); {petla wypisujaca zawartosc pliku binarnego plik } repeat read(plik,x); write(' ',x); until eof(plik); 3. Zbiory Przykład 3.1. Sprawdzenie, czy liczba należy do zbioru //deklaracja zmiennej zbiorowej, ktorej elementy sa typu byte cyfry: set of byte; x:byte; write('podaj cyfre: '); readln(x); //przypisanie do zmiennej cyfry wartosci od 1 do 10 cyfry:=[1..10]; if x in cyfry then writeln('podales liczbe ze zbioru 1..10') else writeln('podana liczba nie nalezy do zbioru'); 4. Rekordy (struktury danych) Przykład 4.1. //deklaracja rekordu o identyfikatorze 'motor' type motor=record marka:string[10]; //deklaracja pol rekordu model:string[10]; predkosc:integer; //deklaracja tablicy dwuelementowej, ktorej elementy sa rekordami typu motor garaz: array[1..2] of motor; a:integer;
writeln('wprowadz 2 motocykle do garazu '); // wprowadzanie skladowych tablicy opartej na rekordach for a:=1 to 2 do writeln('marka motocyklu nr ',a,' to: '); readln(garaz[a].marka); writeln('model motocyklu nr ',a,' to: '); readln(garaz[a].model); writeln('predkosc motocyklu nr ',a,' to: '); readln(garaz[a].predkosc); writeln('----------------------------------'); writeln('aby wyswietlic zawartosc garazy wcisnij ENTER'); writeln('twoja zawartosc garazu to: '); for a:=1 to 2 do writeln('motocykl nr ',a,':'); writeln(garaz[a].marka,', ',garaz[a].model,', ',garaz[a].predkosc,' km/h'); 5. Wskaźniki Przykład 5.1 // deklaracja zmiennej wskaznikowej typu integer wskaznik: ^integer; // inicjacja zmiennej wskaznikowej w pamieci new(wskaznik); //przypisanie wartosci do zmiennej wskaznikowej wskaznik^:=4; write('wypisuje wartosc wskaznika: '); writeln(wskaznik^); // zwolnienie pamieci po zmiennej wskaznikowej dispose(wskaznik); writeln('zwolnilem miejsce w pamieci');
6. Moduły Budowa modułu (plik test.pas) i odwołanie się do modułu w pliku testmodulu.pas Przykład 6.1 Plik test.pas unit test; {publiczny blok z deklaracjami, za jej posrednictwem programy maja dostep do czesci prywatnej implementation} interface function dodawanie(x,y:integer): integer; {prywatny blok definiujacy funkcje} implementation function dodawanie(x,y:integer): integer; dodawanie:=x+y; {blok umozliwiajacy nadanie poczatkowych wartosci/komunikatow modulu} writeln('test modulu'); Plik testmodulu.pas uses test; writeln(dodawanie(4,5));