Organizacja kursu, paradygmaty, ogólnie o C i C++

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

Download "Organizacja kursu, paradygmaty, ogólnie o C i C++"

Transkrypt

1 Organizacja kursu, paradygmaty, ogólnie o C i C++ Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechniki Wrocławskiej Kurs: Copyright c 2015 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania obiektowego. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych prywatnych potrzeb i może on być kopiowany wyłącznie w całości, razem z niniejszą stroną tytułową. Organizacja kursu, paradygmaty, ogólnie o C i C++

2 Niniejsza prezentacja została wykonana przy użyciu systemu składu L A TEX oraz stylu beamer, którego autorem jest Till Tantau. Strona domowa projektu Beamer:

3 Moje dane Organizacja kursu Bogdan Kreczmer, dr inż., pok. 307 bud. C-3 Terminy konsultacji: śr. 15:00 17:00 pt. 13:00 15:00 Strona kursu: kreczmer/kpo kreczmer/kpo

4 Spis treści Organizacja kursu 1 Organizacja kursu 2 Podejście obiektowe Języki programowania 3 Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ 4 Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji

5 Warunki udziału i przebieg kursu Warunki udziału w kursie Wykłady i materiały do wykładów Laboratoria

6 Warunki udziału i przebieg kursu Warunki udziału w kursie Wykłady i materiały do wykładów Laboratoria

7 Warunki udziału i przebieg kursu Warunki udziału w kursie Wykłady i materiały do wykładów Laboratoria

8 Warunki zaliczeń Organizacja kursu Kurs kończy się zaliczeniem. Zaliczenie kursu można uzyskać pod warunkiem uzyskania zaliczenia z laboratorium oraz pozytywnej oceny z ekranówki Sposób liczenia oceny z kursu: 10 ( (E L) 2)(E + L) Ocena celująca ekranówka: 5,0; laboratorium: 5,5

9 Warunki zaliczeń Organizacja kursu Kurs kończy się zaliczeniem. Zaliczenie kursu można uzyskać pod warunkiem uzyskania zaliczenia z laboratorium oraz pozytywnej oceny z ekranówki Sposób liczenia oceny z kursu: 10 ( (E L) 2)(E + L) Ocena celująca ekranówka: 5,0; laboratorium: 5,5

10 Warunki zaliczeń Organizacja kursu Kurs kończy się zaliczeniem. Zaliczenie kursu można uzyskać pod warunkiem uzyskania zaliczenia z laboratorium oraz pozytywnej oceny z ekranówki Sposób liczenia oceny z kursu: 10 ( (E L) 2)(E + L) Ocena celująca ekranówka: 5,0; laboratorium: 5,5

11 Literatura Organizacja kursu Literatura podstawowa: S. B. Leppman, Josée Lajoie, B. E. Moo C++ Primer, 2012 Bjarne Stroustrup, Język C++ Kompedium wiedzy, Wydanie IV, Helion, 2014 J. Grębosz, Symfonia C ++ standard J. Grębosz, Pasja C ++

12 Literatura Organizacja kursu Literatura pomocnicza: B. Eckel, Thinking in C++ Nicolai M. Josuttis, C++ Biblioteka standardowa, Podręcznik programisty David Vandevoorde, Nicolai M. Josuttis, C++ szablony Grady Booch, James Rumbaugh, Ivar Jacobson, UML użytkownika przewodnik Michał Śmiałek, Zrozumieć UML 2.0 Metody modelowania obiektowego, HELION 2005 James Martin, James J. Odell, Podstawy metod obiektowych

13 Podejście obiektowe Języki programowania Czym jest? oparte jest na podejściu obiektowym do analizy problemu oraz syntezy i implementacji jego rozwiązania.

14 Podejście obiektowe Języki programowania Czym jest? oparte jest na podejściu obiektowym do analizy problemu oraz syntezy i implementacji jego rozwiązania. Podejście obiektowe bazuje na fundamentalnej cesze aktywności intelektualnej, która pozwala ludziom (i nie tylko) wyróżniać odrębne obiekty w swoim otoczeniu, przypisywać im własności oraz określać sposób ich interakcji między sobą i otoczeniem.

15 Języki programowania obiektowego Podejście obiektowe Języki programowania To co cechuje jezyki programowania obiektowego (języki obiektowe), to to że wspomagają i wymuszają stosowanie metod podejścia obiektowego. Najistotniejszą cechą podejścia obiektowego jest integracja struktur danych i kodu, który odwołuje się do tych struktur. Ten rodzaj integracji ma formę obiektów. Typy struktur danych zintegrowanych w ten sposób z kodem nazywane są klasami.

16 Języki programowania obiektowego Podejście obiektowe Języki programowania To co cechuje jezyki programowania obiektowego (języki obiektowe), to to że wspomagają i wymuszają stosowanie metod podejścia obiektowego. Najistotniejszą cechą podejścia obiektowego jest integracja struktur danych i kodu, który odwołuje się do tych struktur. Ten rodzaj integracji ma formę obiektów. Typy struktur danych zintegrowanych w ten sposób z kodem nazywane są klasami.

17 Języki programowania obiektowego Podejście obiektowe Języki programowania To co cechuje jezyki programowania obiektowego (języki obiektowe), to to że wspomagają i wymuszają stosowanie metod podejścia obiektowego. Najistotniejszą cechą podejścia obiektowego jest integracja struktur danych i kodu, który odwołuje się do tych struktur. Ten rodzaj integracji ma formę obiektów. Typy struktur danych zintegrowanych w ten sposób z kodem nazywane są klasami.

18 Warto wiedzieć Organizacja kursu Podejście obiektowe Języki programowania Ogólna koncepcja podejścia obiektowego do programowania powstała na przełomie lat 50-tych i 60-tych w MIT. W bardziej formalnej postaci koncepcje te zostały wprowadzone w języku Simula 67 w latach 60-tych.

19 Języki obiektowe Organizacja kursu Podejście obiektowe Języki programowania Przykłady języków obiektowych: Smalltalk Ruby

20 C++ Organizacja kursu Podejście obiektowe Języki programowania Język C++ nie jest językiem obiektowym!

21 Od koncepcji do paradygmatu Podejście obiektowe Języki programowania Podejście obiektowe do programowania wyznacza sposób patrzenia na struktury danych i przepływ sterowania w programie oraz wykonywanie całego programu. Wprowadza ono pewien zbiór pojęć i koncepcji, który determinuje sposób rozumienia procesu programowania.

22 Od koncepcji do paradygmatu Podejście obiektowe Języki programowania Podejście obiektowe do programowania wyznacza sposób patrzenia na struktury danych i przepływ sterowania w programie oraz wykonywanie całego programu. Wprowadza ono pewien zbiór pojęć i koncepcji, który determinuje sposób rozumienia procesu programowania. Ten zbiór pojęć i koncepcji odnoszący się do programowania określany jest mianem paradygmatu programowania.

23 Podejście obiektowe Języki programowania Przykładowe paradygmaty programowania Programowanie proceduralne Programowanie strukturalne Programowanie modularne Programowanie imperatywne Programowanie uogólnione Programowanie sterowane zdarzeniami

24 Podejście obiektowe Języki programowania Przykładowe paradygmaty programowania Programowanie proceduralne zaleca dzielenie programu na procedury i nie wykorzystywanie zmiennych globalnych. Programowanie strukturalne Programowanie modularne Programowanie imperatywne Programowanie uogólnione Programowanie sterowane zdarzeniami

25 Podejście obiektowe Języki programowania Przykładowe paradygmaty programowania Programowanie proceduralne Programowanie strukturalne wywoływanie procedur powinno tworzyć hierarchiczną strukturę z wykorzystanie instrukcji warunkowych i pętli. Zakazuje się używania instrukcji goto. Programowanie modularne Programowanie imperatywne Programowanie uogólnione Programowanie sterowane zdarzeniami

26 Podejście obiektowe Języki programowania Przykładowe paradygmaty programowania Programowanie proceduralne Programowanie strukturalne Programowanie modularne zaleca stosowanie modułów grupujących zbiory procedur. Programowanie imperatywne Programowanie uogólnione Programowanie sterowane zdarzeniami

27 Podejście obiektowe Języki programowania Przykładowe paradygmaty programowania Programowanie proceduralne Programowanie strukturalne Programowanie modularne Programowanie imperatywne opisuje proces wykonywania programu jako sekwencję instrukcji zmieniających stan programu. Programowanie uogólnione Programowanie sterowane zdarzeniami

28 Podejście obiektowe Języki programowania Przykładowe paradygmaty programowania Programowanie proceduralne Programowanie strukturalne Programowanie modularne Programowanie imperatywne definiuje program jak zbiór obiektów. Ich istotą jest łączenie stanu i zachowania. Program to zbiór obiektów komunikujących się między sobą w celu wykonania zadania. Programowanie uogólnione Programowanie sterowane zdarzeniami

29 Podejście obiektowe Języki programowania Przykładowe paradygmaty programowania Programowanie proceduralne Programowanie strukturalne Programowanie modularne Programowanie imperatywne Programowanie uogólnione kładzie nacisk na ogólną konstrukcję algorytmu bez konieczności znajomości typów danych, np. sortowanie. Programowanie sterowane zdarzeniami

30 Podejście obiektowe Języki programowania Przykładowe paradygmaty programowania Programowanie proceduralne Programowanie strukturalne Programowanie modularne Programowanie imperatywne Programowanie uogólnione Programowanie sterowane zdarzeniami opis programu uwypuklający przekazywanie sterowania między poszczególnymi modułami. Odnosi się on przede wszystkim do środowisk wieloprocesorowych. Jednak nie tylko. Przykładem są okienkowe systememy graficzne, np. system X-Window.

31 Języki programowania Podejście obiektowe Języki programowania Języki programowania mogą wspierać jednocześnie wiele paradygmatów programowania. Czyste języki obiektowe wspierają zasadniczo tylko paradygmat programowania obiektowego.

32 Języki programowania Podejście obiektowe Języki programowania Języki programowania mogą wspierać jednocześnie wiele paradygmatów programowania. Czyste języki obiektowe wspierają zasadniczo tylko paradygmat programowania obiektowego.

33 C++ Organizacja kursu Podejście obiektowe Języki programowania Język C++ jest językiem hybrydowym!

34 Po co to wszystko? Podejście obiektowe Języki programowania Dlaczego powstają nowe języki?

35 Podejście obiektowe Języki programowania Przestrzenie rozwiązania i przestrzenie problemu

36 Podejście obiektowe Języki programowania Przestrzenie rozwiązania i przestrzenie problemu

37 Podejście obiektowe Języki programowania Przestrzenie rozwiązania i przestrzenie problemu

38 Podejście obiektowe Języki programowania Przestrzenie rozwiązania i przestrzenie problemu

39 Podejście obiektowe Języki programowania Przestrzenie rozwiązania i przestrzenie problemu

40 Podejście obiektowe Języki programowania Przestrzenie rozwiązania i przestrzenie problemu

41 Podejście obiektowe Języki programowania Przestrzenie rozwiązania i przestrzenie problemu

42 Podejście obiektowe Języki programowania Co się dzieje, gdy zabraknie zgodności Terminarz Mars Climate Orbiter Data startu: 11 grudnia 1998 Osiągnięcie celu: wrzesień Cel misji Badanie klimatu Marsa jego atmosfery i zmian na powierzchni. Miał również służyć jako satelita komunikacyjny na potrzeby programu Mars Surveyor 98 oraz Mars Polar Lander. Sonda Mars Climate Orbiter za bardzo zbliżyła się do Marsa i weszła w górne warstwy jego atmosfery, co skutkowało jej zniszczeniem. Bezpośrednią przyczyną okazało się przyjęcie złych jednostek. Oprogramowanie komputera pokładowego generowało dane w jednostkach imperialnych zamiast w jednostkach SI. To, że mają to być jednostki SI było uzgodnione w kontrakcie między NASA i firmą Lockheed producentem sondy.

43 Zastanówmy się... Podejście obiektowe Języki programowania Czy C++ jest lepszym językiem niż C?

44 Podejście obiektowe Języki programowania Przestrzeń rozwiązana i przestrzeń problemu

45 Podejście obiektowe Języki programowania Przestrzeń rozwiązana i przestrzeń problemu

46 Podejście obiektowe Języki programowania Przestrzeń rozwiązana i przestrzeń problemu

47 Podejście obiektowe Języki programowania Przestrzeń rozwiązana i przestrzeń problemu

48 Podejście obiektowe Języki programowania Przestrzeń rozwiązana i przestrzeń problemu

49 Konkluzja Organizacja kursu Podejście obiektowe Języki programowania Ani język C ani też C++ nie jest ani generalnie gorszy ani też generalnie lepszy. Ocena języka zależy od problemu, dla którego chcemy stworzyć model implementacji rozwiązania (program komputerowy). Dopiero w tym kontekście można uzasadniać wybór języka programowania. Dotyczy to również wszystkich innych języków programowania.

50 C++ nie jest nadzbiorem C Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ Deklaracja stałych. Zachowanie zgodności wymaga jawnego dowiązania. ANSI C: const int Zm=23; extern const int Zm=23; ANSI/ISO C++: const int Zm=23; static const int Zm=23; Rozmiary stałych znakowych: ANSI C: sizeof ( a ) sizeof (int) ANSI/ISO C++: sizeof ( a ) sizeof (char) Niezadeklarowane funkcje: ANSI C: przyjmowane jest automatycznie int fun(int,...). ANSI/ISO C++: jest to niedopuszczalne. Deklaracja extern int fun(): ANSI C: równoważna extern int fun(...). ANSI/ISO C++: extern int fun(void).

51 C++ nie jest nadzbiorem C Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ Deklaracja stałych. Zachowanie zgodności wymaga jawnego dowiązania. ANSI C: const int Zm=23; extern const int Zm=23; ANSI/ISO C++: const int Zm=23; static const int Zm=23; Rozmiary stałych znakowych: ANSI C: sizeof ( a ) sizeof (int) ANSI/ISO C++: sizeof ( a ) sizeof (char) Niezadeklarowane funkcje: ANSI C: przyjmowane jest automatycznie int fun(int,...). ANSI/ISO C++: jest to niedopuszczalne. Deklaracja extern int fun(): ANSI C: równoważna extern int fun(...). ANSI/ISO C++: extern int fun(void).

52 C++ nie jest nadzbiorem C Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ Deklaracja stałych. Zachowanie zgodności wymaga jawnego dowiązania. ANSI C: const int Zm=23; extern const int Zm=23; ANSI/ISO C++: const int Zm=23; static const int Zm=23; Rozmiary stałych znakowych: ANSI C: sizeof ( a ) sizeof (int) ANSI/ISO C++: sizeof ( a ) sizeof (char) Niezadeklarowane funkcje: ANSI C: przyjmowane jest automatycznie int fun(int,...). ANSI/ISO C++: jest to niedopuszczalne. Deklaracja extern int fun(): ANSI C: równoważna extern int fun(...). ANSI/ISO C++: extern int fun(void).

53 C++ nie jest nadzbiorem C Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ Deklaracja stałych. Zachowanie zgodności wymaga jawnego dowiązania. ANSI C: const int Zm=23; extern const int Zm=23; ANSI/ISO C++: const int Zm=23; static const int Zm=23; Rozmiary stałych znakowych: ANSI C: sizeof ( a ) sizeof (int) ANSI/ISO C++: sizeof ( a ) sizeof (char) Niezadeklarowane funkcje: ANSI C: przyjmowane jest automatycznie int fun(int,...). ANSI/ISO C++: jest to niedopuszczalne. Deklaracja extern int fun(): ANSI C: równoważna extern int fun(...). ANSI/ISO C++: extern int fun(void).

54 Wyświetlenie prostego komunikatu Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ Język C #include <stdio.h> Język C++ #include <iostream> int main( ) printf( Hejka!!!\n ); return 0; int main( ) std::cout << Hejka!!!\n ; Funkcja main w języku C++ domyślnie zwraca wartość 0. Operacje wyjścia są realizowane na obiekcie cout z wykorzystaniem przeciążenia operatora lewostronnego przesunięcia bitowego <<

55 Wyświetlenie prostego komunikatu Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ Język C #include <stdio.h> Język C++ #include <iostream> int main( ) printf( Hejka!!!\n ); return 0; int main( ) std::cout << Hejka!!! << std::endl; Funkcja main w języku C++ domyślnie zwraca wartość 0. Operacje wyjścia są realizowane na obiekcie cout z wykorzystaniem przeciążenia operatora lewostronnego przesunięcia bitowego <<

56 Wyświetlenie prostego komunikatu Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ Język C #include <stdio.h> int main( ) printf( Hejka!!!\n ); return 0; Język C++ #include <iostream> using namespace std; int main( ) cout << Hejka!!! << endl; Użycie dyrektyw using namespace pozwala pominąć przedrostek przestrzeni nazw std

57 Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ Odpowiedniość plików nagłówkowych dla C i C++ <math.h> <stdio.h> <ctype.h> <stdlib.h> <string.h>

58 Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ Odpowiedniość plików nagłówkowych dla C i C++ <math.h> <cmath> <stdio.h> <ctype.h> <stdlib.h> <string.h>

59 Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ Odpowiedniość plików nagłówkowych dla C i C++ <math.h> <cmath> <stdio.h> <cstdio> <ctype.h> <cctype> <stdlib.h> <cstdlib> <string.h> <cstring>

60 Rozszerzenia plików C++ Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++ Nie ma jednej ustalonej konwencji....

61 Rozszerzenia plików C++ Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++.H.C Najczęściej spotykane są:...

62 Rozszerzenia plików C++ Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++.H.C.hh.cc Najczęściej spotykane są:..

63 Rozszerzenia plików C++ Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++.H.C.hh.cc.hpp.cpp Najczęściej spotykane są:.

64 Rozszerzenia plików C++ Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++.H.C.hh.cc.hpp.cpp.hxx.cxx Najczęściej spotykane są:

65 Rozszerzenia plików C++ Kilka przykładowych różnic Różnice w zapisie podstawowych elementów programu Pliki nagłówkowe funkcji z języka C Konwencje nazw plików źródłowych dla języka C++.H.C.hh.cc.hpp.cpp.hxx.cxx Można również stosować konwencje mieszane.

66 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol Dodaj( Symbol y, Symbol x )??? int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a...

67 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol Dodaj( Symbol y, Symbol x )??? int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b =?...

68 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol Dodaj( Symbol y, Symbol x )??? int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b =?..

69 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol Dodaj( Symbol y, Symbol x )??? int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b =?.

70 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol Dodaj( Symbol y, Symbol x )??? int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e

71 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol Dodaj( Symbol y, Symbol x )??? int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e

