Podstawy programowania obiektowego

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

Download "Podstawy programowania obiektowego"

Transkrypt

1 Podstawy programowania obiektowego struktura klasy w Delphi hermetyzacja, definicja pól i metod klasy komponentów biblioteki VCL Techniki programowania II s.2-1

2 Najważniejsze pojęcia z wykładu 01 Programowanie sterowane zdarzeniami technika programowania polegająca na wyróżnieniu tzw. zdarzeń zachodzących w środowisku programu i przyporządkowaniu tym zdarzeniom określonych sekwencji instrukcji. Programowanie obiektowe programowanie, zazwyczaj w obiektowym języku programowania, które polega na wyodrębnieniu obiektów, ich klas oraz metod. Każdy obiekt traktowany jest jako samodzielny, zamknięty fragment kodu, a funkcjonowanie programu opiera się na komunikacji pomiędzy obiektami. Obiekt abstrakcyjny byt reprezentujący lub opisujący pewną rzecz lub pojęcie obserwowane w modelowanym systemie. Składowe obiektu: atrybuty/własności (nazwane wartości przypisane do obiektu), metody (operacje przypisane do obiektu; operacje, które obiekt potrafi wykonać). Klasa wzorzec określający strukturę pewnej grupy obiektów o takiej samej budowie, czyli posiadających atrybuty o takich samych nazwach, metody o takim samym działaniu, itp.; formalnie: byt semantyczny rozumiany jako miejsce przechowywania takich cech grupy podobnych obiektów, które są dla nich wspólne. Komponent szczególny przypadek obiektu zaprojektowany jako gotowy do użycia element aplikacji, który można dostosować do własnych potrzeb w czasie projektowania programu. Techniki programowania II s.2-2

3 type <nazwa_klasy> = class(<nazwa_nadklasy>) private pola i metody prywatne public pola i metody publiczne Składnia definicji klasy w Delphi <nazwa_klasy> jest unikalnym identyfikatorem języka Pascal (może składać się z liter alfabetu angielskiego, cyfr i znaku podkreślenia); <nazwa_nadklasy> to element opcjonalny, nazwa klasy bazowej, z której dziedziczy definiowana klasa (dziedziczenie zostanie omówione na wykładzie 4). Techniki programowania II s.2-3

4 Klasy w Delphi Definicja klasy jest równoważna definicji nowego typu danych; Definicja klasy musi wystąpić przed utworzeniem obiektu danej klasy; Składniki zdefiniowane w sekcji private (składniki prywatne), są dostępne tylko wewnątrz klasy, w której zostały zdefiniowane i nie można odwołać się do nich z poziomu innych klas; Składniki zdefiniowane w sekcji public (składniki publiczne) są dostępne zarówno wewnątrz klasy, w której zostały zdefiniowane jak i z każdego innego miejsca kodu, który ma dostęp do danej klasy; Składniki zdefiniowane bez określenia specyfikatora dostępu są domyślnie traktowane jako publiczne; Każdy składnik zdefiniowany wewnątrz klasy musi mieć nazwę unikalną w obrębie danej klasy, różne klasy mogą zawierać składniki o takich samych nazwach. Techniki programowania II s.2-4

5 Hermetyzacja w programowaniu obiektowym Hermetyzacja - ukrycie części informacji zawartej w obiekcie (części atrybutów i metod) dla operacji z zewnątrz obiektu. Prywatna część obiektu metody i atrybuty ukryte (hermetyzowane), niewidoczne z zewnątrz, dostępne wyłącznie dla metod przypisanych do obiektu. Publiczna część obiektu metody i atrybuty dostępne z zewnątrz dla każdego składnika aplikacji. Stosowane koncepcje hermetyzacji: Hermetyzacja ortodoksyjna wszystkie operacje, które można wykonać na obiekcie są określone przez metody przypisane do obiektu, bezpośredni dostęp do atrybutów jest niemożliwy, wszystkie operacje wykonywane są jedynie za pośrednictwem publicznych metod; Hermetyzacja ortogonalna każdy atrybut i metoda obiektu mogą być sklasyfikowane jako prywatne lub publiczne. Podstawowe powody stosowania hermetyzacji: Uproszczenie interfejsu obiektu poprzez ukrycie informacji nieistotnych dla użytkownika obiektu; Zapewnienie bezpieczeństwa poprzez ukrycie elementów, których bezpośrednie użycie może spowodować błędy w funkcjonowaniu obiektu. Techniki programowania II s.2-5

