• No results found

Programiranje

N/A
N/A
Protected

Academic year: 2021

Share "Programiranje"

Copied!
65
0
0

Loading.... (view fulltext now)

Full text

(1)

Fizicki Fakultet

Beograd

Smer: Fizika i informatika

Predmet: Programiranje I (Fond casova 2+2 nedeljno, I godina II

semestar)

Predmetni nastavnik: Docent dr Goran Poparic

Plan predavanja:

1. Shema rada racunara. Organizacija procesora. Mašinski jezik,

asembleri, simbolicki jezici. Proceduralno i objektno orjentisano

programiranje. Kompajleri, linkeri.

2. Tipovi podataka: int, float, long, double, char. Elementarni programi.

Pretprocesor. Editor. Kompajler. Linker.

3. Sintaksa i semantika. Algoritmi. Simbolicki prikaz elementarnih

naredbi deklaracije, ulaza, izlaza naredbi grananja. Simbolicki prikaz

naredbi iteracije.

4. Operatori dodeljivanja. Aritmeticki i logicki operatori. Prioritet

operatora. Elementarna programska grananja. If else grananje.

Primeri.

5. Blok naredbe. Naredbe iteracije. While i Do while iteracije. Naredbe

iteracije sa For petljama.

6. Switch naredbe. Nizovi, njihova deklaracija i inicijalizacija.

Višedimenzionalni nizovi.

7. Funkcije. Prototip, deklaracija i definicija i upotreba. Globalne i

lokalne promenljive. Pozivanje funkcije po vrednosti. Polimorfizam

funkcija. Rekurzije.

8. Pointeri. Deklaracija i upotreba. Pozivanje funkcija po referenci preko

pointera.

9. Reference. Deklaracija i upotreba. Pozivanje funkcija po referenci

preko referenci.

10. Stek i slobodni prostor memorije. Alociranje memorije. Upotreba

slobodnog prostora. Naredbe NEW, DELETE.

11. Elementarne klase. Deklaracija, definicija. i upotreba. Kreiranje

objekata i upotreba.

12. Klase.Kljucne reci public:, private:, i protected:. Konstuktori i

destruktor.

(2)

Konstruktor za kopiranje. Metodi pristupa. Enkapsulacija podataka.

Metodi klasa. Preopterecivanje metoda (overload).

13. Klase. Bazna i izvedena klasa. Hijerarhija i nasledivanje. Izvedena

klasa. Preskakanje metoda bazne klase (override). Eksplicitno

pozivanje metoda bazne klase.

14. Klase. Virtuelni metodi. Polimorfizam.

15. Upisivanje u fajl. Modovi pristupa. Stringovi. Elementarne funkcije za

rad sa stringovima. Generator slucajnih brojeva. Osobine i test

validnosti. Elementi matematickog modeliranja. Primeri.

(3)

Spisak ispitnih pitanja:

1. Proceduralno programiranje.

2. Objektno orjentisano programiranje.

3. Kompajler.

4. Linker.

5. Pretprocesor.

6. Sintaksa i semantika.

7. Algoritmi. Simbolicki prikaz elementarnih naredbi deklaracije, ulaza,

izlaza naredbi grananja.

8. Algoritmi. Simbolicki prikaz naredbi iteracije.

9. Tipovi podataka: int, float, long, double, char. Njihov opseg.

10. Operatori dodeljivanja. Aritmeticki i logicki operatori. Prioritet

operatora.

11. Elementarna programska grananja. If else grananje. Primeri.

12. Blok naredbe.

13. Naredbe iteracije. While i Do while iteracije.

14. Naredbe iteracije. For petlje.

15. Switch naredbe. Naredbe break i continue.

16. Nizovi, njihova deklaracija i inicijalizacija. Višedimenzionalni nizovi.

17. Funkcije. Prototip, deklaracija, definicija i upotreba.

18. Globalne i lokalne promenljive. Pozivanje funkcije po vrednosti.

19. Polimorfizam funkcija.

20. Rekurzije.

21. Pointeri. Deklaracija i upotreba.

22. Pozivanje funkcija po referenci preko pointera.

23. Reference. Deklaracija i upotreba.

24. Pozivanje funkcija po referenci preko referenci.

25. Stek i slobodni prostor memorije. Alociranje memorije.

26. Upotreba slobodnog prostora. Naredbe NEW, DELETE.

27. Elementarne klase. Deklaracija, definicija. i upotreba.

28. Elementarne klase. Kreiranje objekata i upotreba.

29. Klase.Kljucne reci public:, private:, i protected:.

30. Klase. Konstuktori i destruktor.

31. Klase. Konstuktor za kopiranje.

32. Klase. Metodi pristupa. Enkapsulacija podataka.

33. Klase. Metodi klasa. Preopterecivanje metoda (overload).

34. Klase. Bazna i izvedena klasa. Hijerarhija i nasledivanje.

35. Klase. Izvedena klasa. Preskakanje metoda bazne klase (override).

36. Klase. Eksplicitno pozivanje metoda bazne klase.

(4)

38. Klase. Polimorfizam.

39. Upisivanje u fajl. Modovi pristupa.

40. Stringovi. Elementarne funkcije za rad sa stringovima.

41. Generator slucajnih brojeva. Osobine i test validnosti.

42. Elementi matematickog modeliranja. Primeri.

Preporucena literatura: Jesse Liberty C++ (sedmo izdanje),

Pitanja su pokrivena sa prvih 12 poglavlja knjige.

(5)

Zbirka programa radenih na vežbama iz predmeta Programiranje I

//Programiranje I

//Vezbe: Program broj 1

//Program za izracunavanje modula broja //demonstrira if grananje

#include <iostream.h> int main()

{

float a;

cout<<"Ovo je program za izracunavanje modula nekog broja\n\n"; cout<<"Unesite broj a:";

cin>>a; if(a<0) a=-a;

cout<<"\nVrednost modula broja a:"<<a; return 0;

(6)

//Programiranje I

//Vezbe: Program broj 2

//Program za izracunavanje korena nekog broja //demonstrira if else grananje

#include <iostream.h> #include <math.h> int main() { float a; float b;

cout<<"Ovo je program za izracunavanje korena nekog broja\n"; cout<<"Unesite broj a:";

cin>>a; if(a<0) {

b=-a; b=sqrt(b);

cout<<"\nVrednost korena broja a:"<<a<<" je: i*"<<b; }

else {

b=a;

b=sqrt(b);

cout<<"\nVrednost korena broja a:"<<a<<" je: "<<b; }

return 0; }

(7)

//Programiranje I

//Vezbe: Program broj 3

//Program za izracunavanje 1/moduo(a) //demonstrira dvostruko if else grananje #include <iostream.h>

int main() {

float a; float b;

cout<<"Ovo je program za izracunavanje 1/modua(a)\n"; cout<<"Unesite broj a:";

cin>>a; if(a<0) {

b=1/(-a);

cout<<"\nVrednost funkcije je:"<<b; }

else {

if(a==0)

cout<<"Funkcija nije definisana!"; else

{

b=1/a;

cout<<"\nVrednost funkcije je:"<<b; }

} return 0; }

(8)

//Programiranje I

//Vezbe: Program broj 4

//Program za izracunavanje faktorijela celobrojne vrednosti n //demonstrira naredbu iteracije while

//ekvivalentno moze da se resi i preko for petlje #include <iostream.h>

