Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void uvecaj(int *a, int *b)
- {
- //posto se varijable predaju po vrijednosti a i b
- (*a)++; //ovaj inkrement nece utjecati na varijablu 'a' u main-u
- (*b)++; // --||--
- //++(*a);
- //++(*b);
- cout << "U funkciji UVECAJ vrijednosti varijabli su: " << endl;
- cout << "a: " << *a << endl;
- cout << "b: " << *b << endl;
- cout << "---------------------------------------------------------" << endl;
- }
- void main()
- {
- int a = 6;
- int b = 9;
- cout << "MAIN prije poziva funkcije uvecaj: " << endl;
- cout << "a: " << a << endl;
- cout << "b: " << b << endl;
- cout << "---------------------------------------------------------" << endl;
- uvecaj(&a, &b);
- cout << "MAIN poslije poziva funkcije uvecaj: " << endl;
- cout << "a: " << a << endl;
- cout << "b: " << b << endl;
- cout << "---------------------------------------------------------" << endl;
- system("PAUSE");
- }
- //
- #include <iostream>
- using namespace std;
- void main()
- {
- int a = 15;
- int & refA = a;
- cout << refA << endl;
- int *pokA = &a;
- cout << *pokA << endl;
- cout << "---------------------------------------------------------" << endl;
- cout << "Vrijednost varijable a: " << a << endl;
- cout << "Vrijednost reference ref: " << refA << endl;
- cout << "Adresa varijable a \t: " << &a << endl;
- cout << "Adresa reference refA \t: " << &refA << endl;
- cout << "---------------------------------------------------------" << endl;
- refA = 10;
- cout << "refA=10" << endl;
- cout << "---------------------------------------------------------" << endl;
- cout << "Vrijednost varijable a: " << a << endl;
- cout << "Vrijednost reference ref: " << refA << endl;
- cout << "---------------------------------------------------------" << endl;
- a++;
- cout << "a++" << endl;
- cout << "---------------------------------------------------------" << endl;
- cout << "Vrijednost varijable a: " << a << endl;
- cout << "Vrijednost reference ref: " << refA << endl;
- cout << "---------------------------------------------------------" << endl;
- system("PAUSE");
- }
- //
- #include <iostream>
- using namespace std;
- //funkcija prima parametre po referenci i manipulise originalnim vrijednostima
- void uvecaj(int & ref)
- {
- cout << "Unutar funkcije uvecaj: " << endl;
- ref++; //inkrementira originalnu vrijednost varijable a
- cout << "ref++" << endl;
- cout << "Adresa varijable ref je: " << &ref << endl;
- cout << "Vrijednost varijable ref je: " << ref << endl;
- cout << "------------------------------------------------------" << endl;
- }
- int main()
- {
- int a = 5;
- cout << "MAIN prije poziva funkcije uveaj: " << endl;
- cout << "Adresa varijable a: " << &a << endl;
- cout << "Vrijednost varijable a: " << a << endl;
- cout << "------------------------------------------------------" << endl;
- uvecaj(a);
- cout << "MAIN poslije poziva funkcije uveaj: " << endl;
- cout << "Adresa varijable a: " << &a << endl;
- cout << "Vrijednost varijable a: " << a << endl;
- cout << "------------------------------------------------------" << endl;
- /*int b = 20;
- int & refB;
- refB = b;*/
- int b = 20;
- int *pokB;
- pokB = &b;
- cout << pokB << endl;
- cout << *pokB << endl;
- system("PAUSE");
- }
- //
- #include <iostream>
- using namespace std;
- int saberi(int a, int b)
- {
- return a + b;
- }
- void main()
- {
- //obje linije ispisuju adresu funkcije saberi
- cout << &saberi << endl;
- cout << saberi << endl;
- system("PAUSE");
- }
- //
- #include <iostream>
- using namespace std;
- bool provjeri(int broj)
- {
- if (broj >= 10)
- return true;
- else
- return false;
- }
- void main()
- {
- int broj = 0;
- //kreiramo pokazivac na funkciju - koja vraca tip podatka bool - i prima jedan cjelobrojni parametar
- bool(*pFunkcija)(int) = nullptr;
- //pokazivacu dodjeljujemo adresu funkcije 'provjeri'
- pFunkcija = &provjeri;
- cout << "Unesite neki broj: ";
- cin >> broj;
- //funkciju pozivamo koristeci pokazivac pFunkacija
- //kao argument predajemo uneseni broj
- //vrijednost koju funkcija vrati (ture ili false) pohranjujemo u varijablu odgovor
- bool odgovor = (*pFunkcija)(broj);
- if (odgovor == true)
- cout << "Uneseni broj je veci ili jednak 10. " << endl;
- else
- cout << "Uneseni broj je manji od 10. " << endl;
- system("PAUSE");
- }
- //
- #include <iostream>
- using namespace std;
- int saberi(int a, int b)
- {
- return a + b;
- }
- void main()
- {
- int a = 6, b = 7;
- //kreiramo pokazivac na funkciju koja vraca cjelobrojnu vrijednost - i prima 2 cjelobrojna parametra
- int(*pFunkcija)(int, int) = &saberi;
- //moguce je provjeriti da li pokazivac zaista pokazuje na funkciju saberi
- if (pFunkcija == &saberi)
- //pozivamo funkciju koreisteci pokazivac i ispisujemo povratnu vrijednost
- cout << "Zbir brojeva je: " << (*pFunkcija)(a, b) << endl;
- else
- cout << "Greska pri izvrsenju programa. " << endl;
- system("PAUSE");
- }
- //
- #include <iostream>
- using namespace std;
- int kvadriraj(int broj)
- {
- return broj * broj;
- }
- int kub(int broj)
- {
- return broj * broj*broj;
- }
- void centralna(int broj, int(*pFunkcija)(int))
- {
- int rezultat = (*pFunkcija)(broj);
- cout << "Rezultat je: " << rezultat << endl;
- }
- void main()
- {
- int broj = 0;
- //int(*pFunkcija)(int) = nullptr;
- cout << "Unesite neki broj: ";
- cin >> broj;
- if (broj < 10)
- centralna(broj, &kub);
- else
- centralna(broj, &kvadriraj);
- //centralna(broj, pFunkcija);
- system("PAUSE");
- }
- //
- #include <iostream>
- using namespace std;
- void unos(int *niz, int max)
- {
- for (int i = 0; i < max; i++)
- {
- cout << i + 1 << ".broj: ";
- cin >> niz[i];
- }
- }
- void ispis(int * niz, int max)
- {
- cout << "-------------------------------\n";
- for (int i = 0; i < max; i++)
- {
- cout << i + 1 << ". adresa" << niz + i << " vrijednost: " << niz[i] << endl;
- }
- cout << "-------------------------------\n";
- }
- int *getPokazivac(int *niz, int max)
- {
- int indeks = 0;
- //ispisujemo vrijednosti kako bi korisnika informisali o velicini niza
- ispis(niz, max);
- cout << "Unesite redni broj elemanta na koji kreirate pokazivac: ";
- cin >> indeks;
- //korisnika onemogucavamo da unese vrijednost koja nije u opsegu niza
- if (indeks <= max && indeks > 0)
- {
- //kreira se pokazivac na element niza koji je odabrao korisnik
- int * pok = &niz[indeks - 1];
- //funkcija vraca pokazivac
- return pok;
- }
- //ako korisnik unese indeks koje je veci od 5 ili manji (ili jednak) od 0, funkcija treba da vrati nullptr
- return nullptr;
- }
- void main()
- {
- const int max = 5;
- int niz[max];
- unos(niz, max);
- //pokazivac pok ce biti inicijalizovan adresom koju vrati funkcija getPokazivac. To moze biti adresa nekog clana niza ili nullptr
- int *pok = getPokazivac(niz, max);
- //provjerom da li je pokazivac inicijalizovan na nullptr onemogucavamo gresku prilikom izvrsenja programa
- //nije moguce dereferencirati pokazivac koji ne pokazuje nigdje tj. nullptr pokazivac
- if (pok != nullptr)
- {
- cout << "Pokazivac pokazuje na adresu: " << pok;
- cout << " na kojoj se nalazi vrijednost: " << *pok << endl;
- }
- else
- cout << "Poruka o gresci.. " << endl;
- system("PAUSE");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement