Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałHenryk Wlizło Został zmieniony 11 lat temu
1
Rekordy 1 Definicja Typ strukturalny nazywamy typem rekordowym, jeżeli zawiera pewną liczbę nazwanych 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. Taką formę zapisu nazywa się wybraną składową (selected component).
2
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
3
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
4
Rekordy 4 Przykład type Complex is record Re : Float; Im : Float; end record;.. Liczba : Complex; Liczba.Re := 0.0; Liczba.Im := 1.0;
5
Rekordy 5 W ogólnym przypadku liczba 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.
6
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 (record aggregate).
7
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;
8
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 (named aggregate). W takim agregacie kolejność nadawania wartości składowym rekordu nie musi być taka sama jak w definicji typu rekordowego.
9
Rekordy 9 Drugi rodzaj agregatu nosi nazwę agregatu pozycyjnego (positional aggregate ). Student := ("Anna ", "Maria ", "Zdolna "); W tym przypadku musi być taka sama kolejność nadawania wartości jak w definicji typu rekordowego. Przykład PP_027_Rekordy
10
Zadania. Literatura podstawowa Zadania APP_Zadania_09_Rekordy.pdf Literatura podstawowa Morawski, M., Zajączkowski, A. M. (2003). Wstęp do programowania w języku Ada95. Rozdział 5.3.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.