made by borghia -...

39
Made by Borghia Rijeka, 2008

Upload: others

Post on 15-Sep-2019

6 views

Category:

Documents


0 download

TRANSCRIPT

Made by Borghia

Rijeka, 2008

SADRŽAJ

1. SIZEOF - ISPIS VELIČINE RAZNIH TIPOVA DATOTEKA.........................................................................3

2. DVODIMENZIONALNO POLJE - ISPISIVANJE ELEMENATA.....................................................................3

3. DVODIMENZIONALNO POLJE - NAPIŠITE PROGRAM ZA STVARANJE I ISPISIVANJE

DVODIMENZIONALNOG POLJA 3X3, TE IZRAČUNAJTE I ISPIŠITE SUME REDAKA I STUPACA. ..................3

4. DVODIMENZIONALNO POLJE I SUMA - NAPIŠITE PROGRAM ZA STVARANJE I ISPISIVANJE

DVODIMENZIONALNOG POLJA 3X3, TE IZRAČUNAJTE I ISPIŠITE SUMU ELEMENATA GLAVNE

DIJAGONALE (I,I), I SPOREDNE DIJAGONALE (J,J). (NADOPUNA 3. ZADATKA).......................................4

5. JEDNODIMENZIONALNO POLJE I STRINGOVI - NAPIŠITE PROGRAM ZA UČITAVANJE STRINGOVA SVE

DOK SE NE UČITA STRING DULJINE 0 ZNAKOVA.................................................................................5

6. STRINGOVI - NAPIŠITE PROGRAM ZA UČITAVANJE STRINGA S1 I KOPIRAJTE GA U STRING S2, TE

ISPIŠITE S1 I S2..............................................................................................................................5

7. STRINGOVI - NAPIŠITE PROGRAM U KOJEM ĆETE UČITATI POLJE NAŠIH IMENA I ISPIŠITE IH...............6

8. STRINGOVI - NAPIŠI PROGRAM KOJI RADI ISTO KAO I FUNKCIJA STRCMPI.TA FUNKCIJA

USPOREĐUJE DVA ZNAKOVNA NIZA, ZANEMARUJUĆI RAZLIKU IZMEĐU VELIKIH I MALIH SLOVA.

PROGRAM TREBA ISPISATI RAZLIKUJU LI SE ZNAKOVNI NIZOVI..........................................................6

9. STRINGOVI - NAPIŠI PROGRAM KOJI ĆE ISPISATI DULJINU UČITANOG ZNAKOVNOG NIZA,

PRETVORITI SVA MALA SLOVA U VELIKA, A VELIKA U MALA. ...............................................................6

10. STRINGOVI - STRCPY, TOUPPER - NAZIVI BANAKA .............................................................................7

11. REKURZIJE - NAPIŠI PROGRAM KOJI IMA FUNKCIJU KOJA ZA UČITANI CIJELI BROJ VRAĆA NJEGOV

BINARNI EKVIVALENT. (REKURZIJE-PETLJA KOJA SE PONAVLJA OD ZAGLAVLJA DO POZIVANJA SAME

SEBE DOK SE NE ISPUNI NEKI UVJET - POZIVA SAMA SEBE)................................................................8

12. REKURZIJE - NAPIŠI PROGRAM KOJI IMA FUNKCIJU KOJA ZA UČITANI CIJELI BROJ VRAĆA NJEGOV

BINARNI EKVIVALENT PO BILO KOJOJ BAZI. ......................................................................................8

13. REKURZIJE - NAPIŠI PROGRAM KOJI IMA FUNKCIJU KOJA ZA UČITANI CIJELI BROJ VRAĆA NJEGOV

HEKSADECIMALNI EKVIVALENT.........................................................................................................9

14. REKURZIJE - NAPIŠI PROGRAM KOJI IMA FUNKCIJU KOJA VRAĆA SUMU SVIH BROJEVA DO UČITANOG

BROJA N. ........................................................................................................................................9

15. DINAMIČKO POLJE - NIZ A UPISUJE SE U NIZ B................................................................................10

16. DINAMIČKO POLJE - SA KONAČNIM BROJEM ELEMENATA - ARITMETIČKA SREDINA.............................10

17. DINAMIČKO POLJE - VIŠEDIMENZIONALNA POLJA - ALOKACIJA/DEALOKACIJA MEMORIJSKOG

PROSTORA - NEOGRANIČENO REDAKA - FIXNO STUPACA..................................................................11

SIZEOF - ISPIS VELIČINE RAZLIČITIH TIPOVA PODATAKA .................................................................11

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

1

REKURZIJE - BROJ U BINARNI (PRETVORBA)....................................................................................12

DVODIMENZIONALNO POLJE - (ISPIS) - DEFINIRANIRANI ELEMENTI MATRICE ...................................12

DVODIMENZIONALNO POLJE - MATRICA - SUMA REDAKA, STUPACA, PROSJEK - 7 GRADOVA -

PROSJEČNA TEMPERARURA ............................................................................................................12

DVODIMENZIONALNO POLJE - MATRICA - SUMA REDAKA, STUPACA, PROSJEK - DŽEPARAC .................13

DVODIMENZIONALNO POLJE I SUME REDAKA-STPACA (ISPIS) - NEDEFINIRANIRANI ELEMENTI

MATRICE ......................................................................................................................................14

DVODIMENZIONALNO POLJE I SUME REDAKA-STPACA-DIJAGONALA (ISPIS) - NEDEFINIRANIRANI

ELEMENTI MATRICE.......................................................................................................................14

REKURZIJE - NEKI BROJ NA NEKU POTENCIJU..................................................................................15

REKURZIJE - NEKI BROJ NA NEKU POTENCIJU (DRUGI NAČIN) ..........................................................16

DVODIMENZIONALNO I JEDNODIMENZIONALNO POLJE MEDALJE-ZEMLJE ........................................16

STRINGOVI, JEDNODIMENZIONALNA POLJA - BROJEVI RIJEČI - UDŽBENICI .......................................17

REKURZIJE - DATUM - SUMA ZNAMENKI - EVIVALENT PO BAZI X - ISPIS .... .......................................18

STRINGOVI - NAJDULJI - VELIKA MALA SLOVA - KOPIRANJE.... ..........................................................19

STRINGOVI - BROJANJE RIJEČI - RAZMAKA......................................................................................20

REKURZIJE - PRIDODAVANJE ..........................................................................................................20

REKURZIJE - FAKTORIJELI..............................................................................................................21

POINTERI - POKAZIVAČI ................................................................................................................21

SUMA ZNAMENKI (JMBG) - EKVIVALENT PO BAZI..............................................................................22

REKURZIJE - DATUM - NAJVEĆA ZNAMENKA - POTENCIJA..................................................................22

REKURZIJE - DATUM STUDIJA - SUMA, POTENCIJA.... .......................................................................23

POINTERI - STUDENTI, OCJENE, KOLEGIJI.......................................................................................25

STRUKTURE - DINAMIČKA 1_D POLJA ( PROIZVODI, ŠIFRE, CIJENE) ..................................................25

DATOTEKE....................................................................................................................................26

DATOTEKE - 2 ...............................................................................................................................27

DINAMIČKA JEDNODIMENZIONALNA POLJA - SKIJAŠICE - PROLAZNA VREMENA..................................28

DINAMIČKA JEDNODIMENZIONALNA POLJA - FINKCIJA ISPISA MIN I MAX ČLANA................................29

DINAMIČKA JEDNODIMENZIONALNA POLJA - STUDENTI - PROSJEK ...................................................30

DINAMIČKA DVODIMENZIONALNA POLJA - STUDENTI - ZBROJ BODOVA - ZADACI...............................31

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

2

DINAMIČKA DVODIMENZIONALNA POLJA - STUDENTI - BODOVI - ZADACI - PROSJEK..........................32

LISTE - STRUKTURA PROIZVODA-ŠIFRA, IME, CIJENA.......................................................................33

VEZANE LISTE - DODAVANJE I ISPIS ELEMENATA - PODACI O STUDENTIMA.......................................33

VEZANE LISTE - DODAVANJE, SORTIRANJE, PROVJERA, BRISANJE I ISPIS ELEMENATA -......................34

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

3

1. SIZEOF - ISPIS VELIČINE RAZNIH TIPOVA DATOTEKA #include "stdafx.h" #include <iostream> using namespace std; int main() { std::cout<<"Velicina tipa int je: \t\t"<<sizeof(int)<<" bajta. \n"; std::cout<<"Velicina tipa short int je: \t"<<sizeof(short)<<" bajta. \n"; std::cout<<"Velicina tipa long int je: \t"<<sizeof(long)<<" bajta. \n"; std::cout<<"Velicina tipa char je: \t\t"<<sizeof(char)<<" bajta. \n"; std::cout<<"Velicina tipa float je: \t"<<sizeof(float)<<" bajta. \n"; std::cout<<"Velicina tipa double je: \t"<<sizeof(double)<<" bajta. \n"; return 0; }

2. DVODIMENZIONALNO POLJE - ISPISIVANJE ELEMENATA. #include "stdafx.h" #include <iostream> #define BR_RED 2 #define BR_STUP 3 using namespace std; void main(){ float matrica[BR_RED][BR_STUP]={{3.8,14.6,-18.2},{12.4,15.1,81.5}}; for (int i=0;i<BR_RED;i++){ for (int j=0;j<BR_STUP;j++) cout<<matrica[i][j]<<"\t"; cout<<"\n"; } }

