Wykład z Pascala 3

background image

Przetwarzanie plików

background image

Typ plikowy

ciąg elementów tego samego typu, przy czym liczba

jego składowych jest zmienna

type identyfikator_typu = file of
opis_typu_elementów_pliku;
type identyfikator_typu = file;

Przykład:
type dane = file of Integer;
wyniki = file of Real;

background image

Text - standardowy typ plikowy

• elementy pliku: wiersze

podzielone na znaki;

• każdy wiersz kończy para

znaków CR/LR (carriage return
/ line feed);

• plik kończy znak Ctrl-Z;

Przykład:

var dane : Text;

background image

Przetwarzanie plików

• opis zmiennej plikowej (część

opisowa)

• skojarzenie pliku z fizycznym

zbiorem danych

• otwarcie pliku
• wykonanie operacji na pliku
• zamknięcie pliku

background image

Skojarzenie zmiennej plikowej

z fizycznym zbiorem danych

Assign

(identyfikator_pliku,

wyrażenie_łańcuchowe);

identyfikator_pliku - dowolna zmienna plikowa
wyrażenie łańcuchowe - fizyczny zbiór danych

Fizyczne zbiory danych:

– konsola (klawiatura, ekran monitora)

'CON'

– drukarka

'LPT1' lub 'PRN'

– szeregowe porty wejścia-wyjścia

'COM1', 'COM2'

– urządzenie puste

'NUL'

– zbiór danych na dysku

'ścieżka_dostępu'

background image

Skojarzenie zmiennej plikowej

z fizycznym zbiorem danych

Przykład:

var zm_plikowa1, zm_plikowa2 : Text;
begin

...
Assign

(zm_plikowa_1,'C:\DANE\PLIK.TXT');

Assign (zm_plikowa_2,'LPT1');

...
end.

background image

Otwieranie pliku

utworzenie nowego fizycznego zbioru danych

Rewrite

(zmienna_plikowa);

lub dla plików niezdefiniowanych

Rewrite (zmienna_plikowa, rozmiar_zapisu)

wskaźnik plikowy (File Location Pointer)  0

gdy zbiór już istnieje zostaje usunięty i utworzony nowy

background image

Utworzenie nowego fizycznego zbioru

danych

Przykład 1:

var numery : file of integer;

begin
...
Assign (numery,'C:\DANE\PLIK.OUT');
Rewrite (numery);
...
end.

background image

Przykład 2:

type data = record
rok

: Integer;

miesiac

: 1 .. 12;

dzien : 1 .. 31

end;

var data_ur : file of data;

begin
...
Assign (data_ur,'C:\DANE\PLIK.OUT');
Rewrite (data_ur);
...
end.

background image

Otwieranie pliku

otwarcie już istniejącego zbioru danych

Reset

(zmienna_plikowa);

lub dla plików niezdefiniowanych

Reset (zmienna_plikowa, rozmiar_zapisu)

Wskaźnik plikowy  0

Append (zmienna_plikowa);

tylko do plików

tekstowych

Wskaźnik plikowy  koniec

background image

Zamykanie pliku

Close

(zmienna_plikowa);

background image

Funkcje do przetwarzania plików

tekstowych

Eof

(zmienna_plikowa)

True - gdy koniec zbioru lub gdy brak elementów

Eoln

(zmienna_plikowa)

True - gdy koniec wiersza (CR)

SeekEof

(zmienna_plikowa)

True - jak Eof (ignoruje spacje, tabulatory, CR i
LF)

SeekEoln

(zmienna_plikowa)

True - jak Eof (ignoruje spacje, tabulatory)

background image

Funkcje i procedury do przetwarzania

plików zdefiniowanych i

niezdefiniowanych

Eof

(zmienna_plikowa)

True - gdy koniec zbioru lub gdy brak elementów

FilePos

(zmienna_plikowa)

Aktualne położenie wskaźnika plikowego (LongInt)

FileSize

(zmienna_plikowa)

Rozmiar pliku=liczba elementów (LongInt)

Seek

(zmienna_plikowa, pozycja)

Przesunięcie wskaźnika plikowego do elementu o
numerze 'pozycja'

Truncate

(zmienna_plikowa)

obcina zbiór w miejscu aktualnego położenia

background image

Read (zmienna_plikowa,lista-

zmiennych);

oraz wyłącznie dla plików tekstowych

Readln (zmienna_plikowa ,lista-

zmiennych);

Wprowadzanie elementów z pliku

background image

