C++ za 90 minuta

1,968 views
1,828 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,968
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
47
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

C++ za 90 minuta

  1. 1. C++ za 90 minuta (možda malo manje) http://fizika.pmf.ni.ac.rs/mmilan 4. novembar 2011
  2. 2. Istorija <ul><li>C – 1970. god, Dennis Ritchie </li></ul><ul><li>C++ - nadogradnja C-a </li></ul><ul><li>Skoro svaki C program radi u C++ </li></ul><ul><li>C++ objektno orijentisan </li></ul><ul><li>Primena – aplikacije, sistem, nauka itd </li></ul>
  3. 3. C++ <ul><li>Jezik slobodnog formata </li></ul><ul><ul><li>Dodatni space i tab se ignorišu </li></ul></ul><ul><ul><li>Prazne linije – ignorišu </li></ul></ul><ul><ul><li>Kod je nije zavistan </li></ul></ul><ul><ul><li>Više naredbi u jednoj liniji </li></ul></ul><ul><ul><li>Jedna naredba u više linija </li></ul></ul>
  4. 4. Preporuka <ul><li>Na početku programa – zaglavlje </li></ul><ul><li>Imena promenljivih – neki smisao </li></ul><ul><li>Komentari – za promenljive, delove koda... </li></ul><ul><li>Prazne linije – razdvajaju blokove koda </li></ul>
  5. 5. Struktura programa <ul><li>/ * </li></ul><ul><li>Opis programa </li></ul><ul><li>*/ </li></ul><ul><li>#include direktive </li></ul><ul><li>int main() </li></ul><ul><li>{ </li></ul><ul><li>konstante </li></ul><ul><li>promenljive // komentar </li></ul><ul><li>radi nešto... </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>
  6. 6. #include <ul><li>#include <stdio.h> </li></ul><ul><ul><li>Standard Input and Output Library </li></ul></ul><ul><ul><li>Funkcije ulaz/izlaz ( printf, fprintf, scanf, fscanf, fopen, itd ) </li></ul></ul><ul><li>#include <math.h> </li></ul><ul><ul><li>Matematičke operacije </li></ul></ul><ul><ul><li>sin, cos, pow, sqrt, acos, itd </li></ul></ul><ul><li>#include “ moj_fajl .h&quot; </li></ul>
  7. 7. Promenljive <ul><li>Deklarisanje promenljivih: </li></ul><ul><ul><li>int a; </li></ul></ul><ul><ul><li>int b = 10 ; </li></ul></ul><ul><ul><li>int rezultat = a + b ; </li></ul></ul><ul><li>Globalne i lokalne </li></ul><ul><ul><li>Zavisi od mesta deklarisanja </li></ul></ul><ul><ul><li>U funkciji (unutar {...})– važi za tu funkciju -> lokalna </li></ul></ul><ul><ul><li>Globalna – pristupa bilo gde u kodu </li></ul></ul><ul><li>Moraju početi slovom ili _donjom crtom, ne smeju da sadrže navodnike, razmake i slične specijalne znake </li></ul><ul><li>Razlikuju mala i VELIKA slova </li></ul>
  8. 8. Tipovi podataka <ul><li>Različiti tipovi promenljivih koriste memoriju na različite načine </li></ul><ul><li>Deklraisanje – rezerviše memoriju </li></ul>
  9. 9. Izbor tipa podataka <ul><li>0.1234567890123456789012345678901234567890 </li></ul><ul><li>3. 141592 7410125732421875000000000000000000 float </li></ul><ul><li>3. 141592653589793 1159979634685441851615905 double </li></ul><ul><li>3. 141592653589793 2384626433832795028841971 Pi </li></ul>
  10. 10. Konstante <ul><li>Standardan (loš) način </li></ul><ul><ul><li>#define MAX 1 00 ; </li></ul></ul><ul><li>Bolji način </li></ul><ul><ul><li>const unsigned int N = 1 00 ; </li></ul></ul>
  11. 11. Operatori <ul><li>Aritmetički </li></ul><ul><ul><li>Dodela vrednosti: </li></ul></ul><ul><ul><ul><li>+=, *=, -=, /= </li></ul></ul></ul><ul><ul><li>Inkrement, dekrement </li></ul></ul><ul><ul><ul><li>++, -- </li></ul></ul></ul><ul><li>Logički </li></ul>X = 15 Y = 10 + X++; //Y=10+15 Y = 10 + ++X; //Y=10+16
  12. 12. Kontrola toka programa <ul><li>Uslovi </li></ul><ul><ul><li>If...else </li></ul></ul><ul><ul><li>Switch </li></ul></ul><ul><li>Petlje </li></ul><ul><ul><li>For </li></ul></ul><ul><ul><li>While </li></ul></ul><ul><ul><li>Do...while </li></ul></ul>
  13. 13. If ... else <ul><li>Uslovno grananje </li></ul><ul><li>if ( uslov ) </li></ul><ul><li>naredba </li></ul><ul><li>else if (drugi uslov) </li></ul><ul><li>naredba </li></ul><ul><li>else </li></ul><ul><li>naredba </li></ul><ul><li>Primer: </li></ul><ul><ul><li>if (n > 0) { </li></ul></ul><ul><ul><li>if (a > b) </li></ul></ul><ul><ul><li>z = a; </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>else </li></ul></ul><ul><ul><li>z = b; </li></ul></ul>
  14. 14. Switch <ul><li>switch ( promenljiva ) { </li></ul><ul><li>case mogucnost1 : </li></ul><ul><li>naredba ; </li></ul><ul><li>break; </li></ul><ul><li>case mogucnost2 : </li></ul><ul><li>naredba ; </li></ul><ul><li>break; </li></ul><ul><li>... </li></ul><ul><li>default: </li></ul><ul><li>naredbe ; </li></ul><ul><li>} </li></ul><ul><li>switch (x) { </li></ul><ul><li>case 1: </li></ul><ul><li>&quot;x je 1&quot;; </li></ul><ul><li>break; </li></ul><ul><li>case 2: </li></ul><ul><li>&quot;x je 2&quot;; </li></ul><ul><li>break; </li></ul><ul><li>default: </li></ul><ul><li>&quot;x je nepoznato&quot;; </li></ul><ul><li>} </li></ul><ul><li>* * * </li></ul><ul><li>if (x == 1) { </li></ul><ul><li>&quot;x je 1&quot;; </li></ul><ul><li>} </li></ul><ul><li>else if (x == 2) { </li></ul><ul><li>&quot;x je 2&quot;; </li></ul><ul><li>} </li></ul><ul><li>else { </li></ul><ul><li>&quot;x je nepoznato&quot;; </li></ul><ul><li>} </li></ul>
  15. 15. For petlja <ul><li>for ( start ; uslov ; promena vrednosti ) { </li></ul><ul><li>naredbe ; </li></ul><ul><li>} </li></ul><ul><li>Primer </li></ul><ul><ul><li>for (int i=10; i>0; i--) { </li></ul></ul><ul><ul><li>printf(“%d”, i ) ; </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>Rezultat:10,9,8,7,6,5,4,3,2, </li></ul>
  16. 16. While petlja <ul><li>Nepoznat broj ponavljanja </li></ul><ul><ul><li>while ( uslov ) { </li></ul></ul><ul><ul><li>naredbe ; </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>Primer: </li></ul><ul><ul><li>b roj = 1; </li></ul></ul><ul><ul><li>while (broj < 5) { </li></ul></ul><ul><ul><li>broj = broj + 1; // ili broj += 1; </li></ul></ul><ul><ul><li>} </li></ul></ul>
  17. 17. Do ... While petlja <ul><li>Isto kao while petlja, ali uslov je na kraju </li></ul><ul><ul><li>do { </li></ul></ul><ul><ul><li>naredbe; </li></ul></ul><ul><ul><li>} while ( uslov ); </li></ul></ul>
  18. 18. Break i Continue <ul><li>Break </li></ul><ul><ul><li>Prekida petlju </li></ul></ul><ul><ul><li>5 4 STOP </li></ul></ul><ul><li>Continue </li></ul><ul><ul><li>Preskače korak u petlji </li></ul></ul><ul><ul><li>5 4 STOP 2 1 </li></ul></ul><ul><li>Primer: </li></ul><ul><li>for (n = 5 ; n > 0; n--) { </li></ul><ul><li>if (n == 3) { </li></ul><ul><li>printf( “ STOP “ ) ; </li></ul><ul><li>break; // ili continue </li></ul><ul><li>} else </li></ul><ul><li> printf(“%dn”, n ) ; </li></ul><ul><li>} </li></ul>
  19. 19. Funkcije <ul><li>Definicija: </li></ul><ul><ul><li>tip ime_funkcije (lista_parametara) { </li></ul></ul><ul><ul><li>.... telo_funkcije(blok_naredbi).... </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>Primer: </li></ul><ul><ul><li>int zbir (int a, int b) { </li></ul></ul><ul><ul><li>int r; </li></ul></ul><ul><ul><li>r = a + b; </li></ul></ul><ul><ul><li>return (r); </li></ul></ul><ul><ul><li>} </li></ul></ul>
  20. 20. Opseg važenja
  21. 21. Funkcije u kodu <ul><li>int main() { ... } </li></ul><ul><li>Deklarisanje funkcija </li></ul><ul><ul><li>Pre main() </li></ul></ul><ul><ul><ul><li>tip ime ( arg _ tip 1, arg_t i p2, ...); </li></ul></ul></ul><ul><li>Može i cela funkcija pre main() </li></ul>
  22. 22. Nizovi <ul><li>Definicija: </li></ul><ul><ul><li>tip ime [broj elemenata] </li></ul></ul><ul><li>Primer: </li></ul><ul><ul><li>int A[20]; </li></ul></ul><ul><li>Vrednosti članova: </li></ul><ul><ul><li>int broj [] = { 16, 2, 77, 40, 12071 }; </li></ul></ul><ul><ul><li>broj[3] = 10; </li></ul></ul><ul><li>Višedimenzionalni </li></ul><ul><ul><li>int matrica [ 5 ][5]; </li></ul></ul><ul><li>Niz – argument funkcije: </li></ul><ul><ul><li>int funkcija (int niz []) </li></ul></ul><ul><ul><li>int mojniz [40]; </li></ul></ul><ul><ul><li>funkcija ( mojniz ); </li></ul></ul>
  23. 23. Strukture <ul><li>Grupa podataka označena jednim imenom </li></ul><ul><ul><li>struct ime_strukture { type1 member_name1; type2 member_name2; type3 member_name3; ... </li></ul></ul><ul><ul><li>} ime_objekta ; </li></ul></ul><ul><li>Primer : </li></ul><ul><ul><li>struct kretanje { float brzina ; float polozaj ; bloat ubrzanje ; ... </li></ul></ul><ul><ul><li>} automobil, bicikla ; </li></ul></ul><ul><li>Korišćenje: </li></ul><ul><ul><li>v = automobil.brzina </li></ul></ul><ul><ul><li>automobil.polozaj = x; </li></ul></ul>
  24. 24. Štampanje podataka <ul><li>Naredba printf ili fprintf </li></ul><ul><li>Format: </li></ul><ul><ul><li>printf(„Tekst %d još teksta %f n&quot;, A, B); </li></ul></ul>%[širina].[preciznost]f
  25. 25. Snimanje u fajl <ul><li>FILE * ime_fajla ; </li></ul><ul><li>ime_fajla = fopen (“ ime.tip &quot;,&quot;w&quot;) </li></ul><ul><li>fprintf(“...”, ...) </li></ul><ul><li>fclose( ime_fajla ) </li></ul>
  26. 26. Zadaci <ul><li>Računanje faktorijela </li></ul><ul><li>Računanje sume članova niza </li></ul><ul><li>Računanje rastojanja između dve tačke </li></ul><ul><li>Štampanje prostih brojeva manjih od N </li></ul>
  27. 27. Zadatak 1 <ul><li>Napisati funkciju za izračunavanje n! </li></ul><ul><li>Test primer za glavni program </li></ul><ul><ul><li>n = 5 </li></ul></ul><ul><ul><li>n! =125 </li></ul></ul>
  28. 28. Zadatak 2 <ul><li>Funkcija za izra č unavanje sume č lanova niza od N elemenata. </li></ul><ul><li>Test primer za glavni program: </li></ul><ul><ul><li>N = 5 </li></ul></ul><ul><ul><li>a(0) = 4, a(1) = 2.5, a(2) = 17, a(3) = 21, a(4) = 7 </li></ul></ul><ul><ul><li>SUMA = 51.5 </li></ul></ul>
  29. 29. Zadatak 3 <ul><li>Funkcija za izra č unavanje rastojanja izme đ u dve ta č ke. Koordinate t a č aka date su kao: </li></ul><ul><ul><li>A.x, A.y, A.z i B.x, B.y, B.z </li></ul></ul><ul><li>Test primer za glavni program: </li></ul><ul><ul><li>A = (3, 5, 8) i B = (6, 2, 1) </li></ul></ul>
  30. 30. Zadatak 4 <ul><li>Funkcij u ili program koji š tampa sve proste brojeve manje od N. </li></ul><ul><li>Test primer: </li></ul><ul><ul><li>N = 35 </li></ul></ul><ul><ul><li>Razmisliti o (vremenski) najefikasnijem rešenju </li></ul></ul>

×