3. DVODIMENZIONALNO POLJE - NAPIŠITE PROGRAM ZA STVARANJE I ISPISIVANJE DVODIMENZIONALNOG POLJA 3X3, TE IZRAČUNAJTE I ISPIŠITE SUME REDAKA I STUPACA.

#include "stdafx.h" #include <iostream> #define BR_RED 2 #define BR_STUP 3 using namespace std; void main(){ int i,j,mat[BR_RED][BR_STUP]; int sr[BR_RED]={0},ss[BR_STUP]={0}; //unos vrijednosti elemenata matrice for (i=0;i<BR_RED;i++){ for (j=0;j<BR_STUP;j++){ cout<<"matrica["<<i<<"]"<<"["<<j<<"]:"; cin>>mat[i][j]; sr[i]+=mat[i][j];//suma pojedinog retka ss[j]+=mat[i][j];}}

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

4

cout<<"\n"; //ispis matrice for (i=0;i<BR_RED;i++){ for (j=0;j<BR_STUP;j++) cout<<mat[i][j]<<"\t"; cout<<"\n"; } //ispis sume redaka for (i=0;i<BR_RED;i++) cout<<"Suma"<<(i+1)<<".retka\t"<<sr[i]<<endl; //endl i "\n" je ista stvar //ispis sume stupaca for (j=0;j<BR_STUP;j++) cout<<"Suma"<<(j+1)<<".stupca\t"<<ss[j]<<"\n"; }

4. DVODIMENZIONALNO POLJE I SUMA - NAPIŠITE PROGRAM ZA STVARANJE I ISPISIVANJE DVODIMENZIONALNOG POLJA 3X3, TE IZRAČUNAJTE I ISPIŠITE SUMU ELEMENATA GLAVNE DIJAGONALE (I,I), I SPOREDNE DIJAGONALE (J,J). (NADOPUNA 3. ZADATKA)

#include "stdafx.h" #include <iostream> #define BR_RED 3 #define BR_STUP 3 using namespace std; void main(){ int i,j,gd,sd,mat[BR_RED][BR_STUP]; int sr[BR_RED]={0},ss[BR_STUP]={0}; //unos vrijednosti elemenata matrice for (i=0;i<BR_RED;i++){ for (j=0;j<BR_STUP;j++){ cout<<"matrica["<<i<<"]"<<"["<<j<<"]:"; cin>>mat[i][j]; sr[i]+=mat[i][j];//suma pojedinog retka ss[j]+=mat[i][j];}} cout<<"\n"; //ispis matrice for (i=0;i<BR_RED;i++){ for (j=0;j<BR_STUP;j++) cout<<mat[i][j]<<"\t"; cout<<"\n"; } //ispis sume redaka

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

5

for (i=0;i<BR_RED;i++) cout<<"Suma"<<(i+1)<<".retka\t"<<sr[i]<<endl; //endl i "\n" je ista stvar //ispis sume stupaca for (j=0;j<BR_STUP;j++) cout<<"Suma"<<(j+1)<<".stupca\t"<<ss[j]<<"\n"; gd=0; //ispis sume elemenata glavne dijakonale for (i=0;i<BR_RED;i++) gd=gd+mat[i][i]; cout<<"Suma glavne dijagonale je:"<<gd<<"\n"; //element sporedne dijagonale je (i+j==BR_RED-1) dodajemo u deklaraciji "sd" //ispis sume elemenata glavne dijakonale sd=0; for (i=0;i<BR_RED;i++) for (j=0;j<BR_STUP;j++) if(i+j==BR_RED-1)sd=sd+mat[i][j]; cout<<"Suma sporedne dijagonale je:"<<sd<<"\n"; }

5. JEDNODIMENZIONALNO POLJE I STRINGOVI - NAPIŠITE PROGRAM ZA UČITAVANJE STRINGOVA SVE DOK SE NE UČITA STRING DULJINE 0 ZNAKOVA.

#include "stdafx.h" #include<iostream> #include<string> using namespace std; int main() { char s1[20]; do{ cout<<"Ucitaj niz od 20 znakova: "; cin.getline(s1,20); cout<<"Duljina stringa je: "<<strlen(s1)<<"\n"; }while(strlen(s1)); cout<<"\n"; return 0; }

6. STRINGOVI - NAPIŠITE PROGRAM ZA UČITAVANJE STRINGA S1 I KOPIRAJTE GA U STRING S2, TE ISPIŠITE S1 I S2.

#include "stdafx.h" #include<iostream> #include<string> using namespace std; int main()

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

6

{ char s1[20],s2[20]; cout<<"Ucitaj niz od 20 znakova: "; cin.getline(s1,20); strcpy(s2,s1); cout<<"String s1 je: "<<s1<<"\n"<<"String s2 je: "<<s2<<"\n"; cout<<"\n"; return 0; }

7. STRINGOVI - NAPIŠITE PROGRAM U KOJEM ĆETE UČITATI POLJE NAŠIH IMENA I ISPIŠITE IH. #include"stdafx.h" #include<iostream> #include<string> using namespace std; int main() { char s1[5][25]; int i; for(i=0;i<5;i++){ cout<<"Ucitaj ime: "; cin.getline(s1[i],25);} for(i=0;i<5;i++) cout<<s1[i]<<"\n"; cout<<"\n\n"; return 0; }

8. STRINGOVI - NAPIŠI PROGRAM KOJI RADI ISTO KAO I FUNKCIJA STRCMPI.TA FUNKCIJA USPOREĐUJE DVA ZNAKOVNA NIZA, ZANEMARUJUĆI RAZLIKU IZMEĐU VELIKIH I MALIH SLOVA. PROGRAM TREBA ISPISATI RAZLIKUJU LI SE ZNAKOVNI NIZOVI.

#include"stdafx.h" #include<iostream> #include<string.h> #include<stdio.h> #include<stdlib.h> #define MAX 100 using namespace std; void main() { int i;char niz1[MAX],niz2[MAX]; cout<<"Unesite 1. niz znakova: "; cin.getline(niz1,MAX); cout<<"\n"<<"Unesite 2. niz znakova: "; cin.getline(niz2,MAX); strlwr(niz1); //Pretvara sva velika slova u nizu u mala strlwr(niz2); if(strlen(niz1)==strlen(niz2)) for(i=0;niz1[i]!='\0';i++) if ((niz1[i]!=niz2[i]))break; if(i!=strlen(niz1)||strlen(niz1)!=strlen(niz2)) cout<<"Nizovi nisu jednaki!\n"; else cout<<"Nizovi su jednaki!\n"; }

9. STRINGOVI - NAPIŠI PROGRAM KOJI ĆE ISPISATI DULJINU UČITANOG ZNAKOVNOG NIZA, PRETVORITI SVA MALA SLOVA U VELIKA, A VELIKA U MALA.

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

7

#include"stdafx.h" #include<iostream> #include<ctype.h> //mulja sa slovima #include<string.h> #define MAX 100 using namespace std; void main() { int i,s=0;char niz[MAX]; cout<<"Unesite niz znakova: "; cin.getline(niz,MAX); cout<<"Niz ima "<<strlen(niz)<<" znakova"<<"\n"; for(i=0;i<strlen(niz);i++)niz[i]=tolower(niz[i]); cout<<niz<<"\n"; for(i=0;i<strlen(niz);i++)niz[i]=toupper(niz[i]); cout<<niz<<"\n"; }

10. STRINGOVI - STRCPY, TOUPPER - NAZIVI BANAKA

Stvorite polje od n naziva banaka. Pronadjite u polju najdulji naziv banke i kopirajte je u string NAJBANKA. Pretvorite sva slova u stringu NAJBANKA u velika. Stvorite jednodimenzionalno polje koje ce sadržavati brojeve rijeci svakog naziva banke. Ispišite polje naziva banaka, string NAJBANKA i jedniodimenzionalno polje broja rijeci svakoga naziva banke.

#include "stdafx.h" #include <iostream> #include <string> #include <ctype.h> using namespace std; #define broj_znakova 100 #define broj_banaka 100 int main() { char banke [broj_banaka][broj_znakova]={{0},{0}}; char NAJBANKA [broj_znakova]={0}; int brojevi_rijeci[broj_banaka]={0}; int i,j,a,najdulja_index=0, najdulja_iznos=0; cout<<"Koliko banaka zelite unijeti? "; cin>>a; for(i=0;i<a+1;i++) cin.getline(banke[i],broj_znakova); for(i=0;i<a+1;i++) if(strlen(banke[i])>najdulja_iznos){ najdulja_iznos=strlen(banke[i]); najdulja_index=i; } cout<<"\nNajdulji naziv banke je "<<najdulja_index<<". po redu, a sadrzi "<<najdulja_iznos<<" znak(ov)a. \n\n"; strcpy(NAJBANKA,banke[najdulja_index]);

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

8

