PROGRAMOVÁNÍ V C++ CVIČENÍ

Podobné dokumenty
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Operační systémy. Cvičení 3: Programování v C pod Unixem

Funkční objekty v C++.

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

map, multimap - Asociativní pole v C++.

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

IUJCE 07/08 Přednáška č. 1

8 Třídy, objekty, metody, předávání argumentů metod

Úvod do programovacích jazyků (Java)

Jazyk C++ II. Šablony a implementace

Programování v C++ 2, 4. cvičení

PB161 Programování v jazyce C++ Přednáška 10

Operační systémy. Cvičení 4: Programování v C pod Unixem

Zápis programu v jazyce C#

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Programování v C++ 3, 3. cvičení

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

2 Datové typy v jazyce C

Základy programování (IZP)

Programování v C++ 1, 1. cvičení

C++ objektově orientovaná nadstavba programovacího jazyka C

Základy programování (IZP)

Objektově orientované programování

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Základy C++ I. Jan Hnilica Počítačové modelování 18

Úvod do programovacích jazyků (Java)

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Jazyk C++ II. Výjimky

Vector datový kontejner v C++.

Programovací jazyk C++ Hodina 1

C++ přetěžování funkcí a operátorů. Jan Hnilica Počítačové modelování 19

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Preprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++

přetížení operátorů (o)

<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************

Dědičnost. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 23.března

PB161 Programování v jazyce C++ Přednáška 10

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Jazyk C++ 1. Blok 3 Objektové typy jazyka C++ Třída. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

Úvod do programování - Java. Cvičení č.4

Výrazy, operace, příkazy

Zpracoval:

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Odvozené a strukturované typy dat

Množina v C++ (set, multiset).