6 Przykład hermetyzacji Konto bankowe Numer: Transakcje: [ ] Saldo: Wpłata Wypłata Zestawienie Rys Wewnętrzna struktura obiektu Konto bankowe Numer: Wpłata Wypłata Zestawienie Rys Struktura widoczna z zewnątrz Pola Saldo i Transakcje są ściśle ze sobą związane. Każda operacja, która zmienia saldo powinna być jednocześnie odnotowana w zestawieniu transakcji. Udostępnienie tych pól do swobodnej modyfikacji przez inne obiekty stwarza potencjalnie niebezpieczeństwo wystąpienia błędów istnieje możliwość modyfikacji salda bez zarejestrowania wykonanej transakcji. Hermetyzacja pozwala ukryć pola Saldo i Transakcje przed innymi elementami programu. Obiekt udostępnia natomiast metody Wpłata, Wypłata i Zestawienie, za pośrednictwem których można w kontrolowany sposób modyfikować i odczytać zawartość tych pól. Inne obiekty mogą wykonać poprawnie operacje zmiany stanu konta bez znajomości jego wewnętrznej struktury. Techniki programowania II s.2-6

7 Pola klasy Składnia definicji pola: <nazwa_pola>: typ; <nazwa_pola1>, <nazwa_pola2>: typ; <nazwa_pola> jest unikalnym w obrębie klasy identyfikatorem języka Pascal; typ może być dowolnym typem standardowym lub zdefiniowanym przez użytkownika (również inną klasą); każdy obiekt danej klasy posiada własną kopię pól i może im nadać indywidualne wartości, inaczej: pola są związane z konkretnym obiektem danej klasy; w każdym punkcie definicji klasy jest możliwy bezpośredni dostęp do wszystkich pól zdefiniowanych w tej klasie (publicznych i prywatnych); spoza definicji klasy możliwy jest dostęp tylko do pól publicznych; przyjmując pewne uproszczenie własności komponentów mogą być traktowane jako publiczne pola klas tych komponentów. Techniki programowania II s.2-7

8 Metody proceduralne i funkcyjne Metoda proceduralna wyodrębniona część kodu klasy, stanowiąca pewną całość o jednoznacznej nazwie i ustalonym sposobie wymiany informacji z pozostałymi częściami programu. Metoda proceduralna wykonuje pewną sekwencję operacji, której wynikiem może być wyznaczenie jednej lub wielu wartości (może nie wyznaczać żadnej). Metoda funkcyjna wyodrębniona część kodu klasy, stanowiąca pewną całość o jednoznacznej nazwie i ustalonym sposobie wymiany informacji z pozostałymi częściami programu. Metoda funkcyjna zawsze wyznacza dokładnie jedną wartość, która jest zwracana jako wynik jej działania. Zastosowanie metod metody publiczne realizują zadania wynikające z funkcjonalności obiektu, metody prywatne umożliwiają podział dużych algorytmów na mniejsze części, zwiększają czytelność kodu przez oddzielenie i nazwanie operacji koniecznych do zrealizowania dużego algorytmu, pozwalają na zdefiniowanie pomocniczych podprogramów, które mogą być używane wielokrotnie w różnych metodach danej klasy; w Delphi procedury zdarzeń komponentów są definiowane jako metody formularza, do którego należy dany komponent. Techniki programowania II s.2-8

9 Deklaracja metody (prototyp) Stworzenie nowej metody wymaga deklaracji w kodzie klasy (odpowiednio w części private lub public) oraz właściwej definicji umieszczonej poza klasą. Składnia deklaracji metody proceduralnej: procedure <nazwa_metody>(argumenty_formalne); Składnia deklaracji metody funkcyjnej: function <nazwa_metody>(argumenty_formalne): typ_wyniku; <nazwa_metody> jest unikalnym w obrębie klasy identyfikatorem języka Pascal; typ_wyniku to typ wartości zwracanej przez metodę funkcyjną, może być typem standardowym lub zdefiniowanym przez użytkownika; argumenty_formalne są elementem opcjonalnym, parametryzują metodę i określają sposób jej komunikacji z innymi elementami programu (dane przesyłane do metody i/lub rezultaty wyprowadzane na zewnątrz). Techniki programowania II s.2-9

10 Definicja metody proceduralnej procedure <nazwa_klasy>.<nazwa_metody>(arg_formalne); definicje i deklaracje lokalne kod metody definicja metody znajduje się poza klasą; <nazwa_klasy> jest nazwą klasy, do której należy metoda; nagłówek metody (nazwa, argumenty formalne) musi odpowiadać jej deklaracji; definicje i deklaracje lokalne to deklaracje zmiennych i definicje typów które są dostępne tylko wewnątrz danej metody; kod metody to ciąg instrukcji języka Pascal, który implementuje algorytm realizowany przez daną metodę. Techniki programowania II s.2-10

11 Definicja metody funkcyjnej function <nazwa_klasy>.<nazwa_metody>(arg_form): typ_wyniku; definicje i deklaracje lokalne kod metody Result := wyrażenie; definicja metody znajduje się poza klasą; <nazwa_klasy> jest nazwą klasy, do której należy metoda; nagłówek metody (nazwa, argumenty formalne) musi odpowiadać jej deklaracji; definicje i deklaracje lokalne to deklaracje zmiennych i definicje typów które są dostępne tylko wewnątrz danej metody; kod metody to ciąg instrukcji języka Pascal, który implementuje algorytm realizowany przez daną metodę; Wartość przypisana do Result określa wynik metody funkcyjnej (wartość zwracaną przez metodę). Techniki programowania II s.2-11

12 definicja klasy formularza Przykład klasa formularza (Przykład 1., wykład 01) type TForm1 = class(tform) Label1 : TLabel; Edit1 : TEdit; Button1: TButton;... procedure Button1Click(Sender: TObject); private public var Form1: TForm1; pola klasy (komponenty formularza) prototyp metody (proc. obsł. zdarzenia) prywatna i publiczna część klasy deklaracja zmiennej reprezentującej obiekt formularza procedure TForm1.Button1Click(Sender: TObject); var a,b,x: real; a := StrToFloat(Edit1.Text);... definicja metody Techniki programowania II s.2-12

13 Odwołania do pól i metod Wszystkie składniki (prywatne i publiczne) są dostępne bezpośrednio z poziomu klasy w której zostały zdefiniowane. W takim przypadku odwołanie do pola lub metody odbywa się przez określenie ich nazwy. Poza klasą można odwołać się tylko do składników publicznych poprzez obiekt klasy, do której metoda należy. Odwołania do składników wewnątrz klasy Pole: nazwa_pola Metoda proceduralna: nazwa_metody(argumenty_aktualne); Metoda funkcyjna: Odwołania do metod poza klasą Pole: zmienna := nazwa_metody(argumenty_aktualne); nazwa_obiektu.nazwa_pola Metoda proceduralna: nazwa_obiektu.nazwa(argumenty_aktualne); Metoda funkcyjna: zmienna := nazwa_obiektu.nazwa(arg_aktualne); argumenty_aktualne argumenty o typach zgodnych z typem argumentów formalnych, których wartości zostaną przekazane do funkcji; zmienna nazwa zmiennej, w której zostanie umieszczona wartość zwracana przez metodę funkcyjną (typ zmiennej musi być zgodny z typem wyniku metody). Techniki programowania II s.2-13

14 Przykłady metod wybranych komponentów Większość komponentów interfejsu użytkownika: Focused sprawdza czy komponent jest w ognisku (jest aktywny); SetFocus ustawia komponent w ognisku (jako aktywny); Hide Show Refresh Komponent TEdit: Clear CopyToClipboard CutToClipboard ukrywa komponent; pokazuje ukryty komponent; wymusza odświeżenie komponentu. usuwa zawartość pola tekstowego; kopiuje zawartość pola tekstowego do schowka; przenosi zawartość pola tekstowego do schowka; PasteFromClipboard wkleja zawartość schowka do pola tekstowego; SelectAll zaznacza zawartość pola tekstowego. Komponent TButton: Click symuluje kliknięcie na przycisku (generuje zdarzenie OnClick). Techniki programowania II s.2-14

15 Przykład metody klasy TEdit i TButton procedure TForm1.Button1Click(Sender: TObject); Edit1.SetFocus; Edit1.SelectAll; procedure TForm1.Button2Click(Sender: TObject); Edit1.SetFocus; Edit1.CopyToClipboard; procedure TForm1.Button3Click(Sender: TObject); Edit1.PasteFromClipboard; procedure TForm1.Button4Click(Sender: TObject); Edit1.Hide; Button4.Hide; Button5.Show; procedure TForm1.Button5Click(Sender: TObject); Edit1.Show; Button4.Show; Button5.Hide; Pełny kod programu dostępny na stronie przedmiotu jako "Przykład02_1" Techniki programowania II s.2-15

16 Zastosowanie Komponent ListBox Przewijana lista elementów (dowolna długość) z możliwością modyfikacji zawartości w czasie działania aplikacji. Wybrane własności Wszystkie omówione na s.1-16 z wyjątkiem Caption; ExtendedSelection rozszerzona selekcja, decyduje o sposobie selekcji elementów w trybie MultiSelect, wartość logiczna; ItemIndex indeks zaznaczonego elementu, liczba całkowita; Items zawartość listy (elementy wyświetlane w liście), klasa TStrings; MultiSelect włącza tryb zaznaczania kilku elementów, wartość logiczna; Sorted włącza automatyczne sortowanie zawartości listy, wartość logiczna. Wybrane metody procedure Clear usuwa wszystkie elementy listy (czyści zawartość ListBox); procedure DeleteSelected usuwa zaznaczony element. Techniki programowania II s.2-16

17 Metody klasy TStrings TStrings klasa obiektów reprezentująca kolekcję łańcuchów znakowych, np. własność Items komponentów ListBox, ComboBox. Wybrane metody klasy TStrings function Add(S: String): Integer; Dodaje nowy element na końcu listy, zwraca numer pozycji pod którą został umieszczony (elementy numerowane od zera) procedure Delete(Index: Integer); Usuwa z listy element o pozycji określonej przez argument Index procedure Insert(Index: Integer; S: String); Wstawia nowy element do listy na pozycji określonej przez argument Index (elementy numerowane od zera) function IndexOf(S: String): Integer; Zwraca numer pozycji elementu "S" (elementy numerowane od zera) lub -1 jeżeli "S" nie został znaleziony procedure LoadFromFile(N:String), procedure SaveToFile(N:String) Odcytuje/zapisuje zawartość listy do pliku tekstowego o nazwie "N" Techniki programowania II s.2-17