int main() {

int n,m; int fakt=1;

cout<<"Ovo je za izracunavanje faktorijela celobrojne vrednosti n\n";

cout<<"\nUnesite ceo pozitivan broj n:"; cin>>n; if (!(n<0)) { m=n; while(m>0) { fakt=fakt*m; m-=1; }

cout<<"\nFaktorijel broja n je n!:"<<fakt; }

else

cout<<"\nUneli ste negativan broj"; return 0;

(9)

//Programiranje I

//Vezbe: Program broj 5

//Program za izracunavanje maksimuma 3 broja a,b,c //demonstrira visestruko if else grananje

#include <iostream.h> int main()

{

float a,b,c; float max,min;

cout<<"Ovo je program za izracunavanje maksimuma 3 broja a,b,c\n";

cout<<"\nUnesite broj a:"; cin>>a; cout<<"\nUnesite broj b:"; cin>>b; cout<<"\nUnesite broj c:"; cin>>c; if(a<b) { min=a; max=b; if(b<c) max=c; else if(c<a) min=c; } else { min=b; max=a; if(c<b) min=c; else if(a<c) max=c; }

cout<<"\nMaksimalna vrednost brojeva je:"<<max; cout<<"\nMinimalna vrednost brojeva je:"<<min; return 0;

(10)

//Programiranje I

//Vezbe: Program broj 6

//Program za ispitivanje da li je dati broj prost //demonstrira naredbu iteracije while

//ekvivalentno moze da se resi i preko for petlje #include <iostream.h>

int main() {

int n,m,p;

bool prost=true;

cout<<"Ovo je program za ispitivanje da li je dati broj prost\n";

cout<<"\nUnesite ceo pozitivan broj n:"; cin>>n; if (!(n<=0)) { m=2; while(m<n) { p=n%m; if(p==0) { prost=false; break; } m+=1; } if(prost) {

cout<<"\nBroj: "<<n<<" je prost broj:"; }

else {

cout<<"\nBroj: "<<n<<" nije prost broj:"; }

} else

cout<<"\nNiste uneli pozitivan broj veci od nule"; return 0;

(11)

//Programiranje I

//Vezbe: Program broj 7

//Program za izracunavanje sume a(n)=1*2+...+n*(n+1) //demonstrira naredbu iteracije do while

//ekvivalentno moze da se resi i preko for petlje // Rezultat je: a(n)=n*(n+1)*(n+2)/3

#include <iostream.h> int main()

{

int n,m,a;

cout<<"Ovo je program za za izracunavanje sume a(n)=1*2+...+n*(n+1)\n";

cout<<"\nUnesite ceo pozitivan broj n:"; cin>>n; m=0; a=0; do { m+=1; a+=m*(m+1); } while(m<n);

cout<<"Vrednost sume a("<<n<<")="<<a; return 0;

(12)

//Programiranje I

//Vezbe: Program broj 8

//Program za izracunavanje minimuma i maksimuma niza a(i) //demonstrira upotrebu nizova i for petlje

#include <iostream.h> int main()

{

int i,min,max; int a[100],n;

cout<<"Ovo je program za minimuma i maksimuma niza a(i)"; cout<<"\nUnesite broj clanova niza n:";

cin>>n;

cout<<"\nUnesite clanove niza:\n"; for(i=0;i<n;i++) { cout<<"a("<<i+1<<")="; cin>>a[i]; } min=a[0]; max=a[0]; for(i=1;i<n;i++) { if(a[i]<min) min=a[i]; if(a[i]>max) max=a[i]; }

cout<<"\nMaksimalni clan niza:"<<max; cout<<"\nMinimalni clan niza:"<<min; return 0;

(13)

//Programiranje I

//Vezbe: Program broj 9

//Program za uredjenje niza po velicini njegovih elemenata a(i) //demonstrira upotrebu nizova i for petlje

//metoda uredjenja je najprostija tzv. "direktno odabiranje" #include <iostream.h>

int main() {

int i,j,min,index,temp; int a[100],n;

cout<<"Ovo je program za uredjenje niza u rastuci a(i)"; cout<<"\nUnesite broj clanova niza n:";

cin>>n;

cout<<"\nUnesite clanove niza:\n"; for(i=0;i<n;i++) { cout<<"a("<<i+1<<")="; cin>>a[i]; } for(j=0;j<n;j++) { min=a[j]; for(i=j;i<n;i++) { if(a[i]<min) { min=a[i]; index=i; } } if (min<a[j]) { temp=a[j]; a[j]=a[index]; a[index]=temp; } }

cout<<"Rastuci niz je:\n"; for(i=0;i<n;i++) { cout<<"a("<<i+1<<")="<<a[i]<<"\n"; } return 0; }

(14)

//Programiranje I

//Vezbe: Program broj 10

//Program za odredjivanje preseka dva niza a(i) i b(i) //demonstrira upotrebu nizova i for petlje

#include <iostream.h> int main()

{

int i,j,min,index,temp;

int a[100],b[100],c[100],n,m;

cout<<"Ovo je program za odredjivanje preseka dva niza a(i) i b(i)";

cout<<"\nUnesite broj clanova prvog niza n:"; cin>>n;

cout<<"\nUnesite clanove prvog niza:\n"; for(i=0;i<n;i++)

{

cout<<"a("<<i+1<<")="; cin>>a[i];

}

cout<<"\nUnesite broj clanova drugog m:"; cin>>m;

cout<<"\nUnesite clanove drugog niza:\n"; for(i=0;i<m;i++)

{

cout<<"b("<<i+1<<")="; cin>>b[i];

}

//inicijalizacija kontrolnog niza preseka dva niza for(i=0;i<n;i++) { c[i]=0; } for(i=0;i<n;i++) { for(j=0;j<m;j++) { if(a[i]==b[j]) c[i]=1; } }

cout<<"Niz presek nizova a[i] i b[j] je:\n"; for(i=0;i<n;i++)

{

if(c[i]!=0)

cout<<"a presek b:"<<a[i]<<"\n"; }

return 0; }

(15)
(16)

//Programiranje I

//Vezbe: Program broj 11

//Program za izracunavanje sume geometrijskog niza //demonstrira upotrebu funkcije

#include <iostream.h>

float stepen(float a, int n); int main() { float a,q; int n; int i; float s=0;

cout<<"Ovo je program za izracunavanje sume geometrijskog niza";

cout<<"\nUnesite prvi clan niza a1:"; cin>>a;

cout<<"Unesite kolicnik niza q:"; cin>>q;

cout<<"Unesite broj clanova niza:"; cin>>n;

for(i=0;i<=n-1;i++) {

s+=a*stepen(q,i); }

cout<<"Vrednost sume je:"<<s; return 0;

}

float stepen(float a, int n) { int i; float b=1; for(i=1;i<=n;i++) { b*=a; } return b; }

(17)

//Programiranje I

//Vezbe: Program broj 12

//Izracunavanje binomnog koeficijena (n k) = n!/(k!(n-k)!) //Demonstrira poyivanje funkcije unutar druge funkcije #include <iostream.h>

float faktorijel(int n); float binom(int n, int k); int main()

{

int i; int n;

cout<<"Ovo je program za izracunavanje binomnih koeficijenata (n k)"; cout<<"\nUnesite n:"; cin>>n; for(i=0;i<=n;i++) { cout<<"\n";

cout<<"Vrednost binomnog koeficijena ("<<n<<" "<<i<<") je:"<<binom(n,i)<<endl;

} return 0; }

float binom(int n, int k) { float b; b=faktorijel(n); b=b/faktorijel(k); b=b/faktorijel(n-k); return b; } float faktorijel(int n) { int i; float f=1; for(i=1;i<=n;i++) { f*=i; } return f; }

(18)

//Programiranje I

//Vezbe: Program broj 13

//Program sa menijem koji izracunava: // 1) Mnozenje matrice skalarom // 2) Zbir dve matrice

// 3) Proizvod dve matrice #include <iostream.h> void skalar(); void sabiranje(); void mnozenje(); int main() { int index; do { cout<<"\nMeni:";

cout<<"\n1 - Mnozenje matrice skalarom:"; cout<<"\n2 - Sabiranje matrica:";

cout<<"\n3 - Mnozenje matrica:"; cout<<"\n4 - izlaz";

cout<<"\nUnesite zeljeni izbor:"; cin>>index; switch(index) { case 1:skalar();break; case 2:sabiranje();break; case 3:mnozenje();break;

case 4:cout<<"kraj programa";break; default:cout<<"Nedefinisan izbor!"; } } while(index!=4); return 0; } void skalar() { int i,j,n,m; float a[20][20]; float scalar;

cout<<"\nMnozenje matrice skalarom:"; // Unos matrice

cout<<"\nUnesite broj redova matrice n=";cin >> n; cout<<"\nUnesite broj kolona matrice m=";cin >> m; for(i=0;i<=n-1;++i)

(19)

{

for(j=0;j<=m-1;++j) {

cout<<"\nUnesi element matrice a(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")="; cin >> a[i][j]; } } //unos skalara cout<<"\nUnesi skalar="; cin >> scalar; //mnozenje for(i=0;i<=n-1;++i) { for(j=0;j<=m-1;++j) { a[i][j]=a[i][j]*scalar; } } // Stampanje matrice for(i=0;i<=n-1;++i) { for(j=0;j<=m-1;++j) { cout<<"\nElement matrice a(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")="; cout<<a[i][j]; } } } void sabiranje() { int i,j; int n,m; float a[20][20]; float b[20][20]; float c[20][20]; cout<<"\nSabiranje matrica:"; // Unos matrica

cout<<"\nUnesite broj redova matrica n=";cin >> n; cout<<"\nUnesite broj kolona matrica m=";cin >> m; for(i=0;i<=n-1;++i)

{

for(j=0;j<=m-1;++j) {

cout<<"\nUnesi element matrice a(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")=";

cin >> a[i][j]; }

}

(20)

{

for(j=0;j<=m-1;++j) {

cout<<"\nUnesi element matrice b(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")="; cin >> b[i][j]; } } //Inicijalizacija for(i=0;i<=n-1;++i) { for(j=0;j<=m-1;++j) { c[i][j]=0.; } } //Sabiranje for(i=0;i<=n-1;++i) { for(j=0;j<=m-1;++j) { c[i][j]=a[i][j]+b[i][j]; } } // Stampanje matrice for(i=0;i<=n-1;++i) { for(j=0;j<=m-1;++j) { cout<<"\nElement matrice c(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")="; cout<<c[i][j]; } } } void mnozenje() { int i,j,k; int n,m,p,q; float a[20][20]; float b[20][20]; float c[20][20]; cout<<"\nMnozenje matrica:"; // Unos matrica

cout<<"\nUnesite broj redova prve matrica n=";cin >> n; cout<<"\nUnesite broj kolona prve matrica m=";cin >> m; cout<<"\nUnesite broj redova druge matrica p=";cin >> p; cout<<"\nUnesite broj kolona druge matrica q=";cin >> q; if(m==p)

{

for(i=0;i<=n-1;++i) {

(21)

for(j=0;j<=m-1;++j) {

cout<<"\nUnesi element matrice a(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")="; cin >> a[i][j]; } } for(i=0;i<=p-1;++i) { for(j=0;j<=q-1;++j) {

cout<<"\nUnesi element matrice b(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")="; cin >> b[i][j]; } } //Inicijalizacija for(i=0;i<=n-1;++i) { for(j=0;j<=q-1;++j) { c[i][j]=0.; } } //Mnozenje for(i=0;i<=n-1;++i) { for(j=0;j<=q-1;++j) { for(k=0;k<=m-1;++k) { c[i][j]=c[i][j]+a[i][k]*b[k][j]; } } } // Stampanje matrice for(i=0;i<=n-1;++i) { for(j=0;j<=q-1;++j) { cout<<"\nElement matrice c(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")="; cout<<c[i][j]; } } } else {

cout<<"\nMnozenje nije definisano !"; }

(22)

//Programiranje I

//Vezbe: Program broj 14

//Program koji izracunava transponovanu matricu #include <iostream.h> void transponovana(); int main() { transponovana(); return 0; } void transponovana() { int n,m,i,j; float a[10][10],b[10][10]; // Unos matrice

cout<<"\nUnesite broj redova matrice n=";cin >> n; cout<<"\nUnesite broj kolona matrice m=";cin >> m; for(i=0;i<=n-1;++i)

{

for(j=0;j<=m-1;++j) {

cout<<"\nUnesi element matrice a(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")="; cin >> a[i][j]; } } for(i=0;i<=n-1;++i) { for(j=0;j<=m-1;++j) { b[j][i]=a[i][j]; } } // Stampanje matrice for(i=0;i<=n-1;++i) { for(j=0;j<=m-1;++j) { cout<<"\nElement matrice a(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")="; cout<<a[i][j]; } }

(23)

// Stampanje transponovane matrice

cout<<"\nTransponovana matrica je: a\n"; for(i=0;i<=m-1;++i) { for(j=0;j<=n-1;++j) { cout<<"\nElement matrice b(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")="; cout<<b[i][j]; } } }

(24)

//Programiranje I

//Vezbe: Program broj 15

//Program koji izracunava determinantu matrice #include <iostream.h> void determinanta(); int main() { determinanta(); return 0; } void determinanta() { int n,m,i,j,k,p,q; float a[10][10],b[10][10]; float det=1.; float indexdet=1.; float temp; // Unos matrice

cout<<"\nUnesite broj redova matrice n=";cin >> n; for(i=0;i<=n-1;++i)

{

for(j=0;j<=n-1;++j) {

cout<<"\nUnesi element matrice a(";cout<<i+1;cout<<")(";cout<<j+1;cout<<")="; cin >> a[i][j]; } } // Preuzimanje matrice for(i=0;i<n;++i) { for(j=0;j<n;++j) { b[i][j]=a[i][j]; } } for(k=0;k<n;k++) { if (b[k][k]==0.) { for(p=k+1;p<n;p++) { indexdet=indexdet*(-1.); if (b[p][k]!=0.) { for(q=k;q<n;q++) { temp = b[k][q];

(25)

b[k][q] = b[p][q]; b[p][q] = temp; } p=n; } } } for(i=k+1;i<n;i++) { for(j=n-1;j>=k;j--) { if (b[k][k]!=0.) { b[i][j]=b[i][j]-b[i][k]*b[k][j]/b[k][k]; } } } } // Stampanje matrice cout<<"\nMatrica a=\n"; for(i=0;i<n;++i) { for(j=0;j<n;++j) { cout<<a[i][j]<<"\t"; } cout<<"\n"; }

// Stampanje trougaone matrice cout<<"\nTrougaona matrica b=\n"; for(i=0;i<n;++i) { for(j=0;j<n;++j) { cout<<b[i][j]<<"\t"; } cout<<"\n"; } for(i=0;i<n;++i) { det=det*b[i][i]; } det *= indexdet;

cout<<"Index permutacije vrsta je:"<<indexdet; cout<<"\n";

cout<<"Determinanta matrice je:"<<det; }

(26)

//Programiranje I

//Vezbe: Program broj 16

//Program koji demonstrira rekurziju pri izracunavanju // n-tog clana Fibonacci-jevog niza

#include <iostream.h> int fibonacci(int n); int main() { int n,a; cout<<"Unesi n:"; cin>>n; a=fibonacci(n);

cout<<"\n"<<n<<"-ti clan niza je:"<<a; return 0;

}

int fibonacci(int n) {

int b;

cout<<"U toku je fibonacci("<<n<<")\n"; if (n>2) b=fibonacci(n-1)+fibonacci(n-2); else b=1; return b; }

(27)

//Programiranje I

//Vezbe: Program broj 17

//Program koji demonstrira globalne i lokalne promenljive #include <iostream.h> int i=-1; void funk1(); void funk2(); void funk3(); int main() { i=0; cout<<i; cout<<"\n"; funk1(); cout<<"\n"; cout<<i; cout<<"\n"; funk2(); cout<<"\n"; cout<<i; cout<<"\n"; funk3(); cout<<"\n"; cout<<i; cout<<"\n"; return 0; } void funk1() { int i=1; cout<<i; } void funk2() { i=2; cout<<i; } void funk3() { i=3; cout<<i; } //Programiranje I

