Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cmath>
- using namespace std;
- /*Zadatak
- Kreirajte niz od 5 realnih brojeva.
- · Kreirajte sljedeće funkcije:
- void unos(float *, int);
- void ispis(float *, int);
- · Funkcije upis i ispis pozovite korištenjem odgovarajućih pokazivača.
- · Kreirajte funkcije:
- o float *zadnji (float *, int); koja vraća adresu zadjeg elemenata u nizu;
- o float * zeljeni (float *, int); koja vraća adresu elemenata po izboru korisnika;
- o float * najblizi(float *, int); koja vraća adresu elementa koji je po svojoj vrijednosti najbiži vašoj idealnoj ocjeni;
- · Kreirajte niz od 3 pokazivača;
- · kreirajte funkciju čija je zadaća dodijeliti adrese funkcija zadnji, zeljeni i najblizi pokazivačima u prethodno kreiranom nizu pokazivača;
- · pozovite funkcije zadnji, zeljeni i najblizi preko pokazivača.
- */
- void unos(float *n, int v)
- {
- for (int i = 0; i < v; i++)
- {
- cout << "Unesite " << i + 1 << ". element: ";
- cin >> n[i];
- }
- }
- void ispis(float *n, int v)
- {
- for (int i = 0; i < v; i++)
- {
- cout << "[" << i << "] = " << n[i] << endl;
- }
- }
- float *zadnji(float *n, int v)
- {
- return &n[v - 1];
- }
- float * zeljeni(float *n, int v)
- {
- return &n[v - 1];
- }
- float *najblizi(float *n, int v)
- {
- float near = n[0];
- for (int i = 0; i < v; i++)
- {
- if (10 - near > 10 - n[i])
- near = n[i];
- }
- return &near;
- }
- void dodijela(float*(*p)(float *, int), int x)
- {
- if (x == 0)
- p = &zadnji;
- if (x == 1)
- p = &zeljeni;
- if (x == 2)
- p = &najblizi;
- }
- void main()
- {
- int izbor;
- float n[5];
- unos(n, 5);
- ispis(n, 5);
- float*(*p[3])(float *, int) = { NULL };
- for (int i = 0; i < 3; i++)
- {
- dodijela(p[i], i);
- }
- cout << "Zadnji element u nizu: " << *(*p[0])(n, 5) << ", Adresa: " << zadnji(n, 5) << endl;
- cout << "Izaberite kojeg elementa zelite adresu: ";
- cin >> izbor;
- cout << "To je element " << *zeljeni(n, izbor) << ", a njegova adresa je: " << zeljeni(n, izbor) << endl;
- cout << "Element najblizi idealnoj ocjeni (10) je " << *najblizi(n, 5) << ", a njegova adresa je: " << najblizi(n, 5) << endl;
- }
- #include<iostream>
- #include<cmath>
- using namespace std;
- /*Zadatak
- Kreirajte niz od 5 realnih brojeva.
- · Kreirajte sljedeće funkcije:
- void unos(float *, int);
- void ispis(float *, int);
- · Funkcije upis i ispis pozovite korištenjem odgovarajućih pokazivača.
- · Kreirajte funkcije:
- o float *zadnji (float *, int); koja vraća adresu zadjeg elemenata u nizu;
- o float * zeljeni (float *, int); koja vraća adresu elemenata po izboru korisnika;
- o float * najblizi(float *, int); koja vraća adresu elementa koji je po svojoj vrijednosti najbiži vašoj idealnoj ocjeni;
- · Kreirajte niz od 3 pokazivača;
- · kreirajte funkciju čija je zadaća dodijeliti adrese funkcija zadnji, zeljeni i najblizi pokazivačima u prethodno kreiranom nizu pokazivača;
- · pozovite funkcije zadnji, zeljeni i najblizi preko pokazivača.
- */
- void unos(float *n, int v)
- {
- for (int i = 0; i < v; i++)
- {
- cout << "Unesite " << i + 1 << ". element: ";
- cin >> n[i];
- }
- }
- void ispis(float *n, int v)
- {
- for (int i = 0; i < v; i++)
- {
- cout << "[" << i << "] = " << n[i] << endl;
- }
- }
- float *zadnji(float *n, int v)
- {
- return &n[v - 1];
- }
- float * zeljeni(float *n, int v)
- {
- return &n[v - 1];
- }
- float *najblizi(float *n, int v)
- {
- float near = n[0];
- for (int i = 0; i < v; i++)
- {
- if (10 - near > 10 - n[i])
- near = n[i];
- }
- return &near;
- }
- float* (*dodijela(int x))(float *, int)
- {
- if (x == 0)
- return &zadnji;
- if (x == 1)
- return &zeljeni;
- if (x == 2)
- return &najblizi;
- }
- void main()
- {
- int izbor;
- float n[5];
- unos(n, 5);
- ispis(n, 5);
- float*(*p[3])(float *, int) = { NULL };
- for (int i = 0; i < 3; i++)
- {
- p[i] = dodijela(i);
- }
- cout << "Zadnji element u nizu: " << *(*p[0])(n, 5) << ", Adresa: " << zadnji(n, 5) << endl;
- cout << "Izaberite kojeg elementa zelite adresu: ";
- cin >> izbor;
- cout << "To je element " << *zeljeni(n, izbor) << ", a njegova adresa je: " << zeljeni(n, izbor) << endl;
- cout << "Element najblizi idealnoj ocjeni (10) je " << *najblizi(n, 5) << ", a njegova adresa je: " << najblizi(n, 5) << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement