Programowanie współbieżne i rozproszone - Ada. EAIiE Katedra Automatyki

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie współbieżne i rozproszone - Ada. EAIiE Katedra Automatyki"

Transkrypt

1 Programowanie współbieżne i rozproszone - Ada EAIiE Katedra Automatyki 2011

2 Hello Ada with Ada.Text_Io;use Ada.Text_Io; procedure Main is type MyInt is range 1..6; begin Put_Line("witaj Ada"); for I in loop Put(".");Put(Integer Image( I )); delay(0.2); end loop; end Main;

3

4 Typy danych type Identyfikator is...; type Kolor is (Czerwony,Zielony,Niebieski); C:Kolor; D:Kolor:= Zielony; E:constant Kolor:=Niebieski; Żadnego Żadnego kombinowania, kombinowania, że że "Czerwony" "Czerwony" to to "1" "1" a a "Niebieski" "Niebieski" to to "3"! "3"!

5 Podtypy subtype Identyfikator is Typ...; subtype Dzien is Integer range 1..31; subtype P_Tydzien is Dzien range 1..7; subtype Dodatni is Integer range 1..Integer Last ; Dodatni First = 1; Dodatni Last = Integer Last;

6 Konwersja typów X: Integer:=2; Y: Float:=3.14; Z: Float; X+Y NIE Z := Float(X) + Y TAK Float(I) konwersja Integer (I) kwalifikacja

7 Tablice A:array(Integer range 1..10) of Float; AA:array (Integer range 1..10, Integer range 1..3) of Float ; PrzedTelewizorem : array (Dzien) of Float; A:array (Integer range 1..3) of Float := (0.0,0.0,0.0); A:array ( Integer range 1..3, 1..2) of Float := ((0.0,0.0), (0.0,0.0), (0.0,0.0)); A:array (Integer range 1..3, Dzien, Kolor) of Float range ;

8 Typy danych X: array (1..10) of Float; Y: array (1..10) of Float; Y:= X ; NIE X,Y: array(1..1 0) of Float; Y:=X; NIE

9 Instrukcje sterujące for i in 1..Ile loop <instrukcje> end loop; while <warunek> loop <instrukcje> end loop; for i in reverse 1..Ile loop <instrukcje> end loop; Etykieta: loop <instrukcje> end loop;

10 Instrukcje sterujące if <warunek> then exit end if; exit when <warunek>; exit Etykieta when <warunek>;

11 Instrukcje sterujące if <warunek 1> then <instrukcje> elsif <warunek 2> then... <instrukcje> else <instrukcje> end if; case <wyrazenie> is when <wartosc 1> => <instrukcje 1> when <wartosc 2> => <instrukcje 2> when <w1> <w2> => <instrukcje 3>... when others => <instrukcje n> end case;

12 Blok instrukcji, goto declare -- deklaracje zmiennych begin -- instrukcje end <<bardzo_bardzo_niedobrze>> goto bardzo_bardzo_niedobrze;

13 Ada run-time kernel Green Hills Software INTEGRITY-178B RTOS GMART GSTART Lockheed Martin Boeing Rockwell Raytheon Joint Strike Fighter F-35 B-1B awionika Sikorsky S-92 F-16 Airbus A380 Boeing X-45 UCAV Airbus A400M

14 Ada run-time DDC-I DARTS C-130 Cassini analizator pyłu Sikorsky S-92

15 Ada run-time Aplikacje w Adzie GNARL GNU GNU Ada Ada Run-time Library Library GNULL GNULL (POSIX SAL SAL ;) ;))) POSIX POSIX Sprzęt Sprzęt i i system system operacyjny

16 Ada run-time - GNARL poprawność semantyczna (tasking) przyrostowe budowanie kodu (częściowa implementacja) modularność przenośność efektywność

17 Typy nieograniczone type Wektor is array (Integer range <>) of Float; subtype Wektor_3 is Wektor (1..3); subtype Wektor_11 is Wektor (1..11); X:Wektor(1..10);

18 Typy type Liczby_Rzymskie is ('I','V','X','L','C','D','M'); type Character ISO 'X' < 'L' --??? Character'('X') < 'L' -- NIE Liczby_Rzymskie'('X') < 'L' -- TAK

19 Typ String type String is (Positive range <>) of Character; A:String(1..3):= ('k','o','t'); B:String(1..3):= "kot"; C:String:= "kot"; D:String(1..3):= "pies"; --!! C:String:= "pies"; A:String(1..3):= ('k','o','t'); B:String(1..50); B(45..47):= A(1..3);

20 Record type MonthName is (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); type Date is record Day : Integer range 1..31; Month : MonthName; Year : Integer := 2012; -- koniec swiata end record; A : Date := (12, Jun, 2012); B : Date := (Day => 13, Year => 1981, Month => Dec); C : Date := (Month => Jan, others => <>); C.Day := 22; Z : array(1..22) of Date; Z(2).Day := 22;

21 Funkcje function Test(X : Float) return Integer; function Test1(I, J, K : Date) return Float; function Test2(B : Date) return Boolean; function Test3 return Boolean; function Test(X : Float) return Integer is begin if X > 3.14 then return 1; else return 0; end if; end;