Write (zmienna_plikowa,lista-

zmiennych);

oraz wyłącznie dla plików tekstowych

Writeln (zmienna_plikowa ,lista-

zmiennych);

Wyprowadzanie elementów do pliku

background image

Przykład:

program zapis;
uses Crt;

var

x : Text;
Wiersz : String;

begin
ClrScr;
Assign (x, 'DANE.TXT' );
Rewrite (x);
repeat
readln (Wiersz);
if Wiersz<>'' then writeln
(x, Wiersz);
until Wiersz ='';
Close (x);
readln;
end.

background image

Grafika

Moduł Graph

background image

Układ współrzędnych ekranu

dla karty graficznej VGA wysokiej rozdzielczości

63
9

34
9

0

0

background image

Inicjowanie trybu graficznego

InitGraph (sterownik, tryb, skorowidz)

sterownik

- (Integer) wartość określająca sterownik obsługujący

kartę

graficzną;

tryb

- (Integer) wartość określająca tryb pracy karty

graficznej;
skorowidz

- (String) ścieżka dostępu do sterownika (w przypadku

łańcucha pustego przyjmowany jest katalog bieżący);

DetectGraph (sterownik, tryb)

CloseGraph

Zamykanie trybu graficznego

background image

Zmiana trybu graficznego

SetGraphMode (tryb)

tryb

- (Integer) wartość określająca tryb

pracy karty graficznej;

Przełączenie na tryb tekstowy

RestoreCrtMode

background image

Przykład 1:

program Grafika;
uses Graph;
var sterownik, tryb : Integer;

begin
DetectGraph (sterownik, tryb);
InitGraph (sterownik, tryb,
'C:\STEROWNIKI');
...
CloseGraph
end.

background image

Przykład 2 (Sterownik jest w katalogu
bieżącym):

program Grafika;
uses Graph;
var sterownik, tryb : Integer;

begin
sterownik:=9;
tryb:=2;
InitGraph (sterownik, tryb,'');
...
CloseGraph
end.

background image

Stałe definiujące sterowniki

const

Detect

= 0

CGA = 1
MCGA

= 2

EGA = 3
EGA64

= 4

EGAMono

= 5

IBM8514

= 6

HercMono

= 7

ATT400

= 8

VGA = 9
PC3270

= 10

CurrentDriver

= -128

background image

Przykładowe stałe

definiujące tryby ekranu

stała wartość rozdzielczość

liczba kolorówstrony

const EGALo

= 0

640 x 200

16

4

EGAHi = 1

640 x 350

4

4

VGALo = 0

640 x 200 16

4

VGAMi = 1

640 x 350 16

2

VGAHi = 2

640 x 480 16

1

background image

Przykład 3:

program Grafika;
uses Graph;
var sterownik, tryb : Integer;

begin
sterownik:=VGA;
tryb:=VGAHi;
InitGraph (sterownik, tryb,'');
...
CloseGraph
end.

background image

Funkcje i procedury dotyczące ekranu

Przykład 1:

var x,y : integer;

begin
x:=GetMaxX;
y:=GetMaxY;
writeln (
'Rozdzielczość ekranu: ',x,'
×',
y)
end.

GetMaxX

rozdzielczość ekranu w kierunku osi x

GetMaxY

rozdzielczość ekranu w kierunku osi y

background image

Ustawienie parametrów graficznych

Ustalenie koloru linii

SetColor(kolor)

Ustalenie koloru tła

SetBkColor(kolor)

kolor (Word)

- wartość lub stała określająca kolor

background image

Stałe definiujące kolory

const

Black

= 0

(kolor czarny)

Blue = 1

(kolor niebieski)

Green = 2

zielony

Cyan = 3

turkusowy

Red

= 4

czerwony

Magenta

= 5

karmazynowy

Brown

= 6

brązowy

Lightgray

= 7

jasnoszary

Lightblue

= 9

jasnoniebieski

Lightgreen

= 10

jasnozielony

Lightcyan

= 11

jasnoturkusowy

Lightred

= 12

jasnoczerwony

Lightmagneta

= 13

jasnokarmazynowy

Yellow

= 14

żółty

White = 15

biały

background image

Ustawienie parametrów graficznych

Ustalenie rodzaju i grubości linii

SetLineStyle(rodzaj,wzór,grubość)

rodzaj (Word) - wartość lub stała określająca linię
wzór (Word)

- istotny tylko gdy rodzaj

zdefiniowany przez programistę

background image

Stałe definiujące linie

