seminarski rad c++ 30 zadataka

45
VIŠI PROGRAMSKI JEZICI I RAD ALATI - PROGRAMIRANJE U C++ SEMINARSKI RAD

Upload: sasam14

Post on 01-Jan-2016

447 views

Category:

Documents


14 download

DESCRIPTION

30 Zadataka sa rješenjim au C++

TRANSCRIPT

Page 1: Seminarski rad C++ 30 zadataka

VIŠI PROGRAMSKI JEZICI I RAD ALATI- PROGRAMIRANJE U C++

SEMINARSKI RAD

Page 2: Seminarski rad C++ 30 zadataka

Sadržaj

1. zadatak: Poređenje dva broja.......................................................................................................1

2. zadatak: Izračunati starost studenta na osnovu godine rođenja i trenutne godine.....................2

3. zadatak: Kombinovanje stringova................................................................................................3

4. zadatak: Ispisati tablicu množenja brojeva od 1 do 10. Rezultat treba biti u kolonama...............4

5. zadatak: Napisati program koji provjerava da li je uneseni broj veći od 100 i da li je paran.........5

6. zadatak: Ispisati brojeve od 1 do 20 koristeći for petlju...............................................................6

7. zadatak: Treba ispisati tablicu množenja odabranog broja sa brojevima od 1 do 10...................7

8. zadatak: Napisati program koji ispisuje parne brojeve u intervalu od 50 do 100.........................8

9. zadatak: Napisati program koji ispisuje brojeve djeljive nekim brojem u zadanom intervalu, i to tako da korisnik unese početak i kraj intervala, kao i broj kojim se provjerava djeljivost.......................................................................................................................................9

10. zadatak: Treba unijeti N realnih brojeva pa izračunati njihovu srednju vrijednost. Unos brojeva traje sve dok korisnik ne upiše 0....................................................................................10

11. zadatak: Napisati program koji ispisuje sve trocifreni Amstrongove brojeve. Armstrongov broj je broj koji je jednak zbiru kubova svojih cifara...................................................................11

12. zadatak: Napisati program koji ispisuje cjelobrojne stranice svih pravougaonika zadate površine, a da se ne ponavljaju dvije iste stranice u različitim kombinacijama..........................12

13. zadatak: Prodavnica ima pakovanja deterdženta od 16,17 i 21 kg. Napisati sve kombinacije kojima prodavnica može da isporuči korisniku tačno 185 kg......................................................13

14. zadatak: Napisati program koji zaokružuje slučajno generisani broj između 0 i 1 na X decimala.....................................................................................................................................14

15. zadatak: Napisati program koji računa uneseni stepen za unesenu bazu, uz upotrebu funkcije.......................................................................................................................................16

16. zadatak: unijeti niz i ispisati ga sortiranog opadajućim redosljedom.........................................17

17. zadatak: Napisati program koji ispisuje maksimalnu vrijednost, varijansu, aritmetičku sredinu i standardnu devijaciju unesenog niza...........................................................................18

18. zadatak: Potrebno je podatke o studijskom smjeru i broju studenata koje korisnik unese spremiti u datoteku, a zatim ih iščitati i prikazati na ekranu......................................................20

19. zadatak: Jedan voz kreće iz mjesta A prema mjestu B brzinom v1 km/h, a drugi, istovremeno, u obrnutom smjeru brzinom v2 km/h. Mjesta A i B su međusobno udaljena s kilometara. Izračunati udaljenost od mjesta A na kome će se vozovi sresti i trenutak kad će se to dogoditi..............................................................................................................................21

20. zadatak: Potrebno je sabrati sve prirodne trocifrene brojeve....................................................22

21. zadatak: Ispisati sve savršene brojeve do 500............................................................................23

Page 3: Seminarski rad C++ 30 zadataka

22. zadatak: Napisati program koji na osnovu unesenog rednog broja mjeseca ispisuje koliko taj mjesec ima dana....................................................................................................................24

23. zadatak: Rastaviti uneseni broj na proste činioce.......................................................................25

24. zadatak: Napisati program koji sabira cifre unesenog višecifrenog broja...................................26

