18. února 2015, Brno Připravil: David Procházka. Programovací jazyk C++
|
|
- Marcel Bárta
- před 8 lety
- Počet zobrazení:
Transkript
1 18. února 2015, Brno Připravil: David Procházka Základy programování v C++ Programovací jazyk C++
2 Historie C++: od Fortranu po C++11 Strana 2 / 53 Obsah přednášky 1 Historie C++: od Fortranu po C Připomenutí základů OOP v C++ 3 Překlad aplikace 4 Proměnné a práce s nimi 5 Štábní kultura 6 Const 7 Static 8 Override a final 9 Oddechnutí
3 Historie C++: od Fortranu po C++11 Strana 3 / 53 Trocha historie nikoho nezabije... Na počátku bylo slovo, to slovo bylo... Fortran Lze ho považovat za jeden z prvních programovacích jazyků současného typu. Dodnes je jeho nová verze používána pro programování různých matematických úloh. Jazyků postupně přibývalo... Simula, Cobol, LISP, Prolog, Smalltalk, C... Fortran inspiroval Algol, Algol CPL, CPL BPL, BCPL, BCPL B, B C
4 Historie C++: od Fortranu po C++11 Strana 4 / 53 Jazyk C Nízkoúrovňový jazyk. Systémový jazyk. Operační systémy, překladače, drivery. Rozsáhlé možnosti díky knihovnám. Nižší efektivita vývoje vyvážená rychlým a elegantním kódem a velkými možnostmi. Implementace OOP podle Smalltalku Objective C.
5 Historie C++: od Fortranu po C++11 Strana 5 / 53 Jazyk C++ Od základu zaměřen na OOP. Rychlejší vývoj aplikací oproti C. Spousta IDE Code::Blocks, Microsoft Visual Studio, Eclipse, Qt Creator, XCode (MacOS X)... a překladačů GCC, LLVM, IBM, Ms Vzor pro další OO jazyky Java, C#.
6 Historie C++: od Fortranu po C++11 Strana 6 / 53 Historie C/C Ritchie, Thomson (pro OS Unix) 1978 specifikace Ritchie, Kerninghan 1984 první standardizace ANSI C 1990 definitivní standardizace ANSI C 1980 C with Classes (první pokus o budoucí C++) 1983 C , 2003 standardizace ANSI/ISO C standardizace C++11 (dříve C++0x)
7 Historie C++: od Fortranu po C++11 Strana 7 / 53 C++11 Kompatibilita s C++98, tenký základ rozšířený zejména prostřednictvím STL, důraz na výkon a přímou práci s hadwarem, zlepšení vícevláknového a generického programování, doplněny požadované vlastnosti konkurence: rozsahové for cykly, podpora UTF-8/16/32... nové elegantní konstrukce: lambda výrazy, regulární výrazy, silně typové výčty, uživatelem definované literály atp.
8 Historie C++: od Fortranu po C++11 Strana 8 / 53 Je už C++ ideální volbou? NE Ideální univerzální jazyk neexistuje. Ale Je to stabilní, odladěný jazyk obsahující většinu moderních nástrojů. Je podporovaný prakticky na všech platformách. Ačkoliv je relativně vysokoúrovňový, je rychlý. Nehodí se na všechno např. zpracování textů. Není tak pohodlný mj. silně typový.
9 Připomenutí základů OOP v C++ Strana 9 / 53 Obsah přednášky 1 Historie C++: od Fortranu po C Připomenutí základů OOP v C++ 3 Překlad aplikace 4 Proměnné a práce s nimi 5 Štábní kultura 6 Const 7 Static 8 Override a final 9 Oddechnutí
10 Připomenutí základů OOP v C++ Strana 10 / 53 Připomenutí triviální aplikace 1 class Car { 2 private : // soukroma cast 3 string m_ model ; 4 public : // verejne rozhrani 5 Car ( string model ){ // konstruktor 6 m_ model = model ; 7 } 8 9 string getmodel (){ 10 return m_ model ; 11 } void setmodel ( string model ){ 14 m_ model = model ; 15 } 16 };
11 Připomenutí základů OOP v C++ Strana 11 / 53 Připomenutí triviální aplikace 1 int main ( void ) { 2 // vytvoreni promenne s ukazatelem 3 Car * ford ; 4 5 // vytvoreni objektu a prirazeni uk. 6 ford = new Car (" Fiesta "); 7 8 // volani metody 9 cout << " Model : " << ford -> getmodel (); // smazani objektu na ktery ford ukazuje 12 delete ford ; // predani OS informaci o korektnim konci aplikace 15 return 0; 16 }
12 Připomenutí základů OOP v C++ Strana 12 / 53 Statické a dynamické instance tříd Zásobník (Stack) je oblast využívaná pro volání funkcí, ukládání návratových adres, parametrů funkce a lokálních proměnných. Zásobník je koncipován na ukládání lokálních proměnných, není vhodný pro objemná data. Pro ty je halda (heap). V jazyce C slouží k alokování a uvolňování paměti na haldě funkce malloc(), resp. free(). V C++ jsou zde pak operátory new a delete.
13 Připomenutí základů OOP v C++ Strana 13 / 53 Statické a dynamické instance tříd Následující kód ilustruje vytvoření proměnné ukazatel na zásobníku, která ukazuje na objekt alokovaný na haldě. Objekt lze kdykoliv vytvořit a zrušit. 1 Car * ukazatel ; // vytvor promennou s ukaz. 2 ukazatel = new Car ; // vloz adresu objektu 3 ukazatel - > metoda (); // zavolani metody 4 delete ukazatel ; // smaz objekt za ukazatelem 5 ukazatel = new Car ; // a dosadime opet jiny Následující kód ilustruje vytvoření proměnné objekt na zásobníku, která přímo obsahuje hodnotu objektu. Objekt je lokální proměnnou, tedy zanikne automaticky na konci metody, ale není možné jej explicitně zrušit. 1 Car objekt ; // vytvorime promennou s obj. 2 objekt. metoda (); // opet volame metodu 3 Car objekt2 ( parametr ); // zavolani par. konst.
14 Připomenutí základů OOP v C++ Strana 14 / 53 Štábní kultura Odsazujte tak, aby byla patrná struktura kódu (ale nepřepisujte). Délku řádku udžujte na rozumné velikosti (ale nepřepisujte) Pojmenovávejte jednotným způsobem třídy (Trida, JinaTrida), proměnné (mojeinstance), metody (vypisinformace nebo VypisInformace), atributy (m mujatribut), proměnné třídy (s promtridy), globální proměnné (fuj, ale g pocet) atp. Pište krátké a jasné metody princip Keep It Stupid Simple. Každá entita by měla mít pouze jeden účel.
15 Připomenutí základů OOP v C++ Strana 15 / 53 Prostory jmen Třídy, ale i proměnné a případně další nástroje C++ lze třídit do skupin prostorů jmen. Smyslem je logicky rozčlenit aplikaci a vyhnout se potenciálním duplicitám v označení. Nemá smysl využívat u triviálních aplikací. Využíváme při tvorbě knihoven nebo komplexnějších aplikací. Pro identifikaci jmenného prostoru používáme operátor :: nebo deklaraci using namespace. Existuje implicitní prostor jmen, který nemá jméno. Podle ANSI C++ existuje standardní prostor jmen std, tam patří mnoho nástrojů.
16 Připomenutí základů OOP v C++ Strana 16 / 53 Implicitní a standardní prostory jmen 1 using namespace std ; 2 3 class Foo { }; 6 7 int main ( void ) { 8 Foo * ukazatel = new Foo (); 9 ukazatel -> metoda (); 10 delete ukazatel ; 11 return 0; 12 }
17 Připomenutí základů OOP v C++ Strana 17 / 53 Příklad prostoru jmen 1 namespace JmennyProstor { 2 class Foo { }; 5 } 6 7 class Foo { };
18 Připomenutí základů OOP v C++ Strana 18 / 53 Použití prostoru jmen 1 int main ( void ) { 2 JmennyProstor :: Foo * ukazatel1 3 = new JmennyProstor :: Foo (); 4 ukazatel1 -> metoda (); 5 delete ukazatel1 ; 6 7 Foo * ukazatel2 = new Foo (); 8 ukazatel2 -> metoda (); 9 delete ukazatel2 ; return 0; 12 }
19 Připomenutí základů OOP v C++ Strana 19 / 53 Další použití direktivy using 1 int main ( void ) { 2 // import v ramci metody / funkce 3 using namespace std ; } nebo 1 // import jedineho prikazu 2 using std :: cout ; int main ( void ) { 5...
20 Překlad aplikace Strana 20 / 53 Obsah přednášky 1 Historie C++: od Fortranu po C Připomenutí základů OOP v C++ 3 Překlad aplikace 4 Proměnné a práce s nimi 5 Štábní kultura 6 Const 7 Static 8 Override a final 9 Oddechnutí
21 Překlad aplikace Strana 21 / 53 Překlad 1 preprocesor předzpracovává zdrojový soubor.cc (.cpp) (include, defined). 2 kompilátor překladač provádí překlad zdrojového souboru.obj (.o) relativní strojový kód, adresy proměnných a fcí nejsou známy.lis protokol o překladu 3 linker sestavovací program provede přidělení absolutních adres.exe, spustitelný soubor Je doporučováno kompilovat při vysoké citlivosti kompilátoru (c++ -Wall -pedantic -o program program.cc). Pro překlad C++11 musíte také zvolit knihovnu libc++ (-std=c++0x -stdlib=libc++). V XCode je nalezneme pod nastavením C++ Standard Library a C++ Language Dialect.
22 Překlad aplikace Strana 22 / 53 Překlad více souborů U větších projektů je zvykem rozdělovat kód do více souborů. Obvykle pro každou třídu vytvoříme samostatný hlavičkový (.h) a implementační (.cc) soubor. Hlavní soubor programu (main.cc) vkládá pomocí direktiv include pouze hlavičkové soubory modulů (nikdy implementační soubory). Ty jsou překládány samostatně. c++./main.cc./lev.cc./zirafa.cc -o zookoutek
23 Překlad aplikace Strana 23 / 53 Hlavičkové soubory a jejich podmíněné načtení Hlavičkové soubory vždy obsahují veškeré direktivy include nezbytné pro samostatný překlad modulu (třídy). Implementační soubor (.cc) obsahuje pouze implementace nešablonových metod a jedinou direktivu include, která vloží hlavičkový soubor dané třídy. Hlavičkové soubory jsou často includovány vícekrát. je nutné zabránit jejich vícenásobnému načtení. K tomu slouží definice podmíněného bloku: Pokud blok kódu s tímto jménem nebyl definován, nadefinuj ho. 1 # ifndef _ MEDVED_ H 2 # define _ MEDVED_ H 3 // samotny obsah souboru medved. h 4 # endif
24 Proměnné a práce s nimi Strana 24 / 53 Obsah přednášky 1 Historie C++: od Fortranu po C Připomenutí základů OOP v C++ 3 Překlad aplikace 4 Proměnné a práce s nimi 5 Štábní kultura 6 Const 7 Static 8 Override a final 9 Oddechnutí
25 Proměnné a práce s nimi Strana 25 / 53 Datové typy (část) Základní Celočíselné: int, long int, short int, long long Reálné: float, double, long double Znaky a řetězce: char[16 t 32 t], string. Speciální: void, auto Velikosti typu záleží na dané architektuře. Zjistíme pomocí příkazu sizeof(int) nebo konstant INT MAX INT MIN, aj. Speciální Záznam, union, výčtový typ enumerate, výčtová třída, pole (inicializace int pole[3], resp. int pole[3] = {1,2,3} 1, přístup pole[0]) STL: seznam, fronta, zásobník,... U celočíselných typů existují také neznaménkové varianty unsigned. Číselný rozsah posunut pouze do kladných čísel. 1 možnost vložení objektů { { 1,2,3 },... }
26 Proměnné a práce s nimi Strana 26 / 53 Kontrola rozsahu 1 # include < climits > 2 using namespace std ; int main (){ 5 cout << " int is " << sizeof ( int ) << " B" << endl ; 6 cout << " short : " << sizeof ( short ) << " B" << endl ; 7 cout << " long : " << sizeof ( long ) << "B" << endl ; 8 cout << " Maximum values :" << endl ; 9 cout << " int : " << INT_ MAX << endl ; 10 cout << " short : " << SHRT_ MAX << endl ; 11 cout << " long : " << LONG_ MAX << endl ; 12 cout << " Minimum int value = " << INT_ MIN << endl ; 13 return 0; 14 }
27 Proměnné a práce s nimi Strana 27 / 53 Typy s garantovaným rozsahem (C++11) Znaménkový int o přesné bitové velikosti int8 t, int16 t, int32 t, int64 t uint8 t, uint16 t, uint32 t, uint64 t Rychlá (nativní) implementace int fast8 t, int fast16 t, int fast32 t, int fast64 t uint fast8 t, uint fast16 t, uint fast32 t, uint fast64 t Implementace zabírající nejméně paměti int least8 t, int least16 t, int least32 t, int least64 t uint least8 t, uint least16 t, uint least32 t, uint least64 t
28 Proměnné a práce s nimi Strana 28 / 53 Klíčové slovo auto (C++11) Automaticky se dosadí typ na základě inicializace. Nepoužívat pokud není typ zřejmý! 1 int x = 10; 2 auto y = x; // y je int
29 Proměnné a práce s nimi Strana 29 / 53 Deklarace a inicializace proměnných typ jmeno = inicializacni hodnota 1 int i = 1; // globalni promenna 2 int main ( void ) { 3 int j = 10; // lokalni prom. 4 int & ref = j; // reference na j, nutno hned inic. 5 return 0; 6 } Proměnná by měla mít co nejmenší možnou platnost. Při vytvoření prom. je vždy vhodné ji okamžitě inicializovat.
30 Proměnné a práce s nimi Strana 30 / 53 In-class inicializace proměnných (C++11) Dříve: 1 int var = 7; 2 class X { 3 static const int m1 = 7; // ok 4 const int m2 = 7; // error : not static 5 static int m3 = 7; // error : not const 6 static const int m4 = var ; // error : init. not const 7 static const string m5 = " odd "; // error : not integr 8 }; Nyní inicializace v době překladu: 1 class X { 2 int m_a = 7; 3 };
31 Proměnné a práce s nimi Strana 31 / 53 Konstruktory: inicializace v době překladu In-class inicializace je ekvivalent 1 class A { 2 int m_a ; 3 public : 4 A() : m_a (7) {} 5 }; Tento způsob inicializace atributů je nezbytný pokud atributem je objekt, který nemá bezparametrický konstruktor 1 class Vektor { 2 Bod m_x ; 3 Bod m_y ; 4 public : 5 Bod ( Bod x, Bod y): m_x (x), m_y (y ){...} 6 };
32 Proměnné a práce s nimi Strana 32 / 53 Konstruktory: delegování konstruktorů (C++11) Dříve: 1 class Bod { 2 int m_x ; 3 validate ( int x) { if (0 <x && x <= max ) a=x; else...} 4 public : 5 Bod ( int x) { validate (x); } 6 Bod () { validate (42); } 7 Bod ( string s) { int x= lexical_cast <int >(s); 8 validate (x );} 9 }; Nyní: 1 class Bod { Bod ( int x) { validate (x); }
33 Proměnné a práce s nimi Strana 33 / 53 Příklad metody vracející jednu hodnotu 1 class Vypocet { 2 public : 3 int secti ( int cislo1, int cislo2 ){ 4 return cislo1 + cislo2 ; 5 } 6 }; int x = 12; 10 int y = 45; 11 int a = objekt -> secti (a,b); 12 int b = objekt -> secti (10,12);
34 Proměnné a práce s nimi Strana 34 / 53 Vracení více hodnot Situace se lehce komplikuje, pokud potřebujeme vracet z metody více hodnot. Máme 2 možnosti, jak to realizovat: pomocí ukazatelů (*) nebo refencí (&). Subjektivně jednodužší je: 1 class Vymena { 2 public : 3 void vymen ( int &a, int &b){ 4 int pom = a; 5 a = b; b = pom ; 6 } 7 }; objekt -> vymen (a, b);
35 Proměnné a práce s nimi Strana 35 / 53 Vracení více hodnot varianta * 1 class Vymena { 2 public : 3 void vymen ( Student * a, Student * b){ 4 Student pom = a; 5 a = b; 6 b = pom ; 7 } 8 }; 9 10 int main ( void ){ 11 Student * karel = new Student (" Karel ", 11) 12 Student * pepa = new Student (" Pepa ", 11) 13 objekt -> vymen ( karel, pepa ); Často je doporučováno spojit hodnoty do jedné třídy a vrátit je pomocí return. Např. místo x a y vracet instanci Bod2D s vlastnostmi x a y.
36 Štábní kultura Strana 36 / 53 Obsah přednášky 1 Historie C++: od Fortranu po C Připomenutí základů OOP v C++ 3 Překlad aplikace 4 Proměnné a práce s nimi 5 Štábní kultura 6 Const 7 Static 8 Override a final 9 Oddechnutí
37 Štábní kultura Strana 37 / 53 Štábní kultura parametrů Hodnotou předáváme triviální vestavěné typy. Parametry, které slouží pouze pro vstup by měli být označeny const. Pokud se jedná o ukazatele na prom. je velmi doporučené označit je const. Reference (&) se používá nejen pro vracení hodnoty, ale i z důvodu efektivity. Reference na vstupní proměnnou by měla být vždy const. (nebezpečí modifikace původních dat) Např: void zpracuj(const vector<string>& vec), void udelej(const Velka3DMatice& prvek) Parametry by měly být pokud možno jednoduché typy a třídy.
38 Const Strana 38 / 53 Obsah přednášky 1 Historie C++: od Fortranu po C Připomenutí základů OOP v C++ 3 Překlad aplikace 4 Proměnné a práce s nimi 5 Štábní kultura 6 Const 7 Static 8 Override a final 9 Oddechnutí
39 Const Strana 39 / 53 Konstanty Pokud má mít parametr nebo proměnná stále stejnou hodnotu, použijte klíčové slovo const. Pozor na odkazy: const x* zajistí neměnnost ukazatele nikoli hodnoty. 1 const int kheight = 10; // konstantni lokalni prom. Všimněte si názvu. Bývá zvykem používat předponu k.
40 Const Strana 40 / 53 Konstanty Nepoužívat céčkové #define Má neomezenou platnost a nelze specifikovat typ. Konstanta na úrovni jmenného prostoru: const int kpagesize = 365; Konstanta na úrovni třídy: 1 class Window { 2 static const int s_ kwidth = 400; 3 static const int s_ kheigth ; 4 }; 5 6 const int Window :: s_ kheigth = 300;
41 Const Strana 41 / 53 Další aplikace const const u parametru metody označuje, že pouze vstupní. Pokud píšeme const za metodou, říkáme, že metoda nemění stav objektu. int vrathodonotuatributu() const; V C++ lze vytvořit i konstantní instanci, u které nelze nijak měnit vnitřní stav. U takové instance lze volat pouze metody deklarované s klíčovým slovem const.
42 Const Strana 42 / 53 Constexpr (C++11) constexpr umožňuje definovat, že funkce/metoda atp. se vyhodnocuje v době překladu. Může významně pomoci při optimalizaci kódu. Funkci/metodu ale lze volat i za běhu programu. Tj. není nutné oddělovat řešení pro výpočet v době překladu a v době běhu. 1 constexpr int secti ( int x, int y){ 2 return x+y; 3 } 4 5 // prekladac muze vyraz vyhodnotit pri prekladu 6 const int val = secti (10, 10);
43 Static Strana 43 / 53 Obsah přednášky 1 Historie C++: od Fortranu po C Připomenutí základů OOP v C++ 3 Překlad aplikace 4 Proměnné a práce s nimi 5 Štábní kultura 6 Const 7 Static 8 Override a final 9 Oddechnutí
44 Static Strana 44 / 53 Členské proměnné třídy Veškeré atributy, které jsme doposud používali byli atributy objektů byly unikátní pro jednotlivé objekty. V C++ můžeme definovat i atributy, které náleží přímo třídám členské proměnné. Pro deklaraci atributů třídy používáme static. Lze k nim přistupovat pomocí názvu třídy, :: a názvu proměnné (Třída::proměnná). 1 class Trida { 2 private : 3 static int s_ pocetinstanci ; // nelze napsat = 0; 4 int m_ normaniatribut ; 5...
45 Static Strana 45 / 53 Členské metody Členská metoda (označena static) nemá jako svůj první implicitní parametr this. Je to logické, protože není jasné pro který objekt je volána (není parametr this). V těle metody lze pracovat jen se statickými atributy a metodami třídy. Lze ji také zavolat, aniž by existovala nějaká instance dané třídy. 1 static int vratpocetinstanci () { 2 return pocetinstanci ; 3 }
46 Static Strana 46 / 53 Jiné využití static Je-li static globální proměnná (nebo funkce), je viditelná pouze v daném souboru zdrojového textu (modulu). Je-li static lokální proměnná funkce, potom její hodnota je uchovávána mezi jednotlivým voláním (zaniká při ukončení programu)
47 Override a final Strana 47 / 53 Obsah přednášky 1 Historie C++: od Fortranu po C Připomenutí základů OOP v C++ 3 Překlad aplikace 4 Proměnné a práce s nimi 5 Štábní kultura 6 Const 7 Static 8 Override a final 9 Oddechnutí
48 Override a final Strana 48 / 53 Override (C++11) Explicitní stanovení překrytí virtuální metody. 1 class Father { 2 virtual void A( float age ); 3 virtual void B() const ; 4 virtual void C (); 5 void D (); 6 virtual void E (); 7 }; 8 9 class Son : public Father { 10 virtual void A( int age ) override ; // zmena typu 11 virtual void B() override ; // predkovi const 12 virtual void C() override ; // korekni prekryti 13 void D() override ; // neni v predkovi virt. 14 void E() override ; // korektni prekryti 15 };
49 Override a final Strana 49 / 53 Final (C++11) Klíčovým slovem final označujeme metody nebo třídy, které nesmí být použity pro dědění. 1 class Father { 2 virtual void A() final ; // nelze prekryvat 3 }; 4 5 class Son : public Father { 6 virtual void A (); // chyba prekladace 7 }; V případě třídy nelze vytvářet potomka této třídy. 1 class Father final {}; 2 3 class Son : public Father {}; // chyba prekladace
50 Override a final Strana 50 / 53 struct vs. class struct znamená v praxi téměř přesně totéž, co class. U stuct, pokud není řečeno jinak, jsou složky veřejné. Struktura může být předkem třídy a opačně. 1 struct Trida { }; 4 5 class Trida { 6 public : };
51 Override a final Strana 51 / 53 Výčtová třída (enumerate class) Nahrazuje zastaralé výčtové typy, které hodnoty vnitřně reprezentovaly jako inty. To vedlo na možnost porovnání nesouvisejících hodnot. 1 enum class Color { 2 Red, Blue 3 }; 4 5 enum class Fruit { 6 Banana, Apple 7 }; 8 9 Color a = Color :: Red ; // musime pouzit predponu tridy 10 Fruit b = Fruit :: Banana ; 11 if ( a == b) // zde bude chyba, coz je dobre
52 Oddechnutí Strana 52 / 53 Obsah přednášky 1 Historie C++: od Fortranu po C Připomenutí základů OOP v C++ 3 Překlad aplikace 4 Proměnné a práce s nimi 5 Štábní kultura 6 Const 7 Static 8 Override a final 9 Oddechnutí
53 Oddechnutí Strana 53 / 53 Hello World!
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Programování v C++ 1, 1. cvičení
Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených
Více o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
Generické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
PB161 Programování v jazyce C++ Přednáška 10
.. PB161 Programování v jazyce C++ Přednáška 10 Šablony Nikola Beneš 23. listopadu 2015 PB161 přednáška 10: šablony 23. listopadu 2015 1 / 29 K zamyšlení Jaký je rozdíl mezi new int[10] a new int[10]()?
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Dědění, polymorfismus
Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
PREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
PB161 Programování v jazyce C++ Přednáška 4
PB161 Programování v jazyce C++ Přednáška 4 Přetěžování funkcí Konstruktory a destruktory Nikola Beneš 9. října 2017 PB161 přednáška 4: přetěžování funkcí, konstruktory, destruktory 9. října 2017 1 / 20
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
Jazyk C++, některá rozšíření oproti C
Karel Müller, Josef Vogel (ČVUT FIT) Jazyk C++, některá rozšíření oproti C BI-PA2, 2011, Přednáška 1 1/22 Jazyk C++, některá rozšíření oproti C Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro
Jazyk C++ 1. Blok 3 Objektové typy jazyka C++ Třída. Studijní cíl. Doba nutná k nastudování. Průvodce studiem
Jazyk C++ 1 Blok 3 Objektové typy jazyka C++ Studijní cíl Ve třetím bloku bude představen a rozebrán nejdůležitější objektový typ jazyka C++ a to sice třída. Po absolvování bloku bude student schopen navrhovat
Programování v C++ 3, 3. cvičení
Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016
ZPRO cvičení 2 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 17, 2016 Outline I 1 Outline 2 Proměnné 3 Proměnné - cvičení 4 Funkce 5 Funkce
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
PB161 Programování v jazyce C++ Přednáška 10
PB161 Programování v jazyce C++ Přednáška 10 Šablony Nikola Beneš 27. listopadu 2017 PB161 přednáška 10: šablony 27. listopadu 2017 1 / 33 Šablony PB161 přednáška 10: šablony 27. listopadu 2017 2 / 33
přetížení operátorů (o)
přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - deklarace pomocí funkčního
Jazyk C++ I. Šablony
Jazyk C++ I Šablony AR 2013/2014 Jazyk C++ I Úvod Zatím známe programovací styly: Strukturované programování, Objektově orientované programovaní. AR 2013/2014 Jazyk C++ I 2 Příklady void Print(const int&
Programování v C++ 1, 5. cvičení
Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené
<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************
zdroje/zdroje.xml
Algoritmizace a programování
Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Abstraktní třídy, polymorfní struktury
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní třídy, polymorfní struktury BI-PA2, 2011, Přednáška 9 1/32 Abstraktní třídy, polymorfní struktury Ing. Josef Vogel, CSc Katedra softwarového inženýrství
Programovací jazyk C++ Hodina 1
Programovací jazyk C++ Hodina 1 Používané překladače Bloodshed Dev C++ http://www.bloodshed.net/devcpp.html CodeBlocks http://www.codeblocks.org pokud nemáte již nainstalovaný překladač, stáhněte si instalátor
IUJCE 07/08 Přednáška č. 1
Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming
IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí
Velké projekty v C velký = 100ky a více řádek udržovatelnost, bezpečnost, přehlednost kódu rozdělení programu do více souborů další prvky globální proměnné, řízení viditelnosti proměnných, funkcí Globální
Šablony, kontejnery a iterátory
7. října 2010, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 21 Šablona funkce/metody Šablona je obecný popis (třídy, funkce) bez toho, že by
Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Globální konstantní proměnné Konstantní proměnné specifikujeme s klíčovým slovem const, tyto konstantní proměné
Zápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
Programování v C++ 1, 6. cvičení
Programování v C++ 1, 6. cvičení dědičnost, polymorfismus 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené
Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz
Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Upozornění pro čtenáře a uživatele této knihy Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena
Seminář Java II p.1/43
Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii
Správné vytvoření a otevření textového souboru pro čtení a zápis představuje
f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru
Programování v jazyce C a C++
Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu
Funkční objekty v C++.
Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční
PROGRAMOVÁNÍ V C++ CVIČENÍ
PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné
Šablony, kontejnery a iterátory
11. března 2015, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 31 Obsah přednášky 1 Šablony 2 Abstraktní datové struktury 3 Iterátory 4 Array
24. listopadu 2013, Brno Připravil: David Procházka
24. listopadu 2013, Brno Připravil: David Procházka Dědičnost Základy objektového návrhu Časná a pozdní vazba Strana 2 / 22 Obsah přednášky 1 Časná a pozdní vazba 2 Rozhraní pro dědičnost 3 Konstruktory
ADT/ADS = abstraktní datové typy / struktury
DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní
Koncepce (větších) programů. Základy programování 2 Tomáš Kühr
Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je
Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016
Preprocesor Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Programování v C++, A7B36PJC 4/2016, Lekce 9b https://cw.fel.cvut.cz/wiki/courses/a7b36pjc/start
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
PB161 Programování v jazyce C++ Přednáška 4
PB161 Programování v jazyce C++ Přednáška 4 Dynamická alokace Kopírovací konstruktor Přetypování v C++ Nikola Beneš 12. října 2015 PB161 přednáška 4: dynamická alokace, kopírovací konstruktor, casting
Mělká a hluboká kopie
Karel Müller, Josef Vogel (ČVUT FIT) Mělká a hluboká kopie BI-PA2, 2011, Přednáška 5 1/28 Mělká a hluboká kopie Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Jazyk C++ I. Šablony 2
Jazyk C++ I Šablony 2 AR 2013/2014 Jazyk C++ I Třídy template class TVektor { T *a; int n; static int PocInstanci; public: TVektor(int _n = 0) : n(_n) { a = new T[n]; PocInstanci++; } ~TVektor()
Struktura programu v době běhu
Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů
Objektově orientované programování
10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh
Programování v C++ 2, 4. cvičení
Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva
Výčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
Teoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
Jazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Třídy v C++ Třídy jsou uživatelsky definované typy podobné strukturám v C, kromě datových položek (proměnných) však mohou obsahovat i funkce
int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N
Struktura (union) - struktura a union jsou složené typy, které "v sobě" mohou obsahovat více proměnných - struktura obsahuje v každém okamžiku všechny své proměnné, union obsahuje (=je "aktivní") pouze
Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++
Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++ Prostory jmen U programů mohou někdy nastat kolize mezi jmény (tříd, funkcí, globálních proměnných atd.) pokud v různých
Konstruktory a destruktory
Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,
Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní
Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti
2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky
JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance
Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -
Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Preprocesor je možné ovládat pomocí příkazů - řádky začínající
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená
C++ přetěžování funkcí a operátorů. Jan Hnilica Počítačové modelování 19
C++ přetěžování funkcí a operátorů 1 Přetěžování funkcí jazyk C++ umožňuje napsat více funkcí se stejným názvem, těmto funkcím říkáme přetížené přetížené funkce se musí odlišovat typem nebo počtem parametrů,
Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března
Polymorfismus Cíle lekce Cílem lekce je vysvětlit význam pojmu polymorfismus jako základní vlastnosti objektově orientovaného programování. Lekce objasňuje vztah časné a pozdní vazby a jejich využití.
Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí
02 Jazyk C - je imperativní říkáme, co se má udělat, voláme příkazy - další imperativní jazyky: Pascal, Java, C/C++ apod. - na rozdíl od jazyků deklarativních např. Prolog, Haskell, Scheme, Lisp (funkcionální
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Lekce 6 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C
Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace
IRAE 07/08 Přednáška č. 1
Úvod do předmětu OOP Objekt Proč OOP? Literatura, osnova předmětu viz. cvičení Základní prvek OOP sw inženýrství = model reálných objektů (věcí) člověk, auto, okno (ve windows), slovník, = model abstraktní
int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:
13.4.2010 Typová konverze - změna jednoho datového typu na jiný - známe dva základní implicitní ("sama od sebe") a explicitní (výslovně vyžádána programátorem) - C je málo přísné na typové kontroly = dokáže
Dynamická identifikace typů v C++.
Dynamická identifikace typů v C++. Pod pojmem "Dynamická identifikace typů" rozumíme zjišťování typů proměnných, nebo objektů v době běhu programu. Identifikaci typů zajišťuje operátor typeid. Než se ale
ZPRO v "C" Ing. Vít Hanousek. verze 0.3
verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout
PROGRAMOVÁNÍ V C++ URČENO PRO VZDĚLÁVÁNÍ V AKREDITOVANÝCH STUDIJNÍCH PROGRAMECH ROSTISLAV FOJTÍK
PROGRAMOVÁNÍ V C++ URČENO PRO VZDĚLÁVÁNÍ V AKREDITOVANÝCH STUDIJNÍCH PROGRAMECH ROSTISLAV FOJTÍK ČÍSLO OPERAČNÍHO PROGRAMU: CZ.1.07 NÁZEV OPERAČNÍHO PROGRAMU: VZDĚLÁVÁNÍ PRO KONKURENCESCHOPNOST OPATŘENÍ:
Zpracoval: houzvjir@fel.cvut.cz
Zpracoval: houzvjir@fel.cvut.cz 10. Objektově orientované programování v C++. Přetěţování operátorů, generické funkce a třídy, výjimky, knihovny. (A7B36PJC) Obsah OOP v C++... 2 Pro připomenutí - Základní
Programování v Javě I. Leden 2008
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory
Programování v C++ VI
Programování v C++ VI Konstruktory, destruktory a dědičnost Konstruktory a dědičnost I když jsme se bavili o dědičnosti, trochu jsme zapomněli na konstruktory to se ale nevyplácí, vzpomeňte si, jak důležitý
přetížení operátorů (o)
přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - operátor je speciální
IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33
Objekt jako proměnná Objekty a metody Objekt = proměnná referenčního typu vznik pomocí new, chování viz pole jako referenční proměnná minulý semestr Stack Heap objekt ref this 10 20 atr1 atr2 jinyobjekt
Chování konstruktorů a destruktorů při dědění
Dědičnost V objektově orientovaném programování je dědičnost způsob, jak vytvořit novou třídu použitím již existujících definic jiných tříd. Takto vytvořené třídy přebírají vlastnosti a metody svého předka
Pokročilé programování v jazyce C pro chemiky (C3220) Úvod do jazyka C++
Pokročilé programování v jazyce C pro chemiky (C3220) Úvod do jazyka C++ Objektové programování Objektový přístup data a metody pro manipulaci s nimi jsou sdruženy společně v rámci jedné entity Objektové
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
7. Datové typy v Javě
7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů
Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39
Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy
Jazyk C++ I. Polymorfismus
Jazyk C++ I Polymorfismus AR 2013/2014 Jazyk C++ I Operátory Co to vůbec jsou operátory? Na co je používáme? AR 2013/2014 Jazyk C++ I 2 Operátory Můžeme si upravit operátory pro vlastní objektové typy?
Programování v Javě I. Únor 2009
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory
typová konverze typová inference
Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie
16. února 2015, Brno Připravil: David Procházka. Konstruktory a destruktory
16. února 2015, Brno Připravil: David Procházka Konstruktory a destruktory Základy objektového návrhu Jak navrhovat použitelné třídy Strana 2 / 26 Obsah přednášky 1 Jak navrhovat použitelné třídy 2 Jak
Opakování programování
Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování
Výrazy, operace, příkazy
Výrazy, operace, příkazy Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Přednášky byly připraveny s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad Karel Richta, Martin Hořeňovský,
C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++
C++ Akademie SH 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory Za áte níci C++ 20. b ezna 2011 Obsah 1 Prom nné - primitivní typy Celá ísla ƒísla s pohyblivou desetinnou árkou, typ bool 2 Podmínka
TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);
TŘÍDY POKRAČOVÁNÍ Události pokračování public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e); class Bod private int x; private int y; public event ZmenaSouradnicEventHandler ZmenaSouradnic;
Algoritmizace a programování
Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem
Operační systémy. Cvičení 3: Programování v C pod Unixem
Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené
VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Objektově orientované programování. Úvod
Objektově orientované programování Úvod Imperativní programovací styl klasický programovací styl používaný v době vzniku prvních vyšších programovacích jazyků těžiště programování je v tvorbě algoritmů