18 procedure TForm1.Button1Click(Sender: TObject); var s: string; s := Edit1.Text; ListBox1.Items.Add(s); Przykład metody klasy TListBox i TStrings procedure TForm1.Button2Click(Sender: TObject); var idx: Integer; s: string; idx := ListBox1.ItemIndex; s := Edit1.Text; ListBox1.Items.Insert(idx, s); procedure TForm1.Button3Click(Sender: TObject); ListBox1.DeleteSelected; procedure TForm1.Button4Click(Sender: TObject); ListBox1.Clear; Techniki programowania II s.2-18

19 procedure TForm1.Button5Click(Sender: TObject); ListBox1.Items.SaveToFile('przyklad2_2.txt'); Przykład metody klasy TListBox i TStrings procedure TForm1.Button6Click(Sender: TObject); ListBox1.Items.LoadFromFile('przyklad2_2.txt'); procedure TForm1.Button7Click(Sender: TObject); var idx: Integer; idx := ListBox1.Items.IndexOf(Edit1.Text); ListBox1.ItemIndex := idx; Pełny kod programu dostępny na stronie przedmiotu jako "Przykład02_2" Techniki programowania II s.2-19

20 Argumenty metod przekazywanie przez wartość Składnia argument1: typ; argument2,argument3: typ2... argument nazwa argumentu, identyfikator unikalny w obrębie metody. Przykład procedure Metoda1(x: integer); procedure Metoda2(x,y: real); procedure Metoda3(a,b: string; x,y,z: real); function Metoda4(x,y: real; z: integer): real; Cechy argumentów przekazywanych przez wartość operacje wykonywane na argumentach formalnych wewnątrz metody nie powodują zmian wartości odpowiadających im argumentów aktualnych; argumenty formalne traktowane są jak zmienne lokalne metody, które otrzymują wartość początkową na podstawie wartości argumentów aktualnych określonych w chwili wywołania; argumenty aktualne mogą być dowolnym wyrażeniem o typie zgodnym (w sensie przypisania) z typem odpowiadającego im argumentu formalnego. Techniki programowania II s.2-20

21 Składnia Argumenty metod przekazywanie przez referencję (zmienną) var argument1: typ; var argument2, argument3: typ2... argument nazwa argumentu, identyfikator unikalny w obrębie procedury. Przykład procedure Metoda1(var x: integer); procedure Metoda2(var x,y: real); procedure Metoda3(var a: string; var x: real); function Metoda4(var x,y: real): integer; Cechy argumentów przekazywanych przez zmienną operacje wykonywane na argumentach formalnych wewnątrz metody powodują natychmiastowe zmiany odpowiadających im argumentów aktualnych; argumenty aktualne muszą być zmienną o typie identycznym z typem odpowiadającego im argumentu formalnego; argumenty typu plikowego (file) muszą być przekazywane przez zmienną. Techniki programowania II s.2-21

22 Przykład argumenty metod (1) TForm1 = class(tform) GroupBox1: TGroupBox; Edit1: TEdit; Label1: TLabel; Button1: TButton;... procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private function Test1(a,b: Integer): Integer; procedure Test2(a,b: Integer); procedure Test3(var a,b: Integer); public Pełny kod programu dostępny na stronie przedmiotu jako "Przykład02_3" Techniki programowania II s.2-22

23 Przykład argumenty metod (1) Prywatna metoda funkcyjna Test1 function TForm1.Test1(a,b: Integer): Integer; Result := a+b; Metoda obsługi zdarzenia OnClick przycisku Button1 procedure TForm1.Button1Click(Sender: TObject); var x, y, w: Integer; x := StrToInt(Edit1.Text); y := StrToInt(Edit2.Text); w := Test1(x,y); Edit3.Text := IntToStr(w); Przykład 1. x 4, y 7 2. Test1(x,y) 3. a 4, b 7 4. Result a+b(11) 5. w 11 Wartości argumentów aktualnych (zmienne lokalne x i y) są przekazane do metody Test1 jako argumenty formalne a i b (a przyjmuje wartość zmiennej x, b zmiennej y). Metoda oblicza sumą argumentów a+b i zwraca wynik przypisywany do zmiennej lokalnej w. Techniki programowania II s.2-23

24 Przykład argumenty metod (2) Prywatna metoda proceduralna Test2 (argumenty przekazane przez wartość) procedure TForm1.Test2(a,b: Integer); a := a+1; b := b+2; Metoda obsługi zdarzenia OnClick przycisku Button2 procedure TForm1.Button2Click(Sender: TObject); var x, y: Integer; x := StrToInt(Edit4.Text); y := StrToInt(Edit5.Text); Test2(x,y); Edit4.Text := IntToStr(x); Edit5.Text := IntToStr(y); Przykład 1. x 1, y 2 2. Test2(x,y) 3. a 1, b 2 4. a a+1(2) 5. b b+2(4) 6. x = 1, y = 2 Argumenty aktualne (zm. lokalne x i y) są przekazane do metody Test2 jako argumenty formalne a i b przez wartość. Zm. x jest kopiowana do a, zm. y do b. Metoda modyfikuje lokalne kopie (a i b), nie zmieniając wartości argumentów aktualnych (x i y mają wartości takie jak przed wywołaniem metody). Techniki programowania II s.2-24