72 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol Dodaj( Symbol y, Symbol x )??? int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e

73 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol Dodaj( Symbol y, Symbol x )??? int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e

74 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol Dodaj( Symbol y, Symbol x )??? int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e

75 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol Dodaj( Symbol y, Symbol x )??? int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e

76 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol Dodaj( Symbol y, Symbol x ) return TabliczkaDzialania[y][x]; int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e

77 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol operator + ( Symbol y, Symbol x ) return TabliczkaDzialania[y][x]; int main( ) Symbol wynik =???(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e

78 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol operator + ( Symbol y, Symbol x ) return TabliczkaDzialania[y][x]; int main( ) Symbol y = a, x = b, wynik; wynik = operator + (y, x); Tabliczka działania + e a b e e a b a a b e b b e a a + b = e

79 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol operator + ( Symbol y, Symbol x ) return TabliczkaDzialania[y][x]; int main( ) Symbol wynik = y + x; y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e

80 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol operator + ( Symbol y, Symbol x ) return TabliczkaDzialania[y][x]; Czy są jakieś ograniczenia na int main( ) Symbol wynik = y + x; definiowanie funkcji operatorowych? y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e

81 Arytmetyka symboli Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ; Symbol TabliczkaDzialania[3][3] = e, a, b, a, b, e, b, e, a ; Symbol operator + ( Symbol y, Symbol x ) return TabliczkaDzialania[y][x]; Tabliczka działania Nie możemy definiować funkcji operatorowych. gdy ich wszystkie parametry są typów wbudowanych takich jak float, int, itd. np. + e a b int int main( operator ) + (int arg1, float arg2) e e a b a a b e Symbol y = a, x = b, wynik;... b b e a wynik = y + x; a + b = e Dla tych typów definicje tych operacji są już wbudowane w kompilator.

82 To samo na kilka sposobów Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e...

83 To samo na kilka sposobów Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol wynik = Dodaj(y, x); y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e...

84 To samo na kilka sposobów Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; wynik = Dodaj(y, x); wynik = operator+ (y, x); Tabliczka działania + e a b e e a b a a b e b b e a a + b = e..

85 To samo na kilka sposobów Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; wynik = Dodaj(y, x); wynik = operator+ (y, x); wynik = y + x; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e.

86 To samo na kilka sposobów Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; wynik = Dodaj(y, x); wynik = operator+ (y, x); wynik = y + x; Tabliczka działania + e a b e e a b a a b e b b e a a + b = e.

87 Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji Łączność działania porządek wykonywania operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b + a =?...

88 Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji Łączność działania porządek wykonywania operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol wynik = y + x + y; y = a, x = b, wynik; Tabliczka działania + e a b e e a b a a b e b b e a a + b + a =?...

89 Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji Łączność działania porządek wykonywania operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; wynik = (y + x) + y; Tabliczka działania + e a b e e a b a a b e b b e a a + b + a =?..

90 Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji Łączność działania porządek wykonywania operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; wynik = (y + x) + y; wynik = operator+ (operator+ (y,x), y ); Tabliczka działania + e a b e e a b a a b e b b e a a + b + a =?.

91 Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji Łączność działania porządek wykonywania operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; wynik = (y + x) + y; wynik = operator+ (operator+ (y,x), y ); wynik = Dodaj(Dodaj(x, y), y); Tabliczka działania + e a b e e a b a a b e b b e a a + b + a =?.

92 Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji Jawna zmiana porządku wykonywanych operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; wynik = y + (x + y); Tabliczka działania + e a b e e a b a a b e b b e a a + (b + a) =?...

93 Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji Jawna zmiana porządku wykonywanych operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; wynik = y + (x + y); wynik = operator+ (y, operator+ (x,y) ); Tabliczka działania + e a b e e a b a a b e b b e a a + (b + a) =?...

94 Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji Jawna zmiana porządku wykonywanych operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; wynik = y + (x + y); wynik = operator+ (y, operator+ (x,y) ); wynik = Dodaj(y, Dodaj(x, y) ); Tabliczka działania + e a b e e a b a a b e b b e a a + (b + a) =?..

95 Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji Jawna zmiana porządku wykonywanych operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; wynik = y + (x + y); wynik = operator+ (y, operator+ (x,y) ); wynik = Dodaj(y, Dodaj(x, y) ); Tabliczka działania + e a b e e a b a a b e b b e a a + (b + a) =?.

96 Operatory jako funkcje Łączność operatorów i porządek wykonywania operacji Jawna zmiana porządku wykonywanych operacji enum Symbol e, a, b ;... Symbol Dodaj( Symbol x, Symbol y ); Symbol operator + ( Symbol x, Symbol y );... int main( ) Symbol y = a, x = b, wynik; wynik = y + (x + y); wynik = operator+ (y, operator+ (x,y) ); wynik = Dodaj(y, Dodaj(x, y) ); Tabliczka działania + e a b e e a b a a b e b b e a a + (b + a) =?.

Podejście obiektowe wprowadzenie

Podejście obiektowe wprowadzenie wprowadzenie Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2013 Bogdan Kreczmer

Bardziej szczegółowo

Bogdan Kreczmer. Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska

Bogdan Kreczmer. Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Podejście obiektowe, przeciążenia operatorów, referencje Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony 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ółowo

Przestrzenie nazw. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Przestrzenie nazw. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania

Bardziej szczegółowo

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 1 O mnie prowadzący wykład i laboratoria: Dariusz Wardowski pokój: 102

Bardziej szczegółowo

Operacje wejścia/wyjścia odsłona pierwsza

Operacje wejścia/wyjścia odsłona pierwsza Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Wprowadzenie do szablonów szablony funkcji

Wprowadzenie do szablonów szablony funkcji Wprowadzenie do szablonów szablony funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do

Bardziej szczegółowo

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest

Bardziej szczegółowo

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.: Program przedmiotu Programowanie (język C++) Wykład 1. Język C a C++. Definiowanie prostych klas. Typy referencyjne. Domyślne wartości argumentów. PrzeciąŜanie funkcji. Konstruktory, destruktory. Definiowanie

Bardziej szczegółowo

Wprowadzenie do szablonów szablony funkcji

Wprowadzenie do szablonów szablony funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Przesłanianie nazw, przestrzenie nazw

Przesłanianie nazw, przestrzenie nazw Przesłanianie nazw, przestrzenie nazw Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania dr Elżbieta Gawrońska gawronska@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 01 1 / 9 Plan wykładu 1 Informacje

Bardziej szczegółowo

Język C++ Różnice między C a C++

Język C++ Różnice między C a C++ Język C++ Różnice między C a C++ Plan wykładu C a C++ Różnice ogólne Typy Deklaracje zmiennych C++ jako rozszerzenie C Domyślne argumenty funkcji Przeciążanie funkcji Referencje Dynamiczny przydział pamięci

Bardziej szczegółowo

Wprowadzenie do UML, przykład użycia kolizja

Wprowadzenie do UML, przykład użycia kolizja Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.: Program przedmiotu Programowanie Obiektowe (język C++) Wykład 1. Definiowanie prostych klas. Przykłady. Przypomnienie: typy referencyjne, domyślne wartości argumentów, przeciąŝanie funkcji. Konstruktory,

Bardziej szczegółowo

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Literatura Języki i paradygmaty programowania Wykład 2 1. C. S. Horstman, G. Cornell, core Java 2 Podstawy, Helion 2003

Bardziej szczegółowo

Diagramy UML, przykład problemu kolizji

Diagramy UML, przykład problemu kolizji Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2015 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Qt sygnały i sloty. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska

Qt sygnały i sloty. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Qt sygnały i sloty Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera

Bardziej szczegółowo

Wprowadzenie do szablonów klas

Wprowadzenie do szablonów 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 2008-2010 Bogdan Kreczmer Niniejszy

Bardziej szczegółowo

Wyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Wyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania

Bardziej szczegółowo

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:

Bardziej szczegółowo

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 O mnie prowadzący wykład: Dariusz Wardowski pokój: A334 dyżur: środa, godz. 10.00 12.00 e-mail: wardd@math.uni.lodz.pl

Bardziej szczegółowo

Wstęp do Programowania 2

Wstęp do Programowania 2 Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 1 Literatura Literatura podstawowa: Prata Stephen. Szkoła programowania. Język C++. Wydanie V. Helion,

Bardziej szczegółowo

Bibliografia 1. B. Stroustrup. Jezyk C++. Wydawnictwo Naukowo-Techniczne, Warszawa,

Bibliografia 1. B. Stroustrup. Jezyk C++. Wydawnictwo Naukowo-Techniczne, Warszawa, Programowanie obiektowe (OOP) Dr. Inż. Hab. Siergiej Fialko, IMK-PK, http://torus.uck.pk.edu.pl/~fialko sfialko@riad.pk.edu.pl Bibliografia 1. B. Stroustrup. Jezyk C++. Wydawnictwo Naukowo-Techniczne,

Bardziej szczegółowo

Pola i metody statyczne

Pola i metody statyczne Pola i metody statyczne Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2009 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++ Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Podstawy algorytmiki i programowania - wykład 4 C-struktury 1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl

Bardziej szczegółowo

Praktyka Programowania

Praktyka 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ółowo

Style programowania - krótki przeglad

Style programowania - krótki przeglad Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Programowanie w C++ Wykład 1 Katarzyna Grzelak 26 luty 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 28 Umiejętność, która otwiera

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

Wstę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ółowo

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Prof. 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ółowo

Funkcja (podprogram) void

Funkcja (podprogram) void Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Wykład 1

Wykład 1 Wstęp do programowania 1 Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświęcony językowi C i jego

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

Języki i paradygmaty programowania

Języki i paradygmaty programowania Języki i paradygmaty programowania WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 Materiały do wykładu

Bardziej szczegółowo

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski

Bardziej szczegółowo

Wyliczanie wyrażenia obiekty tymczasowe

Wyliczanie wyrażenia obiekty tymczasowe Wyliczanie wyrażenia obiekty tymczasowe Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Praca z aplikacją designer

Praca z aplikacją designer Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2014 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe Wstęp do programowania obiektowego Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe 1 PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI W C++ 2 W C++

Bardziej szczegółowo

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej

Bardziej szczegółowo

( wykł. dr Marek Piasecki )

( wykł. dr Marek Piasecki ) INE 1007 Informatyka 1 Język programowania C++ ( wykł. dr Marek Piasecki ) Literatura: dowolny podręcznik do języka C++ (na laboratoriach Borland C++ 3.1) Robert Lafore Jerzy Grębosz Andrzej Zalewski Programowanie

Bardziej szczegółowo

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Historia C++ został zaprojektowany w 1979 przez Bjarne Stroustrupa jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych i

Bardziej szczegółowo

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem. Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -

Bardziej szczegółowo

Języki i metodyka programowania. Wprowadzenie do języka C

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

Bardziej szczegółowo

Języki programowania - podstawy

Języki programowania - podstawy Języki programowania - podstawy Andrzej Dudek Wydział Techniczno Informatyczny W Jeleniej Górze Dudek A. Informatyka przemysłowa tendencje i wyzwania 26.10.2015 1 /24 Algorytm określony sposób rozwiązania

Bardziej szczegółowo

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: Piątek: 14:15-15:30

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk.   tel: Konsultacje: Piątek: 14:15-15:30 Języki Programowania Prowadząca: dr inż. Hanna Zbroszczyk e-mail: hanna.zbroszczyk@pw.edu.pl tel: +48 22 234 58 51 Konsultacje: Piątek: 14:15-15:30 www: http://www.if.pw.edu.pl/~gos/students/jp Politechnika

Bardziej szczegółowo

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Składnia C++ Programowanie Obiektowe Mateusz Cicheński Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Konstruktory i destruktory

Bardziej szczegółowo

Część 4 życie programu

Część 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ółowo

Schemat konstrukcja pliku Makefile

Schemat konstrukcja pliku Makefile Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2008 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES) 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 Programowanie komputerów 2 Nazwa modułu w języku angielskim Computer programming