cout<<"\nNAJBANKA ispisana velikim slovima: \n"; for(i=0; i<najdulja_iznos; i++) NAJBANKA[i]= toupper(NAJBANKA[i]); cout<<NAJBANKA<<endl; cout<<"\nBrojevi rijeci u nazivima banaka:\n"; for(i=1;i<a+1;i++){ for(j=0;j<broj_znakova;j++) if(banke[i][j]==' ') brojevi_rijeci[i]++; cout<<brojevi_rijeci[i]+1<<"\t"; } cout<<"\n\n"; cout<<"Ispis svih banaka:"; for(i=0;i<a+1;i++) cout<<banke[i]<<endl; system("pause"); return 0; }

11. REKURZIJE - NAPIŠI PROGRAM KOJI IMA FUNKCIJU KOJA ZA UČITANI CIJELI BROJ VRAĆA NJEGOV BINARNI EKVIVALENT. (REKURZIJE-PETLJA KOJA SE PONAVLJA OD ZAGLAVLJA DO POZIVANJA SAME SEBE DOK SE NE ISPUNI NEKI UVJET - POZIVA SAMA SEBE)

#include"stdafx.h" #include<iostream> using namespace std; void ekvivalent(unsigned long int broj) { if(broj>0) { ekvivalent(broj/2); cout<<broj%2; } } void main() { unsigned long int broj; cin>>broj; cout<<"Binarni ekvivalent broja "<<broj<<" je "<<endl; ekvivalent(broj); }

12. REKURZIJE - NAPIŠI PROGRAM KOJI IMA FUNKCIJU KOJA ZA UČITANI CIJELI BROJ VRAĆA NJEGOV BINARNI EKVIVALENT PO BILO KOJOJ BAZI.

#include"stdafx.h" #include<iostream> using namespace std; void ekvivalent(unsigned long int broj,unsigned long int baza) { if(broj>0) { ekvivalent(broj/baza,baza); cout<<broj%baza; } } void main() { unsigned long int broj,baza; cin>>broj;

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

9

cin>>baza; cout<<"Ekvivalent broja "<<broj<<" je "<<endl; ekvivalent(broj,baza); }

13. REKURZIJE - NAPIŠI PROGRAM KOJI IMA FUNKCIJU KOJA ZA UČITANI CIJELI BROJ VRAĆA NJEGOV HEKSADECIMALNI EKVIVALENT.

#include"stdafx.h" #include<iostream> using namespace std; void pisi(int n) { switch (n) { case(10):cout<<'A';break; case(11):cout<<'B';break; case(12):cout<<'C';break; case(13):cout<<'D';break; case(14):cout<<'E';break; case(15):cout<<'F';break; default:cout<<n;break; } } void HexDec(unsigned long int broj) { if(broj>15)HexDec(broj/16); pisi((broj%16)); } void main() { unsigned long int broj; cin>>broj; cout<<"Heksadecimalni ekvivalent broja "<<broj<<" je "<<endl; HexDec(broj); cout<<endl; }

14. REKURZIJE - NAPIŠI PROGRAM KOJI IMA FUNKCIJU KOJA VRAĆA SUMU SVIH BROJEVA DO UČITANOG BROJA N.

#include"stdafx.h" #include<iostream> using namespace std; int suma(int s, int n) { if(n==1) return n; else return (n+suma(s,n-1)); } void main() { int n,s=0; cout<<"Unesit broj N: "; cin>>n; cout<<endl<<suma(s,n)<<endl<<endl; }

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

10

15. DINAMIČKO POLJE - NIZ A UPISUJE SE U NIZ B

Napišite program koji stvara niz A s n učitanih realnih brojeva i koji će izračunati srednju vrijednost tog niza i u niz B upisati sve brojeve iz niza A veće od te artmetičke sredine ili nulu. Ispišite niz B.

#include "stdafx.h" #include <iostream> using namespace std; int main() { float *A, *B; int n,i,j;float sv; cout<<"Koliko brojeva zelite unijeti? "; cin>>n; float temp=0; A=new float[n]; B=new float[n]; for(i=0;i<n;i++){ cout<<endl<<i+1<<"vrijednost "; cin>>A[i]; temp=temp+A[i]; } sv=float(temp)/float(n); cout<<endl<<"Srednja vrijednost niza je: "<<sv<<endl; for(i=0;i<n;i++){ if(A[i]>sv)B[i]=A[i];else B[i]=0;} for(j=0;j<n;j++){ cout<<B[j]<<" ";} delete []A;delete []B; A=NULL;B=NULL; return 0; }

16. DINAMIČKO POLJE - SA KONAČNIM BROJEM ELEMENATA - ARITMETIČKA SREDINA

Napišite program koji stvara niz A s maximalno 100 brojeva i koji će izračunati i ispisati aritmetičku sredinu tog niza brojeva.

#include "stdafx.h" #include <iostream> using namespace std; int main() { int *A; float sv;//srednja vrijednost int n,i; cout<<"Koliko brojeva zelite unijeti? "; cin>>n; int temp=0; A=new int[n]; for(i=0;i<n;i++){ cout<<endl<<i+1<<"vrijednost"; cin>>A[i]; temp=temp+A[i]; } sv=float(temp)/float(n);

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

11

cout<<endl<<"Srednja vrijednost niza je: "<<sv<<endl; delete []A; A=NULL; return 0; }

17. DINAMIČKO POLJE - VIŠEDIMENZIONALNA POLJA - ALOKACIJA/DEALOKACIJA MEMORIJSKOG PROSTORA - NEOGRANIČENO REDAKA - FIXNO STUPACA

Provedite postupak dinamičke alokacije memorijskog prostora za dvodimenzionalno polje tipa int proizvoljnog broja redaka i proizvoljnog broja stupaca u svakom pojedinom retku. Pridružite članovima polja vrijednosti. Prvi podatak u retku neka bude podatak o broju članova za taj redak. Ispišite vrijednosti članova polja. Nakon upotrebe, dealocirajte memorijski prostor. Ponovite postupak proizvoljan broj puta.

#include "stdafx.h" #include <iostream> using namespace System; using namespace std; int main() { //alokacija prostora int **A; int i,j,n,m; //unos n redaka//alokacija polja pokazivača od (n) članova cout<<"Broj redaka: "; cin>>n; A=new int*[n]; //unos broja stupaca//alokacija polja od (n*m+1) članova for(i=0;i<n;i++){ cout<<"Broj clanova u "<<(i+1)<<". retku: "; cin>>m; A[i]=new int[m+1]; A[i][0]=m; //pridruzivanje vrijednosti for(j=1;j<=m;j++) cin>>A[i][j]; } //ispis cout<<"Ispis clanova polja: "<<endl; for(i=0;i<n;i++){ cout<<endl; for(j=0;j<=A[i][0];j++) cout<<"["<<i<<"]["<<j<<"]="<<A[i][j]<<endl; } //dealokacija for(i=0;i<n;i++) delete[]A[i]; delete[]A; return 0; } Ø SIZEOF - ISPIS VELIČINE RAZLIČITIH TIPOVA PODATAKA

#include "stdafx.h" #include <iostream>

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

12

using namespace std; int main(){ cout<<"Velicina tipa int je: "<<sizeof(int)<<"bajta\n"; cout<<"Velicina tipa float je: "<<sizeof(float)<<"bajta\n"; cout<<"Velicina tipa double je: "<<sizeof(double)<<"bajta\n"; return 0; Ø REKURZIJE - BROJ U BINARNI (PRETVORBA)

#include "stdafx.h" #include <iostream> using namespace std; void ekvival(unsigned long int x); void main() { unsigned long int a; cout<<"Unesi zeljeni broj: \n"; cin>>a; cout<<"Binarni ekvivalent unesenog broja: "<<a<<" je: "; ekvival(a); cout<<endl; return 0; } void ekvival(unsigned long int x){ if (x>0){ ekvival(x/2); cout<<x%2; } } Ø DVODIMENZIONALNO POLJE - (ISPIS) - DEFINIRANIRANI ELEMENTI MATRICE

#include "stdafx.h" #include <iostream> #define br_red 2 #define br_stup 3 using namespace std; int main(){ int i,j; float matrica[br_red][br_stup]={{1,14.234,3},{4,5,-0.998}}; for (i=0;i<br_red;i++){ for (j=0;j<br_stup;j++) cout<<matrica[i][j]<<"\t"; cout<<"\n"; } return 0; } Ø DVODIMENZIONALNO POLJE - MATRICA - SUMA REDAKA, STUPACA, PROSJEK - 7 GRADOVA -

PROSJEČNA TEMPERARURA

za 7 najvećih gradova učitajte dvodim polje pros temp zraka za 12 mj (redak=prosj temp zraka jednog grada). Stvorite jednodim polje prosj god temper u gradovima i stvorite jednodim polje prosj temp po mjesecima. ispiši sve.

#include "stdafx.h" #include<iostream>

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

13

#define RED 7 #define STUP 12 using namespace std; void main(){ int i,j,mat[RED][STUP],sr[RED]={0},ss[STUP]={0}; for(i=0;i<RED;i++){ for(j=0;j<STUP;j++){ cout<<"Matrica ["<<i<<"]"<<"["<<j<<"] :"; cin>>mat[i][j]; sr[i]+=mat[i][j]; ss[j]+=mat[i][j];}} cout<<"\n"; for(i=0;i<RED;i++){ for(j=0;j<STUP;j++) cout<<mat[i][j]<<"\t"; cout<<"\n";} for ( i=0; i <RED; i++) cout<<"Prosjek "<<(i+1)<<". Grada: "<<(double)sr[i]/STUP<<"\n"; for(j=0;j<STUP;j++) cout<<"Prosjek "<<(j+1)<<".mjeseca:"<<(double)ss[j]/RED<<"\n";} Ø DVODIMENZIONALNO POLJE - MATRICA - SUMA REDAKA, STUPACA, PROSJEK - DŽEPARAC

Stvorite polje džeparaca svih članova obitelji po mjesecima (redak polja = džeparci jednog člana obitelji po mjesecima).Stvorite jednodimenzionalno polje prosječnih godišnjih džeparaca po članovima u obitelji i stvorite jednodimenzionalno polje prosječnih džeparaca po mjesecima. Ispišite dvodimenzionalno polje svih džeparaca, jednodimenzionalno polje prosječnih džeparaca po članovima obitelji i ispišite jednodimezionalno polje prosječnih džeparaca po mjesecima.

#include "stdafx.h" #include<iostream> #define BR_RED 5 #define BR_STUP 3 using namespace std; void main(){ int i,j,n,mat [BR_RED][BR_STUP]; int sr[BR_RED]={0}, ss[BR_STUP]={0}; cout<<"Ucitajte broj clanova obitelji: "; cin>>n; //Unos vrijednosti elemenata matrice for ( i=0; i <n; i++){ for ( j=0; j<BR_STUP; j++){ cout<<"matrica ["<<i<<"]"<<"["<<j<<"]: "; cin>>mat[i][j]; sr[i]+=mat[i][j]; //suma pojedinog retka (dzeparaca po clanu) ss[j]+=mat[i][j];}} //suma pojedinog stupca (sume dzeparaca po mjesecu) cout<<"\n"; //ispis matrice for ( i=0; i <n; i++){ for ( j=0; j<BR_STUP; j++) cout<<mat[i][j]<<"\t"; cout<<"\n"; } //Ispis prosjecnih godisnjih dzeparaca po clanu for ( i=0; i <n; i++) cout<<"Prosjek "<<(i+1)<<". retka: "<<(double)sr[i]/BR_STUP<<"\n"; //ispis prosjecnih mjesecnih dzeparaca for ( j=0; j <BR_STUP; j++) cout<<"Prosjek "<<(j+1)<<". stupca: "<<(double)ss[j]/n<<"\n"; }

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

14

Ø DVODIMENZIONALNO POLJE I SUME REDAKA-STPACA (ISPIS) - NEDEFINIRANIRANI ELEMENTI MATRICE

#include "stdafx.h" #include<iostream> #define R 3 //broj redaka #define S 3 //broj stupaca using namespace std; int main() { float matrica[R][S]; float SumR[R]={0}; float SumS[S]={0}; int i,j; for (i=0;i<R;i++){ for (j=0;j<S;j++){ cout<<"Unesi broj za element matrice ["<<i<<"]"<<"["<<j<<"]\n"; cin>>matrica[i][j]; SumR[i]=SumR[i]+matrica[i][j]; SumS[j]=SumS[j]+matrica[i][j]; } cout<<endl; } cout<<"Ispisujem matricu\n"; for (i=0;i<R;i++){ for (j=0;j<S;j++) cout<<matrica[i][j]<<"\t"; cout<<endl; } cout<<endl; for (i=0;i<R;i++) cout<<"Suma"<<(i+1)<<". retka je: "<<SumR[i]<<"\n"; cout<<endl; cout<<endl; for (j=0;j<S;j++) cout<<"Suma"<<(j+1)<<". stupca je: "<<SumS[j]<<"\n"; cout<<endl; return 0; } Ø DVODIMENZIONALNO POLJE I SUME REDAKA-STPACA-DIJAGONALA (ISPIS) - NEDEFINIRANIRANI

ELEMENTI MATRICE #include "stdafx.h" #include<iostream> #define R 3 //broj redaka #define S 3 //broj stupaca using namespace std; int main() { float matrica[R][S]; float SumR[R]={0}; float SumS[S]={0}; int i,j; for (i=0;i<R;i++){ for (j=0;j<S;j++){

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

15

cout<<"Unesi broj za element matrice ["<<i<<"]"<<"["<<j<<"]\n"; cin>>matrica[i][j]; SumR[i]=SumR[i]+matrica[i][j]; SumS[j]=SumS[j]+matrica[i][j]; } cout<<endl; } cout<<"Ispisujem matricu\n"; for (i=0;i<R;i++){ for (j=0;j<S;j++) cout<<matrica[i][j]<<"\t"; cout<<endl; } cout<<endl; for (i=0;i<R;i++) cout<<"Suma"<<(i+1)<<". retka je: "<<SumR[i]<<"\n"; cout<<endl; cout<<endl; for (j=0;j<S;j++) cout<<"Suma"<<(j+1)<<". stupca je: "<<SumS[j]<<"\n"; cout<<endl; float SumGD=0; //deklariran broj za sumu glavne dijagonale float SumSD=0; for (i=0;i<R;i++){ for (j=0;j<S;j++) if (i==j) SumGD=SumGD+matrica[i][j]; } cout<<"Suma Glavne Dijagonale je: "<<SumGD<<"\n"; for (i=0;i<R;i++){ for (j=0;j<S;j++) if (i+j==R-1) SumSD=SumSD+matrica[i][j]; } cout<<"Suma Sporedne Dijagonale je: "<<SumSD<<"\n"; return 0; } Ø REKURZIJE - NEKI BROJ NA NEKU POTENCIJU

#include "stdafx.h" #include<iostream> using namespace System; using namespace std; int potencija(int broj,int pot); int br,pt; int main() { cout<<"Unesi broj: \n"; cin>>br; cout<<"Unesi potenciju: \n"; cin>>pt; if (pt<0){ cout<<"Unijeli ste negativnu potenciju, sorry ali nemere...\n"; return 0; } cout<<"Broj "<<br<<" potenciran na "<<pt<<". potenciju iznosi: "<<potencija(br,pt)<<"\n\n";

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

16

} int potencija(int broj,int pot){ if (pot==0) return 1; pot--; return (broj*potencija(broj,pot)); } Ø REKURZIJE - NEKI BROJ NA NEKU POTENCIJU (DRUGI NAČIN)

#include "stdafx.h" #include <iostream> using namespace std; int funk (int eksponent, int broj); int main() { int eksponent, broj=2; bool uvjet=1; cout<<"Unesi eksponent: "; cin>>eksponent; //'iskljucenje' uvjeta pod kojima funkcija ne radi: if(eksponent<0) {cout<<"Program ne radi s negativnim eksponentima."; uvjet=0;} if(eksponent>30) {cout<<"Program ne radi s toliko velikim potencijama."; uvjet=0;} if(eksponent==0) {cout<<"Bilo koji broj na nultu potenciju je 1. \n"; uvjet=0;} //ukoliko se eksponent nalazi u 'legalnom' podrucju, poziva se funkcija 'funk' if(uvjet==1) cout<<eksponent<<". potencija broja 2 je "<<funk(eksponent, broj)<<".\n"; system("pause"); return 0; } int funk (int eksponent, int broj) { eksponent--; if(eksponent==0) {return broj;} //za slucaj da se radi o 2^1 broj=broj+broj; //ili broj=broj*a; ili broj*=2; if(eksponent>1) {return funk(eksponent,broj);} return broj; } Ø DVODIMENZIONALNO I JEDNODIMENZIONALNO POLJE MEDALJE-ZEMLJE

Za učitani broj zemalja na Svjetskom prvenstvu u plivanju stvorite dvodimenzionalno polje osvojenih medalja po zemljama (redak polja = broj zlatnih, srebrnih i brončanih medalja jedne zemlje). Stvorite jednodimenzionalno polje ukupnog broja medalja po zemljama i stvorite jednodimenzionalno polje prosječnog broja osvojenih medalja po zemljama. Ispišite dvodimenzionalno polje i jednodimezionalna polja.

#include "stdafx.h" #include <iostream> //uvijek #includati stdafx prije iostream! using namespace std; //ovo je da se ne mora pisati 'std::' prije cin i cout... #define redovi 20 //definiranje konstantne vrijednosti varijable 'redovi' na 4... #define stupci 3 int main() { //stvaranje 2d polja dimenzija redovi*stupci, tj. 4*3 int polje[redovi][stupci]; int suma_redaka[redovi]={0}; //zbroj medalja za pojedine zemlje (horizontalno zbrajanje)

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

17

int suma_stupaca[stupci]={0}; //ukupan broj pojedinih medalja (recimo zlatnih) int i,j,n; cout<<"Unesi broj drzava (max. 20): "; cin>>n; if (n<=0){ cout<<"Krivi unos !!\n"; return 0; } //petlja za unos medalja: for (i=0;i<n;i++) { cout<<i+1<<". drzava\n"; cout<<"\tBroj zlatnih medalja: "; cin>>polje[i][0]; cout<<"\tBroj srebrnih medalja: "; cin>>polje[i][1]; cout<<"\tBroj broncanih medalja: "; cin>>polje[i][2]; } //opet imamo dvije petlje: for (int i=0;i<n;i++) { for (int j=0;j<stupci;j++) { //svaki put ispisuje vrijednost trenutne celije ([i][j]) i nakon nje odvaja sljedecu tabom cout<<polje[i][j]<<"\t"; //slijedi algoritam za sumiranje stupova i redaka: suma_redaka[i]+=polje[i][j]; suma_stupaca[j]+=polje[i][j]; } cout<<"\n"; } cout<<"Prosjek osvojenih medalja: \n"; for (i=0;i<stupci;i++) cout<<((float)suma_stupaca[i]/n)<<"\t"; cout<<"\nUkupno osvojene medalje: \n"; for (j=0;j<n;j++) cout<<suma_redaka[j]<<"\t"; cout<<"\n"; //system("pause"); return 0; } Ø STRINGOVI, JEDNODIMENZIONALNA POLJA - BROJEVI RIJEČI - UDŽBENICI

Stvorite polje od n naziva udžbenika. Stvorite jednodimenzionalno polje broja riječi svih naziva udžbenika. Naziv udžbenika koji ima najmanje riječi spremite u string varijablu NAZIV i sva njezina slova pretvorite u velika slova. Ispišite polje naziva udžbenika i jednodimenzionalno polje brojeva riječi svih udžbenika i varijablu NAZIV.

#include "stdafx.h" #include <iostream> #include <string> using namespace std; #define max_slova 60 #define max_naslova 20 int main() { char polje[max_naslova][max_slova]; char naziv[max_slova];

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

18

int brojevi_rijeci[max_naslova]={0}; int i,j,n, najmanji_broj, najmanji_index;//najmanji_broj je najmanji broj rijeci, a najmanji_index pozicija na kojoj se nalazi (red) cout<<"Unesite broj naslova: "; cin>>n; for(i=0;i<n;i++) { cout<<"Unesi "<<i+1<<". naslov: \n\t"; if(i==0) cin.ignore(); //pri prvoj iteraciji ignorira prvi znak (izbjegavanje preskakanja) cin.getline(polje[i],max_slova); } for(int i=0;i<n;i++) { for(int j=0;j<strlen(polje[i]);j++) { if(polje[i][j]==' ') brojevi_rijeci[i]++; //svaki put kad 'naleti' na razmak, dodaje broj rijeci u polje brojevi_rijeci } } //ispis svih brojeva rijeci, potraga za najmanjim naslovom: najmanji_broj=brojevi_rijeci[0];//najmanji broj riječi najmanji_index=0; //indeks naslova (redak) s najmanjem brojem riječi for (int i=0;i<n;i++) { cout<<brojevi_rijeci[i]+1<<"\t";// ispisuje ustvari broj razmaka + 1 if(brojevi_rijeci[i]<=najmanji_broj) { najmanji_index=i; najmanji_broj=brojevi_rijeci[i]; } } cout<<"\nNajmanje rijeci ima "<<najmanji_index+1<<". naslov, konkretno "<<najmanji_broj+1<<" rijeci.\n"; strcpy(naziv,polje[najmanji_index]); for (i=0;i<strlen(naziv);i++) cout<<(char)toupper(naziv[i]); cout<<"\n"; system("pause"); return 0; } Ø REKURZIJE - DATUM - SUMA ZNAMENKI - EVIVALENT PO BAZI X - ISPIS ....

Učitajte današnji datum u main funkciji. U funkciji suma pronađite zbroj znamenaka učitanog datuma te u funkciji pretvori pronađite ekvivalent broja x učitanog u main funkciji u sustavu kojemu je baza zbroj znamenaka dobiven iz funkcije suma. Ispišite učitani datum, zbroj znamenaka i dobiveni ekvivalent.

#include "stdafx.h" #include <iostream> using namespace std; int suma(int datum, int temp) { temp+=datum%10; datum=datum/10; if (datum==0) return temp; if (datum>0) return suma(datum,temp); } int najveca (int datum) { int najveca_znamenka=0; while (datum>0) { if(datum%10>najveca_znamenka) najveca_znamenka=datum%10; datum=datum/10; }

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

19

return najveca_znamenka; } void pretvori (int datum, int najveca_znamenka) { if (datum>0) { pretvori(datum/najveca_znamenka,najveca_znamenka); cout<<datum%najveca_znamenka; } } int main() { int datum, rezultat, temp=0, najveca_znamenka; cout<<"Unesite datum: (ddmmyyyy)"; cin>>datum; rezultat=suma(datum,temp); cout<<"Rezultat je "<<rezultat<<".\n"; najveca_znamenka=najveca(datum); cout<<"Najveca znamenka je "<<najveca_znamenka<<".\n"; pretvori(datum,najveca_znamenka); cout<<"\n"; system("pause"); return 0; } Ø STRINGOVI - NAJDULJI - VELIKA MALA SLOVA - KOPIRANJE....

Stvorite polje od n rečenica. Pronađite u polju najdulju rečenicu i kopirajte u string NAJDULJA. Pretvorite sva slova u stringu NAJDULJA u velika i mala slova. Stvorite jednodimenzionalno polje koje sadrži brojeve riječi svake rečenice. Ispišite polje rečenica, string NAJDULJA i jednodimenzionalno polje broja riječi svake rečenice.

#include "stdafx.h" #include <iostream> #include <string> #include <ctype.h> using namespace System; using namespace std; #define broj_znakova 100 #define broj_redova 5 int main(array<System::String ^> ^args) { char recenice [broj_redova][broj_znakova]={{0},{0}}; char najdulja [broj_znakova]={0}; int brojevi_rijeci[broj_redova]={0}; int najdulja_index=0, najdulja_iznos=0; //unos recenica: for(int i=0;i<broj_redova;i++) cin.getline(recenice[i],broj_znakova); //izracun najduljeg niza,ispis obavijesti i kopiranje stringa u 'najdulja': for(int i=0;i<broj_redova;i++) if(strlen(recenice[i])>najdulja_iznos){ najdulja_iznos=strlen(recenice[i]); najdulja_index=i; } cout<<"\nNajdulji niz je "<<najdulja_index+1<<". po redu, a sadrzi "<<najdulja_iznos<<" znak(ov)a. \n"; strcpy(najdulja,recenice[najdulja_index]); //ispis znakova najveceg stringa u obliku malih i velikih slova: cout<<"Doticni niz ispisan malim slovima: \n"; for(int i=0;i<najdulja_iznos;i++)cout<<(char)tolower((int)najdulja[i]); cout<<"\nDoticni niz ispisan velikim slovima: \n";

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

20

for(int i=0;i<najdulja_iznos;i++)cout<<(char)toupper((int)najdulja[i]); //izracunavanje i ispis brojeva rijeci: cout<<"\nBrojevi rijeci po zapisu:\n"; for(int i=0;i<broj_redova;i++){ for(int j=0;j<broj_znakova;j++){ if(recenice[i][j]==' '){brojevi_rijeci[i]++;} } cout<<brojevi_rijeci[i]+1<<"\t"; } cout<<"\n"; system("pause"); return 0; } Ø STRINGOVI - BROJANJE RIJEČI - RAZMAKA

#include "stdafx.h" #include <iostream> #include <string.h> #include <ctype.h> //za isspace() using namespace System; using namespace std; #define max 1000 int main(array<System::String ^> ^args) { char niz[max]; cout<<"Unesite znakovni niz: "; cin.getline(niz,1000); int duzina=strlen(niz),razmaci=0; cout<<"Unijeli ste "<<duzina<<" znak(ov)a. \n"; for(int i=0;i<duzina;i++) { if (isspace(niz[i])){razmaci++;} } cout<<"Niz ima "<<razmaci<<" razmaka, dakle "<<razmaci+1<<" rijeci. \n"; system("pause"); return 0; } Ø REKURZIJE - PRIDODAVANJE

#include "stdafx.h" #include <iostream> using namespace std; int pridodaj(int broj, int pridodavanje); int main() { int broj, pridodavanje; cout<<"Unesi broj: "; cin>>broj; cout<<"Koliko mu zelis pridodati? "; cin>>pridodavanje; if(pridodavanje!=0)cout<<"Zbroj iznosi "<<pridodaj(broj,pridodavanje)<<".\n"; system("pause"); return 0; } int pridodaj(int broj, int pridodavanje) { broj++; pridodavanje--;

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

21

if(pridodavanje>0) return pridodaj(broj,pridodavanje); return broj; } Ø REKURZIJE - FAKTORIJELI

#include "stdafx.h" #include <iostream> using namespace System; using namespace std; int fakto (int n); int main () { cout<<fakto(5)<<endl; system("pause"); return 0; } int fakto(int n) { if (n==1) return 1; else return n*fakto(n-1); } Ø POINTERI - POKAZIVAČI

#include "stdafx.h" #include <iostream> using namespace std; int main(){ //pokazivaci: int broj=10; int *pokazivac; pokazivac=&broj; cout<<broj<<", "<<*pokazivac<<", "<<pokazivac<<", "<<&broj<<"\n"; broj=15; cout<<broj<<", "<<*pokazivac<<", "<<pokazivac<<", "<<&broj<<"\n"; *pokazivac=20; cout<<broj<<", "<<*pokazivac<<", "<<pokazivac<<", "<<&broj<<"\n\n"; //operator new: float *novi; novi = new float(); //rezervacija prostora za odredjeni tip objekta *novi=6.35; cout<<*novi<<", "<<novi<<"\n\n"; //dinamicka alokacija 1D polja: int velicina_polja; cout<<"Unesi zeljenu velicinu polja: "; cin>>velicina_polja; int *polje = new int[velicina_polja]; for (int i=0;i<velicina_polja;i++) { //petlja se ponavlja onoliko puta koliko polje ima elemenata polje[i]=1; cout<<polje[i]; //svakom elementu polja dodjeljuje se vrijednost 1, te ispisuje if(i<(velicina_polja-1))cout<<", "; //dodaje zarez i razmak nakon svakog, osim zadnjeg ispisa elementa } delete []polje; cout<<"\n"; system("pause"); return 0;

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