(28)

//Program koji demonstrira globalne i lokalne funkcije #include <iostream.h> int i=-1; void funk1(); void funk2(); int main() { i=0; void funk3(); cout<<i; cout<<"\n"; funk1(); cout<<"\n"; cout<<i; cout<<"\n"; funk2(); cout<<"\n"; cout<<i; cout<<"\n"; funk3(); cout<<"\n"; cout<<i; cout<<"\n"; return 0; } void funk1() { int i=1; cout<<i; funk2(); } void funk2() { i=2; cout<<i; // funk3(); } void funk3() { i=3; cout<<i; funk1(); funk2(); }

(29)

//Programiranje I

//Vezbe: Program broj 19

//Program koji demonstrira pozivanje sakriveno implementirane funkcije

//Kompajliranje mora ukljuciti i fajl 19a.cpp, gde je funkcija implementirana

// kao i fajl 19h.h, gde je prototip funkcije #include <iostream.h> #include "19h.h" int main() { cout << funkc(5); return 0; } //Programiranje I

//Vezbe: Program broj 19

//Program koji demonstrira pozivanje sakriveno implementirane funkcije

//Kompajliranje mora ukljuciti i fajl 19a.cpp, gde je funkcija implementirana

// kao i fajl 19h.h, gde je prototip funkcije int funkc(int a)

{

return a; }

//Programiranje I

//Vezbe: Program broj 19

//Program koji demonstrira pozivanje sakriveno implementirane funkcije

//Kompajliranje mora ukljuciti i fajl 19a.cpp, gde je funkcija implementirana

// kao i fajl 19h.h, gde je prototip funkcije int funkc(int a);

int funkc(int a) {

return a; }

(30)

//Programiranje I

//Vezbe: Program broj 20

//Program koji demonstrira upotrebu pointera #include <iostream.h> int main() { int a = 5; int b = 7; int * c = NULL; c=&a;

cout<<"Vrednosti a i pokazivaca na a:\n"; cout <<"a="<<a;

cout<<"\n";

cout <<"*c="<<*c; cout<<"\n";

cout<<"Adresa a i adresa memorisana u pokazivacu na a:\n"; cout <<"&a="<<&a; cout<<"\n"; cout <<"c="<<c; cout<<"\n"; c=&b; cout<<"Vrednosti b i pokazivaca na b:\n"; cout <<"b="<<b; cout<<"\n"; cout <<"*c="<<*c; cout<<"\n";

cout<<"Adresa b i adresa memorisana u pokazivacu na b:\n"; cout <<"b&="<<&b;

cout<<"\n"; cout <<"c="<<c; cout<<"\n"; a=a+b;

cout<<"Vrednosti a, nakon dodavanja b po vrednosti:\n"; cout <<"a="<<a;

cout<<"\n"; a=a+*c;

cout<<"Vrednosti a, nakon ponovnog dodavanja b preko pointera:\n";

cout <<"a="<<a; cout<<"\n"; return 0; }

(31)

//Programiranje I

//Vezbe: Program broj 21

//Program koji demonstrira upotrebu referenci #include <iostream.h> int main() { int a = 5; int b = 7; int & c = a;

cout<<"Vrednosti a i reference na a:\n"; cout <<"a="<<a;

cout<<"\n"; cout <<"c="<<c; cout<<"\n";

cout<<"Adresa a i adresa reference na a:\n"; cout <<"&a="<<&a;

cout<<"\n"; cout <<"c="<<&c; cout<<"\n";

a=a+b;

cout<<"Vrednosti a i reference na a, nakon dodavanja b:\n"; cout <<"a="<<a;

cout<<"\n"; cout <<"c="<<c; cout<<"\n"; c=c+b;

cout<<"Vrednosti a i reference na a, nakon dodavanja b referenci na a:\n"; cout <<"a="<<a; cout<<"\n"; cout <<"c="<<c; cout<<"\n"; return 0; }

(32)

//Programiranje I

//Vezbe: Program broj 22

//Program koji demonstrira pozivanje funkcije po vrednosti #include <iostream.h>

void izmena(int a,int b); int main()

{

int a=5; int b=7;

cout<<"Vrednosti pre poziva funkcije:\n"; cout <<"a="<<a;

cout<<"\n"; cout <<"b="<<b; cout<<"\n"; izmena(a,b);

cout<<"Vrednosti posle poziva funkcije:\n"; cout <<"a="<<a; cout<<"\n"; cout <<"b="<<b; cout<<"\n"; return 0; }

void izmena(int a,int b) { int pomocna; pomocna=a; a=b; b=pomocna; cout<<"Vrednosti u funkciji:\n"; cout <<"a="<<a; cout<<"\n"; cout <<"b="<<b; cout<<"\n"; }

(33)

//Programiranje I

//Vezbe: Program broj 23

//Program koji demonstrira pozivanje funkcije po referenci preko pointera

#include <iostream.h>

void izmena(int * a,int * b); int main()

{

int a=5; int b=7;

cout<<"Vrednosti pre poziva funkcije:\n"; cout <<"a="<<a;

cout<<"\n"; cout <<"b="<<b; cout<<"\n"; izmena(&a,&b);

cout<<"Vrednosti posle poziva funkcije:\n"; cout <<"a="<<a; cout<<"\n"; cout <<"b="<<b; cout<<"\n"; return 0; }

void izmena(int * a,int * b) { int pomocna; pomocna=*a; *a=*b; *b=pomocna; cout<<"Vrednosti u funkciji:\n"; cout <<"a="<<*a; cout<<"\n"; cout <<"b="<<*b; cout<<"\n"; }

(34)

//Programiranje I

//Vezbe: Program broj 24

//Program koji demonstrira pozivanje funkcije po referenci preko referenci

#include <iostream.h>

void izmena(int & a,int & b); int main()

