background image

 

 

Typy danych – podstawy 1

W Adzie wszystkie dane muszą być określonego typu.

Definicja 1.

 Typ danych (

data type

) jest to zbiór 

wartości i operacji, które można wykonywać na tych 
wartościach

Mamy ty analogię ze strukturami w matematyce.

 

Przykład 1.

 Przestrzeń wektorowa

I podział typów
• Typy zdefiniowane wstępnie
• Typy definiowane przez programistę
Typy standardowe
 określone są w pakiecie Standard 

i są to jedyne typy zdefiniowane wstępnie w Adzie.

background image

 

 

Typy danych – podstawy 2

II podział typów
• Typy elementarne – typy skalarne i typy 

wskaźnikowe

• Typy strukturalne
Dana typu elementarnego jest niepodzielna.

Przykład 2. 

Typy standardowe: Boolean, 

Integer, Float, typy wyliczeniowe.

Dana typu strukturalnego ma składowe.

Przykład 3.

 Typ standardowy String, typy 

tablicowe, typy rekordowe.

background image

 

 

Typy danych – podstawy 3

Najczęściej deklaracja typu ma postać

type

 Nazwa_Typu 

is

 Opis_Typu;

Nazwa_Typu jest identyfikatorem.
Opis_Typu określa jakie wartości może 

przyjmować dana deklarowanego typu.

Nie wszystkie dane muszą należeć do typu, 

który posiada nazwę.

Można spotkać dane typów anonimowych 

takich jak tablice, zadania i obiekty chronione.

Każda deklaracja typu określa nowy typ różny 

od istniejących.

background image

 

 

Podtypy 1

Podtyp deklarujemy następująco:

subtype

 Nazwa_Podtypu 

is

 Typ_Skalarny 

range

 Dolne..Gorne;

Typ_Skalarny nazywamy typem bazowym
Na podtyp przenoszone są operacje określone 

dla typu bazowego.

Zbiór wartości jakie mogą przyjmować dane 

podtypu jest określony przez zakres (

range

określony przez wartości wyrażeń Dolne i 

Gorne, które muszą być typu bazowego.

background image

 

 

Podtypy 2

Jeżeli dana przyjmie wartość spoza zakresu 

typu, albo podtypu, zostaje zgłoszony 
wyjątek

 

(

exception

) Constraint_Error. 

Powoduje to zakończenie programu, albo 
przejście do obsługi wyjątku

 

(

exception 

handling

).

background image

 

 

Typy wyliczeniowe 1

Uproszczony schemat EBNF
enumeration_type 

::= 

type

 identifier 

is

enumeration_type_definition

enumeration_type_definition 

::= (identifier{,identifier})

Słowniczek

• enumeration_type

 – typ wyliczeniowy,

• enumeration_type_definition

 – definicja 

typu wyliczeniowego

background image

 

 

Typy wyliczeniowe 2

Przykład 4.

type

 Kolor 

is

 (Czerwony, Zielony, Niebieski, 

Fioletowy, Zolty);

type

 Kolor_RGB 

is

 (Czerwony, Zielony, 

Niebieski);

W tym przypadku jednoznaczność odwołań 

zapewniają następujące wyrażenia 

kwalifikowane:

Kolor’(Czerwony), Kolor_RGB’(Czerwony)
Bardziej rozsądne wydaje się jednak zdefiniowanie 

podtypu

subtype

 Kolor_RGB 

is

 Kolor 

range

 

Czerwony..Niebieski;

background image

 

 

Typy wyliczeniowe 3

Atrybuty typów wyliczeniowych
‘First  – pierwszy element
‘Last 

– ostatni element

‘Pred

– poprzednik (

predecessor

)

‘Succ

– następnik (

successor

)

‘Pos – pozycja – liczba porządkowa (

position

)

‘Val – wartość (

value

)

Porządek elementów typu wyliczeniowego 

jest wyznaczony przez kolejność tych 

elementów na liście definicyjnej typu i w 

związku z tym dane typów wyliczeniowych 

mogą być porównywane. 

background image

 

 

Typy wyliczeniowe 4

Mamy następujące operatory relacyjne:

= /= < <= > >=

Przykład 5.

 Atrybuty_Typu_Wyliczeniowego

background image

 

 

Zadania. Literatura

Zadania.

Ada_Zadania_2_Typy_Wyliczeniowe.pdf
Literatura podstawowa
Morawski, M., Zajączkowski, A. M. 

(2003). 
Wstęp do programowania w języku 
Ada’95

Rozdziały 3.1..3.4.


Document Outline