22 Funkcje przeciążanie tryb ''in'' wywołanie jako część wyrażenia wywołanie zawsze na kopii argumentów argumenty nie mogą być typami anonimowymi

23 Funkcje type Vector is array (Positive range <>) of Float; function Rev(A : Vector) return Vector is begin return Result : Vector(A'Range) do for I in A'Range loop Result(I) := A(A'First + A'Last - I); end loop; end return; end;

24 Procedury procedure BlaBla(A,B : in out Float; begin A :=... ; B :=... end; przeciążanie domyślny tryb ''in'' można wstawić instrukcję ''return'' C : Float) is

25 Procedury procedure BlaBla(A : Float := 1.345; B : Integer := 66; C : Positive := 1); BlaBla; BlaBla(2.234, 11); BlaBla(B => 11); BlaBla(2.22, C => 3); BlaBla(1.13, -2, 4);

26 Zadania Uruchomienie zadania następuje po zakończeniu opracowywania deklaracyjnej części zadania (utworzenie zadania wraz ze zmiennymi lokalnymi). Jeżeli w tej części zadania zostanie zgłoszony i nieobsłużony wyjątek, to zadanie zostanie uznane za zakończone. Jeżeli w jakimś bloku deklarowana jest pewna liczba zadań to są one aktywizowane przed wykonaniem pierwszej instrukcji bloku. Uruchomienie zadań tworzonych dynamicznie jest dokonywane po przydzieleniu pamięci ale przed powrotem z funkcji new. Zadanie zostaje zawieszone do momentu zakończenia aktywacji zadań potomnych.

27 Zadania task A is end; entry E; task body A is begin accept E; end; task B; task body B is begin A.E; end;

28 Zadania task type A(i:String) is entry E; end; tylko typy dyskretne i wskaźnikowe task body A is begin put(i); end;

29 Ada - zadania select accept A; or accept B; end select; selektywne oczekiwanie determinizm? select when <w1> => Jeśli oba zastrzeżenia będą miały wartość accept false to zgłoszony A; zostanie Program_Error Ewaluacja or zastrzeżeń występuje w momencie when wykonania <w2> instrukcji => select accept B; end select; wejście aktywne gdy warunek jest prawdą A'Count B'Count

30 Zadania, przeterminowanie select delay end select; [until] 1.0 select accept A; Ta loop gałąź wykona się jeśli w zadanym czasie [do accept select danego czasu] A; nie zostanie orwywołane żadne accept wejście. NewDelay(D : Time_Span) or do Odliczanie zaczyna się przy CurrentD instrukcji Ta := gałąź D; wykona się jeśli nie zostało accept select end; B; wywołane accept żadne wejście. B; else or delay 0.0 or else null; -- zrób coś --NextCycle := NextCycle + CurrentD; end select; delay until NextCycle; end loop; -- end select;

31 TAK czy NIE select accept A; or accept B; else C; end select; select accept A; or accept B; or delay 0.0; C; end select;

32 TAK czy NIE select accept A; or delay 10.0; C; end select select accept A; else delay 10.0; C; end select

33 TAK czy NIE select accept A; or delay 1.0; delay 1.0; end select select accept A; or delay 2.0; end select

34 Zadania select accept A; or accept B; or terminate; end select;

35 Ada - zadania select zad.wejscie; or delay 0.1; end select; select server.e(...); else end select;

36 Ada -zadania abort zadanie; zadanie jest usuwane z kolejek wejść może być odrzucona zadania zależne i podprogramy są przerywane

37 Monitor konstrukcja grupująca zm. dzielone dostęp do zm. tylko przez wywołanie funkcji monitora wzajemne wykluczanie w obszarze monitora element pasywny (mechanizm strukturalny) możliwe jest zawieszenie w obszarze monitora wraz z zezwoleniem na wejście w jego obszar innego procesu

38 Obiekty chronione odpowiednik monitora posiada funkcje procedury i wejścia funkcje służą tylko do odczytu procedury i wejścia mogą modyfikować o.ch. wejścia mogą posiadać bariery

39 Obiekty chronione protected SharedVariable is procedure Read(X: out integer); procedure Write(X: in integer); private V: integer := 0; end; protected body SharedVariable is procedure Read(X: out integer) is begin X := V; end; procedure Write(X: in integer) is begin V := X; end; end; end body;

40 Obiekty chronione protected SharedVariable is procedure Read(X: out integer); procedure Write(X: in integer); private V: integer := 0; end; protected body SharedVariable is procedure Read(X: out integer) is begin X := V; end; procedure Write(X: in integer) is begin V := X; end; end; end body;

41 Obiekty chronione - ograniczenia select accept entry call delay tworzenie/uruchomienie zadania podprogram zawierający powyższe

42 OOPWEB - synchronizacja protected Event is entry Wait; -- wait for the event to occur procedure Signal; -- signal that the event has occurred. private Occurred: Boolean := False; end Event; protected body Event is entry Wait when Occurred is begin Occurred := False; -- consume the signal end Wait; procedure Signal is begin Occurred := True; -- set Wait barrier True end Signal; end Event;

43 Producent konsument task body Producer is begin loop generate a value Buffer.Put(New_Item); end loop; end Producer; task body Consumer is begin loop Buffer.Get(An_Item); use a value end loop; end Consumer;

44 Producent konsument protected Buffer is entry Put(X: in Item); entry Get(X: out Item); private Data: Item; Full: Boolean := False; end; protected body Buffer is entry Put(X: in Item) when not Full is begin Data := X; Full := True; end Put; entry Get(X: out Item) when Full is begin X := Data; Full := False; end Get; end Buffer;

45 Wyjątki Constraint_Error Program_Error Storage_Error Tasking_Error

46 Wyjątki declare begin exception when Constraint_Error Program_Error =>... when Storage_Error... when others =>... end;

47 Wyjątki exception when error =>... raise buffer_error; when others =>... raise; end;

48 Wyjątki with Ada.Exceptions; use Ada.Exceptions; declare MyExc: exception; begin raise MyExc with "message"; exception when Event:MyExc => Put(Exception_Message(Event)); end;

49 Przerwania protected Sensor is procedure Int_Handler; pragma Attach_Handler(Int_Handler, InterruptID); private --...

50 Przerwania use Ada.Interrupts; protected Sensor is procedure Int_Handler; pragma Interrupt_Handler(Int_Handler); private... end; Attach_Handler(Sensor.Int_Handler'Access, IntID); procedure Exchange_Handler( OldHandler : out Parameterless_Handler, NewHandler : in Parameterless_Handler, Interrupt : in Interrupt_ID); procedure Detach_Handler(Interrupt : in Interrupt_ID);

51 Priorytety priorytety statyczne priorytety dynamiczne inwersja priorytetów

52 Priorytety with System; use System; task T1 is pragma priority(2); end; task type T(p : Priority) is end; pragma priority(p); protected V is pragma Priority(6); private end;

53 Priorytety T1 : T(2); -- typ zadaniowy i : Integer; Set_Priority(5, T1'Identity); i := Get_Priority(T1'Identity);

54 Zadanie cykliczne task type Cyclic(Pri : System.Priority; Cycle_Time : Positive) is pragma Priority(Pri); end; task body Cyclic is Next_Period : Ada.Real_Time.Time; Period : constant Ada.Real_Time.Time_Span := Ada.Real_Time.Microseconds(Cycle_Time); begin Next_Period := Ada.Real_Time.Clock + Period; loop delay until Next_Period; Next_Period := Next_Period + Period; -- TODO end loop; end;

55 Zadanie sporadyczne Ada.Synchronous_Task_Control SO : Suspension_Object; task type Sporadic(Pri : System.Priority) is end; pragma Priority(Pri); task body Sporadic is begin loop Suspend_Until_True(SO); -- Non-suspending sporadic response code end loop; end;

56 Typ prywatny package Complex_Numbers is type Complex is record Re,Im: Float; end record; I: constant Complex := (0.0,1.0); function "+"(X:Complex) return Complex; function "-"(X:Complex) return Complex; function "+"(X,Y:Complex) return Complex; function "-"(X,Y:Complex) return Complex; function "*"(X,Y:Complex) return Complex; end;

57 Typ prywatny package Complex_Numbers is type Complex is private; I: constant Complex; function "+"(X:Complex) return Complex; function "-"(X:Complex) return Complex; function "+"(X,Y:Complex) return Complex; function "-"(X,Y:Complex) return Complex; function "*"(X,Y:Complex) return Complex; function Cons(R,I:Float) return Complex; private type Complex is record Re,Im: Float; end record; I: constant Complex := (0.0,1.0); end;

58 Typ prywatny declare use Complex_Numbers; X,Y:Complex; begin X:= Cons(2.45,5.23); Y:= X + I;... end;

59 Typ prywatny package Complex_Numbers is type Complex is record Re,Im: Float; end record; I: constant Complex := (0.0,1.0); function "+"(X:Complex) return Complex; function "-"(X:Complex) return Complex; function "+"(X,Y:Complex) return Complex; function "-"(X,Y:Complex) return Complex; function "*"(X,Y:Complex) return Complex; end;

60 Typ prywatny package ComplexNumbers is type Complex is private; I : constant Complex; function "-"(X : Complex) return Complex; function "+"(X, Y : Complex) return Complex; function Comp(R, I : Float) return Complex; function Re(X : Complex) return Float; function Im(X : Complex) return Float; private type Complex is record RePart, ImPart : Float; end record; I : constant Complex := (0.0, 1.0); end;

61 Typ prywatny declare use Complex_Numbers; X,Y:Complex; begin X:= Cons(2.45,5.23); Y:= X + I;... end;

62 Typ ograniczony type T is limited private; type U is limited record... end record; tylko operacje zdefiniowane w specyfikacji pakietu, brak :=, =, i /= można implementować jako typ nieograniczony (część prywatna) całkowita kontrola nad obiektami danego typu

63 Ada - typy ograniczone type Stack is limited private; type Cell; type Cell_Ptr is access Cell; type Cell is record Next: Cell_Ptr; Value: Integer; end record; type Stack is new Cell_Ptr; function Make_One(X:Integer) return Stack is begin return new Cell'(null,X); end; S:Stack:=Make_One(4); -- OK S:= Make_One(4); -- OK?

64 Programowanie obiektowe możliwość definiowania jednego typu w kategoriach innego (rozszerzenie typu) możliwość dziedziczenia podstawowych operacji rodzica możliwość rozróżnienia danego typu danego obiektu w trakcie działania programu i wybrania dla niego właściwych operacji

65 Typy znakowany package Objects is type Object is tagged record X: Float; Y: Float; end record; function Distance(O:Object) return Float; function Area(O:Object) return Float; end Objects;

66 Typ znakowany with Objects; use Objects; package Shapes is type Circle is new Object with record R: Float; end record; function Area(C: Circle) return Float; type Point is new Object with null record; type Triangle is new Object with record A,B,C: Float; end record; function Area(T: Triangle) return Float; end Shapes;

67 Typ znakowany O: Object:=(1.3,5.3); C: Circle:=(3.5,1.0,4.6); T: Triangle; P: Point; O:=Object(C); C:=(O with 22.3); T:=(O with A=>3.2, B=>2.7, C=> 6.0); P:=(O with null record);

68 Typ znakowany type Cylinder is new Circle with record H: Float; end record; Cyl: Cylinder; Cyl:= (O with R=>3.14, H=>0.11); Cyl:= (C with H=>33.0); Cyl := (Object(T) with 3.33, 6.66);

69 Typ znakowany - 'Class T'Class -- unia wszystkich typów wyprowadzonych z T. wartości T'Class to T oraz wszystkie typy wyprowadzone z T wartość każdego typu wyprowadzonego z T może być konwertowana do typu T'Class rozmiar typu T'Class jest nieokreślony

70 Typ znakowany

71 Typ znakowany

72 Typ znakowany type Reservation_Ptr is access all Reservation'Class; type Cell is record Next: access Cell; Elem: Reservation_Ptr; end record;

73 Typ znakowany konwersja pomiędzy dwoma typami możliwa tylko w kierunku przodka konwersja z danego typu do typu klasowego dowolnego przodka jest dozwolona konwersja do typu klasowego, który nie jest przodkiem jest zabroniona konwersja z typu klasowego do typu należącego do klasy jest możliwa po podaniu danego typu konwersja pomiędzy typami klasowymi jest możliwa po podaniu typu klasy docelowej konwersja typów wskaźnikowych jest możliwa jeśli jest możliwa dla wskazywanych typów jeśli konwersja wymaga sprawdzenia w trakcie wykonania to nie może być to typ anonimowy

74 Typ znakowany type Person is abstract tagged record Birth:Date; end record; type Man is new Person with record Age: Integer; end record; type Woman is new Person with record Hair_Style:... ; end record; if P in Woman then... if P'Tag = Woman'Tag then... if P in Woman'Class then...

75 Typ abstrakcyjny package P is type T is abstract tagged record... end record; procedure Op(X:T) is abstract;... end P;

76 Typ abstrakcyjny nie można stworzyć obiektu typu abstrakcyjnego nie można wykonać metody typu abstrakcyjnego może posiadać komponenty składowe może posiadać zdefiniowane operacje

77 Typ kontrolowany Operacje podstawowe związane z typami kontrolowanymi: inicjalizacja po stworzeniu finalizacja przed unicestwieniem poprawka po przypisaniu

78 Typ kontrolowany declare A:T; begin A:=E Adjust(A)... end; -- create A, Initialize(A) --Finalize(A), copy value, -- Finalize(A)

79 Typ rodzajowy generic type Item is private; procedure Exchange(X,Y: in out Item); procedure Exchange(X,Y: in out Item) is T: Item; begin T:=X;X:=Y;Y:=T; end; procedure Swap is new Exchange(Float); procedure Swap is new Exchange(Integer); procedure Swap is new Exchange(Date);

80 Wywołanie operacji Op - operacja na typie T zdefiniowana w pakiecie P T - typ znakowany Op - operacja podstawowa lub klasowa X - pierwszy parametr Op P.Op(X,...); X.Op(...);

81 Kończenie zadań type Cause_Of_Termination is (Normal, Abnormal, Unhandled_Exception); type Termination_Handler is access protected procedure (Cause : Cause_Of_Termination; T : Ada.Task_Identification.Task_Id; X : Ada.Exceptions.Exception_Occurrence); procedure Set_Dependents_Fallback_Handler (Handler : Termination_Handler); function Current_Task_Fallback_Handler return Termination_Handler; procedure Set_Specific_Handler (T : Ada.Task_Identification.Task_Id; Handler : Termination_Handler); function Specific_Handler (T : Ada.Task_Identification.Task_Id) return Termination_Handler;

82 Kończenie zadań protected Deep_Trouble is procedure Last_Hope(Cause : Cause_Of_Termination; T : Ada.Task_Identification.Task_Id; X : Ada.Exceptions.Exception_Occurrence); end Deep_Trouble; -- Set_Specific_Handler(T'Identity, Deep_Trouble.Last_Hope'Access); Set_Dependents_Fallback_Handler( Deep_Trouble.Last_Hope'Access);

83 Ada.Task_Termination procedure Last_Hope(Cause : Cause_Of_Termination; T : Ada.Task_Identification.Task_Id; X : Ada.Exceptions.Exception_Occurrence) is begin case Cause is when Normal => null; when Abnormal => -- when Unhalted_Exception => -- end case; end;

84 Ada.Execution_Time.Timers procedure Set_Handler (TM : in out Timer; In_Time : Ada.Real_Time.Time_Span; Handler : Timer_Handler); procedure Set_Handler (TM : in out Timer; At_Time : CPU_Time; Handler : Timer_Handler); function Current_Handler (TM : Timer) return Timer_Handler; procedure Cancel_Handler (TM : in out Timer; Cancelled : out Boolean); function Time_Remaining (TM : Timer) return Ada.Real_Time.Time_Span;

85 Ada.Execution_Time.Timers My_Timer: Timer(My_Task'Identity'Access); Time_Max: CPU_Time:= Time_Of(2,Miliseconds(512)); -- protected Timer_Exec is procedure Alarm(TM:in out Timer); end; protected body Timer_Exec is procedure Alarm(TM:in out Timer) is begin Abort_Task(TM.T.all); end Alarm; end Control; -- Set_Handler(My_Timer,Time_Max,Timer_Exec.Alarm'Access);

86 Ada.Execution_Time.Timers protected Timer_Exec is procedure Alarm(TM:in out Timer); private procedure Kill(TM:in out Timer); end; protected body Timer_Exec is procedure Alarm(TM:in out Timer) is begin Set_Priority(Priority'First,TM.T.all); Set_Handler(TM,Miliseconds(512),Kill'Access); end Alarm; procedure Kill(TM:in out Timer) is begin Abort_Task(TM.T.all); end Kill; end Control; protected type Timer_Exec(MS_Time_To_Kill: Integer) is

Wyjątki - wprowadzenie

Wyjątki - wprowadzenie Wyjątki - wprowadzenie Wymaganie nieprzerwanego działania jest dla systemów czasu rzeczywistego podstawowe. Wszelkie nietypowe sytuacje, w których znajduje się program, muszą być obsłużone, po czym działanie

Bardziej szczegółowo

Programowanie systemów czasu rzeczywistego laboratorium. Ćwiczenie 2. Temat zajęć: pakiety, zadania, synchronizacja czasowa, mechanizm spotkań

Programowanie systemów czasu rzeczywistego laboratorium. Ćwiczenie 2. Temat zajęć: pakiety, zadania, synchronizacja czasowa, mechanizm spotkań Programowanie systemów czasu rzeczywistego laboratorium Ćwiczenie 2 Temat zajęć: pakiety, zadania, synchronizacja czasowa, mechanizm spotkań Autor: dr inż. Sławomir Samolej Zagadnienie 1. (Przykładowe

Bardziej szczegółowo

Ada-95. Dariusz Wawrzyniak

Ada-95. Dariusz Wawrzyniak Część I Wskaźniki Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Wskaźniki

Bardziej szczegółowo

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 6 typy dostępu c.d Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Przykład wykorzystania typów dostępu zob. pakiet rodzajowy listapak

Bardziej szczegółowo

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia

Bardziej szczegółowo

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone Ada95 przetwarzanie rozproszone 1. Model systemu rozproszonego 2. Partycje i jednostki kompilacji 3. Glade narzędzie gnatdist język opisu konfiguracji 4. Przykład programu rozproszonego Model systemu rozproszonego

Bardziej szczegółowo

Ada95 przetwarzanie rozproszone

Ada95 przetwarzanie rozproszone 1 Ada95 przetwarzanie rozproszone 1. Model systemu rozproszonego 2. Partycje i jednostki kompilacji 3. Glade narzędzie gnatdist język opisu konfiguracji 4. Przykład programu rozproszonego 2 węzeł Model

Bardziej szczegółowo

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

Bardziej szczegółowo

Pakiety podprogramów Dynamiczny SQL

Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)

Bardziej szczegółowo

Elementy języka VHDL. obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne. PUE-w3 1

Elementy języka VHDL. obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne. PUE-w3 1 Elementy języka VHDL obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne PUE-w3 1 Obiekty (sygnały, zmienne, stałe, pliki) Obiekty służą do zapisu i pamiętania

Bardziej szczegółowo

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiety Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiet składa się ze: specyfikacji (interfejsu) i ciała (implementacji). W specyfikacji mieszczą

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

PODSTAWY BAZ DANYCH 13. PL/SQL PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących

Bardziej szczegółowo

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL.

Bardziej szczegółowo

Październik 2015. Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż.

Październik 2015. Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład III. dr inż. 1/40 Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Październik 2015 2/40 Plan wykładu Uzupełnienie projektu fizycznego Czym jest PL/SQL Bloki w PL/SQL Wykorzystanie 3/40 Projekt

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

Programowanie strukturalne

Programowanie strukturalne Programowanie strukturalne wykład pliki tekstowe Agata Półrola Wydział Matematyki UŁ sem. letni 2011/2012 http://www.math.uni.lodz.pl/~polrola Pliki wewnętrzne i zewnętrzne Dotychczas przy pobieraniu danych

Bardziej szczegółowo

Modelowanie złożonych układów cyfrowych (1)

Modelowanie złożonych układów cyfrowych (1) Modelowanie złożonych układów cyfrowych () funkcje i procedury przykłady (przerzutniki, rejestry) style programowania kombinacyjne bloki funkcjonalne bufory trójstanowe multipleksery kodery priorytetowe

Bardziej szczegółowo

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

Cheatsheet PL/SQL Andrzej Klusiewicz  1/9 Declare y integer; z varchar2(50); d date; null; Declare x integer:=10; null; x integer; x:=10; dbms_output.put_line('hello world'); for x in 1..10 loop Deklaracja 4 zmiennych. Jednej typu rzeczywistego,

Bardziej szczegółowo

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL

Plan wykładu Projekt fizyczny bazy danych Wprowadzenie PL/SQL PL/SQL Cechy PL/SQL Plan wykładu Uzupełnienie projektu fizycznego Czym jest PL/SQL Bloki w PL/SQL Zmienne i stałe Instrukcje sterujące Wykorzystanie SQL w PL/SQL Kursory Wyjątki Projekt fizyczny bazy danych Braki projektu

Bardziej szczegółowo

1. ELEMENTY JĘZYKA PL/SQL

1. ELEMENTY JĘZYKA PL/SQL 1. ELEMENTY JĘZYKA PL/SQL Aplikacje korzystające z PL/SQL będącego proceduralnym rozszerzeniem SQL mogą wykonywać procedury i funkcje języka PL/SQL składowane w bazie danych oraz wysyłać własne programy

Bardziej szczegółowo

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel Wstęp do programowania Procedury i funkcje Piotr Chrząstowski-Wachtel Po co procedury i funkcje? Gdyby jakis tyran zabronił korzystać z procedur lub funkcji, to informatyka by upadła! Procedury i funkcje

Bardziej szczegółowo

PL/SQL. Zaawansowane tematy PL/SQL

PL/SQL. Zaawansowane tematy PL/SQL PL/SQL Zaawansowane tematy PL/SQL Cele Poznanie złożonych i referencyjnych typów danych Poznanie konstrukcji kursora Poznanie kodu składowanego Poznanie procedur i funkcji 2 Złożone typy danych RECORD

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy

Bardziej szczegółowo

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu Plan wykładu Ada 95 #1/5 - typy Wojciech Complak, Instytut Informatyki, Politechnika Poznańska e-mail : Wojciech.Complak@cs.put.poznan.pl www : http://www.cs.put.poznan.pl/wcomplak Hierarchia typów w Adzie

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Programowanie systemów czasu rzeczywistego laboratorium. Ćwiczenie 1

Programowanie systemów czasu rzeczywistego laboratorium. Ćwiczenie 1 Programowanie systemów czasu rzeczywistego laboratorium Ćwiczenie 1 emat zajęć: ypy danych, instrukcje, podprogramy Autor: dr inż. Sławomir Samolej Zagadnienie 1. (Przykładowe programy) Uruchomić przykładowe

Bardziej szczegółowo

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje

Bardziej szczegółowo

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu Procedury składowane Kolejnym typem programu języka PL/SQL są procedury składowane. Procedury mogą posiadać parametry typu IN, OUT lub IN OUT. Umożliwiają wykonanie operacji na danych w bazie, mogą też

Bardziej szczegółowo

Język PL/SQL Procedury i funkcje składowane

Język PL/SQL Procedury i funkcje składowane Język PL/SQL Procedury i funkcje składowane Podprogramy, procedury i funkcje składowane, typy argumentów, wywoływanie procedur i funkcji, poziomy czystości funkcji 1 Podprogramy Procedury (wykonują określone

Bardziej szczegółowo

Tablice, rekordy i wskaźniki

Tablice, rekordy i wskaźniki Tablice, rekordy i wskaźniki Tablice i rekordy Wskaźniki Tablice A: array (Integer range 1.. 6) of Float; for I in 1.. 6 loop A(I) := 0.0; end loop; Tablice mogą być więcej niż jednowymiarowe: AA: array

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 5 Wprowadzenie Tworzenie i wykonywanie procedur i funkcji Instrukcja RETURN Parametry procedur i funkcji oraz ich przesyłanie Metadane

Bardziej szczegółowo

Dawid Gierszewski Adam Hanasko

Dawid Gierszewski Adam Hanasko Dawid Gierszewski Adam Hanasko Chcemy stworzyć klasę w której możemy przechowywać dwie zmienne dowolnych typów Tworzymy tyle różnych klas ile potrzeba: Class ParaInt{ int pierwszy; Int drugi; Class ParaButow{

Bardziej szczegółowo

Język PL/SQL Pakiety podprogramów

Język PL/SQL Pakiety podprogramów Język PL/SQL Pakiety podprogramów Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora) 1 Pakiety Pakiet (ang. package) grupuje powiązane

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera

Bardziej szczegółowo

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 2 pliki tekstowe i binarne Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Pliki wewnętrzne i zewnętrzne Dotychczas przy pobieraniu danych

Bardziej szczegółowo

Wstęp do programowania 2

Wstęp do programowania 2 Wstęp do programowania 2 wykład 1 rekordy z wyróżnikami Agata Półrola Wydział Matematyki UŁ 2005/2006 Egzamin z I roku - problemy Problemy z wczytywaniem danych: skip_line Problemy z obliczeniami: zerowanie

Bardziej szczegółowo

Procedury i funkcje składowane

Procedury i funkcje składowane Procedury i funkcje składowane Zmienne podstawienia i zmienne wiązane, podprogramy, procedury składowane, typy argumentów, wywoływanie procedur, funkcje składowane, poziomy czystości funkcji, funkcje tablicowe

Bardziej szczegółowo

Ćwiczenia 2 IBM DB2 Data Studio

Ćwiczenia 2 IBM DB2 Data Studio Ćwiczenia 2 IBM DB2 Data Studio Temat: Aplikacje w Data Studio 1. Projekty Tworzenie procedur, UDF, trygerów zaczynamy od utworzenia projektu File -> New -> Project wybieramy Data Development Project.

Bardziej szczegółowo

Programowanie RAD Delphi

Programowanie RAD Delphi Programowanie RAD Delphi Dr Sławomir Orłowski Zespół Fizyki Medycznej, Instytut Fizyki, Uniwersytet Mikołaja Kopernika w Toruniu Pokój: 202, tel. 611-32-46, e-mial: bigman@fizyka.umk.pl Delphi zasoby Aplikacje

Bardziej szczegółowo

Laboratorium Programowania Kart Elektronicznych

Laboratorium Programowania Kart Elektronicznych Laboratorium Programowania Kart Elektronicznych Programowanie BasicCard Marek Gosławski Przygotowanie do zajęć dokumentacja ZeitControl BasicCard środowisko programistyczne karta BasicCard Potrzebne wiadomości

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

SQL 4 Structured Query Lenguage

SQL 4 Structured Query Lenguage Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...

Bardziej szczegółowo

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje. Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje. 1. W języku VHDL zdefiniowano mechanizm odczytywania i zapisywania danych z i do plików. Pliki te mogą być wykorzystywane

Bardziej szczegółowo

Ada pakiety ogólna struktura

Ada pakiety ogólna struktura Ada pakiety ogólna struktura -- Specyfikacja pakietu: package Nazwa is [Deklaracje_Stałych] [Deklaracje_Typów] [Deklaracje_Zmiennych] [Specyfikacje_Podprogramów] [private [Deklaracje_Stałych] [Deklaracje_Typów]

Bardziej szczegółowo

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

Oracle Developer Suite. Budowa aplikacji użytkownika końcowego

Oracle Developer Suite. Budowa aplikacji użytkownika końcowego Oracle Developer Suite Budowa aplikacji użytkownika końcowego Składniki pakietu Oracle Developer Suite Oracle Forms Builder formularze (aplikacje dostępne z poziomu przeglądarki internetowej, model 3-warstwowy)

Bardziej szczegółowo

Mechanizmy komunikacji. spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix)

Mechanizmy komunikacji. spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix) Mechanizmy komunikacji spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix) Język CSP Hoare (1978r.) Communicating Sequential Processes

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH

Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH Plan wykładu 2 TWORZENIE APLIKACJI BAZODANOWYCH Wykład 2: Wprowadzenie do PL/SQL: bloki anonimowe, zmienne, kursory Wprowadzenie do PL/SQL Bloki Podstawowe składowe języka Zmienne i stałe Kursory Małgorzata

Bardziej szczegółowo

PL/SQL. Lidia Małkiewicz i Cezary Skubała

PL/SQL. Lidia Małkiewicz i Cezary Skubała PL/SQL Lidia Małkiewicz i Cezary Skubała Jest językiem trzeciej generacji (3GL), który udostępnia konstrukty programistyczne, włączając w to deklaracje zmiennych, pętlę, obsługę błędów itd. Obecnie PL/SQL

Bardziej szczegółowo

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa) Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dwunasty PL/SQL, c.d. 1 / 37 SQL to za mało SQL brakuje możliwości dostępnych w językach proceduralnych.

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

Laboratorium Programowania Kart Elektronicznych

Laboratorium Programowania Kart Elektronicznych Laboratorium Programowania Kart Elektronicznych Marek Gosławski Przygotowanie do zajęć dokumentacja ZeitControl BasicCard środowisko programistyczne karta BasicCard Potrzebne wiadomości język angielski

Bardziej szczegółowo

VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL)

VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL) VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL) Język VHDL jest jednym z nowszych języków opisu i projektowania układów cyfrowych. W lipcu 1983 roku firmy Intermetrics,

Bardziej szczegółowo

Projektowanie w VHDL

Projektowanie w VHDL Projektowanie w VHDL powtórka wiadomości o języku VHDL słowa zastrzeżone typy danych, deklaracje obiektów instrukcje współbieżne i sekwencyjne pętle for, while typowe bloki układów cyfrowych przykłady

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko Typy rozproszonych baz Systemy typu klient-serwer (jeden serwer) Jednorodna rozproszona baza (kilka serwerow, jeden system zarzadzania baza ) Niejednorodna

Bardziej szczegółowo

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji

Bardziej szczegółowo

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1 Kursory i wyjątki Kursory i praca z kursorami, kursory jawne i niejawne, otwieranie kursora, pobieranie z kursora, zamykanie kursora, wyjątki systemowe i użytkownika, zgłaszanie i obsługa wyjątków 1 Kursor

Bardziej szczegółowo

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego: Typy klasowe (klasy) 1. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą obiektów

Bardziej szczegółowo

Niezawodne Systemy Informatyczne

Niezawodne Systemy Informatyczne Niezawodne Systemy Informatyczne Przemysław Kobylański Katedra Informatyki (W11/K2) Politechnika Wrocławska Na podstawie I. Sommerville Inżynieria oprogramowania J.W. McCormick, P.C. Chapin. Building High

