Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Tablice jednowymiarowe 1 Definicja Strukturalnym typem danych (composite data type) nazywamy typ danych umożliwiający związanie zespołu danych z identyfikatorem.

Podobne prezentacje


Prezentacja na temat: "Tablice jednowymiarowe 1 Definicja Strukturalnym typem danych (composite data type) nazywamy typ danych umożliwiający związanie zespołu danych z identyfikatorem."— Zapis prezentacji:

1 Tablice jednowymiarowe 1 Definicja Strukturalnym typem danych (composite data type) nazywamy typ danych umożliwiający związanie zespołu danych z identyfikatorem. Definicja Typ strukturalny nazywamy typem tablicowym (array type), jeżeli wszystkie składowe struktury są tego samego typu i dostęp do składowych odbywa się przez mechanizm indeksowania. Definicja Tablica jednowymiarowa (one-dimensional array) jest skończonym ciągiem danych tego samego typu. Jeżeli zbiór indeksów oznaczymy przez I, a zbiór wartości typu elementów tablicy przez T, to zgodnie z definicją, tablica jednowymiarowa A reprezentuje odwzorowanie A : I T. Jeżeli i I, to i - ty element tej tablicy oznaczamy przez A(i) T i ten sposób zapisu przyjęto w Adzie.

2 Tablice jednowymiarowe 2 W notacji EBNF mamy: array_type_definition ::= array index_constraint of component_subtype_indication index_constraint ::= (discrete_subtype_indication | range) discrete_subtype_indication ::= type_name | subtype_name range ::= simple_expression..simple_expression | range_attribute Typ indeksu może więc być typem dyskretnym, podtypem dyskretnym, albo zakresem typu dyskretnego.

3 Tablice jednowymiarowe 3 Przykład Niech będzie dana deklaracja M : array (Positive range 1..10) of Float; Zmienna M jest typu tablicowego, którego zbiorem wartości są dziesięcioelementowe tablice liczb rzeczywistych reprezentowanych przez typ standardowy Float. W tym przypadku I = {1,2,..,10}, A = { Float }, przy czym { Float } oznacza zbiór wartości typu Float. Tablica M jest typu opisanego w deklaracji tej zmiennej. Typ ten jest anonimowy. Definicja Typ danych, który nie ma identyfikatora typu nazywamy typem anonimowym (anonymous type).

4 Tablice jednowymiarowe 4 Należy przypomnieć, ze Ada jest językiem o silnej typizacji danych. Z tego wynika, że jeżeli mamy deklaracje Min : constant Integer := 1; Max : constant Integer := 10; M : array (Integer range Min..Max) of Float; T : array (Integer range Min..Max) of Float; to tablice M i T są różnych typów, mimo że zdefiniowanych identycznie. W wyniku tego nielegalna jest relacja równości M = T i instrukcja podstawienia M := T; Możemy jednak definiować typy tablicowe, które nie są anonimowe, czyli mają nazwę.

5 Tablice jednowymiarowe 5 Przykład Niech będą dane deklaracje Min : constant Integer := 1; Max : constant Integer := 10; subtype Index is Positive range Min..Max; type List is array (Index) of Float; : M, L : List; W tym przypadku zdefiniowano typ indeksów Index, następnie typ tablicowy List oraz zmienną M tego typu. Rozwiązanie to jest lepsze od tego z poprzedniego przykładu, ponieważ możemy deklarować inne zmienne typu List w obszarze deklaracji tego typu. Legalne są teraz relacja M = L i instrukcja podstawienia T := M; Przykład PP_021_Deklaracja_Tablicy_Jednowymiarowej

6 Tablice jednowymiarowe 6 W notacji EBNF dostęp do elementu zapisujemy w postaci indexed_component ::= name (expression), przy czym name jest identyfikatorem zmiennej tablicowej, a wyrażenie w nawiasie może być literałem, stałą, zmienną, albo kombinacją tych obiektów, operatorów i ewentualnie wywołań funkcji. Wartość wyrażenia musi być typu zgodnego z typem indeksów tablicy. Element tablicy traktowany jest jak zmienna, co oznacza, że można przypisać mu wartość, wczytać lub wypisać wartość, użyć jako parametru aktualnego podprogramu, lub użyć jako argumentu wyrażenia.

7 Tablice jednowymiarowe 7 Przykład Przypuśćmy, że chcemy przechowywać dzienne wyniki sprzedaży całego tygodnia. W tym celu możemy stosować deklaracje z programu PP_022_Sprzedaz_Tygodniowa. Atrybuty tablic jednowymiarowych Niech będzie dana deklaracja A : array (Index_Type range First..Last) of Component_Type; Z tablicą tą związane są następujące atrybuty:

8 Tablice jednowymiarowe 8 A'First – pierwsza wartość indeksu ALast – ostatnia wartość indeksu ALength – liczba wartości indeksu ARange = A'First.. ALast

9 Zadania. Literatura podstawowa Zadania Ada_Zadania_07_Tablice_Jednowymiaro we.pdf Literatura podstawowa Morawski, M., Zajączkowski, A. M. (2003). Wstęp do programowania w języku Ada95. Rozdziały 5.1, 5.2.


Pobierz ppt "Tablice jednowymiarowe 1 Definicja Strukturalnym typem danych (composite data type) nazywamy typ danych umożliwiający związanie zespołu danych z identyfikatorem."

Podobne prezentacje


Reklamy Google