background image

Rekordy 1

Definicja.

 Typ strukturalny nazywamy typem 

rekordowym, jeżeli zawiera pewną ilość 
składowych, które mogą być różnych typów.

Dostęp do składowych zmiennej typu 

rekordowego uzyskuje się przez podanie 
nazwy zmiennej, po której piszemy kropkę i 
następnie nazwę odpowiedniej składowej typu. 
Taką formę zapisu nazywa się 

wybraną 

składową

 (

selected component

).

background image

Rekordy 2

W notacji EBNF mamy definicje:

record_type_definition ::= record

component_list

  end record

component_list ::=  component_declaration

    {component_declaration}

component_declaration ::= component_identifier 

: subtype_mark

subtype_mark :: type_name | subtype_name

selected_component ::= 

record_variable.component_identifier

background image

Rekordy 3

Słowniczek

Record type definition

 – definicja typu 

rekordowego

Component list

 – lista składowych

Component declaration

 – deklaracja składowej

Component identifier

 – identyfikator składowej

Subtype mark

 – oznaczenie typu

Selected component

 – wybrana składowa

background image

Rekordy 4

Przykład.

type Complex is 

record
  Re : Float;
  Im : Float;
end record;

..
Liczba : Complex;
Liczba.Re := 0.0;
Liczba.Im := 1.0;

background image

Rekordy 5

W ogólnym przypadku ilość operatorów 

zdefiniowanych wstępnie dla typu rekordowego 
jest ograniczona do dwóch operatorów 
relacyjnych:

• operatora równości

 

• operatora nierówności /=

Definicja.

 Dwa rekordy są równe jeżeli wszystkie 

składowe w jednym rekordzie są równe 
odpowiednim składowym w drugim rekordzie.

Nazwy składowych umieszczone na liście 

składowych rekordu 

muszą być unikalne 

wewnątrz definicji typu rekordowego

.

background image

Rekordy 6

Nadawanie wartości domyślnych przy definicji 

rekordu

Nadawanie wartości domyślnych przy deklaracji 

typu rekordowego jest 

wyłącznie

 własnością tych 

typów. Inne typy i podtypy nie mają tej własności.

Agregaty rekordowe

Literały rekordowe nazywamy agregatami 

rekordowymi.

Definicja.

 Zespół wartości składowych rekordu 

ujęty w nawiasy okrągłe nazywamy agregatem 
rekordowym.

background image

Rekordy 7

Przykład.

type Osoba is record 
  Pierwsze_Imie : String (1 .. 10) := 

(others => ' ');  

  Drugie_Imie : String (1 .. 10) := 

(others => ' ');  

  Nazwisko : String (1 .. 20) := (others 

=> ' ');  

end record
Student : Osoba;

background image

Rekordy 8

Student := (Pierwsze_Imie => "Anna     ",

Drugie_Imie => "Maria     ",
Nazwisko => "Zdolna    ");

Ten agregat rekordowy jest agregatem, w 

którym wartości są 

związane przez nazwę

 z 

odpowiednimi składowymi rekordu. W tym 
przypadku mówimy o 

agregacie nazywanym

W takim agregacie kolejność nadawania 
wartości składowym rekordu 

nie musi

 być 

taka sama jak w definicji typu rekordowego.

background image

Rekordy 9

Drugi rodzaj agregatu nosi nazwę 

agregatu 

pozycyjnego

.

Student := ("Anna      ",

  "Maria     ",
  "Zdolna    ");

W tym przypadku 

musi

 być taka sama kolejność 

nadawania wartości jak w definicji typu 
rekordowego.

Program.

 Rekordy

background image

Rekordy 10

Literatura podstawowa

Morawski, M., A. M. Zajączkowski. 

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


Document Outline