25. zadatak: Napisati program koji računa srednju ocjenu uspjeha učenika. Nakon posljednje ocjene treba unijeti 0. U slučaju da je bilo koja od ocjena 1, ispisuje se poruka: Negativan uspjeh. Ako se unese vrijednost koja nije iz raspona od 1-5, ispisaće se poruka: Pogrešan unos............................................................................................................................................27

26. zadatak: Potrebno je ispisati N članova Fibonaccijevog niza. Fibonaccijev niz je niz u kome su prva dva člana jednaka jedan, a svaki sljedeći član je zbir prethodna dva člana niza (1, 1, 2, 3, 5, 8, 13, 21, 34, ......)...........................................................................................................28

27. zadatak: Napisatiprogram koji računa najveću zajedničku mjeru dva prirodna broja. Najveća zajednička mjera dva broja je najveći prirodni broj kojim su djeljiva oba broja............29

28. zadatak: Potrebno je unijeti odabrani broj cifara počevši od cifre najveće težinske vrijednosti, pa od njih sastaviti i ispisati prirodni broj. Unos cifara se prekida kada se unese broj manji od 0 ili veći od 9.........................................................................................................30

29. zadatak: Napisati program za ispis članova kvadratne NxN matrice..........................................31

30. zadatak: Napisati program koji ispisuje kvadratnu matricu A, i zbir članova reda i zbir clanova kolona te matrice..........................................................................................................32

Page 4: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

1. zadatak: Poređenje dva broja.

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){int a,b; cout<<"Vrijednost prvog broja="; cin>>a; cout<<"Vrijednost drugog broja="; cin>>b; cout<<endl<<"Je li "<<a<<"<"<<b<<"? Odgovor: "<<(a<b)<<endl; cout<<endl<<"Je li "<<a<<">"<<b<<"? Odgovor: "<<(a>b)<<endl; cout<<endl<<"Je li "<<a<<"=="<<b<<"? Odgovor: "<<(a==b)<<endl; cout<<endl<<"Je li "<<a<<"!="<<b<<"? Odgovor: "<<(a!=b)<<endl;system("PAUSE");return EXIT_SUCCESS;}

1

Page 5: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

2. zadatak: Izračunati starost studenta na osnovu godine rođenja i trenutne godine.

#include<iostream>#include<cstdlib>using namespace std;int main(){ int god,god1,god2; cout<<"Upisi godinu svog rodjenja: "; cin>>god1; cout<<"Koja je godina sada? "; cin>>god2; god=god2-god1; cout<<endl<<"Sada imas "<<god<<" godina."<<endl; system("PAUSE"); return 0;}

2

Page 6: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

3. zadatak: Kombinovanje stringova

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){int god, god1, god2;string ime; cout<<"Upisi svoje ime:"; cin>>ime; cout<<endl<<"Upisi godinu svog rodjenja:"; cin>>god1; cout<<endl<<"Koja je godina sada? "; cin>>god2; god=god2-god1;cout<<endl<<ime<<" ima "<<god<<" godina."<<endl; system("PAUSE");return EXIT_SUCCESS;}

3

Page 7: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

4. zadatak: Ispisati tablicu množenja brojeva od 1 do 10. Rezultat treba biti u kolonama.

#include<iostream>#include<cstdlib>#include<iomanip>using namespace std;int main(){ int kolona,red; for(red=1;red<=10;red++){ for(kolona=1;kolona<=10;kolona++){ cout<<setw(7)<<red*kolona; } cout<<endl; } system("PAUSE"); return 0;}

4

Page 8: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

5. zadatak: Napisati program koji provjerava da li je uneseni broj veći od 100 i da li je paran.

#include<iostream>#include<cstdlib>using namespace std;int main(){ int a; cout<<"Upisi broj razlicit od 0:"; cin>>a; if (a<100){ cout<<"Uneseni broj je manji od 100 i "; if (a%2==0) cout<<" paran je."<<endl; else cout<<" neparan je."<<endl; } else if (a>100){ cout<<"Uneseni broj je veci od 100 i "; if (a%2==0) cout<<" paran je."<<endl; else cout<<" neparan je."<<endl; } else{ cout<<"Unesen je broj 100, on je paran"<<endl; } system("PAUSE"); return 0;}