{

int a=5; int b=7;

cout<<"Vrednosti pre poziva funkcije:\n"; cout <<"a="<<a;

cout<<"\n"; cout <<"b="<<b; cout<<"\n"; izmena(a,b);

cout<<"Vrednosti posle poziva funkcije:\n"; cout <<"a="<<a; cout<<"\n"; cout <<"b="<<b; cout<<"\n"; return 0; }

void izmena(int & a,int & b) { int pomocna; pomocna=a; a=b; b=pomocna; cout<<"Vrednosti u funkciji:\n"; cout <<"a="<<a; cout<<"\n"; cout <<"b="<<b; cout<<"\n"; }

(35)

//Programiranje I

//Vezbe: Program broj 25

//Program koji demonstrira upotrebu pointera za rukovanje nizovima #include <iostream.h> int main() { int i; int b[10]={1,2,3,4,5,6,7,8,9,10}; int * c = b; for(i=0;i<10;i++) { cout<<*c<<" "; c++; } return 0; }

(36)

//Programiranje I

//Vezbe: Program broj 26

//Program koji demonstrira upotrebu pointera za kreiranje i koriscenje

//memorije na heap-u, i pristupanje iz funkcije #include <iostream.h>

void promena(int * x,int * y); int main()

{

int a=5; int * b=&a;

int * c = new int; if(c==NULL)

{

cout<<"Nema slobodne memorija na heap-u"; return 0; } *c=7; cout<<a<<"\n"; cout<<*b<<"\n"; cout<<*c<<"\n"; promena(b,c); cout<<a<<"\n"; cout<<*b<<"\n"; cout<<*c<<"\n"; delete c; c=NULL; cout<<a<<"\n"; cout<<*b<<"\n"; cout<<c<<"\n"; return 0; }

void promena(int * x,int * y) { int pomocni; pomocni=*x; *x=*y; *y=pomocni; }

(37)

//Programiranje I

//Vezbe: Program broj 27

//Program koji demonstrira upotrebu pointera za kreiranje i koriscenje

//memorije na heap-u u kombinaciju sa kreiranjem nizova na heap-u #include <iostream.h>