Bardziej szczegółowo

Zajęcia trwają 15 tygodni (2 godziny wykładu, 2 godziny laboratorium tygodniowo) Zaliczenie zajęć jest uwarunkowane zaliczeniem zajęć laboratoryjnych

Zajęcia trwają 15 tygodni (2 godziny wykładu, 2 godziny laboratorium tygodniowo) Zaliczenie zajęć jest uwarunkowane zaliczeniem zajęć laboratoryjnych Regulamin przedmiotu: Języki Programowania Zajęcia trwają 15 tygodni (2 godziny wykładu, 2 godziny laboratorium tygodniowo) Zaliczenie zajęć jest uwarunkowane zaliczeniem zajęć laboratoryjnych Prowadzący

Bardziej szczegółowo

Podstawy programowania - 1

Podstawy programowania - 1 Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl

Bardziej szczegółowo

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe

Bardziej szczegółowo

Język ludzki kod maszynowy

Ję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ółowo

Zasoby, pliki graficzne

Zasoby, pliki graficzne Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2017 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++ Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Chemia, poziom pierwszy Sylabus modułu: Laboratorium programowania (0310-CH-S1-019) Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Podstawowe 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. 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ółowo

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2) Podstawy programowania (język C) Globalne / Lokalne Wykład 15. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Zmienne globalne / lokalne (1) int A, *Q; // definicja zmiennych globalnych

Bardziej szczegółowo

Hermetyzacja oraz pola i metody statyczne

Hermetyzacja oraz pola i metody statyczne Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2010 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Laboratorium 1 Wprowadzenie, środowisko programistyczne, pierwsze programy 1 CEL ZAJĘĆ LABORATORYJNYCH: Wprowadzenie do programowania w języku C++ oraz

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

Zadanie 2: Arytmetyka symboli

Zadanie 2: Arytmetyka symboli 1 Cel ćwiczenia Zadanie 2: Arytmetyka symboli Wykształcenie umiejętności abstrahowania operacji arytmetycznych. Zapoznanie się i przećwiczenie mechanizmu tworzenia przeciążeń funkcji operatorowych. Utrwalenie

Bardziej szczegółowo

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 12 Struktury, unie, pola bitowe 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Struktury 2 Struktury Struktury to złożone typy danych

Bardziej szczegółowo

Informatyka 2. Informatyka 2. Wykład nr 1 (04.10.2008) Dane podstawowe. - Wydział Elektryczny. Politechnika Białostocka. Program wykładu (1/2)

Informatyka 2. Informatyka 2. Wykład nr 1 (04.10.2008) Dane podstawowe. - Wydział Elektryczny. Politechnika Białostocka. Program wykładu (1/2) Rok akademicki 2008/2009, Wykład nr 1 2/25 Dane podstawowe Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia (zaoczne) Rok akademicki