22

} Ø SUMA ZNAMENKI (JMBG) - EKVIVALENT PO BAZI....

Ucitati u main funkciji JMBG. U f-ji 'suma' pronaci sumu njegovih znamenaka i u f-ji 'pretvori' pronaci ekvivalent sume u sustavu s bazom 12. Ispisati rezultate.

#include "stdafx.h" #include <iostream> using namespace std; int suma (char *jmbg); void pretvori (int y); int main(){ char jmbg[14]; cout<<"Unesi JMBG: "; cin.getline(jmbg,14); int y=suma(jmbg); cout<<"Suma znamenaka je "<<y<<".\n"; cout<<"Suma prevedena u brojevni sustav s bazom 12 iznosi: "; pretvori(y); cout<<"\n"; system("pause"); return 0; } int suma (char *jmbg) { int x=0; for (int i=0;i<13;i++) { if(jmbg[i]=='1') x+=1; if(jmbg[i]=='2') x+=2; if(jmbg[i]=='3') x+=3; if(jmbg[i]=='4') x+=4; if(jmbg[i]=='5') x+=5; if(jmbg[i]=='6') x+=6; if(jmbg[i]=='7') x+=7; if(jmbg[i]=='8') x+=8; if(jmbg[i]=='9') x+=9; } return x; } void pretvori (int y) { if(y>0) pretvori(y/12); if(y%12>-1 && y%12<10) cout<<y%12; if(y%12==10) cout<<"a"; if(y%12==11) cout<<"b"; } Ø REKURZIJE - DATUM - NAJVEĆA ZNAMENKA - POTENCIJA....

Ucitati datum rodjenja, u f-ji 'max' pronaci najvecu znamenku unosa, te u f-ji 'potencija' izracunati potenciju broja 'x' s eksponentom najvece znamenke dobivene u f-ji 'max'. Ispisati rezultate.

#include "stdafx.h" #include <iostream> using namespace std; int max (int datum); int potencija (int baza, int eksponent, int rezultat); int main() { int datum, broj,najveca; cout<<"Unesi datum rodjenja (ddmmyyyy): "; cin>>datum;

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

23

if(datum<0 || datum>99999999){cout<<"Krivi unos!\n";system("pause");return 0;} cout<<"Unesi broj: "; cin>>broj; najveca=max(datum); cout<<"Najveca znamenka datuma je "<<najveca<<".\n"; if(broj>0)cout<<broj<<" na "<<najveca<<"-tu potenciju iznosi "<<potencija(broj,najveca,broj)<<".\n"; system("pause"); return 0; } int max (int datum) { int najveca=0; for (int i=0;i<8;i++) { if(najveca<datum%10) najveca=datum%10; datum=datum/10; } return najveca; } int potencija (int baza, int eksponent, int rezultat) { eksponent--; if(eksponent==0) return rezultat; return potencija(baza,eksponent,rezultat*baza); } Ø REKURZIJE - DATUM STUDIJA - SUMA, POTENCIJA....

Učitajte svoj datum upisa studija u main funkciji. U funciji suma pronađite sumu znamenaka koje se pojavljuju u učitanom datumu, te u funkciji potencija pronađite vrijednost potencije dobivene sume s eksponentom x učitanog u main funkciji. Ispišite datum upisa, dobivenu sumu i vrijednost potencije.

#include "stdafx.h" #include <iostream> using namespace std; int potencija(int x, int pot, int xkonst) { if (x==1) return pot; x--; pot = pot * xkonst; return potencija(x, pot, xkonst); } int suma(int datum) { int br; while(datum>0) { br+=datum%10; datum/=10; } return br; } int main() { int pot; int datum, zbroj, x, xkonst; cout<<"Upisi datum upisa studija u formatu DanMjesecGodina: ";

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

24

cin>>datum; zbroj = suma(datum); cout<<"Suma znamenaka datuma je "<<zbroj<<endl;; cout<<"Upisi broj s kojim ces potencirati suma: "; cin>>x; cout<<endl<<endl; xkonst = zbroj; pot = zbroj; cout<<x<<". potencija broja "<<zbroj<<" je "<<potencija(x, pot, xkonst)<<endl; system("pause"); return 0; }

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

25

Ø POINTERI - STUDENTI, OCJENE, KOLEGIJI

Unesite proizvoljni broj studenata sa razlicitim brojevima polozenih kolegija, te ocjenama iz njih. Ispisite polje svih ocjena.

#include "stdafx.h" #include <iostream> using namespace std; int main() { int broj_studenata, broj_kolegija, ocjena; cout<<"Unesite broj studenata: "; cin>>broj_studenata; int **polje; polje=new int*[broj_studenata]; for (int i=0;i<broj_studenata;i++) { cout<<"Student "<<i+1<<":\n\tUnesite broj kolegija: "; cin>>broj_kolegija; polje[i]=new int[broj_kolegija+1]; polje[i][0]=broj_kolegija; for(int j=1;j<=broj_kolegija;j++) { cout<<"\tUnesite ocjenu iz "<<j<<". kolegija: "; cin>>ocjena; polje[i][j]=ocjena; } } cout<<"Ispis svih ocjena:\n"; for(int i=0;i<broj_studenata;i++) { for(int j=1;j<=polje[i][0];j++) { cout<<polje[i][j]<<"\t"; } cout<<"\n"; } for (int i=0;i<broj_studenata;i++) delete[]polje[i]; delete []polje; system("pause"); return 0; } Ø STRUKTURE - DINAMIČKA 1_D POLJA ( PROIZVODI, ŠIFRE, CIJENE)

Napravi program koji ima strukturu proizvoda - koju sacinjava sifra, ime proizvoda i cijena, unesi proizvoljan broj proizvoda, te ispisi sve parametre.

#include "stdafx.h" #include <iostream> #include <string> using namespace std; struct zapis { char ime[20]; int sifra;