25 Przykład argumenty metod (3) Prywatna metoda proceduralna Test3 (argumenty przekazane przez referencję) procedure TForm1.Test3(var a,b: Integer); a := a+1; b := b+2; Metoda obsługi zdarzenia OnClick przycisku Button3 procedure TForm1.Button3Click(Sender: TObject); var x, y: Integer; x := StrToInt(Edit6.Text); y := StrToInt(Edit7.Text); Test3(x,y); Edit6.Text := IntToStr(x); Edit7.Text := IntToStr(y); Przykład 1. x 1, y 2 2. Test3(var x,y) 3. a x, b y 4. a a+1(2) x 5. b b+2(4) y 6. x = 2, y = 4 Argumenty aktualne (zm. lokalne x i y) są przekazane do metody Test3 jako argumenty formalne a i b przez referencję. Argument a jest referencją do zm. x (nie jest kopią x), b referencją do zm. y. Zmiana argumentu a (b) powoduje natychmiastową zmianę x (y). Po zakończeniu metody x i y mają nowe wartości. Techniki programowania II s.2-25

26 Przykład kalkulator, wersja I TForm1 = class(tform) Label1: TLabel; Edit1: TEdit; Button1: TButton;... procedure Button1Click(Sender: TObject);... private public procedure TForm1.Button1Click(Sender: TObject); var a, b, w: real; try a := StrToFloat(Edit1.Text); // <--!!! b := StrToFloat(Edit2.Text); // <--!!! w := a+b; Edit3.Text := 'Wynik: '+FormatFloat('0.00',w); // <--!!! except ShowMessage('a i b muszą być liczbami'); Pozostałe procedury zdarzeń OnClick analogicznie Pełny kod programu dostępny na stronie przedmiotu jako "Przykład02_4" Techniki programowania II s.2-26

27 TForm1 = class(tform) Label1: TLabel; Edit1: TEdit; Button1: TButton;... procedure Button1Click(Sender: TObject);... private function Odczyt(e: TEdit): Real; procedure Wynik(w: Real); procedure Dane(var a, b: Real); public Przykład kalkulator, wersja II Prywatne metody realizujące wielokrotnie powtarzane operacje: Odczyt odczytuje wartość liczbową (liczba rzeczywista) z pola edycyjnego przekazanego jako argument e i zwraca jako rezultat funkcji, Wynik wyświetla wynik operacji przekazany jako argument w, Dane odczytuje dwie wartości liczbowe z pól Edit1 i Edit2 zwracane jako argumenty a i b przekazane przez referencję (alternatywa dla Odczyt). Pełny kod programu dostępny na stronie przedmiotu jako "Przykład02_5" Techniki programowania II s.2-27

28 function TForm1.Odczyt(e: TEdit): Real; Result := StrToFloat(e.Text); procedure TForm1.Wynik(w: Real); Edit3.Text := 'Wynik: '+FormatFloat('0.00',w); Przykład metody Odczyt i Wynik Przykład użycia metod prywatnych w procedurze zdarzenia Button1Click procedure TForm1.Button1Click(Sender: TObject); var a, b, w: real; try a := Odczyt(Edit1); // <--!!! b := Odczyt(Edit2); // <--!!! w := a+b; Wynik(w); // <--!!! except ShowMessage('a i b muszą być liczbami'); Techniki programowania II s.2-28

29 Przykład metoda Dane procedure TForm1.Dane(var a, b: Real); a := StrToFloat(Edit1.Text); b := StrToFloat(Edit2.Text); Przykład użycia metody prywatnej w procedurze zdarzenia Button3Click procedure TForm1.Button3Click(Sender: TObject); var a, b, w: real; try Dane(a, b); // <--!!! w := a*b; Wynik(w); except ShowMessage('a i b muszą być liczbami'); Uwaga: metody Odczyt i Dane demonstrują alternatywne rozwiązania odczytu danych. W przykładzie zostały wykorzystane obydwa podejścia w celu zaprezentowania różnego sposobu przekazywania parametrów. W praktyce należy wybrać i konsekwentnie używać tylko jednej z przedstawionych możliwości. Techniki programowania II s.2-29

Wprowadzenie do systemu Delphi

Wprowadzenie do systemu Delphi 50 Rozdział 4 Wprowadzenie do systemu Delphi W niniejszym rozdziale zilustrujemy na prostych przykładach proces programowania wizualno-obiektowego w systemie Delphi. 4.1 Znajdowanie elementu maksymalnego