Bardziej szczegółowo

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO Wstęp do programowania obiektowego Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO 1 Cele przedmiotu Zapoznanie z podstawowymi pojęciami oraz technikami programowania obiektowego na przykładzie

Bardziej szczegółowo

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35 Programowanie w C++ Wykład 3 Katarzyna Grzelak 12 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35 Zakres ważności obiektów K.Grzelak (Wykład 1) Programowanie w C++ 2 / 35 Zakres ważności obiektów

Bardziej szczegółowo

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 5 1 SPECYFIKATOR const Specyfikator (przydomek) const: Umieszczenie przed nazwą zmiennej specyfikatora const w jej definicji informuje kompilator,

Bardziej szczegółowo

Operacje wejścia/wyjścia (odsłona druga) - pliki

Operacje wejścia/wyjścia (odsłona druga) - pliki Operacje wejścia/wyjścia (odsłona druga) - pliki Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.

Bardziej szczegółowo

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009 Informatyka 1 zajęcia nr 1 Elektrotechnika, semestr II rok akademicki 2008/2009 mgr inż.. Paweł Myszkowski Plan dzisiejszych zajęć 1. Organizacja laboratorium przedmiotu 2. Algorytmy i sposoby ich opisu

Bardziej szczegółowo

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;

Bardziej szczegółowo

E5 potrafi zaprojektować i zaimplementować prosty model

E5 potrafi zaprojektować i zaimplementować prosty model Nazwa modułu kształcenia Programowanie 1 Nazwa jednostki prowadzącej moduł Instytut Informatyki, Wydział Matematyki i Informatyki Kod modułu WMI.II. P1-OL Język kształcenia Polski Symbol Efekty kształcenia

Bardziej szczegółowo

Referencje do zmiennych i obiektów

Referencje do zmiennych i obiektów Referencje do zmiennych i obiektów Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Wstęp do programowania

Wstę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ółowo

Przeciążenie (przeładowanie nazw) funkcji

Przeciążenie (przeładowanie nazw) funkcji Przeciążenie (przeładowanie nazw) funkcji dla większości języków (w tym C) zasada w programie może być tylko jedna funkcja o danej nazwie kompilator C++ - dopuszcza więcej niż jedną funkcję o tej samej

Bardziej szczegółowo

Szablon klasy std::vector

Szablon klasy std::vector Szablon klasy std::vector Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja

Bardziej szczegółowo

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje Zbudujemy klasę Definicję klasy zapiszmy w pliku tstring.h #ifndef TSTRING_H #define TSTRING_H #include // w pliku nagłówkowym NIE // otwieramy przestrzeni std // interfejs private: // implementacja

Bardziej szczegółowo

Konstruktor kopiujacy

Konstruktor kopiujacy Konstruktor kopiujacy Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego. Jest on udostępniony

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

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

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ Podstawy programowania Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ 1 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD Część I Wstęp do struktur danych: Tablice 2

Bardziej szczegółowo

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38 Programowanie w C++ Wykład 1 Katarzyna Grzelak 25 luty 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 38 Umiejętność, która otwiera

Bardziej szczegółowo

Programowanie proceduralne w języku C++ Funkcje

Programowanie proceduralne w języku C++ Funkcje Programowanie proceduralne w języku C++ Funkcje Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ INE 2022 JĘZYKI PROGRAMOWANIA 1 INE 0050 WSTĘP DO PROGRAMOWANIA Programowanie w języku C++ ( wykł. dr Marek Piasecki ) Literatura: do wykładu dowolny podręcznik do języka C++ na laboratoriach Borland C++

Bardziej szczegółowo

tablica: dane_liczbowe

tablica: dane_liczbowe TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Typ znakowy Typ znakowy Typ wyliczeniowy # include

Bardziej szczegółowo

Podstawy Programowania. Wykład 1

Podstawy Programowania. Wykład 1 Podstawy Programowania Wykład 1 Jak się uczyć programowania? Wykład i laboratorium Literatura Jerzy Grębosz Symfonia C++ Bjarne Stroustrup Język C++ Bruce Eckel Thinking in C++ Tony L. Hansen C++ zadania

Bardziej szczegółowo