Typy prywatne 1 Typy prywatne W Adzie typy prywatne (private types) służą do bezpiecznego udostępniania danych zdefiniowanych w pakiecie, z którego korzysta.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Katarzyna Szafrańska kl. II ti
Teoria układów logicznych
Język C/C++ Funkcje.
Programowanie obiektowe
Programowanie obiektowe
Wzorce.
Język ANSI C Funkcje Wykład: Programowanie komputerów
PASCAL (3) dr Anna Kwiatkowska.
Static, const, volatile.
Języki programowania C++
PROGRAMOWANIE STRUKTURALNE
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
Kurs Pascala – spis treści
Struktury.
C++ wykład 2 ( ) Klasy i obiekty.
Typy standardowe Typ Boolean Typ Integer Typ Float Typ Character Operacje wejścia-wyjścia.
Podprogramy 1 W Adzie mamy dwa rodzaje podprogramów (subprograms, subroutines): funkcje (functions) i procedury (procedures) Deklaracja i treść funkcji 
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Typy pochodne 1 Często dogodnie jest wprowadzić nowy typ, który jest podobny do istniejącego, niemniej jednak różny. Niech T będzie pewnym typem. Możemy.
Programowanie zorientowane obiektowo 1 Programowanie zorientowane obiektowo (object-oriented programming) jest to metodologia programowania bazująca na.
Ogólne jednostki programowe 1
Kompilacja przechodnia
Dynamiczne struktury danych 1
Tablice jednowymiarowe 1
Typy danych – podstawy 1 W Adzie wszystkie dane muszą być określonego typu. Definicja Typ danych (data type) jest to zbiór wartości i operacji, które można.
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.
Stałe i zmienne 1 Definicja Literałem (literal) nazywamy wartość danej jawnie pisaną w programie Przykład Ada.Float_Text_Io.Put ( ); Definicja Stałą
Typy wskaźnikowe ogólne 1 Typy wskaźnikowe ogólne (general access types) umożliwiają pośredni dostęp (indirect access), czyli przez wskaźniki, do zadeklarowanych.
Wykład 2 struktura programu elementy języka typy zmienne
Wstęp do programowania obiektowego
Podstawy programowania
Podstawy układów logicznych
Podstawy programowania
Programowanie strukturalne i obiektowe
Andrzej Jędryczkowski Nie da się napisać większego programu bez podziału go na części zwane podprogramami. Podprogram to wyróżniona część programu.
Jerzy F. Kotowski1 Informatyka I Wykład 8 STRUKTURA PROGRAMU n Funkcje n Klasy zmiennych n Projekt.
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Programowanie obiektowe III rok EiT
Java – coś na temat Klas Piotr Rosik
Dziedziczenie Maciek Mięczakowski
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Podstawy Techniki Cyfrowej
Prasek Aneta, Skiba Katarzyna. Funkcje stałe const to takie funkcje, które nie mogą modyfikować stanu obiektu. Oznacza to, że funkcja stała nie może zmieniać.
Kurs języka C++ – wykład 9 ( )
Programowanie w języku C++
Aplikacje internetowe
Programowanie strukturalne i obiektowe C++
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Paradygmat programowania obiektowego, klasa, obiekt
Programowanie Zaawansowane
PROGRAMOWANIE W JAVA Informatyka Stosowana – ROK II / III Laboratoria mgr inż. Krzysztof Bzowski.
Wykład 4 Klasa Vec, której konstruktory alokują pamięć dla obiektów 1.Przykład definicji klasy Vec 2.Definicje konstruktorów i destruktora 3.Definicja.
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Pakiety numeryczne Skrypty, funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Wykład 1 Informatyka II MPZI2 sem.letni. Tablice Tablice deklarujemy array [ lista typów indeksów ] of typ bazowy (składowych) np. var t1,t2:array [1..5,
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Zmienne typy danych w VBA. MS Excel – typy danych w języku programowania VBA.
Elementy cyfrowe i układy logiczne
Haskell Składnia funkcji.
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Typy prywatne 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 =.

Typy prywatne 2 Przykład 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 są 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.

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ń.

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.

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.

Typy prywatne 6 Zadanie 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 Napisać funkcję Konstruktor_2d konstruującą daną typu Wektor_2D zdefiniowanego wyżej. Wykorzystać zasoby pakietu My_Robust_Input.

Typy prywatne 7 Zadanie Przyjmując definicję typu Wektor_2D jak w zadaniu poprzednim, napisać funkcje "+", "*", "*" służące odpowiednio do: obliczania sumy dwóch wektorów i obliczania iloczynu wektora przez skalar rzeczywisty. Zadanie Przyjmując definicję typu Wektor_2D jak w zadaniu poprzednim, napisać pełne deklaracje stałych Wersor_Pierwszy i Wersor_Drugi, które reprezentują odpowiednio wektory:

Typy prywatne 8 Typy prywatne ograniczone