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: Složené typy (definované programátorem): 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é: Členské proměnné (membery) 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: Syntax funkce main 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é
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ů !
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ě
Třída