[ danijel385 @ 08.05.2006. 18:41 ] @
Lijepi pozdrav, nedavno sam poceo uciti c++, a vec imam nekoliko problema/pitanja... Naime jedan frend mi je preporucio da c++ ucim iz ove knjige: Demistificirani C++... Posto nikako nisam mogao pronaci sto znace ove naredbe u toj knjizi, nadam se da ce netko imati vremena da mi ih malo pojasni... Ovo je nekoliko programa koje sam nasao na netu... Code: #include <iostream> # include <stdio.h> # include <stdlib.h> using namespace std; class vektor { private: int i; private: int j; private: int k; friend int main(void); friend int skalarni(vektor, vektor); friend vektor vektorski(vektor, vektor); friend int ispis(vektor, vektor); }; int skalarni(vektor a, vektor b) { int s; s = (a.i*b.i) + (a.j*b.j) + (a.k*b.k); return s; } vektor vektorski(vektor a,vektor b) { vektor v; v.i = (a.j*b.k) - (a.k*b.j); v.j = (a.k*b.i) - (a.i*b.k); v.k = (a.i*b.j) - (a.j*b.i); return v; } int ispis(vektor a, vektor b) { vektor v; printf("\n --> Skalarni produkt upisanih vektora je s = %d", skalarni(a, b) ); v = vektorski(a, b); printf("\n --> Vektorski produkt upisanih vektora je v = (%d,%d,%d) \n\n ", v.i, v.j, v.k ); return 0; } int main(void) { vektor a, b; printf(" --> Upis vektora a ! \n"); printf(" --> Upisi ax vektora a : "); scanf("%d", &a.i); printf(" --> Upisi ay vektora a : "); scanf("%d", &a.j); printf(" --> Upisi az vektora a : "); scanf("%d", &a.k); printf(" --> Upis vektora b ! \n"); printf(" --> Upisi bx vektora b : "); scanf("%d", &b.i); printf(" --> Upisi by vektora b : "); scanf("%d", &b.j); printf(" --> Upisi bz vektora b : "); scanf("%d", &b.k); ispis(a,b); return 0; } U ovome me zanima cemu sluzi naredbe: Code: using namespace std; Code: friend int main(void); friend int skalarni(vektor, vektor); friend vektor vektorski(vektor, vektor); friend int ispis(vektor, vektor); Drugi program: Code: #include <stdio.h> #include <iostream> #include <string> using namespace std; class Popis { private: int brUcenika; string *ListaUcenika; public: Popis (); ~Popis(); void ispis(); void dodaj(); void dodaj(string s); void brisi(); }; Popis::Popis(): brUcenika(0) , ListaUcenika (new string[20]) {} Popis::~Popis() { delete [] ListaUcenika; } void Popis::ispis(void) { int i; if (brUcenika!=0) { cout << endl << "\n --> popis studenata: "<< endl; for (i=0; i < brUcenika; i++) cout << ListaUcenika[i] <<endl; } cout << "..." << endl; } void Popis::dodaj(void) { int i; string ime,prezime,ucenik; cout <<"\n --> ime: "; cin>>ime; cout <<"\n --> prezime: "; cin>>prezime; ucenik=ime+" "+prezime; brUcenika++; string* pomocni =new string[brUcenika]; for (i=0;i<brUcenika-1;i++) { pomocni[i]=ListaUcenika[i]; } pomocni[brUcenika-1]=ucenik; ListaUcenika=new string[brUcenika]; for (i=0;i<brUcenika;i++) { ListaUcenika[i]=pomocni[i]; } delete [] pomocni; cout << "\n --> Student je upisan."<< endl; } void Popis::dodaj(string ucenik) { int i; brUcenika++; string* pomocni =new string[brUcenika]; for (i=0;i<brUcenika-1;i++) { pomocni[i]=ListaUcenika[i]; } pomocni[brUcenika-1]=ucenik; ListaUcenika=new string[brUcenika]; for (i=0;i<brUcenika;i++) { ListaUcenika[i]=pomocni[i]; } delete [] pomocni; } void Popis::brisi(void) { int i, flag=0; string ime,prezime,ucenik; cout <<"\n --> ime: "; cin>>ime; cout <<"\n --> prezime: "; cin>>prezime; ucenik=ime+" "+prezime; for (i=0;i<brUcenika;i++) { if (ListaUcenika[i]==ucenik) { flag=1; } } if(! flag) { cout << "\n --> Student nije naveden u bazi." << endl; return; } flag=0; brUcenika--; string* pomocni=new string[brUcenika]; for (i=0;i<brUcenika;i++) { if (ListaUcenika[i]==ucenik) { flag=1; } if(flag) { pomocni[i]=ListaUcenika[i+1]; } else { pomocni[i]=ListaUcenika[i]; } } ListaUcenika=new string[brUcenika]; for(i=0;i<brUcenika;i++) ListaUcenika[i]=pomocni[i]; delete [] pomocni; cout << "\n --> Student je obrisan." << endl; } int main() { Popis popis; char izbor; do { switch (izbor) { case '1': popis.ispis(); break; case '2': popis.dodaj(); break; case '3': popis.brisi(); break; default: break; } cout<<"\n --> 1. Ispis prisutnih studenata"<<endl; cout<<"\n --> 2. Upis novog studenta"<<endl; cout<<"\n --> 3. Brisanje studenta"<<endl; cout<<"\n --> 4. Kraj"<<endl; cout<<"\n --> Vas odabir : " ; cin>>izbor; } while(izbor != '4'); return 0; } Ovdje me zanima cemu sluze ove naredbe(pogotovo ::): Code: ~Popis(); Popis::Popis(): brUcenika(0) , ListaUcenika (new string[20]) {} Popis::~Popis() Posljednji program: Code: #include<iostream> using namespace std; enum Figura { prazno, bijelipjesak, bijelitop, bijelikonj, bijelilovac, bijelakraljica, bijelikralj, crnipjesak, crnitop, crnikonj, crnilovac, crnakraljica, crnikralj }; class sahPolje { private: Figura figurica; public: sahPolje(); void namjesti(Figura fig); Figura kojaFig(); }; sahPolje::sahPolje() : figurica(static_cast<Figura>(0)) { }; void sahPolje::namjesti(Figura fig) { figurica = fig; } Figura sahPolje::kojaFig() { return figurica; } void stanje(sahPolje Sahovnica[][8]) { int i, j; for(i = 0; i < 8; i++) { for(j = 0; j < 8; j++) { cout.width(4); cout << Sahovnica[i][j].kojaFig(); } cout << endl; } } int main() { int i, j; sahPolje Sahovnica[8][8]; Sahovnica[0][0].namjesti(crnitop); Sahovnica[0][1].namjesti(crnikonj); Sahovnica[0][2].namjesti(crnilovac); Sahovnica[0][3].namjesti(crnikralj); Sahovnica[0][4].namjesti(crnakraljica); Sahovnica[0][5].namjesti(crnilovac); Sahovnica[0][6].namjesti(crnikonj); Sahovnica[0][7].namjesti(crnitop); for(i = 0; i < 8; i++) Sahovnica[1][i].namjesti(crnipjesak); for(i = 2; i < 6; i++) { for(j = 0; j < 8; j++) Sahovnica[i][j].namjesti(prazno); } for(i = 0; i < 8; i++) Sahovnica[6][i].namjesti(bijelipjesak); Sahovnica[7][0].namjesti(bijelitop); Sahovnica[7][1].namjesti(bijelikonj); Sahovnica[7][2].namjesti(bijelilovac); Sahovnica[7][3].namjesti(bijelikralj); Sahovnica[7][4].namjesti(bijelakraljica); Sahovnica[7][5].namjesti(bijelilovac); Sahovnica[7][6].namjesti(bijelikonj); Sahovnica[7][7].namjesti(bijelitop); stanje(Sahovnica); return 0; } U ovom zadatku me zanima cemu sluzi: Code: static_cast Znam da je jako dugacak post... Ispricavam se... |