background image

Typy danych

background image

Typy danych w Turbo Pascal

Typy proste 

Typy porządkowe 

Typ wyliczeniowy 

Typy całkowite 

Typy logiczne 

Typ znakowy 

Typy okrojone 

Typy rzeczywiste 

Typy łańcuchowe 

Typy strukturalne 

Typy tablicowe 

Typ rekordowy 

Typ zbiorowy 

Typ plikowy 

Typy wskaźnikowe 

Typy proceduralne 

Typ obiektowy 

background image

Typy proste w języku Turbo 
Pascal

Typy proste są podstawowymi typami 

języka Turbo Pascal i za ich pomocą 

określa się bardziej złożone struktury 

danych. Wszystkie typy proste składają 

się ze skończonego i uporządkowanego 

zbioru wartości. Dzięki temu na 

wartościach tych typów możemy m.in. 

wykonywać operacje porównań. 

background image

Typy porządkowe w języku 
Turbo Pascal

Typami porządkowymi nazywamy wszystkie typy 

proste z wyjątkiem typów rzeczywistych. 

Wyróżnienie to jest spowodowane faktem, że typy 

rzeczywiste często nie mogą występować w 

kontekście dozwolonym dla innych typów prostych. 

Dla wartości każdego typu porządkowego są 

określone wartości poprzednie i następne (z 

wyjątkiem wartości krańcowych). Do typów 

porządkowych zaliczamy: 

Typ wyliczeniowy 

Typy całkowite 

Typy logiczne 

Typ znakowy 

Typy okrojone 

background image

Typ wyliczeniowy

Typ wyliczeniowy stosuje się zwykle dla zbiorów o 

niewielkiej liczbie elementów, na których nie wykonuje się 

operacji arytmetycznych. Definicja jednego typu 

wyliczeniowego jest następująca:

TYPE identyfikator_typu = (lista_identyfikatorów); 

Elementy typu wyliczeniowego są uporządkowane zgodnie 

z kolejnością ich wyliczenia w definicji typu i posiadają 

liczby porządkowe odpowiednio 0,1,2 itd. 

Przyklady:
TYPE Uczniowie = (Antek, Franek, Zenek); {Antek ma 0, 

Franek ma 1, a Zenek 2} 
P_roku = (wiosna, lato, jesien, zima); 

background image

Typy całkowite

Typy całkowite są w języku Pascal predefiniowane i nie 

wymagają opisu w programie. Wszystkie typy całkowite są 

podzbiorami zbioru liczb całkowitych. Wśród typów 

całkowitych wyróżniamy:

ShortInt, przedział od -128 do 127 

Byte, przedział od 0 do 255 

Integer, przedział od -32768 do 32767 

Word, przedział od 0 do 65535 

LongInt, przedział od -2147483648 do 2147483647 

Przyklad, przypuśćmy, że zdefiniowaliśmy nowy typ:

TYPE Liczba = Integer; 

W takim razie poniższa deklaracja :

var i,j: Liczba;

 jest równoważna deklaracji

var i,j: Integer

background image

Typy logiczne

Standardowymi typami logicznymi są typy 

Boolean

ByteBool

WordBool 

LongBool

Wartości typów logicznych są oznaczone za 

pomocą dwu predefiniowanych literałów (stałych): 

True i False, oznaczających odpowiednio wartości 

logiczne fałsz i prawda, przy czym w sensie 

uporządkowania stała False poprzedza stałą True

Liczbami porządkowymi elementów typu Boolean 

są tylko 0 (False) i 1 (True). Elemanty pozostałych 

typów logicznych mogą posiadać inne (wyższe) 

liczby porządkowe.

background image

Typ znakowy

Do oznaczenia typu znakowego 
służy predefiniowany identyfikator 
Char. Elementami typu znakowego 
są znaki ASCII, z których każdy jest 
pamiętany w jednym bajcie pamięci.

background image

Typy okrojone

Typy okrojone służą do ograniczania 

zakresów wartości dowolnego z dotychczas 

opisanych typów porządkowych. Definicja 

jednego typu okrojonego ma postać:

TYPE identyfikator_typu = stała .. stała;

 

Pierwsza stała podaje ograniczenie dolne i 

nie może być większa od drugiej - 

ograniczenia górnego. Stałe te muszą być 

tego samego typu porządkowego. 
Przyklad:

TYPE Litery = 'A' .. 'Z'; 

background image

Typy rzeczywiste

Do typów prostych należą także standardowe 

typy rzeczywiste, które jednak nie są typami 

porządkowymi. Każdy z dostępnych typów 

rzeczywistych jest dyskretnym i skończonym 

podzbiorem zbioru liczb rzeczywistych. 

Dostępnych jest pięć standardowych typów 

rzeczywistych o następujących 

predefiniowanych identyfikatorach:

Real, elementy zajmują po 6 bajtów pamięci 

Single, typ o pojedyńczej długości (4 bajty pamięci) 

Double, typ o podwójnej długości (8 bajtów pamięci) 

Extended, typ o rozszerzonej długości (10 bajtów pamięci) 

Comp, elementy to liczby całkowite z przedziału 

od -2

63

+1 do 2

63

-1 

background image

Typy łańcuchowe

Typy łańcuchowe służą do reprezentowania ciągu 

znaków, w tym niewidocznego znaku spacji. 

Elementami typu łańcuchowego są łańcuchy o 

długości od 0 do długości podanej w definicji typu 

łańcuchowego. Typ ten definiuje się następująco:

TYPE identyfikator_typu = String[rozmiar]; 

lub

TYPE identyfikator_typu = String

gdzie rozmiar jest liczbą typu Byte
Brak wyspecyfikowania rozmiaru powoduje domyślne 

przyjęcie długości 255 znaków (warość maksymalna). 
Przykład:

TYPE Nazwisko = String[20]; 

background image

Typy strukturalne

Typy strukturalne stosuje się do opisu 

obiektów złożonych, przy czym dany obiekt 

możemy opisać na kilka różnych sposobów. 

Każdy z typów strukturalnych definiowany 

jest przez podanie typów składowych i 

metody strukturalizacji, która zarazem 

określa sposób dostępu do elementów 

składowych. W ogólności definicja 

pojedynczego typu strukturalnego ma 

postać:

TYPE Identyikator_typu = 

Opis_typu_strukturalnego;

 przy czym opis typu 

strukturalnego może być opisem typu. 

background image

Typy tablicowe

Typ tablicowy, a konkretnie tablica składa się z ustalonej liczby 

elementów tego samego typu, zwanego typem składowym, który 

może być zarówno typem prostym lub łańcuchowym, jak i typem 

strukturalnym. Za pomocą tablic są reprezentowane regularne 

układy danych, np. wektory i macierze. Dostęp do poszczególnych 

elementów tablic uzyskuje się za pomocą indeksowania. Indeksem 

może być dowolne wyrażenie, którego wartość jest zgodna w sensie 

przypisania z typem indeksowym. Dopuszczalny zakres indeksów 

jest podany w definicji typu tablicowego. Definicja pojedynczego 

typu tablicowego ma postać:

TYPE Identyfikator_typu = array[typy_indeksowe] of typ_składowy;

 

gdzie typy indeksowe są opisami typu porządkowego (z wyjątkiem 

typu LongInt), przy czym poszczególne opisy oddziela się 

przecinkami. Typ składowy oznacza dowolny typ. 
Przykłady:

TYPE Macierz = array[1..20,1..30] of Real
Tablica = array[Boolean,1..20,znak] of Char


Document Outline