Stałe rodzajów linii:

const

SolidLn

= 0

ciągła

DottedLn

= 1

kropkowana

CenterLn

= 2

symetrii

DashedLn

= 3

przerywana

UserBitLn

= 4

zdefiniowana przez

programistę (SetFillStyle)

Stałe grubości linii:

const

NormWidth = 1

normalna

ThickWidth

= 3

pogrubiona

background image

Ustawienie parametrów graficznych

Ustalenie rodzaju i koloru wypełnienia

SetFillStyle(wzór,kolor)

wzór (Word) - wartość lub stała określająca wzór
wypełnienia

kolor (Word)

- wartość lub stała określająca kolor

Zdefiniowanie wypełnienia

SetFillPattern(wzór,kolor)

wzór (FillPatternType)

- ośmioelementowa tablica

liczb całkowitych typu Byte

kolor (Word)

- wartość lub stała określająca kolor

background image

Stałe definiujące wypełnienia

const

EmptyFill

= 0

w kolorze tła

SolidFill

= 1

w kolorze pierwszoplanowym

LineFill

= 2

linie poziome

LtSlashFill

= 3

linie ukośne

SlashFill

= 4

linie ukośne, pogrubione

BkSlashFill

= 5

przeciwne linie ukośne

LtBkSlashFill

= 6

przeciwne linie ukośne, pogr.

HatchFill

= 7

kratka

XHatchFill

= 8

kratka X

InterleaveFill

= 9

gęste kropki

WideDotFill

= 10

kropki

CloseDotFill

= 11

rzadkie kropki

UserFill

= 12

zdefiniowana przez

programistę (SetFillPattern)

background image

Funkcje i procedury dotyczące ekranu

czyszczenie ekranu, ustawienie okna na cały ekran

ClearDevice

deklaracja okna

SetViewPort (x1,y1,x2,y2,odcięcie)

x1,y1 (Word) - współrzędne lewego-górnego narożnika okna

x2,y2 (Word) - współrzędne prawego-dolnego narożnika okna
odcięcie (Boolean)

- TRUE - grafika ograniczona do

bieżącego okna
(mogą być stałe: ClipOn, ClipOf)

czyszczenie okna

ClearViewPort

background image

Funkcje i procedury dotyczące ekranu

skierowanie danych na odpowiednią stronę

SetActivePage(strona)

wyświetlenie strony

SetVisualPage(strona)

strona (Word) - numer strony

background image

Funkcje i procedury dotyczące ekranu

Przesunięcie wskaźnika ekranu do punktu o współrzędnych

(x,y);

MoveTo(x,y)

x,y : Integer

Przesunięcie wskaźnika ekranu o wektor (x,y);

MoveRel(

x,

y)

x,y : Integer

Współrzędne aktualnego położenia wskaźnika ekrany

względem bieżącego okna

GetX
GetY

background image

Procedury graficzne

Narysowanie linii od punktu o współrzędnych (x1,y1) do punktu

o współrzędnych (x2,y2)

Line(x1,y1,x2,y2)

x1,y1,x2,y2 : Integer

Narysowanie linii od bieżącego położenia wskaźnika ekranu do

punktu oddalonego o wektor (x,y);

LineRel(

x,

y)

x,y : Integer

Narysowanie linii od bieżącego położenia wskaźnika ekranu do

punktu o współrzędnych (x,y);

LineTo(x,y)

x,y : Integer

background image

Procedury graficzne

Zaznaczenie punktu o współrzędnych (x,y)

PutPixel(x,y,kolor)

x,y

: Integer

kolor : Word

Narysowanie prostokąta

Rectangle (x1,y1,x2,y2)

x1,y1 (Integer)- współrzędne lewego-górnego narożnika okna

x2,y2 (Integer)- współrzędne prawego-dolnego narożnika okna

background image

Procedury graficzne

Narysowanie okręgu

Circle (x,y,r)

x,y (Integer)

- współrzędne środka okręgu

r (Word)

- promień okręgu

Narysowanie wielokąta

DrawPoly (n,wsp)

n (Word)

- liczba wierzchołków wielokąta

wsp - współrzędne wierzchołków (zmienna tablicowa o
elementach typu PointType)

background image

Procedury graficzne

Narysowanie łuku okręgu

Arc (x,y,a,b,r)

x,y (Integer)

- współrzędne środka okręgu

a,b (Word)

- kąt początkowy i kąt końcowy

promienia

wodzącego (w stopniach względem osi x)

r (Word)

- promień okręgu

Narysowanie łuku elipsy

Ellipse (x,y,a,b,xr,yr)

x,y,a,b

- j.w.

xr,yr (Word)

- długość osi elipsy w kierunku osi x i y

background image

Procedury graficzne

Wypełnienie prostokąta aktualnym znakiem wypełnienia i

kolorem

Bar (x1,y1,x2,y2)

x1,y1 (Integer)- współrzędne lewego-górnego narożnika okna

x2,y2 (Integer)- współrzędne prawego-dolnego narożnika okna

Narysowanie prostopadłościanu i wypełnienie przedniej ściany

Bar3D (x1,y1,x2,y2,g,w)

g (Word)

- głębokość prostopadłościanu

w (Boolean)

- TRUE - będzie zaznaczona górna płaszczyzna

(mogą być stałe: TopOn, TopOf)

background image

Procedury graficzne

Wypełnienie wycinka kołowego

Arc (x,y,a,b,r)

x,y (Integer)

- współrzędne środka okręgu

a,b (Word)

- kąt początkowy i kąt końcowy

promienia

wodzącego (w stopniach względem osi x)

r (Word)

- promień okręgu

Narysowanie i wypełnienie elipsy

FillEllipse (x,y,r1,r2)

x,y (Integer) - środek elipsy
r1,r2 (Word)

- półosie elipsy

background image

Funkcje i procedury tekstowe

Ustawienie kroju pisma

SetTextStyle(krój,kierunek,rozmiar)

krój (Word)

- wartość lub stała określająca krój

kierunek (Word)

- wartość lub stała określająca kierunek

rozmiar (Word) - wartość określająca rozmiar (1..10)

Wyrównanie tekstu

SetTextJustify(poziom,pion)

poziom (Word) - wartość lub stała określająca poziome
wyrównanie pion (Word)

- wartość lub stała

określająca pionowe wyrównanie

background image

Stałe definiujące kroje pisma

const

DefaultFont = 0

standardowe

TriplexFont = 1

"triplex"

SmallFont

= 2

małe

SansSerifFont

= 3 "sansserif"

GothicFont = 4

gotyckie

background image

Stałe definiujące justowanie

const

CenterText = 0

lewo

LeftText

= 1

Środek

RightText

= 2

prawo

BottomText = 0

dół

TopText

= 2

góra

Stałe definiujące kierunek

const

HorizDir

= 0

lewo

VertDir

= 1

Środek

background image

Stałe definiujące kierunek

const

HorizDir

= 0

lewo

VertDir

= 1

Środek

background image

Procedury tekstowe

Wyprowadzenie tekstu na ekran

OutText(tekst)

OutTextXY(x,y,tekst)

x,y (Integer) - położenie tekstu w bieżącym oknie
tekst (String) - tekst wyprowadzany na ekran


Document Outline


Wyszukiwarka

Podobne podstrony:
Wykład z Pascala 2
Wykład z Pascala 2
Wykład Pascal (6)
Sem II Transport, Podstawy Informatyki Wykład XXI Object Pascal Komponenty
Sem II Transport, Podstawy Informatyki Wykład XIV i XV Object Pascal Funkcje i procedury
Podstawy Informatyki Wykład XI Object Pascal Podstawy programowania w Object Pascalu
Podstawy Informatyki Wykład XVI Object Pascal Obiekty
Sem II Transport, Podstawy Informatyki Wykład XII Object Pascal Instrukcje sterujące
Podstawy Informatyki Wykład XIII Object Pascal Funkcje i procedury
Podstawy Informatyki Wykład XVII Object Pascal Komponenty
Tp w 10 Programowanie modularne w Turbo Pascalu, INFORMATYKA, PROGRAMOWANIE, wykłady
Podstawy Informatyki Wykład XV Object Pascal Grafika
Sem II Transport, Podstawy Informatyki Wykład XIX i XX Object Pascal Obiekty
Podstawy Informatyki Wykład XII Object Pascal Instrukcje sterujące
Informatyka Wykład Turbo pascal 7
Sem II Transport, Podstawy Informatyki Wykład XVIII Object Pascal Grafika
Podstawy Informatyki Wykład X Object Pascal Jezyki programowania, Proste typy danych
Podstawy Informatyki Wykład XIV Object Pascal Tablice, rekordy i zbiory
Sem II Transport, Podstawy Informatyki Wykład XVI i XVII Object Pascal Tablice, rekordy i zbiory

więcej podobnych podstron