Bardziej szczegółowo

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO Dr inż. Bartosz Trybus D202 C, tel: 865 1685 email: btrybus@prz-rzeszow.pl www: mail.prz-rzeszow.pl/~btrybus Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email:

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna

Kurs programowania. Wykład 9. Wojciech Macyna Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

Wyzwalacze. Anna Fiedorowicz Bazy danych 2 Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Układy reprogramowalne i SoC Język VHDL (część 4)

Układy reprogramowalne i SoC Język VHDL (część 4) Język VHDL (część 4) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Propozycje zadań projektowych

Propozycje zadań projektowych Propozycje zadań projektowych 1. Profil Ravenscar Ada metoda wytwarzania aplikacji wysoko zintegrowanych 2. Tworzenie aplikacji rozproszonych z zastosowaniem języka Ada. 3. Wprowadzenie do programowania

Bardziej szczegółowo

PODSTAWOWE ZASADY PROGRAMOWANIA OBIEKTOWEGO NA BAZIE PAKIETU ROOT

PODSTAWOWE ZASADY PROGRAMOWANIA OBIEKTOWEGO NA BAZIE PAKIETU ROOT PODSTAWOWE ZASADY PROGRAMOWANIA OBIEKTOWEGO NA BAZIE PAKIETU ROOT Grzegorz Stefanek Jan Kochanowski University 1 Programowanie proceduralne 2 Programowanie proceduralne Programowanie proceduralne, choć