5

Page 9: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

6. zadatak: Ispisati brojeve od 1 do 20 koristeći for petlju.

#include<iostream>#include<cstdlib>using namespace std;int main(){ int brojac; cout<<"Ispis brojeva od 1 do 20:"<<endl; for (brojac=1;brojac<=20;brojac++){ cout<<brojac<<" "; } cout<<endl; system("PAUSE"); return 0;}

6

Page 10: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

7. zadatak: Treba ispisati tablicu množenja odabranog broja sa brojevima od 1 do 10.

#include<iostream>#include<cstdlib>using namespace std;int main(){ int b, brojac; cout<<"Upisi broj sa kojim zelis mnoziti:"; cin>>b; for (brojac=1;brojac<=10;brojac++) { cout<<b<<" * "<<brojac<<" = "<<b*brojac<<endl; } system("PAUSE"); return 0;}

7

Page 11: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

8. zadatak: Napisati program koji ispisuje parne brojeve u intervalu od 50 do 100.

#include<iostream>#include<cstdlib>using namespace std;int main(){ int brojac; cout<<"Parni brojevi iz intervala od 50 do 100 su:"<<endl; for (brojac=50;brojac<=100;brojac+=2){ cout<<brojac<<" "; } cout<<endl; system("PAUSE"); return 0;}

8

Page 12: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

9. zadatak: Napisati program koji ispisuje brojeve djeljive nekim brojem u zadanom intervalu, i to tako da korisnik unese početak i kraj intervala, kao i broj kojim se provjerava djeljivost.

#include<iostream>#include<cstdlib>using namespace std;int main(){int brojac,m,n,b; cout<<"Pocetna vrijednost raspona:"; cin>>m; cout<<"Zavrsna vrijednost rapona:"; cin>>n; cout<<"Provjerava se djeljivost sa brojem:"; cin>>b; cout<<"Brojevi djeljivi sa "<<b<<" iz raspona od " <<m<<" do "<<n<<" su:"<<endl; for (brojac=m;brojac<=n;brojac++){ if(brojac%b==0) cout<<brojac<<" "; } cout<<endl; system("PAUSE"); return 0;}

9

Page 13: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

10. zadatak: Treba unijeti N realnih brojeva pa izračunati njihovu srednju vrijednost. Unos brojeva traje sve dok korisnik ne upiše 0.

#include<iostream>#include<cstdlib>using namespace std;int main(){ cout<<"U programu se unosi N brojeva, a zatim se \racuna srednja vrijednost unesenih brojeva."<<endl; float N,broj,zbir; broj=0; zbir=0; cout<<"Nakon posljednjeg broja unesi nulu."<<endl; cout<<"Unesi broj:"; cin>>N; while(N!=0) { broj=broj+1; zbir=zbir+N; cout<<"Unesi broj:"; cin>>N; } cout<<"Uneseno je "<<broj<<" brojeva. \Srednja vrijednost je "<<zbir/broj<<endl; system("PAUSE"); return 0;}

10

Page 14: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

11. zadatak: Napisati program koji ispisuje sve trocifreni Amstrongove brojeve. Armstrongov broj je broj koji je jednak zbiru kubova svojih cifara.

#include <cstdlib>#include <iostream>using namespace std;

int main(int argc, char *argv[]){ int a,b,c,zb, broj; for (a=1;a<10;a++) { for (b=1;b<10;b++) { for (c=1;c<10;c++) { zb=c*c*c+a*a*a+b*b*b; broj=a*100+b*10+c; cout << "Od cifara "<<a<<", "<<b<<" i "<<c; cout << " kubovi: " << a*a*a <<", " << b*b*b; cout << " i " << c*c*c; cout << ". Dakle,kod broja " << broj; cout << " zbir kubova: " << zb<< endl; if (zb==broj) { cout<<broj<< " je amstrongov broj "<<broj<<endl; system("PAUSE"); } } } } system("PAUSE"); return EXIT_SUCCESS;}

11

Page 15: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

