Tablice, rekordy i wskaźniki

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

Download "Tablice, rekordy i wskaźniki"

Transkrypt

1 Tablice, rekordy i wskaźniki Tablice i rekordy Wskaźniki

2 Tablice A: array (Integer range 1.. 6) of Float; for I in loop A(I) := 0.0; end loop; Tablice mogą być więcej niż jednowymiarowe: AA: array (Integer range 0.. 2, Integer range 0.. 3) of Float; for I in loop for J in loop A(I, J) := 0.0; end loop; end loop;

3 Dyskretny zakres nie musi byś statyczny: N: Integer := ; B: array (Integer range 1.. N) of Boolean; Indeks może być podtypem dowolnego typu dyskretnego: Hours_Worked: array (Day) of Float; for D in Weekday loop Hours_Worked(D) := 8.0; end loop; Hours_Worked(Sat) := 0.0; Hours_Worked(Sun) := 0.0; Tylko dla dni roboczych: Hours_Worked: array (Day range Mon.. Fri) of Float; Hours_Worked: array (Weekday) of Float; -- better

4 Tablice mają różne atrybuty związane z ich indeksami: Hours_Worked'First = Mon Hours_Worked'Last = Fri Hours_Worked'Length = 5 -- number of values of the first (or only) index A Range jest skrótem A First.. A Last: Hours_Worked Range is Mon.. Fri Te same atrybuty można zastosować do różnych wymiarów tablicy: AA'First(1) = 0 AA'Last(1) = 2 AA'Length(1) = 3 AA'First(2) = 0 AA'Last(2) = 3 AA'Length(2) = 4 AA'Range(1) is AA'Range(2) is 0.. 3

5 Atrybut Range można użyć w deklaracji: J: Integer range A'Range; J: Integer range 1.. 6; Inicjowanie tablic: A: array (1.. 6) of Float := (0.0, 0.0, 0.0, 0.0, 0.0, 0.0); AA: array (0.. 2, 0.. 3) of Float := ((0.0, 0.0, 0.0, 0.0), (0.0, 0.0, ), (0.0, 0.0, 0.0)); Stałe tablice: Work_Day: constant array (Day) of Boolean := (True, True, True, True, True, False, False); Tomorrow: constant array (Day) of Day := (Tue, Wed, Thu, Fri, Sat, Sun, Mon);

6 for I in A'Range loop A(I) := A(I) + 1.0; end loop; for E of A loop E := E + 1.0; end loop; for E of AA loop E := 0.0; end loop; of zamiast in

7 Typ tablicowy type Vector_6 is array (1.. 6) of Float; A: Vector_6; B: Vector_6; B := A; -- B(1) := A(1); B(2) := A(2); ; B(6) := A(6) C: array (1.. 6) of Float; D: array (1.. 6) of Float; D := C; -- illegal E, F: array (1.. 6) of Float; F := E; -- illegal

8 type Vector is array (Integer range <>) of Float; subtype Vector_5 is Vector(1.. 5); V: Vector_5; type Matrix is array (Integer range <>, Integer range <>) of Float; subtype Matrix_3 is Matrix(1.. 3, 1.. 3); M: Matrix_3; M: Matrix(1.. N, 1.. N); -- bounds could be any expressions type Vector is array (Integer range <>) of Float; type Row is array (Integer range <>) of Float; V: Vector(1.. 5); R: Row(0.. 4); R := Row(V); -- is valid type Vector is array (Integer range <>) of Float with Default_Component_Value => ; subtype Vec is Vector nowe w Ada 2012 with Default_Component_Value => 0.0;