Bardziej szczegółowo

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk Nazwa implementacji: Kółko i krzyżyk w Lazarusie Autor: Piotr Fiorek Andrzej Stefaniuk Opis implementacji: Implementacja prezentuje środowisko Lazarus oraz prosty program w języku FreePascal. Na początku

Bardziej szczegółowo

Wprowadzenie do języka Pascal

Wprowadzenie do języka Pascal Wprowadzenie do języka Pascal zmienne i typy standardowe operatory arytmetyczne, funkcje standardowe odczyt danych i wyświetlanie wyników obsługa wyjątków Techniki programowania I s.2-1 Podstawowe zasady

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem. Podstawy programowania Wykład PASCAL Wstęp do programowania obiektowego 1 Programowanie obiektowe - definicja Programowanie obiektowe paradygmat programowania, w którym programy definiuje się za pomocą

Bardziej szczegółowo

Instrukcja warunkowa i wyboru

Instrukcja warunkowa i wyboru Instrukcja warunkowa i wyboru projektowanie algorytmów instrukcje sterujące języka Pascal instrukcja warunkowa operatory relacyjne i logiczne instrukcja wyboru echniki programowania I s.3-1 Projektowanie

Bardziej szczegółowo

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5 Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5 Ćwiczenie 11 Aktualizacja bazy cd. Uzupełnij aplikację przygotowaną na ćwiczeniach poprzednich. Dodaj obsługę opcji Aktualizacja/Tabela

Bardziej szczegółowo

Niniejszy ebook jest własnością prywatną.

Niniejszy ebook jest własnością prywatną. Niniejszy ebook jest własnością prywatną. Niniejsza publikacja, ani żadna jej część, nie może być kopiowana, ani w jakikolwiek inny sposób reprodukowana, powielana, ani odczytywana w środkach publicznego

Bardziej szczegółowo

Technologie obiektowe

Technologie obiektowe WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność

Bardziej szczegółowo

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/ Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.

Bardziej szczegółowo

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ 1. Na dysku STUDENT we własnym folderze utwórz podfolder o nazwie: WarMax. 2. Uruchom program Delphi. 3. Zapamiętaj w folderze WarMax poszczególne pliki tworzące

Bardziej szczegółowo

Delphi Laboratorium 3

Delphi Laboratorium 3 Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) 1. Udostępnianie wszystkich prywatnych atrybutów do prezentacji, wprowadzenie standardu nazewnictwa plików nazwy plików

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych Jacek Matulewski, Sławek Orłowski http://www.phys.uni.torun.pl/~jacek/ Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych Wersja α Ćwiczenia Toruń, 20 grudnia 2005 Najnowsza wersja tego dokumentu

Bardziej szczegółowo

Materiały do zajęć VII

Materiały do zajęć VII Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja

Bardziej szczegółowo

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

Bardziej szczegółowo

Podstawy Programowania 2

Podstawy Programowania 2 Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY Różne właściwości Funkcje tak samo jak zmienne mają swoje miejsce w pamięci, gdzie są zapisane. Można więc uzyskać ich adres. Podobnie jak adres tablicy jest zwracany przez jej nazwę, podaną bez nawiasu

Bardziej szczegółowo

Instrukcje iteracyjne (pętle)