12. zadatak: Napisati program koji ispisuje cjelobrojne stranice svih pravougaonika zadate površine, a da se ne ponavljaju dvije iste stranice u različitim kombinacijama

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ int p,a,b; cout << "Unesite povrsinu pravougaonika "; cin >> p; for(a=0;a<=p;a++){ for(b=0;b<=p;b++){ if(a<=b){ if(a*b==p){ cout << "Moguce dimenzije pravougaonika su "; cout << a<<" x "<<b<<endl; } } } } system("PAUSE"); return EXIT_SUCCESS;}

12

Page 16: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

13. zadatak: Prodavnica ima pakovanja deterdženta od 16,17 i 21 kg. Napisati sve kombinacije kojima prodavnica može da isporuči korisniku tačno 185 kg.

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ int a,b,c,x,y,z; a=16; b=17; c=21; for(x=0;x<20;x++) { for (y=0;y<20;y++){ for (z=0;z<20;z++){ if((x*c) + (y*b) + (z*a)==185){ cout << z << " vrecica od " << a << ", " << y; cout << " vrecica od " << b << " i " << x; cout << " vrecica od " <<c << endl; } } } } system("PAUSE"); return EXIT_SUCCESS;}

13

Page 17: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

14. zadatak: Napisati program koji zaokružuje slučajno generisani broj između 0 i 1 na X decimala.#include <cstdlib>#include <iostream>#include <ctime>#include <math.h>using namespace std;int main(int argc, char *argv[]){ srand(time(NULL)); double broj,b; int x,c; while(x>=0){ broj=(double)rand()/RAND_MAX; cout<<endl<<"Na koliko decimala zelite zaokruziti broj " << broj << " ? "; cin>>x; float stepen=pow(float(10),float(x)); float rez=float(broj)*float (stepen); c=int (rez); b=c/stepen; float d=broj*(stepen*100); int e=int (d); int p=int (broj*(stepen*10)); if(p%10>5){ int g=int ((broj*stepen)+1); float z=g/stepen; cout<<z<<endl; } else if(p%10<5){ int g=int (broj*stepen); float z=g/stepen; cout<<z<<endl; } else{ if (p%10==5&e%10!=0){ int k=((p-50)/100)%10; int g=int (broj*stepen)+1; float z=g/stepen; cout<<z<<endl; } else if (p%10==5&e%10==0){ int z=((p-50)/100)%10; if(z%2==1){ int g=int (broj*stepen)+1; float z=g/stepen; cout<<z<<endl; } int o=((p-50)/100)%10; if(o%2==0){ int g=int (broj*stepen); float z=g/stepen; cout<<z<<endl; } } } } system("PAUSE"); return EXIT_SUCCESS;}

14

Page 18: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

15

Page 19: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

15. zadatak: Napisati program koji računa uneseni stepen za unesenu bazu, uz upotrebu funkcije.

#include <iostream>#include<cstdlib>using namespace std;double Stepen (int, int);main (){ int a,b; cout << "Unesi bazu:"; cin >> a; cout << "\nUnesi eksponent:"; cin >> b; cout << a<<"^" <<b<<" = " << Stepen(a,b) << endl; system("PAUSE");}double Stepen (int baza, int eksponent){ double rezultat = 1; for (int i = 0; i < eksponent; ++i){ rezultat *= baza; } return rezultat;}

16

Page 20: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

16. zadatak: unijeti niz i ispisati ga sortiranog opadajućim redosljedom.

#include <iostream>#include <cstdlib>using namespace std;int main (){ int x[10]; int y[10]; int i, j, n; cout << "Unesite broj clanova niza (<10): "; cin >> n; for (i = 0; i < n; i++){ cout << "Unesite clan br. " << i << ": "; cin >> x[i]; y[i] = x[i]; } for (i = 0; i < n-1; i++){ for (j = i+1; j < n; j++){ if (y[i] < y[j]) swap(y[i],y[j]); } } cout << "x:" << "\t" << "y:" << endl; for (i = 0; i < n; i++){ cout << x[i] << "\t" << y[i] << endl; } system ("PAUSE");}

17

Page 21: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

17. zadatak: Napisati program koji ispisuje maksimalnu vrijednost, varijansu, aritmetičku sredinu i standardnu devijaciju unesenog niza.

