Upload
milan-milosevic
View
343
Download
5
Embed Size (px)
DESCRIPTION
Nova verzija (2013. godina)
Citation preview
C++ za 90 minuta(možda malo manje)
http://fizika.pmf.ni.ac.rs/mmilan
4. novembar 2013 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 Dodatni space i tab se ignorišu Prazne linije – ignorišu Više naredbi u jednoj liniji Jedna naredba u više linija
Preporuka
Na početku programa – zaglavlje Imena promenljivih – neki smisao Komentari – za promenljive, delove koda... Prazne linije – razdvajaju blokove koda
Struktura programa
/* Opis programa*/#include direktiveint main(){
konstantepromenljive // komentarradi nešto...return 0;
}
#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"
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
Tipovi podataka
Različiti tipovi promenljivih koriste memoriju na različite načine
Deklraisanje – rezerviše memoriju
Izbor tipa podataka
0.12345678901234567890123456789012345678900.1234567890123456789012345678901234567890
3.1415927410125732421875000000000000000000 float
3.1415926535897931159979634685441851615905 double
3.1415926535897932384626433832795028841971 Pi
Konstante
Standardan (loš) način#define MAX 100;
Bolji načinconst unsigned int N = 100;
Operatori
Aritmetički Dodela vrednosti:
+=, *=, -=, /=
Inkrement, dekrement ++, -- LogičkiX = 15
Y = 10 + X++; //Y=10+15Y = 10 + ++X; //Y=10+16
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;
}
Primerfor (int i=10; i>0; i--) {
printf(“%d”, i);
}
Rezultat:10,9,8,7,6,5,4,3,2,1
While petlja
Nepoznat broj ponavljanjawhile (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 krajudo {
naredbe;
} while (uslov);
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);
}
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 važenja
Funkcije u kodu
int main() { ... }
Deklarisanje funkcija Pre main()
tip ime ( arg_tip1, arg_tip2, ...);
Može i cela funkcija pre main()
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);
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;
Štampanje podataka
Naredba printf ili fprintf Format:
printf(„Tekst %d još teksta %f \n", A, B);
%[širina].[preciznost]f
Snimanje u fajl
FILE * ime_fajla; ime_fajla = fopen (“ime.tip","w") fprintf(“...”, ...) fclose(ime_fajla)
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
Zadatak 1
Napisati funkciju za izračunavanje n!
Test primer za glavni program n = 5 n! =120
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
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)
Zadatak 4
Funkciju ili program koji štampa sve proste brojeve manje od N.
Test primer: N = 35 Razmisliti o (vremenski) najefikasnijem rešenju