z aklady programov an v c++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/zpro_2018/cv1.pdf ·...

31
Zakladyprogramov anv C++ - 1. cvi cen Zaklady programovanv C++ - 1. cvi cen Zuzana Pet r ckov a 3.r jna 2018 1 / 30

Upload: others

Post on 31-May-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Zaklady programovanı v C++ - 1. cvicenı

Zuzana Petrıckova

3. rıjna 2018

1 / 30

Page 2: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Prehled

1 Organizacnı zalezitosi

2 Zakladnı pojmy

3 Jednoduche programy v C++Prvnı program: Hello WorldDruhy program: JmenoTretı program: Ctverec

2 / 30

Page 3: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Zakladnı pojmy

Zakladnı pojmy

Algoritmus

Pocıtacovy program

Programovanı

Zdrojovy kod

3 / 30

Page 4: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Zakladnı pojmy

Zakladnı pojmy

Algoritmusnavod nebo postup, jak vyresit nejakou ulohutransformuje mnozinu vstupnıch dat na mnozinu vystupnıchdatVlastnosti:

elementarnı - sklada se z konecneho poctu elementarnıchkrokudeterminovany - po kazdem provedenem kroku vıme, jakymkrokem pokracovat, nebo zda uz postup zkoncilkonecny - kazdy krok se provede konecnekratrezultativnı - vede k pozadovanemu vysledkuhromadny - resı celou skupinu problemu (ne konkretnı prıpad)

4 / 30

Page 5: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Zakladnı pojmy

Zakladnı pojmy

Algoritmus

navod nebo postup, jak vyresit nejakou ulohu

Pocıtacovy program

posloupnost instrukcı, ktera popisuje realizaci dane ulohypocıtacem

Zdrojovy kod

zapis algoritmu v nejakem programovacım jazyce

Programovanı

proces zahrnujıcı navrh algoritmu, vytvorenı zdrojoveho kodu,jeho testovanı a ladenı, i naslednou udrzbu

5 / 30

Page 6: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Zakladnı pojmy

Zakladnı pojmy

Algoritmus

Pocıtacovy program

Zdrojovy kod

Programovanı

Programovacı jazyky

Strojovy kodNizsı programovacı jazyky (jazyk symbolickych adres)Vyssı programovacı jazyky

6 / 30

Page 7: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Zakladnı pojmy

Zakladnı pojmy

Algoritmus

Pocıtacovy program

Zdrojovy kod

Programovanı

Programovacı jazykyStrojovy kod

posloupnost strojovych instrukcı provadenych procesorempocıtaceinstrukce zapsane cıselnym kodem

Nizsı programovacı jazyky (jazyk symbolickych adres)

assembler = program pro preklad jazyka symbolickych adresdo strojoveho kodu

Vyssı programovacı jazyky (napr. C++)

prekladac (kompilator) = program pro preklad jazyka vyssıhoprogramovacıho jazyka do strojoveho kodu

7 / 30

Page 8: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Prvnı program: Hello World

Prvnı program: Hello World

Konzolova aplikace (bezı v prıkazove radce)

Ukol: Vytvorte program, ktery vypıse na obrazovku pozdrav:”Ahoj svete!”

8 / 30

Page 9: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Prvnı program: Hello World

Prvnı program: Hello World

Minimum, ktere budeme potrebovat:1 textovy editor

1 Notepad, jEdit,...

2 prekladac a linkovacı program

Linux: GNU Compiler Collection (gcc, g++), clang (clang++)MS Windows: Visual C++ (cl.exe), minGW (gcc, g++)

Co nam usnadnı programovanı:

integrovane vyvojove prostredı (IDE)

MS Visual Studio, Code Blocks, QT Creator, BloodshedDev-C++ a wxDev-C++, NetBeans, Eclipse,...

knihovny funkcı

STL (standard template library), Qt,...

9 / 30

Page 10: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Prvnı program: Hello World

Prvnı program: Hello World

Prazdny program:

i n t main ( ){

return 0 ;}

// tak to se p i s e kometar v kodu

/∗ Komentar nav i c e radek ∗/

10 / 30

Page 11: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Prvnı program: Hello World

Prvnı program: Hello World

Prazdny program: definicnı deklarace funkce main()

i n t main ( ){

return 0 ;}

Program se sklada z podprogramu (funkcı)Funkce main() slouzı jako vstupnı bod programuhlavicka funkce:

navratova hodnota - typu intjmeno funkce - mainseznam parametru - bez parametru

telo funkce:posloupnost prıkazu (ukoncene strednıkem)blok = posloupnost prıkazu uzavrena do slozenych zavorek

11 / 30

Page 12: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Prvnı program: Hello World

Prvnı program: Hello World

Prazdny program:

i n t main ( ){

return 0 ;}

Prıkaz returnnavrat z podrogramu a vracenı hodnotyve funkci main() zpusobı ukoncenı programu, vracena hodnotaje predana OS (0 znamena uspech, jina hodnota znacı chybovykod)

12 / 30

Page 13: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Prvnı program: Hello World

Prvnı program: Hello World

Preklad a linkovanı1 na prıkazove radce:

GNU C++ Compiler: g++ (MS Windows: MinGW, cygwin...)preklad: g++ -c ahoj.cpplinkovanı: g++ ahoj.o -o ahoj.exe preklad a linkovanıdohromady: g++ ahoj.cpp -o ahoj

2 v integrovanem vyvojovem prostredı

13 / 30

Page 14: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Prvnı program: Hello World

Prvnı program: Hello World

Nastroje pro ctenı a vypis textu

standardnı knihovna C++ (std)

deklarovany v hlavickovem souboru iostream

zakladnı objekty:

cin ... standardnı vstupnı datovy proud (instance objektovehodatoveho typu)cout ... standardnı vystupnı datovy proudendl ... prechod na novy radek (manipulator)

operatory:

>> ... nactenı ze vstupnıho datoveho proudu<< ... vypis do vystupnıho datoveho proudu

14 / 30

Page 15: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Prvnı program: Hello World

Prvnı program: Hello World

Ahoj svete (prvnı verze)

// He l l o World ! program

#inc lude <i o s t r e a m>

i n t main ( ){

s t d : : cout << ” Ahoj s v e t e ! ” << s t d : : e n d l ;return 0 ;

}

15 / 30

Page 16: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Prvnı program: Hello World

Prvnı program: Hello World

Ahoj svete (prvnı verze)

// He l l o World ! program

#inc lude <i o s t r e a m>

i n t main ( ){

s t d : : cout << ” Ahoj s v e t e ! ” << s t d : : e n d l ;return 0 ;

}

prostor jmen std ... znacı standardnı knihovnu

operator pro kvalifikace ::

direktiva #include ... pro vlozenı hlavickoveho souboru

16 / 30

Page 17: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Prvnı program: Hello World

Prvnı program: Hello World

Prostor jmen (namespace):Mısto

s t d : : cout << ” Ahoj s v e t e ! ” << s t d : : e n d l ;

lze pouzıt

u s i n g namespace s t d ;. . .cout << ” Ahoj s v e t e ! ” << e n d l ;

17 / 30

Page 18: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Prvnı program: Hello World

Prvnı program: Hello World

Ahoj svete (druha verze)

// He l l o World ! program

#inc lude <i o s t r e a m>u s i n g namespace s t d ;

i n t main ( ){

cout << ” Ahoj s v e t e ! ” << e n d l ;return 0 ;

}

18 / 30

Page 19: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Druhy program: Jmeno

Druhy program: Jmeno

Ukol: Vytvorte program, ktery se zepta uzivatele na jmeno,nacte ho a vypıse na standardnı vystup.

19 / 30

Page 20: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Druhy program: Jmeno

Druhy program: Jmeno

Ukol: Vytvorte program, ktery se zepta uzivatele na jmeno,nacte ho a vypıse na standardnı vystup.

Navod

char jmeno[50]; ... promenna pro ulozenı textu

20 / 30

Page 21: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Druhy program: Jmeno

Druhy program: Jmeno

#inc lude <i o s t r e a m>u s i n g namespace s t d ;

i n t main ( ){

char jmeno [ 5 0 ] ;cout << ” Prosim , z a d e j t e s v e jmeno : ” << e n d l ;c i n >> jmeno ;cout << ” Vase jmeno j e ” << jmeno << ” . ” ;cout << e n d l ;return 0 ;

}21 / 30

Page 22: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Druhy program: Jmeno

Druhy program: Jmeno

Promenna

symbolicke pojmenovanı mısta v pametinese hodnotulze ji vytvaret, cıst a menit

Deklarace promenne

zadanı jmena a typu

char jmeno [ 5 0 ] ;i n t c i s l o ;

mohu inicializovat:

i n t c i s l o = 1 0 ;

Typy promennych

lokalnı promenna ... deklarovana na urovni funkceglobalnı promenna ... deklarovana na urovni programukonstanty ... const

22 / 30

Page 23: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Tretı program: Ctverec

Tretı program: Ctverec

Ukol: Vytvorte program, ktery nacte cıslo (delku stranyctverce) a vypıse jeho obsah.

23 / 30

Page 24: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Tretı program: Ctverec

Tretı program: Ctverec

1 Vytvorte program, ktery nacte cıslo do promenne a pak vypıse.

2 Ukol: Vytvorte program, ktery nacte cıslo (delku stranyctverce) a vypıse jeho obsah.

24 / 30

Page 25: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Tretı program: Ctverec

Tretı program: Ctverec

Datove typy (typy promennych)

dane mnozinou hodnot a mnozinou operacı nad temitohodnotami

zakladnı ... cela cısla, ”realna”cısla, logicke hodnoty, znaky

odvozene ... pole, struktury,...

Celocıselne datove typy

zakladnı: short ≤ int≤ long ≤ long long

varianta bez znamenka: unsigned short,...

pr. short ... 16 bitu (-32767 32767)

pr. unsigned short ... 16 bitu (0 65535)

25 / 30

Page 26: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Tretı program: Ctverec

Tretı program: Ctverec

Prvnı verze:

#inc lude <i o s t r e a m>u s i n g namespace s t d ;

i n t main ( ){

i n t c i s l o ;cout << ” Prosim , z a d e j c i s l o : ” << e n d l ;c i n >> c i s l o ;cout << ” Zada l j s i c i s l o ” << c i s l o <<

” . ” << e n d l ;return 0 ;

}26 / 30

Page 27: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Tretı program: Ctverec

Tretı program: Ctverec

Ukol: Vytvorte program, ktery nacte cıslo (delku stranyctverce) a vypıse jeho obsah.

27 / 30

Page 28: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Tretı program: Ctverec

Tretı program: Ctverec

Matematicke operatory pro celocıselne datove typy

+ ... binarnı, soucet

- ... binarnı, rozdıl

- ... unarnı, mınus

* ... binarnı, nasobenı

/ ... binarnı, delenı

% ... binarnı, zbytek po celocıselnem delenı

Prirazovacı prıkaz

L = P;

typ L a P musı byt kompatibilnı

28 / 30

Page 29: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Tretı program: Ctverec

Druhy program: Jmeno

Promenna - deklarace a prirazenı hodnoty

. . .i n t a ;a = 3 ;i n t b = 5 ;i n t c = a + b ;a = b = c ;b = b + 1 ;b += 1 ;a++;. . .

29 / 30

Page 30: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Tretı program: Ctverec

Tretı program: Ctverec

#inc lude <i o s t r e a m>u s i n g namespace s t d ;

i n t main ( ){

cout << ” Prosim , z a d e j c i s l o j a k o d e l k u ” <<” s t r a n y c t v e r c e : ” << e n d l ;

i n t c i s l o ;c i n >> c i s l o ;i n t obsah = c i s l o ∗ c i s l o ;cout << ”Obsah c t v e r c e o d e l c e s t r a n y ”

<< c i s l o << ” j e ” << obsah << ” . ” << e n d l ;return 0 ;

}30 / 30

Page 31: Z aklady programov an v C++ - 1. cvi cenzuzka.petricek.net/vyuka_2018/ZPRO_2018/cv1.pdf · 2018-10-03 · Z aklady programov an v C++ - 1. cvi cen Z akladn pojmy Z akladn pojmy Algoritmus

Zaklady programovanı v C++ - 1. cvicenı

Jednoduche programy v C++

Tretı program: Ctverec

Domacı ukol

Zprovoznete si doma nejake vyvojove prostredı.

Vytvorte podobny ”povıdacı”program za pouzitı cin, cout,endl.

Pouzijte promenne pro ulozenı textu nebo cısel.

31 / 30