Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 30

C++ za 90 minuta

(moda malo manje)

http://fizika.pmf.ni.ac.rs/mmilan

4. novembar 2011

Istorija
C 1970. god, Dennis Ritchie C++ - nadogradnja C-a Skoro svaki C program radi u C++ C++ objektno orijentisan Primena aplikacije, sistem, nauka itd

C++

Jezik slobodnog formata


space i tab se ignoriu Prazne linije ignoriu Kod je nije zavistan Vie naredbi u jednoj liniji Jedna naredba u vie linija
Dodatni

Preporuka
Na poetku programa zaglavlje Imena promenljivih neki smisao Komentari za promenljive, delove koda... Prazne linije razdvajaju blokove koda

Struktura programa
/* Opis programa */ #include direktive int main() { konstante promenljive radi neto... return 0; }

// komentar

#include

#include <stdio.h>
Standard

Input and Output Library Funkcije ulaz/izlaz (printf, fprintf, scanf, fscanf, fopen, itd)

#include <math.h>
Matematike

operacije sin, cos, pow, sqrt, acos, itd

#include moj_fajl.h"

Promenljive

Deklarisanje promenljivih:
int a; int b = 10; int rezultat = a + b;

Globalne i lokalne

Zavisi od mesta deklarisanja U funkciji (unutar {...}) vai za tu funkciju -> lokalna Globalna pristupa bilo gde u kodu

Moraju poeti slovom ili _donjom crtom, ne smeju da sadre navodnike, razmake i sline specijalne znake Razlikuju mala i VELIKA slova

Tipovi podataka

Razliiti tipovi promenljivih koriste memoriju na razliite naine Deklraisanje rezervie memoriju

Izbor tipa podataka


0.1234567890123456789012345678901234567890 3.1415927410125732421875000000000000000000 float 3.1415926535897931159979634685441851615905 double 3.1415926535897932384626433832795028841971 Pi

Konstante

Standardan (lo) nain


#define MAX 100;

Bolji nain
const unsigned int N = 100;

Operatori

Aritmetiki
Dodela

vrednosti: dekrement

+=, *=, -=, /=


++, --

Inkrement,

X = 15 Y = 10 + X++; //Y=10+15 Y = 10 + ++X; //Y=10+16

Logiki

Kontrola toka programa

Uslovi
If...else Switch

Petlje
For While Do...while

If ... else

Uslovno grananje if (uslov) naredba else if (drugi uslov) naredba else naredba

Primer: if (n > 0) { if (a > b) z = a; } else z = b;

Switch
switch (promenljiva) {
case mogucnost1: naredba; break; case mogucnost2: naredba; break; ... default: naredbe; }
switch (x) { case 1: "x je 1"; break; case 2: "x je 2"; break; default: "x je nepoznato"; } *** if (x == 1) { "x je 1"; } else if (x == 2) { "x je 2"; } else { "x je nepoznato"; }

For petlja
for (start; uslov; promena vrednosti) { naredbe; }

Primer
for (int i=10; i>0; i--) { printf(%d, i); }

Rezultat:10,9,8,7,6,5,4,3,2,

While petlja

Nepoznat broj ponavljanja


while (uslov) { naredbe; }

Primer:
broj = 1; while (broj < 5) { broj = broj + 1; // ili broj += 1; }

Do ... While petlja

Isto kao while petlja, ali uslov je na kraju


do { naredbe; } while (uslov);

Break i Continue

Break
Prekida

Primer:

petlju 5 4 STOP

Continue
Preskae

korak u petlji 5 4 STOP 2 1

for (n = 5; n > 0; n--) { if (n == 3) { printf(STOP); break; // ili continue } else printf(%d\n, n); }

Funkcije

Definicija:
tip ime_funkcije (lista_parametara) { .... telo_funkcije(blok_naredbi).... }

Primer:
int zbir (int a, int b) { int r; r = a + b; return (r); }

Opseg vaenja

Funkcije u kodu

int main() { ... }


Deklarisanje funkcija
Pre

main()

tip ime ( arg_tip1, arg_tip2, ...);

Moe i cela funkcija pre main()

Nizovi

Definicija:
tip ime [broj elemenata]
Niz argument funkcije: int funkcija (int niz[]) int mojniz [40]; funkcija (mojniz);

Primer:
int A[20];

Vrednosti lanova:

int broj[] = { 16, 2, 77, 40, 12071 }; broj[3] = 10;

Viedimenzionalni
int matrica [5][5];

Strukture

Grupa podataka oznaena jednim imenom


struct ime_strukture { type1 member_name1; type2 member_name2; type3 member_name3; ... } ime_objekta;

Korienje:
v = automobil.brzina automobil.polozaj = x;

Primer:
struct kretanje { float brzina; float polozaj; bloat ubrzanje; ... } automobil, bicikla;

tampanje podataka
Naredba printf ili fprintf Format:

%[irina].[preciznost]f

printf(Tekst %d jo teksta %f \n", A, B);

Snimanje u fajl
FILE * ime_fajla; ime_fajla = fopen (ime.tip","w") fprintf(..., ...) fclose(ime_fajla)

Zadaci
1.
2. 3. 4.

Raunanje faktorijela Raunanje sume lanova niza Raunanje rastojanja izmeu dve take tampanje prostih brojeva manjih od N

Zadatak 1

Napisati funkciju za izraunavanje n!


Test primer za glavni program
n

=5 n! =125

Zadatak 2

Funkcija za izraunavanje sume lanova niza od N elemenata.


Test primer za glavni program:
N

=5 a(0) = 4, a(1) = 2.5, a(2) = 17, a(3) = 21, a(4) = 7 SUMA = 51.5

Zadatak 3

Funkcija za izraunavanje rastojanja izmeu dve take. Koordinate taaka date su kao:
A.x,

A.y, A.z i B.x, B.y, B.z

Test primer za glavni program:


A

= (3, 5, 8) i B = (6, 2, 1)

Zadatak 4

Funkciju ili program koji tampa sve proste brojeve manje od N.


Test primer:
N

= 35 Razmisliti o (vremenski) najefikasnijem reenju

You might also like