float cijena; }; int main() { int n; cout<<"Koliko proizvoda? "; cin>>n;

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

26

//stvaranje dinamickog 1D polja struktura: zapis *proizvodi = new zapis[n]; //unos vrijednosti: for (int i=0;i<n;i++) { cout<<"Artikl "<<i+1<<":\n"; cout<<"\tUnesi sifru: "; cin>>proizvodi[i].sifra; cout<<"\tUnesi ime: "; cin.ignore(); cin.getline(proizvodi[i].ime,20); cout<<"\tUnesi cijenu: "; cin>>proizvodi[i].cijena; } cout<<"<------------------ispis:------------------>\n"; cout<<"br.\tsifra:\tcijena:\time:\n"; for (int i=0;i<n;i++) { cout<<i+1<<"\t"<<proizvodi[i].sifra; cout<<"\t"<<proizvodi[i].cijena<<"\t"; for (int j=0;j<strlen(proizvodi[i].ime);j++) {cout<<proizvodi[i].ime[j];} cout<<"\n"; } delete[]proizvodi; system("pause"); return 0; } Ø DATOTEKE

ZADATAK: Stvori datoteku 'esej.txt', napravi program koji ce prebrojiti koliko ima rijeci, izracunati ukupnu duzinu eseja u znakovima i zamijeniti neki redak s novim.

#include "stdafx.h" #include <iostream> #include <fstream> #include <string> #define limit 600 using namespace std; int main(){ char red[limit]; ifstream ulazni; ulazni.open("esej.txt",ios::in); if(!ulazni) {cout<<"Datoteka ne postoji!\n"; system("pause"); return 0;} int broj_znakova=0, broj_razmaka=0; while(!ulazni.eof()) { ulazni.getline(red,limit); for (int i=0;i<strlen(red);i++) { cout<<red[i]; if(red[i]==' ') broj_razmaka++; } cout<<"\n"; broj_znakova+=strlen(red); } cout<<"\nDatoteka sadrzava "<<broj_razmaka+1<<" rijeci i "<<broj_znakova<<" znakova.\n"; cout<<"\nACHTUNG! podsjetnik: "<<ulazni.tellg(); ulazni.close(); cout<<"\n"; system("pause"); return 0; }

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

27

Ø DATOTEKE - 2 #include "stdafx.h" #include <iostream> #include <fstream> #include <string> #define broj_znakova 80 using namespace std; void unesi(char *znakovi); void ucitaj(char *znakovi); void izmijeni (char *znakovi); int main(){ char znakovi[broj_znakova]; unesi(znakovi); ucitaj(znakovi); izmijeni(znakovi); cout<<"\n"; system("pause"); return 0; } void unesi(char *znakovi) { ofstream izlazni; izlazni.open("datoteka.txt"); cout<<"Unesi znakovni niz: \n"; cin.getline(znakovi,broj_znakova); izlazni<<znakovi; izlazni.close(); } void ucitaj(char *znakovi) { ifstream ulazni; bool provjera=true; ulazni.open("datoteka.txt",ios::in); cout<<"Niz iz datoteke: \n"; while(!ulazni.eof()) { ulazni.getline(znakovi,broj_znakova); for (int i=0;i<strlen(znakovi);i++) {cout<<znakovi[i];} cout<<"\nIspravljeni niz: \n"; cout<<znakovi[0]<<znakovi[1]<<znakovi[2]<<znakovi[3]; for (int i=4;i<strlen(znakovi)-2;i++) { if(znakovi[i]!='j'){cout<<znakovi[i]; provjera=false;} if(znakovi[i]=='j'&& !(znakovi[i-4]=='d'&&znakovi[i-3]=='a'&& znakovi[i-2]=='n'&&znakovi[i-1]=='i'&& znakovi[i+1]=='e'&&znakovi[i+2]=='l')){ cout<<znakovi[i]; provjera=false; } if(provjera){znakovi[i]='#';} provjera=true; } cout<<znakovi[strlen(znakovi)-2]<<znakovi[strlen(znakovi)-1]; } ulazni.close(); } void izmijeni (char *znakovi) { ofstream izlazni; izlazni.open("datoteka.txt"); izlazni<<znakovi; izlazni.close(); }

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

28

Ø DINAMIČKA JEDNODIMENZIONALNA POLJA - SKIJAŠICE - PROLAZNA VREMENA

Za n skijasa upiši prvo i drugo prolazno vrijeme u polja A i B. U polju C nadji zbroj tih vremena (znaci prvo vrijeme za prvog skijasa + drugo vrijeme za prvog skijasa) i ispisi to polje uzlazno, znaci od najmanjeg broja pa do najvecega. I sve to treba pomocu funkcija napraviti - U jednoj funkciji se kreiraju polja, a drugoj se upisuju elementi u polja, u trecoj se zbrajaju elementi u polje C, u cetvrtoj se radi sortiranja vremena uzlazno i u petoj se iva ta polja ispisuju. Vremena(brojevi) moraju biti sa decimalama pa sam ja uzeo da budu double, da mora biti 5 funkcija

#include "stdafx.h" #include <iostream> using namespace std; double *kreiraj(int velicina) { double *polje=new double[velicina]; return polje;} double popuni(double *polje, int velicina, int &vrijeme) { for (int br=0; br<velicina; br++){ cout<<"Unesi "<<vrijeme<<". vrijeme za "<<(br+1)<<". skijasa"; cin>>polje[br];} vrijeme++; return *polje;} double zbroji(double *A, double *B, double *C, int velicina) { for (int br=0; br<velicina; br++) C[br]=A[br]+B[br]; return *C;} double sortiraj(double *C, int velicina) { double zamjena=0; bool svap=true; while (svap==true) { svap=false; for (int br=0; br<velicina-1; br++) { if(C[br+1]<C[br]) { zamjena=C[br]; C[br]=C[br+1]; C[br+1]=zamjena; svap=true;} } } return *C;} void ispisi(double *polje, int velicina) { for (int br=0; br<velicina; br++){ cout<<polje[br]; if (br<(velicina-1)) cout<<", ";} cout<<endl<<endl; }

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

29

int main() { int velicina, vrijeme=1; cout<<"Upisi broj skijasica: "; cin>>velicina; double *A; double *B; double *C; A=kreiraj(velicina); B=kreiraj(velicina); C=kreiraj(velicina); *A=popuni(A, velicina, vrijeme); *B=popuni(B, velicina, vrijeme); cout<<endl; cout<<"Ispis prvog vremena"<<endl; ispisi(A, velicina); cout<<"Ispis drugog vremena"<<endl; ispisi(B, velicina); *C=zbroji(A, B, C, velicina); cout<<"Zbroj vremena"<<endl; ispisi(C, velicina); *C=sortiraj(C, velicina); cout<<"Zbroj vremena ispisan uzlazno"<<endl; ispisi(C, velicina); cout<<endl; system("pause"); return 0; } Ø DINAMIČKA JEDNODIMENZIONALNA POLJA - FINKCIJA ISPISA MIN I MAX ČLANA

Unesite veličinu polja, te napravite polje cijelih brojeva te veličine. Unesite vrijednosti u polje. Napišite f-ju 'min' koja će ispisati najmanji član polja, te f-ju 'max' koja će ispisati najveći.

#include "stdafx.h" #include <iostream> using namespace std; int max(int *polje, int velicina_polja) { int maksimum; for(int br=0; br<velicina_polja; br++) if(polje[br] > maksimum) maksimum = polje[br]; return maksimum; } int min(int *polje, int velicina_polja) {

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

30

int minimum=polje[0]; for(int br=0; br<velicina_polja; br++) if(polje[br] < minimum) minimum = polje[br]; return minimum; } int main() { int velicina_polja; cout<<"Upisi velicinu polja "; cin>>velicina_polja; int *polje = new int[velicina_polja]; for(int br=0; br<velicina_polja; br++) { cout<<"Unos "<<(br+1)<<". od "<<velicina_polja<<" vrijednosti u polje: "; cin>>polje[br]; } cout<<"Najveca vrijednost unesena u polje je "<<max(polje, velicina_polja)<<endl; cout<<"Najmanja vrijednost unesena u polje je "<<min(polje, velicina_polja)<<endl; system ("pause"); delete []polje; polje=NULL; return 0; } Ø DINAMIČKA JEDNODIMENZIONALNA POLJA - STUDENTI - PROSJEK

#include "stdafx.h" #include <iostream> using namespace std; int main() { int broj_studenata, broj_kolegija, ocjena; cout<<"Unesite broj studenata: "; cin>>broj_studenata; int **polje; polje=new int*[broj_studenata]; float *prosjek = new float[broj_studenata]; //(Kreira se pokazivac na novo //dinamicko jednodimenzionaklno polje Znaci, tu se napravi novo 1d polje. Tipa je //float jer prosjek vrlo cesto izbaci brojku sa decimalnim mjestima for (int i=0;i<broj_studenata;i++) { cout<<"Student "<<i+1<<":\n\tUnesite broj kolegija: "; cin>>broj_kolegija; polje[i]=new int[broj_kolegija+1]; polje[i][0]=broj_kolegija; for(int j=1;j<=broj_kolegija;j++) { cout<<"\tUnesite ocjenu iz "<<j<<". kolegija: "; cin>>ocjena; polje[i][j]=ocjena; prosjek[i] += polje[i][j]; // prosjek[i] gdje je i broj retka tj. broj //studenta zbraja sve ocjene za odredjenog studneta. }

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

31

} cout<<"Ispis svih ocjena:\n"; for(int i=0;i<broj_studenata;i++) { for(int j=1;j<=polje[i][0];j++) { cout<<polje[i][j]<<"\t"; } cout<<"\n"; cout<<"Prosjek ocjena za "<<(i+1)<<". studenta je "<<prosjek[i]/polje[i][0]<<; // Ispis prosjeka. Prosjek se dobiva zbrojem ocjena iz svih kolegija i podjeljeno //sa brojem kolegija. U ovom slučaju, broj kolegija tj. stupaca je memoriran na //nultom mjestu svakog reda, pa zato i djelim sa polje[i][0] jer je tu //memoriran broj redaka. cout<<"\n"; } delete []prosjek; // Briše se polje. system("pause"); return 0; } Ø DINAMIČKA DVODIMENZIONALNA POLJA - STUDENTI - ZBROJ BODOVA - ZADACI

Trebalo je napraviti dinamičko 2d polje u koje se unose studenti i za svakoga studenta bodovi za tocno napisani zadatak. Znaci 2d polje gdje su studenti redovi, a mjesta u redovima su ti bodovi, s time da svaki student nema jednak broj tocnih zadataka pa se rade redovi razlicitih velicina. Polje je trebalo nazvati KTT. U zadnje mjesto svakoga polja trebalo je napisati zbroj bodova iz zadatka. Znaci student 1 je imao bodove 3,5,7,8 a u zadnje mjesto polja za studenta 1 je trebalo napisati zbroj tih ocjena. I naravno, ispisati polje i po mogućnosti dealocirati memoriju koju smo koristili. Da vas ne buni, ja sam u ispisu stavio IF koji provjerava dali se radi o zadnjem članu ispisa i ako da, da stavi crticu. Ta crtica odvaja zadnji član od zbroja, pošto su u istom polju

#include "stdafx.h" #include <iostream> using namespace std; int main() { int broj_studenata, broj_zadataka; cout<<"Upisi broj studenata"; cin>>broj_studenata; int **KTT = new int*[broj_studenata]; for (int x=0; x<broj_studenata; x++) { cout<<"Unesi broj zadataka za "<<(x+1)<<" studenta "; cin>>broj_zadataka; KTT[x]=new int[broj_zadataka+2]; KTT[x][0]=broj_zadataka+1; KTT[x][broj_zadataka+1]=0; for (int y=1; y<=broj_zadataka; y++) { cout<<"Unesi bodove za "<<y<<" zadatak "; cin>>KTT[x][y]; KTT[x][broj_zadataka+1]+=KTT[x][y]; } } for (int x=0; x<broj_studenata; x++) { for (int y=1; y<=KTT[x][0]; y++){

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

32

if (y==KTT[x][0]) cout<<"-"; cout<<"["<<KTT[x][y]<<"]";} cout<<endl; } for (int x=0; x<broj_studenata; x++) delete []KTT[x]; delete []KTT; system ("pause"); return 0; } Ø DINAMIČKA DVODIMENZIONALNA POLJA - STUDENTI - BODOVI - ZADACI - PROSJEK

Isto kao prethodni samo napisati prosjek a ne sumu. U tom slučaju dodje se još jedan red koda(oznacen sa <------), a varijable se deklariraju kao float

#include "stdafx.h" #include <iostream> using namespace std; int main() { int broj_studenata, broj_zadataka; cout<<"Upisi broj studenata"; cin>>broj_studenata; float **KTT = new float*[broj_studenata]; for (int x=0; x<broj_studenata; x++) { cout<<"Unesi broj zadataka za "<<(x+1)<<" studenta "; cin>>broj_zadataka; KTT[x]=new float[broj_zadataka+2]; KTT[x][0]=broj_zadataka+1; KTT[x][broj_zadataka+1]=0; for (int y=1; y<=broj_zadataka; y++) { cout<<"Unesi bodove za "<<y<<" zadatak "; cin>>KTT[x][y]; KTT[x][broj_zadataka+1]+=KTT[x][y]; } KTT[x][broj_zadataka+1]/=broj_zadataka; // <----- } for (int x=0; x<broj_studenata; x++) { for (int y=1; y<=KTT[x][0]; y++){ if (y==KTT[x][0]) cout<<"-"; cout<<"["<<KTT[x][y]<<"]";} cout<<endl; } for (int x=0; x<broj_studenata; x++) delete []KTT[x]; delete []KTT; system ("pause"); return 0; }

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

33

Ø LISTE - STRUKTURA PROIZVODA-ŠIFRA, IME, CIJENA

Napravi program koji ima strukturu proizvoda - koju sacinjava sifra, ime proizvoda i cijena, unesi proizvoljan broj proizvoda, te ispisi sve parametre.

#include "stdafx.h" #include <iostream> #include <string> using namespace std; struct zapis { char ime[20]; int sifra; float cijena; }; int main() { int n; cout<<"Koliko proizvoda? "; cin>>n; //stvaranje dinamickog 1D polja struktura: zapis *proizvodi = new zapis[n]; //unos vrijednosti: for (int i=0;i<n;i++) { cout<<"Artikl "<<i+1<<":\n"; cout<<"\tUnesi sifru: "; cin>>proizvodi[i].sifra; cout<<"\tUnesi ime: "; cin.ignore(); cin.getline(proizvodi[i].ime,20); cout<<"\tUnesi cijenu: "; cin>>proizvodi[i].cijena; } cout<<"<------------------ispis:------------------>\n"; cout<<"br.\tsifra:\tcijena:\time:\n"; for (int i=0;i<n;i++) { cout<<i+1<<"\t"<<proizvodi[i].sifra; cout<<"\t"<<proizvodi[i].cijena<<"\t"; for (int j=0;j<strlen(proizvodi[i].ime);j++) {cout<<proizvodi[i].ime[j];} cout<<"\n"; } delete[]proizvodi; system("pause"); return 0; } Ø VEZANE LISTE - DODAVANJE I ISPIS ELEMENATA - PODACI O STUDENTIMA

Stvorite jednostavnu vezanu listu s podacima o studentima u main funkciji. Napisite funkcije za dodavanje elememata liste i funkcije za ispis elemenata liste.

#include "stdafx.h" #include<iostream> using namespace std; struct student{ int mat_br; char prez_ime[35]; int god_stu; student *slijedeci; };

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

34

void dodaj_element(student *lista){ student *novi,*zadnji; zadnji = lista; while (zadnji->slijedeci) zadnji = zadnji->slijedeci; novi = new student; zadnji -> slijedeci = novi; novi -> slijedeci = NULL; cout << "Maticni broj: "; cin >> novi -> mat_br; cout << "Prezime i ime: "; cin >> novi -> prez_ime; cout << "Godina studija: "; cin >> novi -> god_stu; }; void ispisi_sve_elemente(student *lista){ student *tekuci = lista -> slijedeci; while (tekuci){ cout << "---------------------" << endl; cout << "Maticni broj: " << tekuci -> mat_br << endl; cout << "Prezime i ime: " << tekuci -> prez_ime << endl; cout << "Godina studija: " << tekuci -> god_stu << endl; cout << "---------------------" << endl; tekuci = tekuci -> slijedeci; }; }; int main(){ char dalje; student *lista = new student; lista->slijedeci=NULL; do{ dodaj_element(lista); ispisi_sve_elemente(lista); cout<<"Dalje (d/n)? "; cin>>dalje; } while (dalje=='d'); return 0; } Ø VEZANE LISTE - DODAVANJE, SORTIRANJE, PROVJERA, BRISANJE I ISPIS ELEMENATA -

Stvaranje vezane liste sa dodavanjem elemenata, sortiranjem, ispisom, brisanjem elemenata iz liste, ponovnim ispisom liste, te dealokacijom liste. Napisane su funkcije za dodavanje, provjeru tj pretrazivanje, sortiranje, ispis, brisanje i dealokaciju. Unos polja se ne dozvoljava ako sifra vec postoji.

#include "stdafx.h" #include <iostream> using namespace std; struct proizvod{ int sifra; char naziv[100]; float kolicina; proizvod *slijedeci; };

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

35

bool trazi(proizvod *lista, int sifra) { bool provjera=false; proizvod *tekuci = lista->slijedeci; while(tekuci) { if(tekuci->sifra==sifra) { provjera=true; cout<<endl; cout<<"Proizvod/sifra vec postoji u bazi podataka!!!!\n"; cout<<"Ponovi unos sifre proizvoda!!!!\n"; cout<<endl; } tekuci=tekuci->slijedeci; } return provjera; } void dodavanje(proizvod *lista) { bool provjera=true; proizvod *novi, *zadnji; zadnji=lista; while(zadnji->slijedeci) zadnji=zadnji->slijedeci; novi = new proizvod; do{ cout<<"Sifra proizvoda "; cin>>novi->sifra; provjera=trazi(lista, novi->sifra); }while(provjera); cout<<"Naziv proizvoda "; cin>>novi->naziv; cout<<"Kolic proizvoda "; cin>>novi->kolicina; cout<<"----------------\n\n"; novi->slijedeci = NULL; zadnji->slijedeci = novi; } void sortiranje(proizvod *lista) { proizvod *prethodni,*tekuci,*iduci; tekuci=lista->slijedeci; bool swap=true; do { swap = false; tekuci=lista->slijedeci; prethodni=lista; while (tekuci->slijedeci) { iduci=tekuci->slijedeci; if (tekuci->sifra > iduci->sifra) { prethodni->slijedeci=iduci; tekuci->slijedeci=iduci->slijedeci; iduci->slijedeci=tekuci; swap=true; }

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

36

prethodni=tekuci; if (tekuci->slijedeci != NULL) tekuci=tekuci->slijedeci; } }while(swap); } void ispis(proizvod *lista) { proizvod *tekuci=lista->slijedeci; while(tekuci) { cout<<"Sifra: "<<tekuci->sifra<<endl; cout<<"Naziv: "<<tekuci->naziv<<endl; cout<<"Kolic: "<<tekuci->kolicina<<endl; cout<<"----------------\n"; tekuci=tekuci->slijedeci; } } void brisanje(proizvod *lista) { int x=0; proizvod *prethodni, *brisi; prethodni = lista; int trazena_sifra; cout<<"Upisi sifru za brisanje: "; cin>>trazena_sifra; brisi = lista->slijedeci; while(brisi) { if(brisi->sifra==trazena_sifra) { prethodni->slijedeci = brisi->slijedeci; delete brisi; cout<<"Proizvod pod sifrom "<<trazena_sifra<<" je izbrisan! \n"; x=1; break; } prethodni=brisi; brisi=brisi->slijedeci; } if (x!=1) cout<<"Trazena sifra ne postoji!\n"; } proizvod *dealokacija(proizvod *lista) { proizvod *tekuci,*prethodni; int br = 0; prethodni=lista; tekuci=lista->slijedeci; while (tekuci) { delete prethodni; prethodni=tekuci; br++; tekuci=tekuci->slijedeci; } delete prethodni; cout<<"Ukupno je dealocirano "<<br<<" elemenata liste"<<endl;

PROGRAMIRANJE - C++ - vježbe by JT

Made by Borghia

37

return NULL; } int main() { proizvod *lista = new proizvod; char n; lista->slijedeci = NULL; cout<<"Unos elemenata:\n\n"; do{ dodavanje(lista); cout<<"Zelite li nastaviti sa dodavanjem d/n? : "; cin>>n; n=toupper(n); }while(n=='D'); sortiranje(lista); cout<<endl; cout<<"Ispis liste:\n\n"; ispis(lista); do{ brisanje(lista); cout<<"Zelite li nastaviti sa brisanjem d/n? : "; cin>>n; n=toupper(n); }while(n=='D'); cout<<endl; cout<<"Ispis liste nakon brisanja:\n\n"; ispis(lista); lista=dealokacija(lista); if (lista==NULL) cout<<"Lista uspjesno dealocirana!"<<endl<<endl; system("pause"); return 0; }

L Pukoooooh!!!

Ne moren već, ubijte me!!