zpro cvicení 2 - cvut.czpeople.fjfi.cvut.cz/flussmar/files/cv2.pdfoutline prom enn e prom enn e -...

Post on 14-Oct-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

ZPRO – cvicenı 2

Martin Flusser

Faculty of Nuclear Sciences and Physical EngineeringCzech Technical University in Prague

October 17, 2016

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Outline I

1 Outline

2 Promenne

3 Promenne - cvicenı

4 Funkce

5 Funkce - cvicenı

6 Domacı ukol

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Promenne

• Symbolicke oznacenı mısta v pameti

• Nese hodnotu

• Lze ji vytvaret, cıst a menit

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Promenne

• Symbolicke oznacenı mısta v pameti

• Nese hodnotu

• Lze ji vytvaret, cıst a menit

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Promenne

• Symbolicke oznacenı mısta v pameti

• Nese hodnotu

• Lze ji vytvaret, cıst a menit

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Promenne

• Symbolicke oznacenı mısta v pameti

• Nese hodnotu

• Lze ji vytvaret, cıst a menit

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Typy promennych

• char – 8 bitu

• signed char• unsigned char

• int 16 bitu ( -32767 32767)

• unsigned int

• long 32 bitu

• necelociselna float 32

• necelociselna double 64

• bool = { true, false}• string (retezec textu)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Typy promennych

• char – 8 bitu

• signed char• unsigned char

• int 16 bitu ( -32767 32767)

• unsigned int

• long 32 bitu

• necelociselna float 32

• necelociselna double 64

• bool = { true, false}• string (retezec textu)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Typy promennych

• char – 8 bitu• signed char• unsigned char

• int 16 bitu ( -32767 32767)

• unsigned int

• long 32 bitu

• necelociselna float 32

• necelociselna double 64

• bool = { true, false}• string (retezec textu)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Typy promennych

• char – 8 bitu• signed char• unsigned char

• int 16 bitu ( -32767 32767)

• unsigned int

• long 32 bitu

• necelociselna float 32

• necelociselna double 64

• bool = { true, false}• string (retezec textu)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Typy promennych

• char – 8 bitu• signed char• unsigned char

• int 16 bitu ( -32767 32767)• unsigned int

• long 32 bitu

• necelociselna float 32

• necelociselna double 64

• bool = { true, false}• string (retezec textu)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Typy promennych

• char – 8 bitu• signed char• unsigned char

• int 16 bitu ( -32767 32767)• unsigned int

• long 32 bitu

• necelociselna float 32

• necelociselna double 64

• bool = { true, false}• string (retezec textu)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Typy promennych

• char – 8 bitu• signed char• unsigned char

• int 16 bitu ( -32767 32767)• unsigned int

• long 32 bitu

• necelociselna float 32

• necelociselna double 64

• bool = { true, false}• string (retezec textu)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Typy promennych

• char – 8 bitu• signed char• unsigned char

• int 16 bitu ( -32767 32767)• unsigned int

• long 32 bitu

• necelociselna float 32

• necelociselna double 64

• bool = { true, false}• string (retezec textu)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Typy promennych

• char – 8 bitu• signed char• unsigned char

• int 16 bitu ( -32767 32767)• unsigned int

• long 32 bitu

• necelociselna float 32

• necelociselna double 64

• bool = { true, false}

• string (retezec textu)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Typy promennych

• char – 8 bitu• signed char• unsigned char

• int 16 bitu ( -32767 32767)• unsigned int

• long 32 bitu

• necelociselna float 32

• necelociselna double 64

• bool = { true, false}• string (retezec textu)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Deklarace a syntaxe

1 int a;

2 a=3;

3 int b=5;

4 int c=a+b;

5 a=b=c;

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Diskuze

• Jak pojmenovavat promenne?

• Jak dlouho promenna vydrzı? Kdy zanika?

• lokalnı• globalnı (const)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Diskuze

• Jak pojmenovavat promenne?

• Jak dlouho promenna vydrzı? Kdy zanika?

• lokalnı• globalnı (const)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Diskuze

• Jak pojmenovavat promenne?

• Jak dlouho promenna vydrzı? Kdy zanika?• lokalnı• globalnı (const)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

cvicenı

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

2 Vytvorte program, ktery nacte cıslo (delku strany ctverce) avypıse jeho obsah.

3 Vytvorte program, ktery umı resit kvadratickou rovnici vzakladnım tvaru.

Navod na odmocninu:

1 #include <math.h>

2 int main()

3 {

4 int trojka;

5 trojka = sqrt (9);

6 return;

7 }

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

cvicenı

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

2 Vytvorte program, ktery nacte cıslo (delku strany ctverce) avypıse jeho obsah.

3 Vytvorte program, ktery umı resit kvadratickou rovnici vzakladnım tvaru.

Navod na odmocninu:

1 #include <math.h>

2 int main()

3 {

4 int trojka;

5 trojka = sqrt (9);

6 return;

7 }

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

cvicenı

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

2 Vytvorte program, ktery nacte cıslo (delku strany ctverce) avypıse jeho obsah.

3 Vytvorte program, ktery umı resit kvadratickou rovnici vzakladnım tvaru.

Navod na odmocninu:

1 #include <math.h>

2 int main()

3 {

4 int trojka;

5 trojka = sqrt (9);

6 return;

7 }

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

cvicenı

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

2 Vytvorte program, ktery nacte cıslo (delku strany ctverce) avypıse jeho obsah.

3 Vytvorte program, ktery umı resit kvadratickou rovnici vzakladnım tvaru.

Navod na odmocninu:

1 #include <math.h>

2 int main()

3 {

4 int trojka;

5 trojka = sqrt (9);

6 return;

7 }

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

cv1 - resenı

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

1 cout <<"zadejte cislo:" <<endl;

2 int cislo;

3 cin >> cislo;

4 cout <<"vase cislo je:"<<cislo <<endl;

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

cv2 - resenı

Vytvorte program, ktery nacte cıslo (delku strany ctverce) a vypısejeho obsah.

1 cout <<"zadejte cislo jako delku strany:"

2 <<endl;

3 int cislo;

4 cin >> cislo;

5 int obsah = cislo*cislo;

6 cout <<"obsah je:"<<obsah <<endl;

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

cv3 - resenı

Vytvorte program, ktery umı resit kvadratickou rovnici v zakladnımtvaru.

1 double a,b,c;

2 // Nacitani koeficientu

3 cout <<"zadejte koeficient a:" <<endl;

4 cin >> a;

5 cout <<"zadejte koeficient b:" <<endl;

6 cin >> b;

7 cout <<"zadejte koeficient c:" <<endl;

8 cin >> c;

9 // Vypocet

10 double diskriminant= b*b-4*a*c;

11 double x1=(-b+sqrt(diskriminant ))/2*a;

12 double x2=(-b-sqrt(diskriminant ))/2*a;

13 cout <<endl <<"koreny jsou: " <<x1 <<" a "

14 <<x2<<endl;

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce - Terminologie

• Funkce

• Procedura

• Podprogram

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce - Terminologie

• Funkce

• Procedura

• Podprogram

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce - Terminologie

• Funkce

• Procedura

• Podprogram

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Podprogram

Wikipedia (edited):

Podprogram je v programovanı cast programu, kterou je moznevolat, a to i opakovane a z ruznych mıst kodu. Podprogram muzemıt parametry, ktere udavajı, s jakymi hodnotami ma pracovat, amuze

”vracet“ navratovou hodnotu...

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Podprogram

Wikipedia (edited):

Podprogram je v programovanı cast programu, kterou je moznevolat, a to i opakovane a z ruznych mıst kodu. Podprogram muzemıt parametry, ktere udavajı, s jakymi hodnotami ma pracovat, amuze

”vracet“ navratovou hodnotu...

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce vs procedura

Wikipedia:

procedura – podprogram, ktery nevracı vyslednou hodnotu a volase jako prıkaz.

Wikipedia:

funkce – podprogram, ktery vracı hodnotu a lze jej volat ve vyrazu.

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce vs procedura

Wikipedia:

procedura – podprogram, ktery nevracı vyslednou hodnotu a volase jako prıkaz.

Wikipedia:

funkce – podprogram, ktery vracı hodnotu a lze jej volat ve vyrazu.

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce vs procedura

Wikipedia:

procedura – podprogram, ktery nevracı vyslednou hodnotu a volase jako prıkaz.

Wikipedia:

funkce – podprogram, ktery vracı hodnotu a lze jej volat ve vyrazu.

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce: matematika vs programovanı

• Jsou nejake rozdıly mezi funkcı v programovanı a vmatematice?

V programovanı:

Neplatı, ze pro jeden vstupnı parametr existuje jedna vystupnıhodnota. Do procesu mohou vstupovat i dalsı data . Casto sepouzıvaji i funkce uplne bez parametru.

V programovanı:

ma funkce i dalsı ucinek krome navratove hodnoty. Naprıklad muzeprovest dalsı operace a nastavenı. (Procedura)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce: matematika vs programovanı

• Jsou nejake rozdıly mezi funkcı v programovanı a vmatematice?

V programovanı:

Neplatı, ze pro jeden vstupnı parametr existuje jedna vystupnıhodnota. Do procesu mohou vstupovat i dalsı data . Casto sepouzıvaji i funkce uplne bez parametru.

V programovanı:

ma funkce i dalsı ucinek krome navratove hodnoty. Naprıklad muzeprovest dalsı operace a nastavenı. (Procedura)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce: matematika vs programovanı

• Jsou nejake rozdıly mezi funkcı v programovanı a vmatematice?

V programovanı:

Neplatı, ze pro jeden vstupnı parametr existuje jedna vystupnıhodnota. Do procesu mohou vstupovat i dalsı data . Casto sepouzıvaji i funkce uplne bez parametru.

V programovanı:

ma funkce i dalsı ucinek krome navratove hodnoty. Naprıklad muzeprovest dalsı operace a nastavenı. (Procedura)

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce v jazyce C a C++

• Vyraz podprogram se uzıva zrıdka

• Procedura neexistuje. Pouzıva se funkce bez navratovehodnoty.

• Vse zmınene se v jazyce C a C++ nazyva funkce.

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Deklarace a definice funkce

1

2 navratovy_typ jmeno ([parametry , ...])

3 {

4 telo funkce

5 }

• Navratovy typ napr.:{int, bool, float..., void}• K ukoncenı funkce a vracenı hodnoty se pouzije prıkaz return

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Deklarace a definice funkce

1 #include <iostream >

2 using namespace std;

3

4 int secti(int a, int b) // Definice

5 {

6 return a + b;

7 }

8

9 int main ()

10 {

11 int vysledek;

12 vysledek = secti (3 ,4);

13 cout << "Vysledek souctu je: " << vysledek << endl;

14 return 0;

15 }

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Deklarace a definice funkce

1 #include <iostream >

2 using namespace std;

3 int secti(int a, int b) // Deklarace

4

5 int main ()

6 {

7 int vysledek;

8 vysledek = secti (3 ,4);

9 cout << "Vysledek souctu je: " << vysledek << endl;

10 return 0;

11 }

12

13 int secti(int a, int b) // Definice

14 {

15 return a + b;

16 }

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce cvicenı

1 Funkce pro vypis textu do konzole

2 Funkce pro vypocet obsahu kruhu

3 Funkce pro vypocet objemu valce

4 Funkce pro nalezenı korene(u) kvadraticke rovnice• Je nutne se vyporadat s tım, ze funkce vracı pouze jednu

hodnotu

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce cvicenı

1 Funkce pro vypis textu do konzole

2 Funkce pro vypocet obsahu kruhu

3 Funkce pro vypocet objemu valce

4 Funkce pro nalezenı korene(u) kvadraticke rovnice• Je nutne se vyporadat s tım, ze funkce vracı pouze jednu

hodnotu

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce cvicenı

1 Funkce pro vypis textu do konzole

2 Funkce pro vypocet obsahu kruhu

3 Funkce pro vypocet objemu valce

4 Funkce pro nalezenı korene(u) kvadraticke rovnice• Je nutne se vyporadat s tım, ze funkce vracı pouze jednu

hodnotu

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce cvicenı

1 Funkce pro vypis textu do konzole

2 Funkce pro vypocet obsahu kruhu

3 Funkce pro vypocet objemu valce

4 Funkce pro nalezenı korene(u) kvadraticke rovnice

• Je nutne se vyporadat s tım, ze funkce vracı pouze jednuhodnotu

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Funkce cvicenı

1 Funkce pro vypis textu do konzole

2 Funkce pro vypocet obsahu kruhu

3 Funkce pro vypocet objemu valce

4 Funkce pro nalezenı korene(u) kvadraticke rovnice• Je nutne se vyporadat s tım, ze funkce vracı pouze jednu

hodnotu

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

cv1 - resenı

1 void say_hell ()

2 {

3 std::cout <<"Hello"<<std::endl;

4

5 return;

6 }

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

cv2 - resenı

1 double obsah_kruhu (double radius)

2 {

3 return 3.14* radius*radius;

4 }

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

cv3 - resenı

1 double objem_valce (double radius , double vyska)

2 {

3 return obsah_kruhu(radius )* vyska;

4 }

Outline Promenne Promenne - cvicenı Funkce Funkce - cvicenı Domacı ukol

Domacı ukol

Vytvorte a pouzijte funkci na hledanı korenu kvadraticke rovnice.Funkce bude mıt 4 vstupnı parametry a vracet promennou typudouble. Parametry budou: a, b, c (jako na cviceni) a parametrznamenko, kam se dosadi bud +1, nebo -1. Parametru znamenkovyuzijete k urceni, zda se jedna o jeden, nebo druhy koren (nezalezına jejich poradı). Funkce bude vyuzivat pomocnou funkcidiskriminant.Napoveda: Diskriminant: D = b2 − 4ac

x =−b+ znamenko×

√D

2a

top related