Prostory jmen. při vkládání několika hlavičkových souborů může vzniknout kolize. logika.h const int x=5; typedef struct {...

Úvod do programování. Lekce 1

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Práce s knihovnami. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Základy programování (IZP)

Jazyk C++, některá rozšíření oproti C

C++ 0x aka C++11. Základním kamenem je třída std::thread

Programování v C++ 1, 5. cvičení

ADT/ADS = abstraktní datové typy / struktury

Lekce 6 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Maturitní otázky z předmětu PROGRAMOVÁNÍ

7. Datové typy v Javě

Objekty a třídy. Procedurální a objektově orientované programování. V této kapitole se naučíte: Procedurální a objektově orientované programování

Struktury, funkce, reference

Datové typy pro reálná čísla

PROGRAMOVÁNÍ V C++ URČENO PRO VZDĚLÁVÁNÍ V AKREDITOVANÝCH STUDIJNÍCH PROGRAMECH ROSTISLAV FOJTÍK

Sada 1 - Základy programování

Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice,Benešovo náměstí 1, příspěvková organizace

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE

Více o konstruktorech a destruktorech

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

Konstruktory a destruktory

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

V dalších letech se pak začaly objevovat první normy pro jazyk C++ (ISO/IEC 14882:1998; ISO/IEC 9899:1999; ISO/IEC 14882:2003; ISO/IEC 14882:2011).

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Programování v C++ 1, 14. cvičení

1. Programování proti rozhraní

PB přednáška (23. listopadu 2015)

Datové typy pro reálná čísla

Výrazy, operace, příkazy

Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Data, výrazy, příkazy

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Seminář Java II p.1/43

Mělká a hluboká kopie

PB161 Programování v jazyce C++ Přednáška 9

Algoritmy I. Cvičení č.1 ALGI 2015/16

Algoritmizace a programování

Programování II. Návrh programu I 2018/19

Transkript:

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é všem skupinám Úspěšné složení zápočtového testu 1. a 2. pokusy ve zkouškovém období... 3. pokusy v dubnu 2-3 hodiny v laboratoři, společně pro všechny skupiny Vypracování zápočtového programu Dohoda o tématu - do listopadu Předvedení cvičícímu do 29.3.2013 Doladění a odevzdání do 24.5.2013 Další podmínky udělení zápočtu určuje cvičící Cvičící může podmínky individuálně upravit, pokud se s ním student na začátku semestru dohodne Přiměřená účast na cvičeních (alespoň 1/2) Úspěšné odevzdání domácího úkolu (možná jen nepovinný)

ZÁKLADNÍ TYPY Vestavěné typy: Celočíselné int, long, unsinged, unsigned long Reálná čísla float, double Znaky char, unsigned char, (wchar_t) Složené typy (definované programátorem): Struktury Třídy Přejmenované typy Deklarace typedef

PROMĚNNÉ Syntax proměnné: datový_typ jméno = počáteční_hodnota; Typ může být jakýkoliv známý (viditelný) typ Počáteční hodnota musí patřit do definičního oboru typu (konverze) Členské proměnné (membery) Definují se stejně Náleží třídě / struktuře Inicializují se v konstruktoru

FUNKCE A METODY Syntax funkce: návratový_typ jméno (parametry) { tělo_ funkce } Parametry se definují stejně jako proměnné a pracuje se s nimi stejně jako s lokálními proměnnými Tělo funkce se skládá z definicí proměnných, volání funkcí, přiřazení a podmíněných skoků (cykly a ify ) Syntax funkce main int main() {} int main(int argc, char** argv) {} void main() {} (Visual studio) Návratová hodnota je 0 (vše v pořádku), jinak kód chyby (!= 0)

VKLÁDÁNÍ DEKLARACÍ Typy a funkce jsou deklarovány v samostatných souborech Každý soubor by měl obsahovat jen jeden typ, nebo málo příbuzné typy, ale jazyk nezakazuje jiná řešení Typy a funkce deklarované v nějakém jiném souboru musí být vloženy tam kde se mají použít Vložení deklarací ze standardní knihovny #include <header.h> Vložení vlastních deklarací #include header.h

VSTUP A VÝSTUP Vstup a výstup v C++ jde přes proudy Proudy jsou součástí standardní knihovny Proudy standardizují práci s konzolí a soubory (a sítí) Starají se o optimalizaci výkonu (bufferování, binární soubory) Před použitím je nutné vložit deklaraci #include <iostream> Ostatní typy proudů jsou jiných souborech Všechny třídy standardní knihovny jsou ve jmenném prostoru std

HELLO WORLD Nejjednodušší program, který ale obsahuje mnohé důležité konstrukce nutné pro další práci Všechny použité třídy ze standardní knihovny jsou plně kvalifikované, zabraňuje to konfliktům a je to přehledné #include <iostream> void main() { std::cout << "Hello world!" << std::endl; } getchar(); // forces the program to wait for user input at the end;

PARAMETRY PROGRAMU Parametry jsou předány do funkce main v jejích parametrech Parametry je možné zadat z konzole, nebo přes zástupce Při vývoji programu se parametry zadávají přes Visual Studio int argc - První argument obsahuje počet předaných parametrů char** argv - Parametry jsou předány jako pole textových řetězců

PARAMETRY PŘÍKLAD > \program.exe Hello world Parametry funkce main budou obsahovat: argc: 3 argv: \program.exe Hello World První parametr obsahuje jméno programu (jeho spustitelnému souboru), ale to není standardem přesně specifikováno a tento parametr může obsahovat i něco jiného

HELLO WORLD REVISITED Druhá verze prvního programu, tentokrát vypíše počet parametrů a pak obsah druhého parametru (všech parametrů) Důležitá je kontrola počtu parametrů! #include <iostream> int main(int argc, char** argv) { // argument[0] is the application file name (+path) std::cout << argc << std::endl; if(argc > 1) std::cout << argv[1] << std::endl; // writes only a single word } getchar(); return 0;

LOKÁLNÍ PROMĚNNÉ Proměnné definované ve funkci Jsou použitelné jen ve funkci a existují jen když funkce běží Inicializují se na místě #include <iostream> int main(int argc, char** argv) { // argument[0] is the application file name (+path) std::cout << argc << std::endl; int count = argc; if(count > 1) std::cout << argv[1] << std::endl; // writes only a single word } getchar(); return 0;

TŘÍDA class jméno { private: member <= proměnná public: metoda <= funkce };