#include <iostream>#include <cstdlib>#include <cmath>using namespace std;double maks(double x[], int velicina);double arSred(double x[], int velicina);double var(double x[], int velicina);double stDev(double x[], int velicina);int main (){ int velicina=12; double x[velicina]; for (int i=0; i< velicina; i++){ cout << "x["<<i <<"] "; cin >> x[i]; } cout << "maksimalna vrijednost: " << maks(x,velicina)<<endl; cout << "aritmeticka sredina: " << arSred(x,velicina)<<endl; cout << "varijansa: " << var(x,velicina)<<endl; cout << "standardna devijacija: " << stDev(x,velicina)<<endl; system ("PAUSE");}double maks(double x[], int velicina){ int imax=0; for (int i=0; i<velicina; i++){ if (x[i]>imax) imax=x[i]; } return(imax);}double arSred (double x[], int velicina){ double sum=0.0; for (int i=0; i<velicina; i++){ sum += x[i]; } return(sum/velicina);}double var (double x[], int velicina){ double sum=0.0, b; double m = arSred(x,velicina); for (int i=0; i<velicina; i++){ b=x[i]-m; sum += b*b; } return(sum/velicina);}double stDev (double x[], int velicina){ return sqrt(var(x,velicina));}

18

Page 22: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

19

Page 23: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

18. zadatak: Potrebno je podatke o studijskom smjeru i broju studenata koje korisnik unese spremiti u datoteku, a zatim ih iščitati i prikazati na ekranu.

#include <iostream>#include <cstdlib>#include <fstream>#include <string>using namespace std;int main (){ string podaci; ofstream izlaz; izlaz.open("c:\\studenti.txt"); cout << "Upisivanje u datoteku" << endl; cout << "=====================" << endl; cout << "Unesite naziv studijske grupe: "; getline(cin,podaci); izlaz << podaci << endl; cout << "Unesite broj studenata: "; cin >> podaci; cin.ignore(); izlaz << podaci << endl; izlaz.close(); ifstream ulaz; cout << "Citanje sa datoteke" << endl; cout << "===================" << endl; ulaz.open("c:\\studenti.txt"); getline(ulaz,podaci); cout << podaci << endl; getline(ulaz,podaci); cout << podaci << endl; ulaz.close(); system ("PAUSE");}

20

Page 24: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

19. zadatak: Jedan voz kreće iz mjesta A prema mjestu B brzinom v1 km/h, a drugi, istovremeno, u obrnutom smjeru brzinom v2 km/h. Mjesta A i B su međusobno udaljena s kilometara. Izračunati udaljenost od mjesta A na kome će se vozovi sresti i trenutak kad će se to dogoditi.

#include<iostream>#include<cstdlib>using namespace std;int main(){ float v1, v2, udaljenost; float put1, vrijeme; cout<<"Upisi brzinu prvog voza (u km/h):"; cin>>v1; cout<<"Upisi brzinu drugog voza (u km/h):"; cin>>v2; cout<<"Upisi udaljenost izmedju dva mjesta (u km):"; cin>>udaljenost; put1=udaljenost*v1/(v1+v2); vrijeme=put1/v1; cout<<"Susret ce se dogoditi nakon "<<put1; cout<<" km (od mjesta A). "<<endl; cout<<"Vozovi ce se sresti nakon "<<vrijeme<<" sati."<<endl; system("PAUSE"); return 0;}

21

Page 25: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

20. zadatak: Potrebno je sabrati sve prirodne trocifrene brojeve.

#include<iostream>#include<cstdlib>using namespace std;int main(){ int brojac,zbir; cout<<"Program sabira sve prirodne trocifrene brojeve."<<endl; zbir=0; for(brojac=100;brojac<=999;brojac++){ zbir=zbir+brojac; } cout<<"Zbir svih prirodnih trocifreni brojeva je "<<zbir<<endl; system ("PAUSE"); return 0;}

22

Page 26: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

21. zadatak: Ispisati sve savršene brojeve do 500.

#include<iostream>#include<cstdlib>using namespace std;int main(){ int br,brojac,zbir; cout<<"Savrseni brojevi do 500 su: "; for(br=1;br<=500;br++){ zbir=0; for (brojac=1;brojac<=(br-1);brojac++){ if(br%brojac==0) zbir=zbir+brojac; } if(zbir==br) cout<<br<<" "; } system ("PAUSE"); return 0;}

23

Page 27: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

22. zadatak: Napisati program koji na osnovu unesenog rednog broja mjeseca ispisuje koliko taj mjesec ima dana.

#include<iostream>#include<cstdlib>using namespace std;int main(){ int i; cout<<"Upisi redni broj mjeseca: "; cin>>i; switch (i){ case 4: case 6: case 9: case 11: cout<<i<<". mjesec ima 30 dana."<<endl; break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: cout<<i<<". mjesec ima 31 dan."<<endl; break; case 2: cout<<i<<". mjesec ima 28 dana (ili 29 ako je godina prestupna)."; break; default: cout<<"Pogresan unos."; cout<<" Redni broj mjeseca moze biti iz raspona od 1 do 12."; } cout << endl; system ("PAUSE"); return 0;}

24

Page 28: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

23. zadatak: Rastaviti uneseni broj na proste činioce.

#include<iostream>#include<cstdlib>using namespace std;int main(){ int br, prbr;unos:cout<<"Upisi broj veci od 0:"; cin>>br; if(br<=0){ cout<<"Treba unijeti broj veci od 0" <<endl; goto unos; } else{ prbr=2; cout<<br<<" = 1"; dj2:if(br==1){ goto kraj; } else{ dj1:if(br%prbr==0){ cout<<" * "<<prbr; br=br/prbr; goto dj2; } else{ prbr=prbr+1; goto dj1; } } }kraj:cout<<endl; system ("PAUSE"); return 0;}

25

Page 29: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

24. zadatak: Napisati program koji sabira cifre unesenog višecifrenog broja.

#include<iostream>#include<cstdlib>using namespace std;int main(){ int b,i,s,br; s=0; cout<<"Upisi prirodni broj: ";upis:cin>>b; if(b<0){ cout<<"Upisi prirodni broj"<<endl; goto upis; } br=b; while(b>0){ i=b%10; s=s+i; b=b/10; } cout<<"Zbir cifara broja "<<br<<" je "<<s<<endl; system ("PAUSE"); return 0;}

26

Page 30: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

25. zadatak: Napisati program koji računa srednju ocjenu uspjeha učenika. Nakon posljednje ocjene treba unijeti 0. U slučaju da je bilo koja od ocjena 1, ispisuje se poruka: Negativan uspjeh. Ako se unese vrijednost koja nije iz raspona od 1-5, ispisaće se poruka: Pogrešan unos.

#include<iostream>#include<cstdlib>using namespace std;int main(){ cout<<"Nakon posljednje ocjene unosi se 0."<<endl; float b,suma,br; suma=0; br=0; do{ unos:cout<<"Unesi ocjenu: "; cin>>b; if(b==1){ cout<<"Negativan uspjeh."<<endl; goto kraj; } else if(b<0 || b>5){ cout<<"Pogresan unos."<<endl; goto unos; } else{ suma=suma+b; br=br+1; } } while(b>0); br=br-1; cout<<"Srednja ocjena uspjeha je " <<suma/br<<endl; kraj:system ("PAUSE"); return 0;}

27

Page 31: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

26. zadatak: Potrebno je ispisati N članova Fibonaccijevog niza. Fibonaccijev niz je niz u kome su prva dva člana jednaka jedan, a svaki sljedeći član je zbir prethodna dva člana niza (1, 1, 2, 3, 5, 8, 13, 21, 34, ......).

#include<iostream>#include<cstdlib>using namespace std;int main(){ int prvi,drugi,treci,brojac,N; cout<<"Program ispisuje N clanova Fibonaccijevog niza."<<endl; prvi=1; drugi=1; upis:cout<<"Upisi koliko clanova niza zelis: "; cin>>N; if(N<2){ cout<<"Broj clanova niza mora biti veci ili jednak 2"<<endl; goto upis; } cout<<prvi<<" "<<drugi; for(brojac=3;brojac<=N;brojac++){ treci=prvi+drugi; cout<<" "<<treci; prvi=drugi; drugi=treci; } cout<<endl; kraj:system ("PAUSE"); return 0;}

28

Page 32: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

27. zadatak: Napisatiprogram koji računa najveću zajedničku mjeru dva prirodna broja. Najveća zajednička mjera dva broja je najveći prirodni broj kojim su djeljiva oba broja.

#include<iostream>#include<cstdlib>using namespace std;int main(){ int A,B,manji,br,mjera; unos:cout<<"Unesi prvi broj: "; cin>>A; cout<<"Unesi drugi broj:"; cin>>B; if((A<=0)||(B<=0)){ cout<<"Treba unijeti brojeve vece od 0"<<endl; goto unos; } mjera=1; if(A<B){ manji=A; } manji=B; for(br=2;br<=manji;br++){ if((A%br==0)&&(B%br==0)) mjera=br; } cout<<"Najveca mjera brojeva "<<A<<" i "<<B<<" je "<<mjera<<endl; system ("PAUSE"); return 0;}

29

Page 33: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

28. zadatak: Potrebno je unijeti odabrani broj cifara počevši od cifre najveće težinske vrijednosti, pa od njih sastaviti i ispisati prirodni broj. Unos cifara se prekida kada se unese broj manji od 0 ili veći od 9.

#include<iostream>#include<cstdlib>using namespace std;int main(){ cout<<"Program na osnovu unesenih cifara sastavlja i ispisuje prirodni broj."; int ci,br; br=0; cout<<endl<<"Upisi cifru: "; cin>>ci; while((ci>=0)&&(ci<=9)) { br=br*10+ci; cout<<"Upisi cifru: "; cin>>ci; } cout<<"Broj sastavljen od zadanih cifara je " <<br<<endl; system ("PAUSE"); return 0;}

30

Page 34: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

29. zadatak: Napisati program za ispis članova kvadratne NxN matrice.

#include <iostream>using namespace std;int main(){ int n,i,a[10][10]; cout << " Upisi br.redova i kolona matrice nxn = "; cin >> n; cout<<endl; cout<<"Unesi clanove :"<<endl; for (int i=1;i<=n;i++){ for (int j=1;j<=n; j++){ cout <<" a["<<i<<","<<j<<"]="; cin >>a[i][j]; } } cout<<endl; cout<<" Upisana matrica je : "<<endl; for(int i=1; i<=n; i++){ for (int j=1; j<=n; j++){ cout <<a[i][j]<<" \t "; } cout<<endl; } return 0;}

31

Page 35: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

30. zadatak: Napisati program koji ispisuje kvadratnu matricu A, i zbir članova reda i zbir clanova kolona te matrice.

#include <iostream>#define max 10using namespace std;int main (){ int matrica[max][max], sk[max], sr[max]; int n,s=0,p=1; cout << " Unesi br.redova i kolona matrice nxn = "; cin >> n; for (int i=1; i<=max; i++){ sk[i]=0; sr[i]=0; } for (int i=1; i<=n; i++){ for (int j=1; j<=n; j++){ cout <<"polje["<<i<<","<<j<<"]="; cin >> matrica[i][j]; sk[j]+=matrica[i][j]; sr[i]+=matrica[i][j]; } } cout<<endl; cout<<" Upisana matrica je : "<<endl; for(int i=1; i<=n; i++){ cout << endl; for (int j=1; j<=n; j++){ cout <<matrica[i][j]<<" \t "; } } cout<<endl; for (int i=1; i<=n; i++){ cout<<" Suma kolone ["<<i<<"] = "<<sk[i]<<endl; } cout<<endl; for (int i=1; i<=n; i++){ cout<<"Suma reda ["<<i<<"] = "<<sr[i]<<endl; } return 0;}

32

Page 36: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

33

Page 37: Seminarski rad C++ 30 zadataka

Viši programski jezici i RAD alati – programiranje u C++

Literatura

1. Davis, Stephen R.: C++ for Dummies, 3rd edition. IDG Books Worldwide, Foster City, 1998.2. Mekić, Smajo: Programiranje za srednje škole. http://www.scribd.com/doc/129418197/C-

programiranje-za-srednje-%C5%A1kole3. Osnove programiranja u jeziku C++. https://sites.google.com/site/sandasutalo/osnove-

programiranja

34