9 Agregaty tablicowe Unit_2: constant Matrix := ( 1 => (1 => 1.0, 2 => 0.0), 2 => (1 => 0.0, 2 => 1.0)); A: array (1.. 6) of Float := (1.. 6 => 0.0); Work_Day: constant array (Day) of Boolean := (Mon.. Fri => True, Sat Sun => False); A: array (1.. N) of Integer := (A'Range => 0); -- illegal A: array (1.. N) of Integer := (others => 0); A: array (1.. 1) of Integer := (99); -- illegal (99) = 99 A: array (1.. 1) of Integer := (1 => 99);

10 Znaki i łańcuchy Literał znakowy składa się z pojedynczego znaku ujętego w apostrofy. type Roman_Digit is ('I', 'V', 'X', 'L', 'C', 'D', 'M'); Dig: Roman_Digit := 'D'; Roman_Digit'First = 'I' Roman_Digit'Succ('X') = 'L' Roman_Digit'Pos('M') = 6 Dig < 'L' = False Dostępne są predefiniowane typy Character, Wide_Character (16-bit) i Wide_Wide_Character (32-bit). 'X' < 'L' -- is ambiguous

11 Character'('X') < 'L' -- False Roman_Digit'('X') < 'L' -- True Jest również predefiniowany typ dla łańcuchów: type String is array (Positive range <>) of Character; S: String(1.. 7); G: constant String := ('P', 'I', 'G'); -- bounds are 1 and 3 Łańcuch znaków ujęty w cudzysłów nie jest zarezerwowany jedynie dla predefiniowanego typu String: type Roman_Number is array (Positive range <>) of Roman_Digit; Nineteen_Eighty_Four: constant Roman_Number := "MCMLXXXIV"; Four: array (1.. 2) of Roman_Digit := "IV";

12 Tablice tablic i plasterki type Vector_6 is array (1.. 6) of Float; type Vector is array (Integer range <>) of Float; type Matrix_3_6 is array (1.. 3) of Vector_6; type Matrix_3_N is array (1.. 3) of Vector; -- illegal type Matrix_N_6 is array (Integer range <>) of Vector_6; AOA: Matrix_3_6; -- or AOA: Matrix_N_6(1.. 3); MDA: Matrix(1.. 3, 1.. 6); -- multidimensional array Agregaty dla AOA i MDA są identyczne: ((1.0, 2.0, 3.0, 4.0, 5.0, 6.0), (4.0, 4.0, 4.0, 4.0, 4.0, 4.0), (6.0, 5.0, 4.0, 3.0, 2.0, 1.0)) ale odwołania do elementów zupełnie inne: AOA(I)(J) i MDA(I, J).

13 type String_Array is array (Positive range <>, Positive range <>) of Character; Farmyard: constant String_Array := ("pig", "cat", "dog", "cow", "rat", "hen"); Zoo: constant String_Array := ("aardvark", "baboon", "camel", ); -- illegal Zoo: constant String_Array := ("aardvark", "baboon ", "camel ", ); -- ok Put(Farmyard(5)); -- illegal type String_3_Array is array (Positive range <>) of String(1.. 3); Farmyard: constant String_3_Array := ("pig", "cat", "dog", "cow", "rat", "hen"); Put(Farmyard(5)); -- ok Plasterek tablicy: S: String(1.. 10); S(3.. 8) -- the middle six characters of S T: constant String := S(3.. 8); -- T'First = 3, T'Last = 8 S(1.. 4) := "BARA"; S(4.. 7) := S(1.. 4); -- results in S(1.. 7) = "BARBARA" (not "BARBARB") Pets: String_3_Array(1.. 2) := Farmyard(2.. 3); -- "cat" and "dog" Farmyard(1)(1.. 2) := "ho"; -- turns the "pig" into a "hog"

14 Operacje na tablicach jednowymiarowych type Bit_Row is array (Positive range <>) of Boolean; A, B: Bit_Row(1.. 4); C, D: array (1.. 4) of Boolean; T: constant Boolean := True; F: constant Boolean := False; A := (T, T, F, F); B := (T, F, T, F); A := A and B; -- A equals (T, F, F, F) B := not B; -- B equals (F, T, F, T) C := C and D; -- illegal

15 type Primary is (R, Y, B); type Colour is array (Primary) of Boolean; White: constant Colour := (F, F, F); Red: constant Colour := (T, F, F); Yellow: constant Colour := (F, T, F); Blue: constant Colour := (F, F, T); Green: constant Colour := (F, T, T); Purple: constant Colour := (T, F, T); Orange: constant Colour := (T, T, F); Black: constant Colour := (T, T, T); Red or Yellow = Orange not Black = White "CAT" < "DOG" -- illegal "CCL" < "CCXC" -- illegal Wide_String'("CAT") < "DOG" -- True String'("CCL") < "CCXC" -- True Roman_Number'("CCL") < "CCXC" -- False

16 Nineteen_Eighty_Four < "MM" -- True -- arrays of any discrete type: (1, 2, 3) < (2, 3) -- True (Jan, Jan) < (1 => Feb) Operator & łączy dwie jednowymiarowe tablice (konkatenacja): "CAT" & "ERPILLAR" = "CATERPILLAR" "This string goes " & "on and on" Jednym lub oboma argumentami & może być pojedyncza wartość tego typu co element tablicy: "CAT" & 'S' = "CATS" 'S' & "CAT" = "SCAT" 'S' & 'S' = "SS"

17 "First line" & Latin_1.CR & Latin_1.LF & "Next line" CRLF: constant String := (Latin_1.CR, Latin_1.LF); "First line" & CRLF & "Next line" R: Roman_Number(1.. 5); S: String(1.. 5); R := "CCL" & "IV"; -- ok S := "CCL" & "IV"; -- ok B: Boolean := "CCL" < "IV"; -- illegal

18 Rekordy type Month_Name is (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); type Date is record Day: Integer range ; Month: Month_Name; Year: Integer; end record; D: Date; D.Day := 4; D.Month := Jul; D.Year := 1776; D: Date := (4, Jul, 1776); E: Date; E := D; E := (Month => Jul, Day => 4, Year => 1776);

19 type Complex is record Re, Im: Float := 0.0; end record; C1: Complex; -- equals (0.0, 0.0) C2: Complex := (1.0, 0.0); C3: Complex := (Re => 1.0, Im => <>); -- C3.Im is default value I: constant Complex := (0.0, 1.0); -- root of -1.0 type Hole is null record; type Subject is (Theology, Classics, Mathematics); type Score is array (Subject) of Integer range ; type Student is record Birth: Date; Finals: Scores := (others => 0); end record; Fred: Student; Fred.Birth := (19, Aug, 1984); Fred.Finals := (5, 15, 99); Fred := (Birth => (19, Aug, 1984), Finals => (5, 15, 99)); People: array (1.. N) of Student; People(6).Birth.Day := 19; People(8).Finals(Classics.. Mathematics) := (50, 50);

20 Playing with pointers is like playing with fire John Barnes. Programming in Ada 2012 Wskaźniki type Cell; type Cell_Ptr is access Cell; type Cell is record Next: Cell_Ptr; Value: Integer; end record; L: Cell_Ptr; L := new Cell; L: null

21 L := new Cell'(null, 37); N: Cell_Ptr; N := new Cell'(L, 10); L := N; L: null L: null N: null N: 10 (a) N: Cell_Ptr; (b) N := new Cell (L, 10); L: null 37 N: 10 (c) L := N;

22 L := N kopiuje wskaźnik a nie obiekt. Jeśli chcemy skopiować obiekt: L.Next := N.Next; L.Value := N.Value; albo z użyciem all: L.all := N.all; L = N zachodzi gdy L i N wskazują ten sam obiekt a L.all = N.all zachodzi gdy dwa wskazywane obiekty mają takie same wartości. C: constant Cell_Ptr := new Cell'(null, 0); C.all := L.all; -- ok C := L; -- illegal

23 Nie potrzebujemy zmiennej N aby wydłużyć listę: L := new Cell'(L, 10) procedure Add_To_List(List: in out Cell_Ptr; V: in Integer) is begin List := new Cell'(List, V); end Add_To_List; Niezainicjowane zmienne wskaźnikowe przyjmują zawsze domyślną wartość null. function Sum(List: Cell_Ptr) return Integer is Local: Cell_Ptr := List; S: Integer := 0; begin while Local /= null loop S := S + Local.Value; Local := Local.Next; end loop; return S; end Sum;

24 type Node; type Node_Ptr is access Node; type Node is record Left, Right: Node_Ptr; Value: Float; end record; procedure Sort(A: in out Vector) is Index: Integer; Tree: Node_Ptr := null; procedure Insert(T: in out Node_Ptr; V: in Float) is begin if T = null then T := new Node'(null, null, V); elsif V < T.Value then Insert(T.Left, V); else Insert(T.Right, V); end if; end Insert; verte

25 procedure Output(T: in Node_Ptr) is begin if T /= null then Output(T.Left); A(Index) := T.Value; Index := Index + 1; Output(T.Right); end if; end Output; begin -- body of Sort for I in A'Range loop Insert(Tree, A(I)); end loop; Index := A'First; Output(Tree); end Sort;

26 type Ref_Int is access Integer; R: Ref_Int := new Integer'(46); R.all := 13; type A_String is access String; A: A_String := new String'("Hello"); function "+"(S: String) return A_String is begin return new String'(S); end "+"; type A_String_Array is array (Positive range <>) of A_String; Zoo: constant A_String_Array := (+"aardvark", +"baboon",, +"very long animal",, +"zebra"); Wyrażenia w agregacie są obliczane dla każdego indeksu: A: array (1.. 10) of Cell_Ptr := (others => new Cell); Tablica A zawiera dziesięć wskaźników do dziesięciu różnych rekordów.

27 A, B: Cell_Ptr := new Cell; -- creates two new cells A: Cell_Ptr := new Cell; B: Cell_Ptr := A; L: Cell_Ptr := new Cell'(N.all); K: Integer := 46; R: Ref_Int := new Integer'(K); Wykluczanie null i ograniczenia: type Cell_Ptr is not null access Cell; type Cell_Ptr is access Cell; subtype NN_Cell_Ptr is not null Cell_Ptr; M: NN_Cell_Ptr := L; -- checks not null M: not null Cell_Ptr := L;

28 procedure P(X: in out not null Ref_Int); -- legal procedure Q(X: in out Integer range 1.. N); -- illegal function F(X: Integer) return not null Ref_Int; -- legal type Ref_Pos is access Positive; type Ref_Pos is access Integer range 1.. Integer'Last; RP: Ref_Pos := new Positive'(10); RP: Ref_Pos := new Integer'(10); type Ref_Matrix is access Matrix; R: Ref_Matrix; R := new Matrix'(1.. 5 => ( => 0.0)); -- qualified expression R := new Matrix(1.. 5, ); -- subtype

29 Aliasy Fraza aliased: type Int_Ptr is access all Integer; IP: Int_Ptr; I: aliased Integer; IP := I'Access; IP.all := 25; 1. Ostrzega, że obiekt może być przetwarzany pośrednio. 2. Informuje kompilator aby nie przechowywać obiektu w sposób niestandardowy (np. w rejestrze).

30 type Const_Int_Ptr is access constant Integer; CIP: Const_Int_Ptr; I: aliased Integer; C: aliased constant Integer := 1815; CIP := I'Access; -- access to a variable CIP := C'Access; -- access to a constant IP := C'Access; -- illegal CIP := Const_Int_Ptr(IP); -- legal IP := Int_Ptr(CIP); -- illegal AI: array ( ) of aliased Integer; IP := AI(I)'Access;

31 type Ref_Count is access constant Integer 0.. 1; type Ref_Count_Array is array (Integer range <>) of Ref_Count; type Cell is record Life_Count: aliased Integer range 0.. 1; Total_Neighbour_Count: Integer range 0.. 8; Neighbour_Count: Ref_Count_Array(1.. 8); end record; This_Cell.Neighbour_Count(1) := Cell_To_The_North.Life_Count'Access; C.Total_Neighbour_Count := 0; for I in C'Neighbour_Count'Range loop C.Total_Neighbour_Count := C.Total_Neighbour_Count + C.Neighbour_Count(I).all; end loop;

32 Dostępność procedure Main is type AI is access all Integer; Ref1: AI; begin declare Ref2: AI; I: aliased Integer; begin -- access to a variable I with a lesser lifetime than the access type AI Ref2 := I'Access; -- illegal Ref1 := Ref2; end; declare -- some other variables begin Ref1.all := 0; end; end Main;

33 Parametry wskaźnikowe procedure Main is type T is procedure P is type A is access all T; Ptr: A := X'Access; -- illegal, X not in scope begin end P; begin declare X: aliased T; begin P; end; end Main; procedure Main is type T is procedure P(Ptr: access T) is begin end P; begin declare X: aliased T; begin P(X'Access); end; end Main;