Bardziej szczegółowo

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017 Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania

Bardziej szczegółowo

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne Materiały dostępne są na stronie: Materiały Technologie baz danych aragorn.pb.bialystok.pl/~gkret Wykład 5: Kursory jawne. Podprogramy. Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

Efekty uboczne błędów

Efekty uboczne błędów Obsługa wyjątków Efekty uboczne błędów Fragment kodu programu jest bezpieczny (ang. exception-safe) jeżeli błędy, które wystąpią w trakcie przetwarzania tego kodu nie będą powodowały niepożądanych efektów

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Post-relacyjne bazy danych

Post-relacyjne bazy danych Post-relacyjne bazy danych Historia języka SQL 1. Sequel-XRM 2. Sequel/2 SQL 3. ANSI SQL 1986 (ISO 1987) 4. X/Open (UNIX), SAA(IBM) 5. ANSI SQL 1989 6. ANSI/ISO SQL 92 Entry level 7. ANSI SQL 92 (SQL 2)

Bardziej szczegółowo

Język PL/SQL Wprowadzenie

Język PL/SQL Wprowadzenie Język PL/SQL Wprowadzenie Koncepcja języka, zmienne i stałe, typy zmiennych, nadawanie wartości zmiennym, instrukcje warunkowe, pętle, sterowanie przebiegiem programu 1 Wprowadzenie do języka PL/SQL Język

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C Opublikowano w: WEREWKA J..: Podstawy programowana dla automatyków. Skrypt AGH Nr 1515, Kraków 1998 20. i łączenie podprogramów a z programem napisanym w Ze względu na duże rozpowszechnienie języka, szczególnie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Wprowadzenie do języka PL/SQL. Język PL/SQL Wprowadzenie. Struktura blokowa programu. Przykładowy program w PL/SQL. Zmienne rekordowe.

Wprowadzenie do języka PL/SQL. Język PL/SQL Wprowadzenie. Struktura blokowa programu. Przykładowy program w PL/SQL. Zmienne rekordowe. Wprowadzenie do języka PL/SQL Język PL/SQL Wprowadzenie Język PL/SQL to rozszerzenie SQL o elementy programowania proceduralnego i obiektowego. PL/SQL umożliwia wykorzystanie: zmiennych i stałych struktur

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń PL/SQL Część 1 Bloki PL/SQL Piotr Medoń Cele Zapoznanie się z podstawowymi typami PL/SQL Zapoznanie się z blokiem PL/SQL Zapoznanie się z instrukcjami sterującymi wykonaniem 2 Blok PL/SQL Struktura bloku

Bardziej szczegółowo

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run(). Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public

Bardziej szczegółowo

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, Programowanie w SQL definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, kontynuacja działania od instrukcji za podaną etykietą GOTO etykieta, wyjście bezwarunkowe

Bardziej szczegółowo

Enkapsulacja, dziedziczenie, polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm 17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja

Bardziej szczegółowo

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word Pascal - powtórka Alfabet, Nazwy W odróŝnieniu do C w Pascal nie odróŝnia małych i duŝych liter. Zapisy ALA i ala oznaczają tę samą nazwę. Podobnie np. słowo kluczowe for moŝe być zapisane: FOR. W Pascalu

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Deklarowanie kursora

Deklarowanie kursora Kursory i wyjątki Kursory i praca z kursorami, kursory jawne i niejawne, otwieranie kursora, pobieranie z kursora, zamykanie kursora, wyjątki systemowe i użytkownika, zgłaszanie i obsługa wyjątków 1 Kursor

Bardziej szczegółowo

LibreOffice Calc VBA

LibreOffice Calc VBA LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo