PB161 ´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı
PB161 1. cviˇcen´ı
´ s Ruˇcka Lukaˇ
4. ˇr´ıjna 2012
Pˇreklad
´ e´ Parov ´ ı programovan´
PB161
Kdo jsem?
´ s Ruˇcka Lukaˇ
I
Ted’ uˇz magistersk´y student (2012) - FI N-IN POS
I
´ r) Laborant (sysadmin a v´yvojaˇ
I
´ ´ ´ Senator Akademickeho senatu Masarykovy univerzity
I
Konzultaˇcn´ı hodiny I
I
I
G104, kaˇzd´y cˇ tvrtek ´ eˇ po 14:00–16:00, individualn domluveˇ emailem Poˇc´ıtaˇcova´ hala, kaˇzdou stˇredu 12:00–13:00 Jabber/email:
[email protected]
´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
PB161
´ V´yukove´ materialy
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I http://cecko.eu I http://stackoverflow.com/ I http://cplusplus.com I http://www.cppreference.com/wiki/
PB161
´ V´yukove´ materialy
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I http://cecko.eu I http://stackoverflow.com/ I http://cplusplus.com I http://www.cppreference.com/wiki/ I http://frakira.fi.muni.cz/˜luksoft/cs/vyuka/
´ (nebo se proklikejte z meho profilu v ISu)
PB161
´ Nastroje
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I
Doporuˇcene´ IDE: QT Creator
PB161
´ Nastroje
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I I
Doporuˇcene´ IDE: QT Creator ´ s obyˇcejn´ym poznamkov´ ´ Nen´ı problem ym blokem, editorem nano a jin´ymi
PB161
´ Nastroje
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I
Doporuˇcene´ IDE: QT Creator ´ s obyˇcejn´ym poznamkov´ ´ Nen´ı problem ym blokem, editorem nano a jin´ymi
I
Pˇrekladaˇc GCC
I
PB161
´ Nastroje
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I I
I I
Doporuˇcene´ IDE: QT Creator ´ s obyˇcejn´ym poznamkov´ ´ Nen´ı problem ym blokem, editorem nano a jin´ymi Pˇrekladaˇc GCC ´ SVN Verzovac´ı system
PB161
´ Kompilace z pˇr´ıkazove´ ˇradky
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ cˇ eka... ´ Toto vas g++ -ansi -pedantic -Wall -Wextra -Werror -Wmissingnoreturn -o vystup zdroj_1.cpp [ zdroj_N.cpp ...]
´ e´ Parov ´ ı programovan´
PB161
´ Kompilace z pˇr´ıkazove´ ˇradky
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ cˇ eka... ´ Toto vas g++ -ansi -pedantic -Wall -Wextra -Werror -Wmissingnoreturn -o vystup zdroj_1.cpp [ zdroj_N.cpp ...] ˇ a´ doopravdy... Takto se to del g++ -ansi -pedantic -Wall noreturn -o zdroj_1.o ... g++ -ansi -pedantic -Wall noreturn -o zdroj_N.o
-Wextra -Werror -Wmissingzdroj_1.cpp -Wextra -Werror -Wmissingzdroj_N.cpp
g++ -o program1 zdroj_1.o zdroj_X.o g++ -o program1 zdroj_Y.o ... zdroj_Z.o
´ e´ Parov ´ ı programovan´
PB161
Jak je to s kompilac´ı
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
C++ zdroj (*.cpp)
C/C++ hlaviˇcka (*.h)
PB161
Jak je to s kompilac´ı
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
C++ zdroj (*.cpp) preprocesor mezilehl´y zdroj (*.i)
C/C++ hlaviˇcka (*.h)
PB161
Jak je to s kompilac´ı
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
C++ zdroj (*.cpp) preprocesor mezilehl´y zdroj (*.i) ´ kompilator c++ assembler (*.s)
C/C++ hlaviˇcka (*.h)
´ e´ Parov ´ ı programovan´
PB161
Jak je to s kompilac´ı
´ s Ruˇcka Lukaˇ ´ Uvod
C++ zdroj (*.cpp) preprocesor mezilehl´y zdroj (*.i) ´ kompilator c++ assembler (*.s) ´ kompilator assembleru ´ (*.o) objektov´y kod
C/C++ hlaviˇcka (*.h)
Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
PB161
Jak je to s kompilac´ı
´ s Ruˇcka Lukaˇ
C++ zdroj (*.cpp)
C/C++ hlaviˇcka (*.h)
´ Uvod Prostˇred´ı
preprocesor
Pˇreklad
´ e´ Parov ´ ı programovan´
mezilehl´y zdroj (*.i) ´ kompilator c++ assembler (*.s) ´ kompilator assembleru ´ (*.o) objektov´y kod linker spustiteln´y soubor
knihovny
PB161
´ e´ programovan´ ´ ı Parov
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I
´ ´ ı Jeden z prvku˚ extremn´ ıho programovan´
I
´ a´ 75% bodu˚ za domac´ ´ ı ulohu Kaˇzd´y student z´ıskav ´
I
´ ı ukol 6. domac´ povinn´y ´
I
ˇ m´ıt vyvaˇ ´ zene´ zkuˇsenosti i oˇcekav ´ an´ ´ ı Dvojice by mela
I
ˇ Rozˇrazen´ı nepujde po 2. cviˇcen´ı zmenit ˚
PB161
Rozstˇrel
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
I
´ ale zuˇ Nen´ı duleˇ ˚ zite´ vyhrat ˚ castnit se
I
6-7 minut na pˇr´ıklad
I
´ Stˇr´ıdejte se po 2 minutach
I
ˇ ´ ´ jak pracovalo Delejte si poznamky s k´ym se vam
I
Rozhodnut´ı – zda a s k´ym – budete pracovat mi zaˇslete emailem po hodineˇ
´ e´ Parov ´ ı programovan´
PB161
Pˇr´ıklad 1
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I
´ rozklad na Na STDIN cele´ cˇ ´ıslo, ukol je provest ´ prvoˇc´ısla
I
V´ystup ve stylu 2772 = 2 * 2 * 3 * 3 * 7 * 11“ ” Na konci v´ystupu poˇcet v´yskytu˚ prvoˇc´ısel 2, 3, 5, 7
I
PB161
Pˇr´ıklad 2
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı
I
I
I
Na STDIN cele´ cˇ ´ıslo N, program kresl´ı trojuheln´ ık ze ´ znaku *“ ” ´ et ˇ samostatna´ funkce, ktera´ Vykreslen´ı bude provad bude m´ıt jako argument velikost. Napˇr.: N = 5
*
* *
* * *
* * * *
* * * * *
Pˇreklad
´ e´ Parov ´ ı programovan´
PB161
Pˇr´ıklad 3
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I
ˇ ´ Na STDIN ˇretezec, vyp´ısˇ e se pozpatku
I
ˇ velikost p´ısmen Upravte tak, aby zamenil
I
ˇ Upravte tak, aby bylo moˇzno ˇretezec zadat z ´ pˇr´ıkazove´ ˇradky
PB161
Pˇr´ıklad 4
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I
ˇ Na STDIN ˇretezec, vyp´ısˇ e poˇcty znaku˚
I
Upravte tak, aby nerozliˇsoval mezi mal´ymi a velk´ymi p´ısmeny
PB161
Pˇr´ıklad 5
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I
´ ˇ pole cˇ ´ısel Program vygeneruje nahodn e“ ” Program toto pole seˇrad´ı vzestupneˇ
I
Upravte ˇrazen´ı na sestupne´
I
Upravte tak, aby ˇradila samostatna´ funkce
I
PB161
PAUZA
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I
Pomodoro
I
GTD
PB161
Pˇr´ıklad 6
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I
Na STDIN cele´ cˇ ´ıslo
I
ˇ Program urˇc´ı zda je liche´ a zda je deliteln e´ 23
I
Upravte tak, aby na rozhodovala samostatna´ funkce
I
ˇ s´ı cˇ ´ıslo, Upravte tak, aby program naˇsel nejbliˇzsˇ ´ı vetˇ ˇ ktere´ je liche´ i deliteln e´
PB161
Pˇr´ıklad 7
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I
Na STDIN cele´ cˇ ´ıslo
I
´ ı exponent cˇ ´ısla neˇz dojde k Program urˇc´ı maximaln´ jeho pˇreteˇcen´ı v typu int
I
Upravte tak, aby naˇsel nejbliˇzsˇ ´ı menˇs´ı cˇ ´ıslo jeˇz lze ´ umocnit o 1 v´ıcekrat
PB161
Pˇr´ıklad 8
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
I
Na STDIN cele´ cˇ ´ıslo N
I
Program kresl´ı cˇ tverec otoˇcen´y o 45 deg o hraneˇ N
I
Napˇr.: N = 3 * * * * * * * *
´ e´ Parov ´ ı programovan´
PB161
Pˇr´ıklad 9
´ s Ruˇcka Lukaˇ ´ Uvod Prostˇred´ı Pˇreklad
´ e´ Parov ´ ı programovan´
I
Na STDIN url – napˇr.: http://www.muni.cz/index.html?jazyk=cesky&kdy=ted
I
´ 1. a 2. ˇradu ´ Izolujte a vypiˇste domenu (muni.cz)
I
Vypiˇste argumenty (jazyk=cesky a kdy=ted)