34 procedure Main is type T is type A is access all T; Ref: A; procedure P(Ptr: access T) is begin Ref := A(Ptr); -- dynamic check on conversion end P; X: aliased T; begin P(X'Access); can now manipulate X via Ref end Main; W powyższym przykładzie przypisanie Ref := A(Ptr) jest bezpieczne bo czas życia X nie jest krótszy niż typu A. Ale nie musi być bezpieczne we wszystkich wywołaniach P, więc musi być sprawdzane dynamicznie i gdy zawodzi zgłaszany jest wyjątek Program_Error.

35 Anonimowy typ wskaźnikowy

36 Wskaźniki do podprogramów function Sin(X: Float) return Float; type Math_Function is access function (F: Float) return Float; Do_It: Math_Function; X, Theta: Float; Do_It := Sin'Access; X := Do_It(Theta); -- abbreviation for X := Do_It.all(Theta)

37 procedure Iterate(Func: in not null Math_Function; V: in out Vector) is begin for I in V'Range loop V(I) := Func(V(I)); end loop; end Iterate; A_Vector : Vector := (100.0, 4.0, 0.0, 25.0); Iterate(Sqrt'Access, A_Vector); -- A_Vector is now (10.0, 2.0, 0.0, 5.0)

38 type Converter is not null access procedure (S: in out String); procedure Encrypt(Text: in out String); procedure Decrypt(Text: in out String); procedure Apply(Proc: in Converter; To: in out String) is begin Proc(To); -- indirect call end Apply; Sample: String := "Send reinforcements. We're going to advance."; Apply(Proc => Encrypt'Access, To => Sample);

39 type Integrand is not null access function (X: Float) return Float; function Integrate(Fn: Integrand; Lo, Hi: Float) return Float; Area := Integrate(Log'Access, 1.0, 2.0); type Action is access procedure; Action_Sequence: array (1.. N) of Action; -- build the array for I in Action_Sequence'Range loop Action_Sequence(I).all; -- need for.all because are no parameters end loop;

40 procedure Main is function F(X: Float) return Float is begin return Exp(X**2); end F; Result, L, H: Float; begin -- set bounds in L and H Result := Integrate(F'Access, L, H) -- illegal -- subprogram F has a lifetime less than that of -- the access type Integrand end Main; Konieczne jest użycie anonimowego typu wskaźnikowego: function Integrate( Fn: not null access function (X: Float) return Float; Lo, Hi: Float) return Float;

41 Pula pamięci

42 Niesprawdzana dealokacja with Ada.Unchecked_Deallocation; type Cell_Ptr is access Cell; procedure Free is new Ada.Unchecked_Deallocation(Cell, Cell_Ptr); List: Cell_Ptr; Free(List); Wartością zmiennej List będzie null a wcześniej wskazywana komórka wróci do puli wolnej pamięci.

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

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

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

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

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

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

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

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

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

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

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

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

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku Plan wykładu BAZY DANYCH II WYKŁAD 2 Bloki, struktura, sekcje Bloki anonimowe Tworzenie i uruchamianie Identyfikatory Literały Typy danych dr inż. Agnieszka Bołtuć Bloki Struktura bloku W programach pisanych

Bardziej szczegółowo

Informatyka 1. Przetwarzanie tekstów

Informatyka 1. Przetwarzanie tekstów Informatyka 1 Wykład IX Przetwarzanie tekstów Robert Muszyński ZPCiR ICT PWr Zagadnienia: reprezentacja napisów znakowych, zmienne napisowe w Sun Pascalu, zgodność typów, operowanie na napisach: testowanie

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

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

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

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

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

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

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

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

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

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

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

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

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

Kiedy i czy konieczne?

Kiedy i czy konieczne? Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle

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

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

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

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

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

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

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

Podstawowe części projektu w Javie

Podstawowe części projektu w Javie Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych

Bardziej szczegółowo

Plan wykładu BAZY DANYCH II WYKŁAD 9. Dynamiczny SQL. Dynamiczny SQL 2012-01-20

Plan wykładu BAZY DANYCH II WYKŁAD 9. Dynamiczny SQL. Dynamiczny SQL 2012-01-20 Plan wykładu BAZY DANYCH II WYKŁAD 9 Dynamiczny SQL, NDS, EXECUTE IMMEDIATE, Pakiet DBMS_SQL, Obiekty w PL/SQL, Tworzenie, wywoływanie, dziedziczenie, etc. dr inż. Agnieszka Bołtuć Dynamiczny SQL Pozwala

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

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

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

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

Ć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

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1. Fry #65, Zeno #67. like

SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1. Fry #65, Zeno #67. like SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1 I SSW1.1, HFW Fry #65, Zeno #67 Benchmark: Qtr.1 like SSW1.2, HFW Fry #47, Zeno #59 Benchmark: Qtr.1 do SSW1.2, HFW Fry #5, Zeno #4 Benchmark: Qtr.1 to SSW1.2,

Bardziej szczegółowo

Platformy Programistyczne Podstawy języka Java

Platformy Programistyczne Podstawy języka Java Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo

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

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

Programowanie współbieżne i rozproszone - Ada. EAIiE Katedra Automatyki Programowanie współbieżne i rozproszone - Ada EAIiE Katedra Automatyki 2011 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

Bardziej szczegółowo

Składowane procedury i funkcje

Składowane procedury i funkcje Składowane procedury i funkcje Procedury i funkcje są zestawem poleceń SQL, które są przechowywane na serwerze (tak jak dane w tablicach). Istnieją sytuacje, kiedy procedury i funkcje są szczególnie przydatne.

Bardziej szczegółowo

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL;

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL; Kursory Każde zapytanie SQL umieszczone w programie PLSQL jest wykonywane w tzw. obszarze roboczym lub inaczej obszarze kontekstu. PLSQL wykorzystuje ten obszar do przechowywania danych otrzymanych w wyniku

Bardziej szczegółowo

Bazy danych 2 Laboratorium 2

Bazy danych 2 Laboratorium 2 Język PLSQL: złożony język programowania, dzięki któremu mamy możliwość uzyskać dostęp do bazy danych Oracle z różnych środowisk; jest to język zintegrowany z serwerem bazy danych, co ma wpływ na szybkość

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

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

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone Plan wykładu Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone BAZY DANYCH II WYKŁAD 5 dr inż. Agnieszka Bołtuć Kolekcje Tablice asocjacyjne Używane w celu gromadzenia danych tego samego typu, Rekordy

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

OpenPoland.net API Documentation

OpenPoland.net API Documentation OpenPoland.net API Documentation Release 1.0 Michał Gryczka July 11, 2014 Contents 1 REST API tokens: 3 1.1 How to get a token............................................ 3 2 REST API : search for assets

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

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 2 Programowanie 1 Program wykładu Typy danych Wyrażenia Operatory 2 VBA Visual Basic dla aplikacji (VBA) firmy Microsoft jest językiem

Bardziej szczegółowo

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej

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

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

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

BAZA DANYCH SIECI HOTELI

BAZA DANYCH SIECI HOTELI Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu

Bardziej szczegółowo

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

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

Python. Wprowadzenie. Jolanta Bachan

Python. Wprowadzenie. Jolanta Bachan Python Wprowadzenie Jolanta Bachan Zainstaluj i przetestuj Pythona https://www.python.org/downloads/ print 'Hello world!' operatory numeryczne: + - * / // % ** operatory porównania: ==!= > < >=

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

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

Tworzenie aplikacji w języku Java

Tworzenie aplikacji w języku Java Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009

Bardziej szczegółowo

Podstawy programowania. Podstawy C# Tablice

Podstawy programowania. Podstawy C# Tablice Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej

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

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

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

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

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 4 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w

Bardziej szczegółowo

Właściwości i metody obiektu Comment Właściwości

Właściwości i metody obiektu Comment Właściwości Właściwości i metody obiektu Comment Właściwości Właściwość Czy można zmieniać Opis Application nie Zwraca nazwę aplikacji, która utworzyła komentarz Author nie Zwraca nazwę osoby, która utworzyła komentarz

Bardziej szczegółowo

Wstęp do programowania. Różne różności

Wstęp do programowania. Różne różności Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste

Bardziej szczegółowo

Instrukcje. Operatory. Operatory. Instrukcje sterujące. wyrażenie1 && wyrażenie2 ;

Instrukcje. Operatory. Operatory. Instrukcje sterujące. wyrażenie1 && wyrażenie2 ; Instrukcje wyrażenie1 if wyrażenie2 ; wyrażenie1 until wyrażenie2 ; wyrażenie1 wyrażenie2 ; wyrażenie1 wyrażenie2 ; wyrażenie1? wyrażenie2 : wyrażenie3 ; if (wyrażenie) blok [ [ elsif (wyrażenie) blok...

Bardziej szczegółowo

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

Wprowadzenie do języka PL/SQL. Rozdział 9 Język PL/SQL Wprowadzenie. Struktura blokowa programu. Przykładowy program w PL/SQL Wprowadzenie do języka PL/SQL Rozdział 9 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

Bardziej szczegółowo

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle Rozszerzenie obiektowe w SZBD Oracle Cześć 2. Kolekcje Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Malinowski Nowak Kowalski tablica zagnieżdżona (ang.

Bardziej szczegółowo

Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga

Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 4 Piotr Syga 26.10.2018 Procedury review Przypomnienie składni procedur Tworzenie DELIMITER $$ CREATE PROCEDURE zliczacz (OUT wynik INT) BEGIN operacje... END

Bardziej szczegółowo

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET AIP POLSKA GEN 2.7-1 30 MAR 2017 GEN 2.7 WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET OBLICZANIE CZASÓW WSCHODU I ZACHODU SŁOŃCA 1. Tabele wschodu i zachodu słońca dla lotniska EPWA oraz tabela poprawek zostały

Bardziej szczegółowo

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET AIP POLSKA GEN 2.7-1 31 MAR 2016 GEN 2.7 WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET OBLICZANIE CZASÓW WSCHODU I ZACHODU SŁOŃCA 1. Tabele wschodu i zachodu słońca dla lotniska EPWA oraz tabela poprawek zostały

Bardziej szczegółowo

Wskaźniki. Pamięć dynamiczna

Wskaźniki. Pamięć dynamiczna Wskaźniki. Pamięć dynamiczna wer. 8 z drobnymi modyfikacjami Wojciech Myszka 2015-04-13 11:39:01 +0200 Wskaźniki Wskaźniki to podstawa C. Kto nie umie się nimi posługiwać ten nie potrafi wykorzystać siły

Bardziej szczegółowo

Przydatne sztuczki - sql. Na przykładzie postgres a.

Przydatne sztuczki - sql. Na przykładzie postgres a. Przydatne sztuczki - sql. Na przykładzie postgres a. M. Wiewiórko 05/2014 Plan Uwagi wstępne Przykład Rozwiązanie Tabela testowa Plan prezentacji: Kilka uwag wstępnych. Operacje na typach tekstowych. Korzystanie

Bardziej szczegółowo

Przydział pamięci. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Przydział pamięci. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki Przydział pamięci Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Terminologia Program s(input,output) {SORT} program główny można traktować także jako procedurę var a: array[0..10] of integer;

Bardziej szczegółowo

Hurtownia Świętego Mikołaja projekt bazy danych

Hurtownia Świętego Mikołaja projekt bazy danych Aleksandra Kobusińska nr indeksu: 218366 Hurtownia Świętego Mikołaja projekt bazy danych Zaprezentowana poniżej baza jest częścią większego projektu bazy danych wykorzystywanej w krajowych oddziałach wiosek

Bardziej szczegółowo

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL, Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających

Bardziej szczegółowo

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET MIL GEN 2.7-1 MIL GEN 2.7 WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET OBLICZANIE CZASÓW WSCHODU I ZACHODU SŁOŃCA 1. Tabele wschodu i zachodu słońca dla lotniska EPWA oraz tabela poprawek zostały opracowane

Bardziej szczegółowo

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki Język C# pętle, sterowanie, wyjątki Język C# pętle Pętle: while ( ) do { while ( ); for ( ; ; ) foreach ( in

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

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET AIP VFR POLAND VFR GEN 3.2-1 VFR GEN 3.2 WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET OBLICZANIE CZASÓW WSCHODU I ZACHODU SŁOŃCA 1. Tabele wschodu i zachodu słońca dla lotniska EPWA oraz tabela poprawek zostały

Bardziej szczegółowo

Wstęp do wskaźników w języku ANSI C

Wstęp do wskaźników w języku ANSI C Wstęp do wskaźników w języku ANSI C / Materiał dydaktyczny pomocniczy do przedmiotu Informatyka sem.iii kier. Elektrotechnika/ 1. Wprowadzenie W języku ANSI C dla każdego typu X (wbudowanego, pochodnego,

Bardziej szczegółowo

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie

Bardziej szczegółowo

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET

WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET AIP VFR POLAND VFR GEN 3.2-1 VFR GEN 3.2 WSCHÓD I ZACHÓD SŁOŃCA SUNRISE / SUNSET OBLICZANIE CZASÓW WSCHODU I ZACHODU SŁOŃCA 1. Tabele wschodu i zachodu słońca dla lotniska EPWA oraz tabela poprawek zostały

Bardziej szczegółowo

Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:

Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny: Wskaźniki nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny: typ nw; /* definicja zmiennej nw typu typ */ typ *w_nw; /* definicja

Bardziej szczegółowo

Wprowadzenie do języka Ruby

Wprowadzenie do języka Ruby Aleksander Pohl apohllo.pl Krakow Ruby Users Group 19. maja 2007 Kilka słów o Ruby Yukihiro Matz Matsumoto: [...] Poszukiwałem języka potężniejszego od Perla i bardziej obiektowego od Pythona. Wówczas,

Bardziej szczegółowo