il
,..**,
Cb
PROSTY
ACUCHOWY
WSKANIKOWY
RZECZYWISTY
STRUKTURALNY
BOOLEAN BYTEBOOL WORDBOOL LONGBOOL
REAL
SINGLE DOUBLE
EXTENDED COMP
TABLICOWY REKORDOWY O Bi EKTOWY ZBIOROWY PLIKOWY
CA*KOWITY
INTIGER SHORTINT LONGINT
BYTE WORD
ZNAKOWY
WYLICZENIOWY OKROJONY
PROCEDURALNY
106
P. Michakiewicz, I. wituszak
Programowanie w Turbo Pascal 7.0
Typydanych
Kada staa, zmienna, wyraenie czy te funkeja jest okreloneg typu, Typ ten dokadnie charakteryuje bir wartuci ryjmowanycl p*zez wyej wymienione elementy. Wjzyku Turbu 'ascal moemy wyrni standardowe typy dla liczb cakowitych, rzecywistych, znakw i war*, ci logicznyeh. Dodatkowo moerny okreli typy definiowane prze uytkownika. Nale do nich ty: okrojony, wyliczeniowy, wskanikowy, tablicowy, rekordowy, obiektowy, zbiorowy, plikowy i proceduralny, *,** Rysunek na sLr.107 przedstawia struktur typw wjzyku Turbo Pascal.
TYP CAKOWITY Przykad:
Dane tego typu stanowi zbir lieb cakowitych. Mona wyrni pi type
podtypw cakowitych rnieych si zakresem, a co tym idzie, Odlego = Real;
reprezentacj bajtow kadego z nich.Wartoci te przedstawia ponisza Waga = sinqle;
tabelka:
ZAKRES W BAJTACH ROZMIAR
TYP ACUCHOWY
Typ acuehowy suy do deklarowania zmiennych skadajcych si
Shortint -128..127 cigw znakw. Dane tego typu zapamitywane s jako cig znak*
Integer -32768..32767 2 f ktre s poprzedzone bajtem okrelajcym ich ilo.Poniewa lic:
-2147483648..214748364? 4 znakw okrelajeden bajt,wic typ Stringmoe skada si maksy
Lon *nt nie z 255znakw.Definiujemy go za pomoc sowa String,za dug
Byte 0..255 *'* acucha definiujemy za pomoc indeksu,ktrego warto musi b
0..65635 2 ** * * zakresu od 1do 255.Brak indeksu powoduje ustawienie jego wartc
Word na 255.Znak o indeksie 0zawiera infornaej o biecej dugoci dan*
Przykad: * * aeucha i mona go odeyta pomoc funkeji Length('ekst) l
***; funkcji Ord(Tekst[0)),gdzie Tekat jest mienn acuchow.Pryk*
type * deklaracji typw acuchowych:
Liczba Cakowita = integer;
Liczba Cakowita Dodatnia = Word; type
a=String;
b=5tring[10];
TYP RZECZYWISTY c=5tring[ 123) ;
Dane tego typu atanowi zbir liczb rzeczywistych. Mona wyrnic pl podtypw rzeczywistych rnicych si zakresem, a co za tyn idzie, reprezentacj bajtow kadego nich oraz liczb miejsc znaczcy*b Waxtoci te przedstawia tabelka.
*:: W prypadku defniowania procedury lub funkeji, ktrej parametr* mog by zmienne acuehowe o rnych dugociach, moemy uy deklaracji identyfikatora OpenString jako nazwy typu albo deklara procedury lub funkeji uy cznie z dyrektyw {$P+) kompilato: Otrymamy wtedy tzw. acuchy otwarte.
Przykad:
Procedure Dodaj ( var Tekst : Openstring );
108 P. Michakiewicz, I. wituszak Programowanie w Turbo Pascal 7.0
1 Sp+y
Procedure Dodaj( var Tekst : 5tring ); begin end; ISP-1
Dla tak zdefiniowanej procedury Dodaj i dla nastpujcych zmiennych
uar
x:5ting;
y:5tring[15];
wywoania poniaze a poprawne:
Dodaj(x); Dodaj(y);
aeuchy o wiksej dugoci moemy twory, wykorzystujc typ PCh* opisany w typach wskanikowych.
T Y P Pft OCEDURALNY
W przeciwiestwie do standardu jyka Paacal, jzyk Turbo Pascal traktuje procedury i funkejejako elementyjzyka, ktre mona przywi** zywa do zmiennych i przesylajako parametry. Deklarowanie zmiennej' tego typu jest podobne do delilaracji funkeji lub procedury, a rni siaf tym, e po slowie funetion lub procedure nie wystpuje identyfikatat funkcji lub procedury. Przyklady deklaracji typw proceduralnych: *
type
a=Procedure;
b=Procedure(n:Real);
c=Function(m:5tring):Char;
Naley pamita, e mienne tego typu nie mog by zwracane funkej.
TYP WYLICZENIOWY
Typ wyliczeniowy definiuje zbir identyfikatorw oznacajcych posze glne wartoci przez ich wyliczenie. Przykladowe typy wyliceniowe:
170 P. Michakiewicz, I. wituszak
Dzie Tygodnia=(pon,wto,ro,czw,pi,sob,nie); Pe=(mezyzna,kobieta);
Uporzdkowanie danych typu wyliczeniowego wynika kolejnoc wystpowania na licie identyfikatorw ijest okrelane licb porz w. Liczba porzdkowa dla danej okrelonej pre pierwszy identy tnr jest rwna zero i dla kadej nastpnej jest o jeden wiksza. Li porzdkow wyznacza si za pomoc funkeji Ord. Za pomoc funkeji ; i Succ moemy wyznaey poprednik i nastpnik danej wartoci wyliczeniowego, a za pomoc funkeji Low i High najmniejsz i naj ks warto z danego akresu.
TYP OKROJONY
Typ okrojony okrela podzbir dowolnego typu porzdkowego lub v :yt ezeniowego, ktry ogranica zakres dostpnych wartoci danego t r***r porzdkowego. Przykladowe typy okrojone:
type
Rok=1990..1999;
Mae Litery='a'..'z';
;:
**b'*' Dla zmiennej R typu Rok moemy podstawi tylko wartoci z zakresi 1990 do 1999, za podstawienie innych wartoci powoduje bd.
TYP LOGICZNY
t::*`
Typ logiczny jeat to typ wylieeniowy, ktry przyjmuje dwie warb ' okrelane za pomoc identyfikatorw False i True. Moemy wyr:
nastpujce typy logiczne:
ROZMIAR W BA*TTACH Boolean 1 ByteBool 1 WordBool 2 Lon Bool 4
Programowanie w Turbo Pascal 7.0
j*yp 1*u01e lUZC *7lLy*uivwu u,yinv - r-- z
pozoatae typy logicne mog przyjmowa rne wartuci porzdkowe. Podaumowujc, typ logiczny przyjmuje wato False,jeelijego warto porzdkowa jest rwna 0, a True dla wartoci wikszych od zera.
'1'YP ZNAKOWY
Typ znakowy okrela zbir znakw okrelonycl przez rozszerzony zbir znakw ASCII. Warto orzdkowa, ktr rnoerny odczyta za pomoe funkcji Ord, okrela kod danego znaku. Przykadowe typy nakowe:
type
Znak=Char Litera=Char;
TYP WSKANIKOWY
Typ wskanikowy ozwala na okrelenie zmiennycl, za ponoc ktrych * moemy odwoa ai do obszarw pamici operacyjnej. Wyrniamy ! naatpujce trzy deklaracje typu wskanikowego:
type
Wsk*l = " Typ podstawowy;
Wsk 2 = Pointer;
Wsk 3 = P Char;
Dehlarcja 1
Deklaracja pierwsza okrela typ wskanikowy sucy d o deklaracji