30
C++ za 90 minuta (možda malo manje) http://fizika.pmf.ni.ac.rs/mmilan 4. novembar 2013 2011

C++ za 90 minuta

Embed Size (px)

DESCRIPTION

Nova verzija (2013. godina)

Citation preview

Page 1: C++ za 90 minuta

C++ za 90 minuta(možda malo manje)

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

4. novembar 2013 2011

Page 2: C++ za 90 minuta

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

Page 3: C++ za 90 minuta

C++

Jezik slobodnog formata Dodatni space i tab se ignorišu Prazne linije – ignorišu Više naredbi u jednoj liniji Jedna naredba u više linija

Page 4: C++ za 90 minuta

Preporuka

Na početku programa – zaglavlje Imena promenljivih – neki smisao Komentari – za promenljive, delove koda... Prazne linije – razdvajaju blokove koda

Page 5: C++ za 90 minuta

Struktura programa

/* Opis programa*/#include direktiveint main(){

konstantepromenljive // komentarradi nešto...return 0;

}

Page 6: C++ za 90 minuta

#include

#include <stdio.h> Standard Input and Output Library Funkcije ulaz/izlaz (printf, fprintf, scanf, fscanf, fopen,

itd)

#include <math.h> Matematičke operacije sin, cos, pow, sqrt, acos, itd

#include “moj_fajl.h"

Page 7: C++ za 90 minuta

Promenljive

Deklarisanje promenljivih:int a;

int b = 10;

int rezultat = a + b;

Globalne i lokalne Zavisi od mesta deklarisanja U funkciji (unutar {...})– važi za tu funkciju -> lokalna Globalna – pristupa bilo gde u kodu

Moraju početi slovom ili _donjom crtom, ne smeju da sadrže navodnike, razmake i slične specijalne znake

Razlikuju mala i VELIKA slova

Page 8: C++ za 90 minuta

Tipovi podataka

Različiti tipovi promenljivih koriste memoriju na različite načine

Deklraisanje – rezerviše memoriju

Page 9: C++ za 90 minuta

Izbor tipa podataka

0.12345678901234567890123456789012345678900.1234567890123456789012345678901234567890

3.1415927410125732421875000000000000000000 float

3.1415926535897931159979634685441851615905 double

3.1415926535897932384626433832795028841971 Pi

Page 10: C++ za 90 minuta

Konstante

Standardan (loš) način#define MAX 100;

Bolji načinconst unsigned int N = 100;

Page 11: C++ za 90 minuta

Operatori

Aritmetički Dodela vrednosti:

+=, *=, -=, /=

Inkrement, dekrement ++, -- LogičkiX = 15

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

Page 12: C++ za 90 minuta

Kontrola toka programa

Uslovi If...else Switch

Petlje For While Do...while

Page 13: C++ za 90 minuta

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;

Page 14: C++ za 90 minuta

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";}

Page 15: C++ za 90 minuta

For petlja

for (start; uslov; promena vrednosti) {

naredbe;

}

Primerfor (int i=10; i>0; i--) {

printf(“%d”, i);

}

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

Page 16: C++ za 90 minuta

While petlja

Nepoznat broj ponavljanjawhile (uslov) {

naredbe;}

Primer:broj = 1;while (broj < 5) {

broj = broj + 1; // ili broj += 1;}

Page 17: C++ za 90 minuta

Do ... While petlja

Isto kao while petlja, ali uslov je na krajudo {

naredbe;

} while (uslov);

Page 18: C++ za 90 minuta

Break i Continue

Break Prekida petlju 5 4 STOP

Continue Preskače korak u petlji 5 4 STOP 2 1

Primer:for (n = 5; n > 0; n--) {

if (n == 3) {printf(“STOP“);break; // ili continue

}printf(“%d\n”, n);

}

Page 19: C++ za 90 minuta

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);

}

Page 20: C++ za 90 minuta

Opseg važenja

Page 21: C++ za 90 minuta

Funkcije u kodu

int main() { ... }

Deklarisanje funkcija Pre main()

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

Može i cela funkcija pre main()

Page 22: C++ za 90 minuta

Nizovi

Definicija:tip ime [broj elemenata]

Primer:int A[20];

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

Višedimenzionalniint matrica [5][5];

• Niz – argument funkcije:

int funkcija (int niz[])

int mojniz [40];

funkcija (mojniz);

Page 23: C++ za 90 minuta

Strukture

Grupa podataka označena jednim imenomstruct ime_strukture {

type1 member_name1;type2 member_name2;type3 member_name3;...

} ime_objekta;

Primer:

struct kretanje {float brzina;float polozaj;bloat ubrzanje;...

} automobil, bicikla;

Korišćenje:v = automobil.brzina

automobil.polozaj = x;

Page 24: C++ za 90 minuta

Štampanje podataka

Naredba printf ili fprintf Format:

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

%[širina].[preciznost]f

Page 25: C++ za 90 minuta

Snimanje u fajl

FILE * ime_fajla; ime_fajla = fopen (“ime.tip","w") fprintf(“...”, ...) fclose(ime_fajla)

Page 26: C++ za 90 minuta

Zadaci

1. Računanje faktorijela

2. Računanje sume članova niza

3. Računanje rastojanja između dve tačke

4. Štampanje prostih brojeva manjih od N

Page 27: C++ za 90 minuta

Zadatak 1

Napisati funkciju za izračunavanje n!

Test primer za glavni program n = 5 n! =120

Page 28: C++ za 90 minuta

Zadatak 2

Funkcija za izračunavanje 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

Page 29: C++ za 90 minuta

Zadatak 3

Funkcija za izračunavanje rastojanja između dve tačke. Koordinate tačaka 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)

Page 30: C++ za 90 minuta

Zadatak 4

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

Test primer: N = 35 Razmisliti o (vremenski) najefikasnijem rešenju