int main() {

int i;

int * c = new int[10]; int * b=c; for(i=0;i<10;i++) { *b=i+1; //c[i]=i+1; b++; } b=c; for(i=0;i<10;i++) { cout<<*b<<" "; //cout<<c[i]<<" "; b++; } b=NULL; delete [] c; c=NULL; return 0; }

(38)

//Programiranje I

//Vezbe: Program broj 28

//Program koji demonstrira deklaraciju i upotrebu elementarne klase #include <iostream.h>

class Point {

public:

Point();

Point(int x,int y);

Point(const Point & thePoint); ~Point();

void SetX(int newx); void SetY(int newy); int GetX() const; int GetY() const; private: int itsx; int itsy; }; Point::Point() { itsx=0; itsy=0;

cout<<"Default konstruktor klase Point\n"; }

Point::Point(int initx,int inity) {

itsx=initx; itsy=inity;

cout<<"Konstruktor klase Point\n"; }

Point::Point(const Point & thePoint) {

itsx=thePoint.GetX(); itsy=thePoint.GetY();

cout<<"Copy konstruktor klase Point\n"; }

Point::~Point() {

cout<<"Destruktor klase Point\n"; }

void Point::SetX(int newx) {

itsx=newx; }

(39)

void Point::SetY(int newy) { itsy=newy; } Point::GetX() const { return itsx; } Point::GetY() const { return itsy; } int main() { Point tacka1(5,7);

cout<<"Kordinata x tacke1 je:"<<tacka1.GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<tacka1.GetY()<<"\n"; tacka1.SetX(3);

cout<<"Kordinata x tacke1 je:"<<tacka1.GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<tacka1.GetY()<<"\n"; tacka1.SetY(9);

cout<<"Kordinata x tacke1 je:"<<tacka1.GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<tacka1.GetY()<<"\n"; return 0;

(40)

//Programiranje I

//Vezbe: Program broj 29

//Program koji demonstrira klase sa drugim klasama kao podacima clanovima

//Takodje je prikazana upotreba vise konstruktora i definicija copy konstruktora #include <iostream.h> #include <math.h> class Point { public: Point();

Point(int x,int y);

Point(const Point & thePoint); ~Point();

void SetX(int newx); void SetY(int newy); int GetX() const; int GetY() const; private: int itsx; int itsy; }; Point::Point() { itsx=0; itsy=0;

cout<<"Default konstruktor klase Point\n"; }

Point::Point(int initx,int inity) {

itsx=initx; itsy=inity;

cout<<"Konstruktor klase Point\n"; }

Point::Point(const Point & thePoint) {

itsx=thePoint.GetX(); itsy=thePoint.GetY();

cout<<"Copy konstruktor klase Point\n"; }

Point::~Point() {

cout<<"Destruktor klase Point\n"; }

void Point::SetX(int newx) {

(41)

}

void Point::SetY(int newy) { itsy=newy; } Point::GetX() const { return itsx; } Point::GetY() const { return itsy; } class Line { public: Line();

Line(Point initStart,Point initStop); ~Line();

void SetLine(Point initStart,Point initStop); void SetStart(Point newStart);

void SetStop(Point newStop); Point GetStart() const; Point GetStop() const; float GetLenght() const; private: Point itsStart; Point itsStop; }; Line::Line() {

cout<<"Default konstruktor klase Line\n"; }

Line::Line(Point initStart,Point initStop) {

itsStart.SetX(initStart.GetX()); itsStart.SetY(initStart.GetY()); itsStop.SetX(initStop.GetX()); itsStop.SetY(initStop.GetY()); cout<<"Konstruktor klase Line\n"; }

Line::~Line() {

cout<<"Destruktor klase Line\n"; }

void Line::SetLine(Point initStart,Point initStop) { itsStart.SetX(initStart.GetX()); itsStart.SetY(initStart.GetY()); itsStop.SetX(initStop.GetX()); itsStop.SetY(initStop.GetY()); }

(42)

Point Line::GetStart() const {

return itsStart; }

Point Line::GetStop() const {

return itsStop; }

float Line::GetLenght() const { return sqrt((itsStart.GetX()-itsStop.GetX())*(itsStart.GetX()- itsStop.GetX())+(itsStart.GetY()-itsStop.GetY())*(itsStart.GetY()-itsStop.GetY())); //return (itsStart.GetX()-itsStop.GetX())*(itsStart.GetX()- itsStop.GetX())+(itsStart.GetY()-itsStop.GetY())*(itsStart.GetY()-itsStop.GetY()); } int main() { Point initStart(2,3); Point initStop(3,4); Line Linija1; //(initStart,initStop); Linija1.SetLine(initStart,initStop); cout<<Linija1.GetStart().GetX(); cout<<Linija1.GetStart().GetY(); cout<<Linija1.GetStop().GetX(); cout<<Linija1.GetStop().GetY(); cout<<Linija1.GetLenght()<<"\n"; return 0; }

(43)

//Programiranje I

//Vezbe: Program broj 30

//Program koji demonstrira deklaraciju i upotrebu elementarne klase //ciji se objekat formira na slobodnom skladistu heap-u

#include <iostream.h> class Point

{

public:

Point();

Point(int x,int y);

Point(const Point & thePoint); ~Point();

void SetX(int newx); void SetY(int newy); int GetX() const; int GetY() const; private: int itsx; int itsy; }; Point::Point() { itsx=0; itsy=0;

cout<<"Default konstruktor klase Point\n"; }

Point::Point(int initx,int inity) {

itsx=initx; itsy=inity;

cout<<"Konstruktor klase Point\n"; }

Point::Point(const Point & thePoint) {

itsx=thePoint.GetX(); itsy=thePoint.GetY();

cout<<"Copy konstruktor klase Point\n"; }

Point::~Point() {

cout<<"Destruktor klase Point\n"; }

void Point::SetX(int newx) {

itsx=newx; }

void Point::SetY(int newy) {

(44)

itsy=newy; } Point::GetX() const { return itsx; } Point::GetY() const { return itsy; } int main() {

Point * PPoint = new Point(5,7);

cout<<"Kordinata x tacke1 je:"<<(*PPoint).GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<PPoint->GetY()<<"\n"; PPoint->SetX(3);

cout<<"Kordinata x tacke1 je:"<<PPoint->GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<PPoint->GetY()<<"\n"; PPoint->SetY(9);

cout<<"Kordinata x tacke1 je:"<<PPoint->GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<PPoint->GetY()<<"\n"; delete PPoint;

return 0; }

(45)

//Programiranje I

//Vezbe: Program broj 31

//Program koji demonstrira deklaraciju i upotrebu elementarne klase //ciji se objekat formira na slobodnom skladistu heap-u, a takodje i podaci clanovi #include <iostream.h> class Point { public: Point();

Point(int x,int y);

Point(const Point & thePoint); ~Point();

void SetX(int newx); void SetY(int newy); int GetX() const; int GetY() const; private: int * itsx; int * itsy; }; Point::Point() { itsx=new int(0); itsy=new int(0);

cout<<"Default konstruktor klase Point\n"; }

Point::Point(int initx,int inity) {

itsx=new int(initx); itsy=new int(inity);

cout<<"Konstruktor klase Point\n"; }

Point::Point(const Point & thePoint) {

*itsx=thePoint.GetX(); *itsy=thePoint.GetY();

cout<<"Copy konstruktor klase Point\n"; }

Point::~Point() {

delete itsx; delete itsy;

cout<<"Destruktor klase Point\n"; }

void Point::SetX(int newx) {

(46)

}

void Point::SetY(int newy) { *itsy=newy; } Point::GetX() const { return *itsx; } Point::GetY() const { return *itsy; } int main() {

Point * PPoint = new Point(5,7);

cout<<"Kordinata x tacke1 je:"<<(*PPoint).GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<PPoint->GetY()<<"\n"; PPoint->SetX(3);

cout<<"Kordinata x tacke1 je:"<<PPoint->GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<PPoint->GetY()<<"\n"; PPoint->SetY(9);

cout<<"Kordinata x tacke1 je:"<<PPoint->GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<PPoint->GetY()<<"\n"; delete PPoint;

return 0; }

(47)

//Programiranje I

//Vezbe: Program broj 32

//Program koji demonstrira nasledjivanje klasa // definiciju bazne i izvedene klase

#include <iostream.h> class Point

{

public:

Point();

Point(int x,int y);

Point(const Point & thePoint); ~Point();

void SetX(int newx); void SetY(int newy); int GetX() const; int GetY() const; private: int itsx; int itsy; }; Point::Point() { itsx=0; itsy=0;

cout<<"Default konstruktor klase Point\n"; }

Point::Point(int initx,int inity) {

itsx=initx; itsy=inity;

cout<<"Konstruktor klase Point\n"; }

Point::Point(const Point & thePoint) {

itsx=thePoint.GetX(); itsy=thePoint.GetY();

cout<<"Copy konstruktor klase Point\n"; }

Point::~Point() {

cout<<"Destruktor klase Point\n"; }

void Point::SetX(int newx) {

itsx=newx; }

void Point::SetY(int newy) {

(48)

itsy=newy; } Point::GetX() const { return itsx; } Point::GetY() const { return itsy; }

class TDPoint : public Point {

public: TDPoint(); ~TDPoint();

void SetZ(int newz); int GetZ() const; private: int itsz; }; TDPoint::TDPoint() { itsz=0;

cout<<"Default konstruktor klase TDPoint\n"; }

TDPoint::~TDPoint() {

cout<<"Destruktor klase TDPoint\n"; }

void TDPoint::SetZ(int newz) { itsz=newz; } TDPoint::GetZ() const { return itsz; } int main() { TDPoint tacka1;

cout<<"Kordinata x tacke1 je:"<<tacka1.GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<tacka1.GetY()<<"\n"; cout<<"Kordinata z tacke1 je:"<<tacka1.GetZ()<<"\n"; tacka1.SetX(3);

tacka1.SetY(6); tacka1.SetZ(9);

cout<<"Kordinata x tacke1 je:"<<tacka1.GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<tacka1.GetY()<<"\n"; cout<<"Kordinata z tacke1 je:"<<tacka1.GetZ()<<"\n"; return 0;

(49)

}

//Programiranje I

//Vezbe: Program broj 33

//Program koji demonstrira nasledjivanje klasa // i preklapajuce konstruktore u izvedenim klasama #include <iostream.h>

class Point {

public:

Point();

Point(int x,int y);

Point(const Point & thePoint); ~Point();

void SetX(int newx); void SetY(int newy); int GetX() const; int GetY() const; private: int itsx; int itsy; }; Point::Point() { itsx=0; itsy=0;

cout<<"Default konstruktor klase Point\n"; }

Point::Point(int initx,int inity) {

itsx=initx; itsy=inity;

cout<<"Konstruktor klase Point\n"; }

Point::Point(const Point & thePoint) {

itsx=thePoint.GetX(); itsy=thePoint.GetY();

cout<<"Copy konstruktor klase Point\n"; }

Point::~Point() {

cout<<"Destruktor klase Point\n"; }

void Point::SetX(int newx) {

itsx=newx; }

(50)

{ itsy=newy; } Point::GetX() const { return itsx; } Point::GetY() const { return itsy; }

class TDPoint : public Point {

public: TDPoint();

TDPoint(int x,int y,int z); TDPoint(int z);

~TDPoint();

void SetZ(int newz); int GetZ() const; private: int itsz; }; TDPoint::TDPoint() { itsz=0;

cout<<"Default konstruktor klase TDPoint\n"; }

TDPoint::TDPoint(int x,int y,int z) :Point(x,y)

{

itsz=z;

cout<<"Konstruktor klase TDPoint\n"; }

TDPoint::TDPoint(int z): itsz(z)

{

cout<<"Konstruktor2 klase TDPoint\n"; }

TDPoint::~TDPoint() {

cout<<"Destruktor klase TDPoint\n"; }

void TDPoint::SetZ(int newz) { itsz=newz; } TDPoint::GetZ() const { return itsz;

(51)

} int main() { TDPoint tacka0; TDPoint tacka1(1,2,3); TDPoint tacka2(3);

cout<<"Kordinata x tacke0 je:"<<tacka0.GetX()<<"\n"; cout<<"Kordinata y tacke0 je:"<<tacka0.GetY()<<"\n"; cout<<"Kordinata z tacke0 je:"<<tacka0.GetZ()<<"\n"; cout<<"Kordinata x tacke1 je:"<<tacka1.GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<tacka1.GetY()<<"\n"; cout<<"Kordinata z tacke1 je:"<<tacka1.GetZ()<<"\n"; cout<<"Kordinata x tacke2 je:"<<tacka2.GetX()<<"\n"; cout<<"Kordinata y tacke2 je:"<<tacka2.GetY()<<"\n"; cout<<"Kordinata z tacke2 je:"<<tacka2.GetZ()<<"\n"; tacka1.SetX(3);

tacka1.SetY(6); tacka1.SetZ(9);

cout<<"Kordinata x tacke1 je:"<<tacka1.GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<tacka1.GetY()<<"\n"; cout<<"Kordinata z tacke1 je:"<<tacka1.GetZ()<<"\n"; return 0;

(52)

//Programiranje I

//Vezbe: Program broj 34

//Program koji demonstrira nasledjivanje klasa // i overriding i overloading #include <iostream.h> class Point { public: Point();

Point(int x,int y);

Point(const Point & thePoint); ~Point();

void SetX(int newx); void SetY(int newy); int GetX() const; int GetY() const; void Move(); void Move(int x);

// void Move(int y);

void Move(int x, int y); void print(); protected: int itsx; int itsy; }; Point::Point() { itsx=0; itsy=0;

cout<<"Default konstruktor klase Point\n"; }

Point::Point(int initx,int inity) {

itsx=initx; itsy=inity;

cout<<"Konstruktor klase Point\n"; }

Point::Point(const Point & thePoint) {

itsx=thePoint.GetX(); itsy=thePoint.GetY();

cout<<"Copy konstruktor klase Point\n"; }

Point::~Point() {

cout<<"Destruktor klase Point\n"; }

void Point::SetX(int newx) {

(53)

itsx=newx; }

void Point::SetY(int newy) {

itsy=newy; }

int Point::GetX() const {

return itsx; }

int Point::GetY() const { return itsy; } void Point::Move() { cout<<"default move\n"; } void Point::Move(int x) { itsx=itsx+x; cout<<"move x\n"; }

void Point::Move(int x, int y) { itsx=itsx+x; itsy=itsy+y; cout<<"move xy\n"; } void Point::print() {

cout<<"Metod klase Point!\n"; }

class TDPoint : public Point {

public: TDPoint();

TDPoint(int x,int y,int z); TDPoint(int z);

~TDPoint();

void SetZ(int newz); int GetZ() const;

void Move(int x, int y, int z); void print(); private: int itsz; }; TDPoint::TDPoint() {

(54)

itsz=0;

cout<<"Default konstruktor klase TDPoint\n"; }

TDPoint::TDPoint(int x,int y,int z) :Point(x,y)

{

itsz=z;

cout<<"Konstruktor klase TDPoint\n"; }

TDPoint::TDPoint(int z): itsz(z)

{

cout<<"Konstruktor2 klase TDPoint\n"; }

TDPoint::~TDPoint() {

cout<<"Destruktor klase TDPoint\n"; }

void TDPoint::SetZ(int newz) {

itsz=newz; }

int TDPoint::GetZ() const {

return itsz; }

void TDPoint::Move(int x, int y, int z) { itsx=itsx+x; itsy=itsy+y; itsz=itsz+z; cout<<"move xyz\n"; } void TDPoint::print() {

cout<<"Metod klase TDPoint!\n"; } int main() { TDPoint tacka0; TDPoint tacka1(1,2,3); TDPoint tacka2(3);

cout<<"Kordinata x tacke0 je:"<<tacka0.GetX()<<"\n"; cout<<"Kordinata y tacke0 je:"<<tacka0.GetY()<<"\n"; cout<<"Kordinata z tacke0 je:"<<tacka0.GetZ()<<"\n"; cout<<"Kordinata x tacke1 je:"<<tacka1.GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<tacka1.GetY()<<"\n"; cout<<"Kordinata z tacke1 je:"<<tacka1.GetZ()<<"\n"; cout<<"Kordinata x tacke2 je:"<<tacka2.GetX()<<"\n"; cout<<"Kordinata y tacke2 je:"<<tacka2.GetY()<<"\n"; cout<<"Kordinata z tacke2 je:"<<tacka2.GetZ()<<"\n";

(55)

tacka1.SetX(3); tacka1.SetY(6); tacka1.SetZ(9);

cout<<"Kordinata x tacke1 je:"<<tacka1.GetX()<<"\n"; cout<<"Kordinata y tacke1 je:"<<tacka1.GetY()<<"\n"; cout<<"Kordinata z tacke1 je:"<<tacka1.GetZ()<<"\n"; tacka0.print(); tacka0.Point::print(); tacka0.Point::Move(); tacka0.Point::Move(1); tacka0.Point::Move(1,1); tacka0.Move(1,1,1); return 0; }

(56)

//Programiranje I

//Vezbe: Program broj 35

//Program koji demonstrira upisivanje podataka u fajl #include <iostream.h> #include <math.h> #include <stdlib.h> #include <stdio.h> int main() { FILE * file; float x; int i; file=fopen("name.txt","w"); for(i=1;i<=100;i++) { x=i; cout<<x<<"\n"; fprintf(file,"%f\n",x); } fclose(file); return 0; }

(57)

//Programiranje I

//Vezbe: Program broj 36

//Program koji demonstrira upotrebu stringova #include <iostream.h>

int main() {

char String1[]="Programiranje I"; char String2[]={'P','r','o','g','r','a','m','i','r','a','n','j','e','I','\ 0'}; char String3[80]; char String4[80]; char String5[80]; char buffer[80]; strcpy(String3,String2); cout<<String1; cout<<String2; strncpy(String4,String1,3); cout<<String3; cout<<String4; cout<<"\nunesi string\n"; cin>>String5; cout<<String5; return 0; }

(58)

//Programiranje I

//Vezbe: Program broj 37

//Program koji demonstrira koriscenje generatora slucajnih brojeva #include <iostream.h> #include <math.h> int main() { float x; int i; for(i=1;i<=100;i++) { x=1.0*rand()/RAND_MAX; cout<<x<<"\n"; } return 0; } //Programiranje 1

(59)

//Program koji demonstrira virtuelne metode

//Pointer bazne klase kome se dodeljuje izvedena klasa //poziva metode izvedene klase ukoliko su oni virtuelni #include<iostream.h>

class Avion {

public: Avion();

Avion(int broj, float raspon, float duzina); virtual ~Avion();

void SetBrojSedista(int broj); int GetBrojSedista() const; void SetRaspon(float raspon); float GetRaspon() const; void SetDuzina(float Duzina); float GetDuzina() const; void startMotora();

void virtual potisakMotora(); private: int brojSedista; float rasponKrila; float duzinaTrupa; }; Avion::Avion() { brojSedista = 100; rasponKrila = 25; duzinaTrupa =40;

cout<<"\nDefault konstruktor klase Avion"; }

Avion::Avion(int broj, float raspon, float duzina) { brojSedista = broj; rasponKrila = raspon; duzinaTrupa = duzina; cout<<"\nKonstruktor Avion"; } Avion::~Avion() { cout<<"\nDestruktor Avion"; }

void Avion::SetBrojSedista(int broj) {

brojSedista = broj; }

void Avion::SetRaspon(float raspon) {

rasponKrila = raspon; }

void Avion::SetDuzina(float duzina) {

(60)

duzinaTrupa = duzina; }

int Avion::GetBrojSedista() const {

return brojSedista; }

float Avion::GetRaspon() const {

return rasponKrila; }

float Avion::GetDuzina() const { return duzinaTrupa; } void Avion::startMotora() { cout<<"\nStart motora\n"; } void Avion::potisakMotora() {

cout<<"\nPotisak apstraktnog motora\n"; }

class ElisniAvion : public Avion {

public:

ElisniAvion();

ElisniAvion(int broj, float raspon, float duzina); ~ElisniAvion(); void startMotora(); void potisakMotora(); }; ElisniAvion::ElisniAvion() :Avion() {

cout<<"\nDefault konstruktor klase ElisniAvion"; }

ElisniAvion::ElisniAvion(int broj, float raspon, float duzina) :Avion(broj, raspon, duzina)

{ cout<<"\nKonstruktor ElisniAvion"; } ElisniAvion::~ElisniAvion() { cout<<"\nDestruktor ElisniAvion"; } void ElisniAvion::startMotora() {

cout<<"\nStart elisnog motora\n"; }

(61)

{

cout<<"\nPotisak elisnog motora\n"; }

int main() {

Avion * pAvion = new ElisniAvion; cout<<"\n"; cout<< pAvion->GetBrojSedista(); cout<<"\n"; cout<< pAvion->GetRaspon(); cout<<"\n"; cout<< pAvion->GetDuzina(); pAvion->SetBrojSedista(120); pAvion->SetRaspon(35); pAvion->SetDuzina(50); pAvion->startMotora(); pAvion->potisakMotora(); cout<<"\n"; cout<< pAvion->GetBrojSedista(); cout<<"\n"; cout<< pAvion->GetRaspon(); cout<<"\n"; cout<< pAvion->GetDuzina(); delete pAvion; pAvion = NULL; return 0; } //Programiranje 1

//Vezbe: Program broj 39

//Program koji demonstrira Polimorfizam i dinamicko povezivanje //Pointer bazne klase poziva virtualne metode bazne klase,

(62)

// a realizuje se pozivanje metoda izvedenih klasa

//Virtualne metod bazne klase se ostvaruje preko na razne nacine u zavisnosti

//sa kojom izvedenom klasom je bazna klasa povezana

//Virtuelni metod bazne klase se realizuje na vise nacina sto je //sustina Polimorfizma

//Pitanje koja izvedena klasa i koji njen metod ce biti pozvan razresava

//se u momentu realizacija programa kada korisnik odlucuje koja izvedena

//klasa ce se konstruisati. Povezivanje virtuelnih metoda sa metodom izvedene

//klase se na ovaj nacin izvrsava u fazi izvrsenja programa sto se //zove dinamicko povezivanje.

#include<iostream.h> class Avion

{

public: Avion();

Avion(int broj, float raspon, float duzina); virtual ~Avion();

void SetBrojSedista(int broj); int GetBrojSedista() const; void SetRaspon(float raspon); float GetRaspon() const; void SetDuzina(float Duzina); float GetDuzina() const; void startMotora();

void virtual potisakMotora(); private: int brojSedista; float rasponKrila; float duzinaTrupa; }; Avion::Avion() { brojSedista = 100; rasponKrila = 25; duzinaTrupa =40;

cout<<"\nDefault konstruktor klase Avion"; }

Avion::Avion(int broj, float raspon, float duzina) { brojSedista = broj; rasponKrila = raspon; duzinaTrupa = duzina; cout<<"\nKonstruktor Avion"; } Avion::~Avion() { cout<<"\nDestruktor Avion"; }

(63)

{

brojSedista = broj; }

void Avion::SetRaspon(float raspon) {

rasponKrila = raspon; }

void Avion::SetDuzina(float duzina) {

duzinaTrupa = duzina; }

int Avion::GetBrojSedista() const {

return brojSedista; }

float Avion::GetRaspon() const {

return rasponKrila; }

float Avion::GetDuzina() const { return duzinaTrupa; } void Avion::startMotora() { cout<<"\nStart motora\n"; } void Avion::potisakMotora() {

cout<<"\nPotisak apstraktnog motora\n"; }

class ElisniAvion : public Avion {

public:

ElisniAvion();

ElisniAvion(int broj, float raspon, float duzina); ~ElisniAvion(); void startMotora(); void potisakMotora(); }; ElisniAvion::ElisniAvion() :Avion() {

cout<<"\nDefault konstruktor klase ElisniAvion"; }

ElisniAvion::ElisniAvion(int broj, float raspon, float duzina) :Avion(broj, raspon, duzina)

{

cout<<"\nKonstruktor ElisniAvion"; }

(64)

ElisniAvion::~ElisniAvion() { cout<<"\nDestruktor ElisniAvion"; } void ElisniAvion::startMotora() {

cout<<"\nStart elisnog motora\n"; }

void ElisniAvion::potisakMotora() {

cout<<"\nPotisak elisnog motora\n"; }

class MlazniAvion : public Avion {

public:

MlazniAvion();

MlazniAvion(int broj, float raspon, float duzina); ~MlazniAvion(); void startMotora(); void potisakMotora(); }; MlazniAvion::MlazniAvion() :Avion() {

cout<<"\nDefault konstruktor klase MlazniAvion"; }

MlazniAvion::MlazniAvion(int broj, float raspon, float duzina) :Avion(broj, raspon, duzina)

{ cout<<"\nKonstruktor MlazniAvion"; } MlazniAvion::~MlazniAvion() { cout<<"\nDestruktor MlazniAvion"; } void MlazniAvion::startMotora() {

cout<<"\nStart Mlaznog motora\n"; }

void MlazniAvion::potisakMotora() {

cout<<"\nPotisak Mlaznog motora\n"; } int main() { int izbor; Avion * pAvion; do { izbor = 3;

cout<<" Meni:\n 1 - Elisni Avion\n 2 - Mlazni Avion\n 3 - izlaz\n";

(65)

cin>>izbor; }

while(izbor != 1 && izbor != 2 && izbor != 3); if(izbor == 1 || izbor == 2)

{

if(izbor == 1)

pAvion = new ElisniAvion; if(izbor == 2)

pAvion = new MlazniAvion; cout<<"\n"; cout<< pAvion->GetBrojSedista(); cout<<"\n"; cout<< pAvion->GetRaspon(); cout<<"\n"; cout<< pAvion->GetDuzina(); pAvion->SetBrojSedista(120); pAvion->SetRaspon(35); pAvion->SetDuzina(50); pAvion->startMotora(); pAvion->potisakMotora(); cout<<"\n"; cout<< pAvion->GetBrojSedista(); cout<<"\n"; cout<< pAvion->GetRaspon(); cout<<"\n"; cout<< pAvion->GetDuzina(); delete pAvion; pAvion = NULL; } return 0; }

References

Related documents

Camera setting registration: Under Mode Dial’s &lt;l&gt; setting Custom Functions: 21 Custom Functions with 57 settings • Power Source. Battery: One Battery Pack BP-511A,

Just make sure that you overwrite the other displays (that is, “save as” Agitator Process Run Time, Valve Fault Time Delays, Maintenance, Alarms and Batch Log) with the

The hemolytic anemia signs of hypochromia, anisocytosis, poikilocytosis, polychromasia, and schistocytes were more common in the peripheral smear of the control group at 24 hours as

Honda, the H-mark symbol, Honda Care, Honda Satellite-Linked Navigation System, HondaJet, Active Noise Cancellation, Advanced Compatibility Engineering, ACE,

They then responded that they were going to E¡Igbó-mqkün market Qrúnmllá asked them when they planned to return to heaven They responded that they would return at a

In short: there has to be enough of a specific material/packaging type to economically justify the collection and recycling thereof; and, “enough” is defined by the buyer/end

In this chapter, I expand on the credible threat theory, and suggest that even though prior studies have shown that states often ratify international human rights treaties

[r]