Informatyka. Wykład /2018z
|
|
- Karol Michalak
- 4 lat temu
- Przeglądów:
Transkrypt
1 Informatyka Wykład /2018z Bogumil.Konopka@pwr.edu.pl
2 Plan Rekurencja Programowanie zorientowane obiektowo Zalety programowania obiektowego Korzystanie z obiektów Projektowanie własnej klasy Przeładowanie funkcji
3 Rekurencja - rekursja Odwoływanie się przez funkcję lub definicję do samej siebie Ciąg Fibonacciego: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, F 0 = 0 F 1 = 1 F n = F n 1 + F n 2, n 2 Silnia: 1, 1, 2, 6, 24, 120, 720, 0! = 1 n! = n n 1!, n 1
4 Podstawowe elementy funkcji rekurencyjnej Przypadek bazowy silnia N = 1 n = 0 n n 1!, n 1 Zmiana w kierunku przypadku bazowego Wywołanie rekurencyjne Liczenie silni: wartosc = silnia(n) { Jeżeli ( ) wartosc = 1 W przeciwnym wypadku wartosc = } Co w pustych polach?
5 Podstawowe elementy funkcji rekurencyjnej Przypadek bazowy silnia N = 1 n = 0 n n 1!, n 1 Liczenie silni: Zmiana w kierunku przypadku bazowego Wywołanie rekurencyjne wartosc = silnia(n) { Jeżeli (n == 0) wartosc = 1 W przeciwnym wypadku wartosc = n*silnia(n-1) }
6 Silnia liczona rekurencyjnie - przykład silnia(5)
7 Silnia liczona rekurencyjnie - przykład silnia(5) Czy 5 == 0? wartosc = 5*silnia(5-1) Czy 4 == 0? wartosc = 4*silnia(3) wartosc = silnia(n) { Jeżeli (n == 0) wartosc = 1 W przeciwnym wypadku wartosc = n*silnia(n-1) } Czy 3 == 0? wartosc = 3*silnia(2) Czy 2 == 0? wartosc = 2*silnia(1) Czy 1 == 0? wartosc = 1*silnia(0) wartosc = 1 Czy 0 == 0?
8 Czasami rekurencję można zastąpić pętlą %Obliczenie silni N=5 s=1 for n = 1:N s=s*n; %Fibonacci fib(1)=0 fib(2)=1 for n=3:n fib(n)=fib(n-2)+fib(n-1) s=prod(1:n) s=factorial(n)
9 Jakie operacje są wykonywane w czasie wykonywania funkcji? Wywołanie funkcji Na stosie rezerwowane jest miejsce dla wartości zwracanych przez funkcję oraz jej argumentów wejściowych Argumenty wejściowe są kopiowane w zarezerwowane miejsce Następuje przeskok do wywołanej funkcji Realizacja kodu funkcji Wynik funkcji jest kopiowany do zmiennych zwracanych Ze stosu usuwane są zmienne zakończonej funkcji Następuje powrót do miejsca wywołania funkcji Każda z czynności zajmuje czas!
10 Kiedy używać rekurencji? Gdy kod rekurencyjny jest bardziej zrozumiały Np. bardziej zgodny ze znaną definicją Gdy mamy do czynienia z zagnieżdżonymi strukturami danych Gdy złożony problem może być podzielony na serię prostszych problemów rozwiązywanych po sobie Przykład rozwiązywanie shinoku
11 Shinoku - zasady Pole gry macierz 4x4 Pole podzielona jest na 4 kratki 2x2 Pole wypełniane jest liczbami 1:4 Zasady wypełniania: Liczba występuje tylko raz w każdym wierszu, kolumnie, kratce 2x
12 Shinoku algorytm rozwiązania Jeżeli nie ma pustych pól to zakończ Przejdź do pierwszego pustego pola Próbuj kolejne liczby 1:4 Jeżeli liczba nie powoduje konfliktu, spróbuj uzupełnić następne pole Jeżeli nie ma możliwości wpisu, cofnij się w wypełnianiu i zmień wybór.
13 Implementacja w MATLABIE Jeżeli nie ma pustych pól to zakończ Przejdź do pierwszego pustego pola Próbuj kolejne liczby 1:4 Jeżeli liczba nie powoduje konfliktu, spróbuj uzupełnić następne pole Jeżeli nie ma możliwości wpisu, cofnij się w wypełnianiu i zmień wybór.
14 Implementacja w MATLABIE function rx = Shinoku(X) [w,k]=find(~x,1,'first'); % szukaj pierwszego zera if (isempty(w)) rx=x; return %jezeli cala macierz jest wypelniona to zwroc wynik % Jeżeli nie ma pustych pól to zakończ Przejdź do pierwszego pustego pola Próbuj kolejne liczby 1:4 Jeżeli liczba nie powoduje konfliktu, spróbuj uzupełnić następne pole Jeżeli nie ma możliwości wpisu, cofnij się w wypełnianiu i zmień wybór.
15 Implementacja w MATLABIE for proba=1:4 X(w,k)=proba if (SprawdzPoprawnosc(X(w,:)) &&... SprawdzPoprawnosc(X(:,k)) &&... SprawdzPoprawnosc(X(kratkaX,kratkaY))) rx=shinoku(x); %jezeli rx wrocilo kompletne to zwroc dalej %w przeciwnym wypadku kontynuj petle "for" if (isempty(find(~rx,1,'first'))) return X(w,k)=0; rx=x; Jeżeli nie ma pustych pól to zakończ Przejdź do pierwszego pustego pola Próbuj kolejne liczby 1:4 Jeżeli liczba nie powoduje konfliktu, spróbuj uzupełnić następne pole Jeżeli nie ma możliwości wpisu, cofnij się w wypełnianiu i zmień wybór.
16 Implementacja w MATLABIE for proba=1:4 X(w,k)=proba if (SprawdzPoprawnosc(X(w,:)) &&... SprawdzPoprawnosc(X(:,k)) &&... SprawdzPoprawnosc(X(kratkaX,kratkaY))) rx=shinoku(x); %jezeli rx wrocilo kompletne to zwroc dalej %w przeciwnym wypadku kontynuj petle "for" if (isempty(find(~rx,1,'first'))) return X(w,k)=0; rx=x; Jeżeli nie ma pustych pól to zakończ Przejdź do pierwszego pustego pola Próbuj kolejne liczby 1:4 Jeżeli liczba nie powoduje konfliktu, spróbuj uzupełnić następne pole Jeżeli nie ma możliwości wpisu, cofnij się w wypełnianiu i zmień wybór.
17 Rekurencja - podsumowanie Funkcja rekurencyjna musi mieć: Przypadek bazowy trywialne, natychmiastowe rozwiązanie Modyfikację w kierunku przypadku bazowego Wywołanie samej siebie ze zmodyfikowanymi parametrami wejściowymi Z rekurencji korzysta się, gdy: Problem można rozbić na ciągłe rozwiązywanie serii mniej skomplikowanych problemów Mamy do czynienia z drzewiastą strukturą danych Czytelność kodu jest większa niż w implementacji z pętlą iteracyjną
18 Programowanie proceduralne vs programowanie zorientowane obiektowo Programowanie Reprezentacja Danych Implementacja operacji Programowanie proceduralne Programowanie zorientowane obiektowo Dane Dane2 Dane3 Funkcja1 Funkcja2 Funkcja3 Dane2 Dane3 Dane4 Atrybut1 Metoda1 Atrybut2 Metoda2 Atrybut3 Metoda3
19 Programowanie proceduralne Dane Funkcja1 Dane2 Funkcja2 Dane3 Akcent położony jest na identyfikacji czynność, które muszą być wykonane Dane są zazwyczaj pojedynczymi zmiennymi. Funkcje wykonują jedną, bądź wiele operacji na danych
20 Programowanie zorientowane obiektowo 1. Identyfikacja elementów systemu, który zamierzamy zbudować 2. Identyfikacja schematów które elementy są używane wielokrotnie, które elementy mają wspólne cechy 3. Klasyfikacja elementów w oparciu o podobieństwa i różnice. 4. Implementacja klas, które zdefiniują obiekty używane w aplikacji Atrybut1 Metoda1 Atrybut2 Metoda2 Jaka jest różnica między klasą, a obiektem?
21 Gdzie mieliśmy do czynienia z obiektami? Wiele z funkcji w MATLABIE korzysta z obiektów np.: Dopasowywanie krzywych [g, gof, out ] = fit(x',y_exp',ftype) >> g g = General model: g(x) = 1/(1+exp(-b*x)) Coefficients (with 95% confidence bounds): b = (0.6541, ) Obsługa błędów za pomocą try/catch
22 Przykład - Obsługa błędów obiekt MException function [wynik,err] = MnozenieMacierzy(A,B) err=[]; try wynik=a*b catch err %zlap wyjątek err %wyświetl obiekt err sa=size(a); %pobierz rozmiary A sb=size(b); %pobierz rozmiary B warning('rozmiary A: %d x %d, Rozmiary B: %d x %d', sa, sb) wynik=[]; >> [wynik,err] = MnozenieMacierzy([2 1],[3 1]) Warning: Rozmiary A: 1 x 2, Rozmiary B: 1 x 2 > In MnozenieMacierzy at 8 wynik = [] err = MException with properties: identifier: 'MATLAB:innerdim' message: 'Inner matrix dimensions must agree.' cause: {0x1 cell} stack: [1x1 struct] >> class(err) ans = MException
23 Obiekty porządkują przechowywanie danych Dane są przechowywane jako atrybuty/właściwości obiektu >> properties(err) Properties for class MException: identifier message cause stack Do pól odnosimy się przez operator. >> err.stack ans = file: 'C:\Users\Bob\Documents\MATLAB\Inf_2014_2015\MnozenieMacierzy.m' name: 'MnozenieMacierzy' line: 4 >> class(err.stack) ans = struct
24 Obiekty same obsługują swoje dane Obiekt zawiera w sobie definicje operacji, które mogą być przeprowadzone na danych metody definiowane dla klasy. >> methods(err) Methods for class MException: addcause getreport ne throw eq isequal rethrow throwascaller Static methods: last >> err.getreport ans = Error using * Inner matrix dimensions must agree. Error in MnozenieMacierzy (line 4) wynik=a*b
25 Obiekty same obsługują swoje dane (2) Obiekt zawiera w sobie definicje operacji, które mogą być przeprowadzone na danych metody definiowane dla klasy. >> [wynik,err2]=mnozeniemacierzy([ ], [2 3]'); Warning: Rozmiary A: 1 x 4, Rozmiary B: 2 x 1 > In MnozenieMacierzy at 8 >> err.isequal(err2) % uruchomienie metody isequal na obiekcie err ans = 1 >> err==err2 %przeladowanie operatora == ans = 1
26 Kiedy należy rozważyć zastosowanie programowanie obiektowe w MATLABie? Proste, krótkie zadania mogą być realizowane w funkcjach (korzystając z programowania proceduralnego) Skomplikowane funkcje powinny być rozdzielone na mniejsze Jeżeli funkcji jest zbyt dużo i obsługa danych zaczyna być problematyczna, wówczas trzeba zastanowić się nad zastosowaniem programowania obiektowego.
27 Tworzenie własnej klasy schemat postępowania 1. Analiza problemu: Co jest obiektem? Jakie są cechy obiektu istotne dla problemu? Co może się dziać z obiektem? 2. Projekt: Dane i stany, które należy przechowywać Operacje, które będą wykonywane na obiekcie 3. Implementacja tworzenie klas 4. Testowania tworzenie obiektów Atrybut1 Metoda1 Atrybut2 Metoda2 Jaka jest różnica między klasą, a obiektem? Slajd w oparciu o W. Dyrka, Wykład 3, Informatyka 2012
28 Tworzenie własnej klasy - przykład Problem: Pomiar stężenia hormonu w próbie badanych Obiekt: Wyniki pomiarów stężenia Jakie są atrybuty obiektu: Wektor zmierzonych wartości Nazwa Rozmiar próby Wartość średnia Odchylenie standardowe Co może się stać z obiektem: Wyświetlić dane o próbie Wykreślić histogram Można połączyć z inną grupą Porównać wartość średnią z inną grupą Slajd w oparciu o W. Dyrka, Wykład 3, Informatyka 2012
29 Projekt klasy Klasa ProbaLosowa Atrybuty: stezeniewektor -wektor zmierzonych stężeń nazwa - nazwa próby rozmiar - liczba badanych sr - wartość średnia z badań odch - odchylenie standardowe Metody: rysuj dodaj porównaj - wyświetla wartości - łączy próby - porównuje dwie próby
30 Definiowanie klasy classdef ProbaLosowa %Klasa oblsugujaca wyniki pomiarów stezenia hormonow w %probie wybranych pacjentow properties nazwa % nazwa proby stezeniewektor % wektor zmierzonych stezen rozmiar % liczba badanych sr % wartosc srednia z badan odch % odchylenie standardowe methods
31 Tworzenie obiektu obiekt jak struktura >> pr1=probalosowa pr1 = ProbaLosowa with properties: nazwa:[] stezeniewektor: [] rozmiar: [] sr: [] odch: [] >> pr1.stezeniewektor=10+2*randn(1,100); >> pr1.sr=10; >> pr1 pr1 = ProbaLosowa with properties: nazwa:[] stezeniewektor: [1x100 double] rozmiar: [] sr: 10 odch: [] >> pr1.stezenie=[ ] No public field stezenie exists for class ProbaLosowa. >> class(pr1) ans = ProbaLosowa
32 Tworzenie obiektu - konstruktor Konstruktor to metoda, która służy do tworzenia obiektów danej klasy Nazwa konstruktora jest taka sama jak nazwa klasy Konstruktor powinien: Sprawdzać, czy argument wejściowy jest obiektem danej klasy, jeżeli tak to tworzyć jego kopię Jeśli nie, to powinien utworzyć obiekt z atrybutami podanymi jako argumenty wejściowe Konstruktor powinien sprawdzać poprawność wprowadzanych danych
33 Konstruktor - przykład function obj=probalosowa(wektor,nazwa) if (nargin==0) error('brak danych do utworzenia ProbyLosowej') elseif (isa(wektor,'probalosowa')) % kopiowanie obiektu obj=wektor; elseif (isvector(wektor)) if (sum(wektor<0))error('stezenie musi byc > 0'); if (nargin<2) nazwa='proba'; obj.stezeniewektor=wektor(:); else error('podano bledne dane') >> pr=probalosowa Error using ProbaLosowa (line 16) Brak danych do utworzenia ProbyLosowej >> pr=probalosowa([10,15,-1,14]) Error using ProbaLosowa (line 21) Stezenie musi byc > 0 >> pr=probalosowa([10,15;2,14]) Error using ProbaLosowa (line 25) Podano bledne dane
34 Enkapsulacja/hermetyzacja Oddzielenie i ukrycie wnętrzności klasy czyli implementacji (jak to działa?) Od powierzchowości klasy czyli interfejsu (jak z tego korzystać?) Ułatwia zachowanie poprawności obiektu ogranicza dostęp do danych Umożliwia ulepszenie sposobu działanie klasy bez zmiany sposobu korzystania z niej Podstawowa zasada programowania zorientowanego obiektowo Slajd W. Dyrka, Wykład 3, Informatyka 2012
35 Ustawienie wartości parametrów Ustawianie parametrów można kontrolować przez zdefiniowanie funkcji set (np. nazwa próby musi być łańcuchem znaków niezaczynającym się od liczby) function obj=set.nazwa(obj,nazwa) if (ischar(nazwa) && isempty(str2num(nazwa(1)))) obj.nazwa=nazwa; else error('zla nazwa!') >> pr.nazwa='1_pr' Error using ProbaLosowa/set.nazwa (line 36) Zla nazwa! >> pr=probalosowa([10,15,2,14],'2proba') Error using ProbaLosowa/set.nazwa (line 36) Zla nazwa! Error in ProbaLosowa (line 27) pr.nazwa=nazwa; Set działa również przy wywołaniu konstruktora!!
36 Pobieranie wartości parametrów dane zależne - liczba elementów, średnia, Klasa ProbaLosowa zawiera pola uzależnione od wektora zmierzonych wartości Rozmiar Średnia Odchylenie standardowe Nie trzeba ich trzymać w obiekcie można je obliczać. Tworzymy metody get, które będą je obliczać function rozmiar=get.rozmiar(obj) rozmiar=numel(obj.stezeniewektor) function sr=get.sr(obj) sr=mean(obj.stezeniewektor); function odch=get.odch(obj) odch=std(obj.stezeniewektor);
37 Liczba elementów, średnia, - dane zależne (2) Użytkownik nie powinien mieć możliwości ich nadpisywania. Tworzymy blok atrybutów zależnych (Depent) i edytowalnych tylko przez metody klasy (SetAccess=private): properties stezeniewektor % wektor zmierzonych stezen nazwa %nazwa proby properties (Depent=true,SetAccess=private) rozmiar % liczba badanych sr % wartosc srednia z badan odch % odchylenie standardowe
38
39 Kilka zasad Własności/atrybuty umieszczamy w blokach properties osobne bloki dla własności o różnych atrybutach Metody umieszczamy w blokach methods Konstruktor tworzy obiekt, nazywa się tak jak klasa function obj=probalosowa(wektor,nazwa) Funkcja get jest uruchamiana, gdy czytamy daną parametrem funkcji get jest obiekt, zwracana jest wartość własności function rozmiar=get.rozmiar(obj) Funkcja set jest uruchamiana gdy zmieniamy daną parametrami funkcji set są obiekt i nowa wartość, zwracany jest obiekt function obj=set.nazwa(obj,nazwa) Slajd W. Dyrka, Wykład 3, Informatyka 2012
40 Tworzenie własnej klasy co zostało? Problem: Pomiar stężenia hormonu w próbie badanych Obiekt: Wyniki pomiarów stężenia Jakie są atrybuty obiektu: Wektor zmierzonych wartości Nazwa Rozmiar próby Wartość średnia Odchylenie standardowe Co może się stać z obiektem: Wykreślić histogram Wyświetlić dane o próbie Można połączyć z inną grupą Porównać wartość średnią z inną grupą Slajd w oparciu o W. Dyrka, Wykład 3, Informatyka 2012
41 Rysowanie danych Chcemy wykreślić histogramy dla naszej próby Umieszczamy stosowną funkcję w bloku methods function rysuj(obj,n) %Rysuje histogram dla proby z podzialem na N koszykow. %Gdy N nie jest podane wylicza N wg. formuly Struga if (nargin==1) N = round(log2(obj.rozmiar)+1); hist(obj.stezeniewektor,n) tytul=['proba losowa ', obj.nazwa]; title(tytul) xlabel('stezenie') ylabel('n') %wywolanie >> pr.rysuj
42 Przeładowanie (przeciążanie) funkcji disp Do wyświetlania zmiennych służy funkcja disp >> disp(pr) ProbaLosowa with properties: stezeniewektor: [4x1 double] nazwa: 'pr1' rozmiar: 4 sr: odch: Chcemy wyświetlać obiekty naszej klasy w specjalny sposób. W bloku methods Definiujemy funkcję disp dla naszej klasy
43 Przeładowanie (przeciążanie) funkcji disp function disp(obj) %disp(proba) %Przeladowanie funkcji disp dla objektow klasy ProbaLosowa fprintf('parametry proby ''%s''\n Liczebnosc: %d\n Srednia: %.2f\n Odchylenie: %.2f\n',... obj.nazwa, obj.rozmiar, obj.sr, obj.odch) Działa przy każdym wyświetlaniu zmiennej >> disp(pr) Parametry proby 'proba1' Liczebnosc: 4 Srednia: Odchylenie: 5.91 >> pr=probalosowa([10,15,2,14],'proba1') pr = Parametry proby 'proba1' Liczebnosc: 4 Srednia: Odchylenie: 5.91
44 Przeładowanie operatorów dla klasy (1) Chcemy połączyć dwie badane próby za pomocą operatora + Operatory są związane z konkretnymi funkcjami
45 Przeładowanie operatorów dla klasy (2) Chcemy połączyć dwie badane próby za pomocą operatora + Operatory są związane z konkretnymi funkcjami Należy przeładować funkcję która nas interesuje (tutaj plus). function obj=plus(obj,obj2) %Przeladowanie operatora +, laczy wektory dwoch roznych prob %Nadaje nazwe nowej probie. obj.stezeniewektor=[obj.stezeniewektor;obj2.stezeniewektor]; nowanazwa=[obj.nazwa, '+', obj2.nazwa]; obj.nazwa=nowanazwa; >> pr=probalosowa(10+2*randn(1,100),'proba1'); >> pr2=probalosowa(5+0.5*randn(1,100),'proba2'); >> pr_polaczone=pr+pr2 pr_polaczone = Parametry proby 'proba1+proba2' Liczebnosc: 200 Srednia: 7.44 Odchylenie: 2.86
46 Przeładowanie operatorów dla klasy (3) Chcemy porównać średnie dwóch prób. Przeładujmy operator ==, czyli funkcję eq function [flag,h,p,ci,stats]=eq(obj,obj2) %Funkcja testuje hipoteze o rownosci srednich %Wykorzystuje test t-studenta, alpha = 0.05 [h,p,ci,stats]=ttest(obj.stezeniewektor,obj2.stezeniewektor); flag=not(h); >> pr == pr2 ans = 0 >>[flag,h,p,ci,stats]=pr==pr2; % dostajemy wszystkie parametry wyjsciowe
47 Programowanie zorientowane obiektowo - podsumowanie Poznanie obiektów już istniejących: class(obiekt), properties(obiekt), methods(obiekt) Tworzenie obiektów to proces: (1) analiza problemu, (2) projekt klas, (3) implementacja (4) testowanie. Enkapsulacja rozgraniczenie między działaniem, a korzystaniem z klasy Przeładowanie (przeciążanie) funkcji definiowanie istniejących funkcji, aby działały w sposób szczególny dla nowej klasy
48 Plan wykładów - podsumowanie 1. Wprowadzenie (historia, środowisko programistyczne, podstawowe komy) 2. Skrypty. Instrukcje sterujące. Budowanie funkcji. 3. Optymalizacja obliczeń. Przetwarzanie tekstu. Wizualizacja danych. Praca z plikami. Strukturyzacja danych. 4. Graficzny interfejs użytkownika. 5. Interpolacja oraz obliczenia numeryczne. 6. Rekurencja. Programowanie obiektowe. 7. Kolokwium termin I Kolokwium termin II
49 Co zostało do zrobienia. 1. Przygotować ciekawe projekty. 2. Zaliczyć zajęcia laboratoryjne. 3. Nauczyć się do kolokwium. 4. Zaliczyć wykład. 5. Wypełnić ankiety po zakończeniu kursu (wykład i laboratorium).
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ółowoPodstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 6 Podstawy programowania 2 Temat: Funkcje i procedury rekurencyjne Przygotował: mgr inż. Tomasz Michno Wstęp teoretyczny Rekurencja (inaczej nazywana rekursją, ang. recursion)
Bardziej szczegółowoInformatyka Wykład 2
Informatyka Wykład 2 Plan M-pliki Skrypty Funkcje Skrypty vs funkcje Instrukcje sterujące Instrukcja warunkowa if Instrukcja wyboru switch Pętle: for, while Zmienna liczba argumetnów funkcji. Obsługa błędów.
Bardziej szczegółowoMetody numeryczne Laboratorium 2
Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania
Bardziej szczegółowoPodstawy 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ółowowykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis
i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje
Bardziej szczegółowoTechnologie 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ółowoProgramowanie 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ółowoTechnologie 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ółowoProgramowanie 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ółowoWykł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ółowoALGORYTMY I STRUKTURY DANYCH
KATEDRASYSTEMÓWOBLICZENIOWYCH ALGORYTMY I STRUKTURY DANYCH 1.Rekurencja Rekurencja inaczej rekursja (ang. recursion) to wywołanie z poziomu metody jej samej. Programowanie z wykorzytaniem rekurencji pozwala
Bardziej szczegółowoWstęp do programowania
wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych
Bardziej szczegółowoPodstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 13 Rekurencja 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Rekurencja - pojęcie 2 Rekurencja - pojęcie Rekurencja (rekursja) wywołanie
Bardziej szczegółowoProjektowanie algorytmów rekurencyjnych
C9 Projektowanie algorytmów rekurencyjnych wiczenie 1. Przeanalizowa działanie poniszego algorytmu dla parametru wejciowego n = 4 (rysunek 9.1): n i i
Bardziej szczegółowoProgramowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to
Bardziej szczegółowoDariusz 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ółowoProgramowanie 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ółowoRekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)
Bardziej szczegółowoWyjątki (exceptions)
Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.
Bardziej szczegółowoProgramowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Bardziej szczegółowoMetody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
Bardziej szczegółowoProgramowanie 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ółowoWykł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ółowoOracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -
Bardziej szczegółowoZad. 3: Układ równań liniowych
1 Cel ćwiczenia Zad. 3: Układ równań liniowych Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich
Bardziej szczegółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoLaboratorium 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ółowoPodstawy 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ółowoMETODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH
METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 9 WYRAŻENIA LOGICZNE, INSTRUKCJE WARUNKOWE I INSTRUKCJE ITERACYJNE W PROGRAMIE KOMPUTEROWYM MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR
Bardziej szczegółowoRozdział 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ółowoMateriał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ółowoXQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery
http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje
Bardziej szczegółowoWykład 5: Więcej o Klasach i Metodach
Wykład 5: Więcej o Klasach i Metodach Przeciążanie Metod Klasa posiada dwie lub więcej metod o tej samej nazwie ale różnych deklaracjach parametrów. Java używa liczby i typów argumentów by ustalić którą
Bardziej szczegółowoTechniki 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ółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoLaboratorium nr 1. i 2.
Laboratorium nr 1. i 2. Celem laboratorium jest zapoznanie się ze zintegrowanym środowiskiem programistycznym, na przykładzie podstawowych aplikacji z obsługą standardowego wejścia wyjścia, podstawowych
Bardziej szczegółowodo MATLABa programowanie WYKŁAD Piotr Ciskowski
Wprowadzenie do MATLABa programowanie WYKŁAD Piotr Ciskowski instrukcje sterujące instrukcja warunkowa: if instrukcja wyboru: switch instrukcje iteracyjne: for, while instrukcje przerwania: continue, break,
Bardziej szczegółowoInformatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy
Informatyka wprowadze do algorytmów (II) dr hab. inż. Mikołaj Morzy plan wykładu cechy algorytmów sposoby zapisu algorytmów klasyfikacja algorytmów przykłady algorytmów sumowa przeszukiwa ciągu liczb sortowa
Bardziej szczegółowoPraktyka Programowania
Praktyka Programowania Dariusz Dereniowski Materiały udostępnione przez Adriana Kosowskiego Katedra Algorytmów i Modelowania Systemów Politechnika Gdańska deren@eti.pg.gda.pl Gdańsk, 2010 strona przedmiotu:
Bardziej szczegółowoREKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał
REKURENCJA W JĘZYKU HASKELL Autor: Walczak Michał CZYM JEST REKURENCJA? Rekurencja zwana rekursją, polega na wywołaniu przez funkcję samej siebie. Algorytmy rekurencyjne zastępują w pewnym sensie iteracje.
Bardziej szczegółowoProf. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com
Programowanie wykład dla I roku bioinformatyki semestr letni 2013 Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel. 58 523 2466 e-mail: danuta.makowiec at gmail.com Cel bloku
Bardziej szczegółowoProjektowanie aplikacji internetowych laboratorium
Projektowanie aplikacji internetowych laboratorium Programowanie w języku Java Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 7 (zrzuty ekranów pochodzą z wersji
Bardziej szczegółowoTEMAT : 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ółowoWykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz
Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty
Bardziej szczegółowoTablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1
Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).
Bardziej szczegółowoProgramowanie w Scilab
5 styczeń, 2006 Programowanie w Scilab Slajd 1 Programowanie w Scilab 5 styczeń, 2006 Programowanie w Scilab Slajd 2 Plan zajęć Wprowadzenie -operatory porównawcze: Pętle Przerywanie pętli Warunki Definiowanie
Bardziej szczegółowoZad. 5: Układ równań liniowych liczb zespolonych
Zad. 5: Układ równań liniowych liczb zespolonych 1 Cel ćwiczenia Wykształcenie zdolności abstrahowania operacji arytmetycznych od konkretnych typów. Unaocznienie problemów związanych z programowaniem uogólnionym
Bardziej szczegółowoKurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/
Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i
Bardziej szczegółowoJęzyk C++ wykład VIII
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,
Bardziej szczegółowoSzablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Bardziej szczegółowoProgramowanie Obiektowe Ćwiczenie 4
Programowanie Obiektowe Ćwiczenie 4 1. Zakres ćwiczenia wyjątki kompozycja 2. Zagadnienia Założeniem, od którego nie należy odbiegać, jest by każdy napotkany problem (np. zatrzymanie wykonywanej metody)
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Rekurencja, metoda dziel i zwyciężaj Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. VIII Jesień 2014 1 / 27 Rekurencja Recursion See Recursion. P. Daniluk(Wydział
Bardziej szczegółowoWprowadzenie do programowania obiektowego
Wprowadzenie do programowania obiektowego OOP - Object-Oriented Programming Z. Rudnicki Tradycyjne programowanie strukturalne Zalety: Sekwencyjne wykonywanie poleceń ułatwia tworzenie i sprawdzanie algorytmów
Bardziej szczegółowoMetody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Bardziej szczegółowoMechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Bardziej szczegółowoInformatyka. Wykład 4. Witold Dyrka 2/04/2012
Informatyka Wykład 4 Witold Dyrka witold.dyrka@pwr.wroc.pl 2/04/2012 Uwaga! Bardzo ważną częścią tego wykładu jest zapis wideo jak to zrobić? (przy użyciu programów: CamStudio, VideoDub, AVI ReComp) Znajdziesz
Bardziej szczegółowoWprowadzenie do programowania
do programowania ITA-104 Wersja 1 Warszawa, Wrzesień 2009 ITA-104 do programowania Informacje o kursie Zakres tematyczny kursu Opis kursu Kurs przeznaczony jest do prowadzenia przedmiotu do programowania
Bardziej szczegółowoZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia
ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych
Bardziej szczegółowoSkrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać
MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty
Bardziej szczegółowoMyś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ółowoEnkapsulacja, 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ółowoListy powiązane zorientowane obiektowo
Listy powiązane zorientowane obiektowo Aby zilustrować potęgę polimorfizmu, przeanalizujmy zorientowaną obiektowo listę powiązaną. Jak zapewne wiesz, lista powiązana jest strukturą danych, zaprojektowaną
Bardziej szczegółowoPodstawy Języka Java
Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących
Bardziej szczegółowoSPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD
Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości
Bardziej szczegółowoWykład 8. Rekurencja. Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. L. Peter Deutsch
Wykład 8 Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. Smok podsuszony zmok (patrz: Zmok). Zmok zmoczony smok (patrz: Smok). L. Peter Deutsch Stanisław Lem Wizja lokalna J. Cichoń, P. Kobylański
Bardziej szczegółowoPHP: bloki kodu, tablice, obiekty i formularze
1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
Bardziej szczegółowoAnaliza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Bardziej szczegółowoInformacje 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ółowoKonstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
Bardziej szczegółowoZasady programowania Dokumentacja
Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika
Bardziej szczegółowoPHP 5 język obiektowy
PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje
Bardziej szczegółowo2. 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ółowoKonstruktor destruktor Programowanie obiektowe
Konstruktor destruktor Programowanie obiektowe Klasa w osobnym pliku Pracując w scalonym środowisku programistycznym mamy okno z nazwami wszystkich swoich klas ustawionych alfabetycznie Tworząc klasę w
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych Funkcje i procedury Zasięg zmiennych Rekurencja Witold Marańda maranda@dmcs.p.lodz.pl 1 Modularyzacja programu Algorytmy strukturalne moŝna redukować, zastępując złoŝone fragmenty
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Bardziej szczegółowoPodczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.
Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.
Bardziej szczegółowoProgramowanie, część I
11 marca 2010 Kontakt Wstęp Informacje organizacyjne Materiał na ćwiczenia Plan wykładu http://www.fuw.edu.pl/~rwys/prog rwys@fuw.edu.pl tel. 22 55 32 263 Materiał na ćwiczenia Informacje organizacyjne
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i
Bardziej szczegółowoFunkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology
Funkcje Piotr Zierhoffer Institute of Computer Science Poznań University of Technology 7 października 2012 Funkcje Funkcja podprogram. Nazwany blok kodu realizujacy jakieś zadanie. sin(x), arccos(x), min(a,
Bardziej szczegółowoLaboratorium 7 Blog: dodawanie i edycja wpisów
Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą
Bardziej szczegółowoDiagram 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ółowoWYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński
WYKŁAD 8 Funkcje i algorytmy rekurencyjne Proste przykłady Programy: c3_1.c..., c3_6.c Tomasz Zieliński METODY REKURENCYJNE (1) - program c3_1 ======================================================================================================
Bardziej szczegółowoProgramowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 6 Katarzyna Grzelak kwiecień 2019 K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40 STL - powtórzenie STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki:
Bardziej szczegółowoWstęp do programowania. Wykład 1
Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.
Bardziej szczegółowoBash - wprowadzenie. Bash - wprowadzenie 1/39
Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:
Bardziej szczegółowoMechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Bardziej szczegółowoParadygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów
Bardziej szczegółowoPodstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.
Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using
Bardziej szczegółowoKrzysztof Kadowski. PL-E3579, PL-EA0312,
Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 7 - wprowadzenie do metod mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 27 listopada 2017 1 / 15 mgr inż. Krzysztof Szwarc Podstawy i języki
Bardziej szczegółowoTypy 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ółowoPisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.
MATLAB Co to jest? program komputerowy będący interaktywnym środowiskiem do wykonywania obliczeń naukowych i inżynierskich oraz do tworzenia symulacji komputerowych. Nazwa Nazwa programu pochodzi od angielskich
Bardziej szczegółowoElektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Niestacjonarne (stacjonarne / niestacjonarne)
Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Informatyka 2 Nazwa modułu w języku angielskim Computer science 2 Obowiązuje
Bardziej szczegółowo