Instrukcje iteracyjne (pętle) Instrukcje iteracyjne (pętle) Instrukcja for..to i for..downto Instrukcja while Instrukcja repeat..until echniki programowania I s.4-1 Zastosowanie instrukcji iteracyjnych Instrukcje iteracyjne (inaczej

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Tworzenie własnych komponentów

Tworzenie własnych komponentów Tworzenie własnych komponentów 1. Tworzenie nowego komponentu W tym celu należy wykorzystać menu Component. Interesujące są dwie opcje menu New Component i Install Component. Pierwsze polecenie służy do

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

Projektowanie i programowanie aplikacji biznesowych. Wykład 2

Projektowanie i programowanie aplikacji biznesowych. Wykład 2 Projektowanie i programowanie aplikacji biznesowych Wykład 2 Kontrolki w Windows API Aby korzystać z kontrolek należy dołączyć plik nagłówkowy o nazwie commctrl.h oraz bibliotekę o nazwie libcomctl32.a.

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Definiowanie własnych klas

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

Bardziej szczegółowo

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C #import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Programowanie zorientowane obiektowo Pojęcie klasy i obiektu Elementy klas: Pola klas (dane), metody (procedury i funkcje) KLASA TO WZORZEC. OBIEKT TO KONKRETNY EGZEMPLARZ Hermetyzacja

Bardziej szczegółowo

Projekt Hurtownia, realizacja skojarzeń dostawców i produktów

Projekt Hurtownia, realizacja skojarzeń dostawców i produktów niżej. Projekt Hurtownia, realizacja skojarzeń dostawców i produktów W bazie danych HurtowniaSP istnieją tabele Dostawcy oraz Produkty, ich definicje przypomniane są W bazie zdefiniowano także tabelę DostawcyProdukty,

Bardziej szczegółowo

Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management

Bardziej szczegółowo

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

Bardziej szczegółowo

Podręcznik użytkownika Obieg dokumentów

Podręcznik użytkownika Obieg dokumentów Podręcznik użytkownika Obieg dokumentów Opracowany na potrzeby wdrożenia dla Akademii Wychowania Fizycznego im. Eugeniusza Piaseckiego w Poznaniu W ramach realizacji projektu: Uczelnia jutra wdrożenie

Bardziej szczegółowo

Kalkulator. Programowanie komputerów. Kalkulator możliwe udoskonalenia. Kalkulator. Kalkulator. Kalkulator możliwe udoskonalenia

Kalkulator. Programowanie komputerów. Kalkulator możliwe udoskonalenia. Kalkulator. Kalkulator. Kalkulator możliwe udoskonalenia Programowanie komputerów Relatywnie prosty interfejs użytkownika Złożony algorytm. Elementy obowiązkowe (2,) Klawisze: numeryczne..9, znak dziesiętny (","), operacje arytmetyczne, -, *, /, wynik () oraz

Bardziej szczegółowo

Programowanie obiektowe. Obiekt Klasa Składnia klasy: Interfejsy Składnia interfejsu: Metody Składnia instrukcji Sub: Składnia instrukcji function:

Programowanie obiektowe. Obiekt Klasa Składnia klasy: Interfejsy Składnia interfejsu: Metody Składnia instrukcji Sub: Składnia instrukcji function: Programowanie obiektowe. Obiekt Obiekt to dowolny element, który możemy wydzielić i którym możemy manipulować. W terminologii informatycznej obiekt to samodzielna jednostka zawierająca zarówno dane, jak

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

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura Programowanie komputerów Programowanie obiektowe. Typy zmiennych proste i złożone Typy zmiennych "wbudowane", tj. identyfikowane przez słowa kluczowe, są określane jako proste: int short long float double

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe. Programowanie Wizualno-Obiektowe (studia zaoczne - inżynieria komputerowa) Zajęcia z Delphi 5, program 1 Temat: Zadanie: Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków

Bardziej szczegółowo

Wykład 3 Składnia języka C# (cz. 2)

Wykład 3 Składnia języka C# (cz. 2) Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest

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

Delphi. Lazarus. Kompilatory Delphi. Linki do stron o Delphi

Delphi. Lazarus. Kompilatory Delphi. Linki do stron o Delphi Lazarus Programowanie w Delphi Delphi Delphi jest to język oparty na Pascal. Twórcą jego jest firma Borland. Pierwotnie nosił nazwę Object Pascal (do 2006). Jest to język prosty i popularny. Wykorzystuje

Bardziej szczegółowo

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Projekt Hurtownia, realizacja rejestracji dostaw produktów Projekt Hurtownia, realizacja rejestracji dostaw produktów Ćwiczenie to będzie poświęcone zaprojektowaniu formularza pozwalającego na rejestrację dostaw produktów dla naszej hurtowni. Dane identyfikujące

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja

Bardziej szczegółowo

Wykład 7: Lazarus GUI

Wykład 7: Lazarus GUI Kurs języka Object/Delphi Pascal na bazie implementacji Free Pascal. autor Łukasz Stafiniak Email: lukstafi@gmail.com, lukstafi@ii.uni.wroc.pl Web: www.ii.uni.wroc.pl/~lukstafi Jeśli zauważysz błędy na

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

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe Podstawy programowania Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe 1 Podstawy programowania Część I Łańcuchy znaków 2 I. Zmienne łańcuchowe Klasyfikacja zmiennych statycznych

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego struktura kasy w Dephi definicja pó i metod konstruktory i destruktory Programowanie obiektowe s.- Najważniejsze pojęcia z wykładu 0 Programowanie sterowane zdarzeniami

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne

Bardziej szczegółowo

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Projekt Hurtownia, realizacja rejestracji dostaw produktów Projekt Hurtownia, realizacja rejestracji dostaw produktów Ćwiczenie to będzie poświęcone zaprojektowaniu formularza pozwalającego na rejestrację dostaw produktów dla naszej hurtowni. Dane identyfikujące

Bardziej szczegółowo

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

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

W kodzie modułu Unit1 zdefiniuj dwie metody - składowe komponentu formatki TForm1:

W kodzie modułu Unit1 zdefiniuj dwie metody - składowe komponentu formatki TForm1: Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK Ćwiczenie 1 Generowanie plików HTML 1. Przygotowanie aplikacji generującej prostą stronę.

Bardziej szczegółowo

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

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

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego. Umiejętność czytania oraz tworzenia diagramów klas UML jest podstawą w przypadku zawodu programisty. Z takimi diagramami będziesz spotykał się w przeciągu całej swojej kariery. Diagramy klas UML są zawsze

Bardziej szczegółowo

Wstęp do programowania obiektowego. Wykład 2

Wstęp do programowania obiektowego. Wykład 2 Wstęp do programowania obiektowego Wykład 2 1 CECHY I KONCEPCJA PROGRAMOWANIA OBIEKTOWEGO 2 Cechy programowania obiektowego Dla wielu problemów podejście obiektowe jest zgodne z rzeczywistością (łatwe

Bardziej szczegółowo

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Programowanie obiektowe, wykład nr 6. Klasy i obiekty Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto

Bardziej szczegółowo

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych

Bardziej szczegółowo

Dziedziczenie jednobazowe, poliformizm

Dziedziczenie jednobazowe, poliformizm Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie

Bardziej szczegółowo

Po uruchomieniu Lazarusa należy wybrać z paska górnego opcję Projekt i następnie Nowy Projekt. Pokaże się okno:

Po uruchomieniu Lazarusa należy wybrać z paska górnego opcję Projekt i następnie Nowy Projekt. Pokaże się okno: Po uruchomieniu Lazarusa należy wybrać z paska górnego opcję Projekt i następnie Nowy Projekt. Pokaże się okno: Należy wybrać Aplikacja, pojawi się puste okno Form1: Z zakładki standard należy wprowadzić

Bardziej szczegółowo

OBIEKTY PHP. G. Panuś

OBIEKTY PHP. G. Panuś OBIEKTY PHP G. Panuś Podstawowym elementem programowania obiektowego jest klasa Klasa zawiera Zmienne właściwości Klasa Funkcje metody Definiowanie klasy Do definiowania klasy służy polecenie class class

Bardziej szczegółowo

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie

Bardziej szczegółowo

Wykład PASCAL - Pliki tekstowe

Wykład PASCAL - Pliki tekstowe Podstawy programowania Wykład PASCAL - Pliki tekstowe 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą,

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Tabela wewnętrzna - definicja

Tabela wewnętrzna - definicja ABAP/4 Tabela wewnętrzna - definicja Temporalna tabela przechowywana w pamięci operacyjnej serwera aplikacji Tworzona, wypełniana i modyfikowana jest przez program podczas jego wykonywania i usuwana, gdy

Bardziej szczegółowo

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium: Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

Bardziej szczegółowo

Literatura. Techniki programowania II s.1-1

Literatura. Techniki programowania II s.1-1 Literatura A. Daniluk ABC Delphi 7, Helion, 2003, W. Kwasowiec Wprowadzenie do Object Pascal i Delphi, Mikom 2001, A. Synarska Delphi od podstaw, Edition 2001, N. Wirth Algorytmy + struktury danych = programy,

Bardziej szczegółowo

Funkcje i instrukcje języka JavaScript

Funkcje i instrukcje języka JavaScript Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje

Bardziej szczegółowo

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 5 Okna MDI i SDI, dziedziczenie Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie

Bardziej szczegółowo

Modelowanie obiektowe

Modelowanie obiektowe Modelowanie obiektowe ZPO 2018/2019 Dr inż. W. Cichalewski Materiały wykonane przez W. Tylman Diagramy klas Diagramy klas Zawiera informacje o statycznych związkach między elementami (klasami) Są ściśle

Bardziej szczegółowo

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC. 1 Moduł OPC Moduł OPC pozwala na komunikację z serwerami OPC pracującymi w oparciu o model DA (Data Access). Dzięki niemu można odczytać stan obiektów OPC (zmiennych zdefiniowanych w programie PLC), a

Bardziej szczegółowo

Rys.2.1. Drzewo modelu DOM [1]

Rys.2.1. Drzewo modelu DOM [1] 1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA 2.1. DOM model

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 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc

Bardziej szczegółowo

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem. Podstawy programowania Wykład PASCAL Zmienne wskaźnikowe i dynamiczne 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje zmiennych Zmienne dzielą się na statyczne i dynamiczne. Zmienna

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający

Bardziej szczegółowo

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

Pola i metody statyczne. Klasy zawierające pola i metody statyczne Instrukcja laboratoryjna nr 1 Programowanie w języku C 2 (C++ poziom zaawansowany) Pola i metody statyczne. Klasy zawierające pola i metody statyczne dr inż. Kaczmarek Tomasz mgr inż. Lasota Maciej dr

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Dodanie nowej formy do projektu polega na:

Dodanie nowej formy do projektu polega na: 7 Tworzenie formy Forma jest podstawowym elementem dla tworzenia interfejsu użytkownika aplikacji systemu Windows. Umożliwia uruchomienie aplikacji, oraz komunikację z użytkownikiem aplikacji. W trakcie

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

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Podstawy programowania Ćwiczenie Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Tematy ćwiczenia algorytm, opis języka programowania praca ze środowiskiem, formularz, obiekty

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty

Bardziej szczegółowo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80

Bardziej szczegółowo

Programowanie modułowe

Programowanie modułowe Przykład aplikacji bez obsługi zdarzeń Rozmieszczenie na formatce 11 etykiet i komponentu Image. Rozbudowa pliku głównego aplikacji do postaci: program Project1; uses Forms, SysUtils, Unit1 in 'Unit1.pas'

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo