APP 14 Typy Prywatne 2010

background image

Typy prywatne 1

1.

Typy prywatne

W Adzie

typy prywatne

(

private types

) służą do

bezpiecznego udostępniania danych
zdefiniowanych w pakiecie, z którego korzysta
klient tego pakietu.

Typy prywatne opisują stopień widzialności

danych pomiędzy pakietem i klientem pakietu.

W przypadku typu prywatnego program kliencki

dysponuje zdefiniowaną wstępnie

instrukcją

podstawienia

:= i zdefiniowaną wstępnie

relacją nierówności

/=, która zanegowana

jest równoważna

relacji równości

=.

background image

Typy prywatne 2

Przykład 1.

Wektory_2D

Część pakietu do słowa kluczowego

private

jest udostępniona programowi klienckiemu. W

tej części zadeklarowano typ Wektor_2d i stałą

Zero tego typu, przy czym deklaracje te są

niepełne

.

Typ poza nazwą nie ma opisu, a stała nie ma

nadanej wartości.

Te szczegóły implementacyjne określone są w

części prywatnej

i dzięki temu

niewidoczne

w programie klienckim.

W części prywatnej podana jest pełna

deklaracja typu Wektor_2d oraz oparte na niej

wartościowanie stałej Zero.

background image

Typy prywatne 3

Tego rodzaju stałą nazywamy

stałą odłożoną

(

deferred constant

).

Klient pakietu Wektory_2D może używać danych
typu Wektor_2D mając zdefiniowane wstępnie
instrukcję podstawienia i relację równości. Poza
tym, klient może korzystać z operacji dodawania
"+" wektorów i mnożenia "*" wektora przez
liczby rzeczywiste.
Pakiet udostępnia też operacje wejścia/wyjścia w
postaci procedur
Czytaj_Wektor_2D i Wypisz_Wektor_2D
Pierwsza z nich jest konstruktorem danych typu
Wektor_2D, natomiast nie zdefiniowano w
pakiecie selektora oraz zapytań.

background image

Typy prywatne 4

W programie klienckim pakietu udostępniającego

typ prywatny można deklarować stałe i zmienne

tego typu w zwykły sposób, ale

nie można

zmiennym

nadawać wartości początkowych

odwołując się szczegółów implementacyjnych typu

prywatnego.

Następująca deklaracja

jest błędna

:

A : Wektor_2D := (1 => 1.0, 2 => 2.0);
a

poprawna

jest deklaracja

A : Wektor_2D := Zero;
Obiekty zadeklarowane w części prywatnej pakietu

definicyjnego

są dostępne

w części

implementacyjnej.

Przykładem jest stała Zero z pakietu Wektory_2D.

background image

Typy prywatne 5

W pakiecie można wyróżnić trzy logicznie części:
1.

Część widoczną

(

visible part

) dla klienta

pakietu określającą logiczny interfejs między

klientem, a pakietem

2.

Część prywatną

(

private part

), która określa

szczegóły implementacji tego interfejsu

3.

Część implementacyjną

(

implementation

part

), szczegóły implementacyjne obiektów

udostępnianych przez część widoczną.

W części widocznej

nie można

definiować

zmiennych i alokować pamięci dla danych typu

prywatnego,

można

natomiast deklarować stałe

odłożone, inne typy, podtypy i nagłówki

podprogramów z parametrami typu prywatnego.

background image

Typy prywatne 6

Zadanie 1.

Napisać funkcje Pierwsza_Skladowa

i Druga_Skladowa obliczające odpowiednio

pierwszą i drugą składową wektora typu

Wektor_2D. Założyć przy tym, że pełna

deklaracja tego typu ma postać

type

Wektor_2D

is record

Pierwsza_Wsp : Float;

Druga_Wsp : Float;

end record

;

Zadanie 2.

Napisać funkcję Konstruktor_2d

konstruującą daną typu Wektor_2D

zdefiniowanego wyżej.
Wykorzystać zasoby pakietu Odporne_Wejscie.

background image

Typy prywatne 7

Zadanie 3.

Przyjmując definicję typu

Wektor_2D jak w zadaniu 1, napisać funkcje
"+", "*", "*" służące odpowiednio do:
obliczania sumy dwóch wektorów i
obliczania iloczynu wektora przez skalar
rzeczywisty.

Zadanie 4.

Przyjmując definicję typu

Wektor_2D jak w zadaniu 1, napisać pełne
deklaracje stałych Wersor_Pierwszy i
Wersor_Drugi, które reprezentują
odpowiednio wektory:

1

(1,0)

=

e

2

(0,1)

=

e

background image

Typy prywatne 8

2. Typy prywatne ograniczone


Document Outline


Wyszukiwarka

Podobne podstrony:
APP 04 Typy Standardowe 2010
APP 02 Typy Danych Podstawy 2010
04 2 Ocena przebiegu prywatyzacji w 2010 rid 4956
13 14 Seria 1.2, Prywatne, EN-DI semestr 4, Elektroenergetyka, wykład + ćwiczenia
APP 12 Typy Wskaznikowe Ogolne
13 14 Seria 1.3, Prywatne, EN-DI semestr 4, Elektroenergetyka, wykład + ćwiczenia
APP abstrakcyjne Typy Danych
APP 03 Stale i Zmienne 2010
APP 01 Pojecia Wstepne 2010
APP 15 Typy Pochodne
13 14 Seria 1.4, Prywatne, EN-DI semestr 4, Elektroenergetyka, wykład + ćwiczenia
13 14 Seria 1.5, Prywatne, EN-DI semestr 4, Elektroenergetyka, wykład + ćwiczenia
13 14 Seria 3.1(1), Prywatne, EN-DI semestr 4, Elektroenergetyka, wykład + ćwiczenia
13 14 Seria 1.1, Prywatne, EN-DI semestr 4, Elektroenergetyka, wykład + ćwiczenia
GR 14 15 WAWEL 2010
13 14 Seria 3.1, Prywatne, EN-DI semestr 4, Elektroenergetyka, wykład + ćwiczenia
14 typy zwałów
Strategia rozwoju firmy (14 stron), Prywatne, Zarządzanie
04 2 Ocena przebiegu prywatyzacji w 2010 rid 4956

więcej podobnych podstron