Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*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.*/
- #include<iostream>
- #include<conio.h>
- using namespace std;
- void unos(float *, int);
- void ispis(float *, int);
- float *zadnji (float *, int);
- float * zeljeni (float *, int);
- float * najblizi(float *, int);
- float*(*getFunc(int i))(float * ,int )
- {
- if(i==0)
- return &zadnji;
- if(i==1)
- return &zeljeni;
- else
- return &najblizi;
- }
- int main()
- {
- const int vel1=5;int element;
- const int vel2=3;
- float niz[vel1];
- void(*fPtr)(float*,int);
- fPtr=unos;
- fPtr(niz,vel1);
- cout<<endl;
- fPtr=ispis;
- fPtr(niz,vel1);
- float*(*getFuncNaPok[vel2])(float*,int)={NULL};
- for (int i = 0; i < vel2; i++)
- {
- getFuncNaPok[i]=getFunc(i);
- }
- cout<<"Adresa zadnjega u nizu je: "<<(getFuncNaPok[0])(niz,vel1)<<"i taj broj je: "<<(*(getFuncNaPok[0])(niz,vel1))<<endl;
- cout<<"Unesite element od 1 do 4: ";
- do
- {
- cin>>element;
- } while (element<1|| element>4);
- cout<<"Adresa zeljenog elementa je: "<<(getFuncNaPok[1])(niz,element)<<" je: "<<(*(getFuncNaPok[1])(niz,element))<<endl;
- cout<<"Adresa koji je najblizi elementu je: "<<(getFuncNaPok[2])(niz,element)<<" je: "<<(*(getFuncNaPok[1])(niz,element))<<endl;
- _getch();
- return 0;
- }
- void unos(float *n, int v)
- {
- for (int i = 0; i < v; i++)
- {
- cout<<"["<<i+1<<"]: ";
- cin>>n[i];
- }
- }
- void ispis(float *n, int v)
- {
- for (int i = 0; i < v; i++)
- {
- cout<<n[i]<<endl;
- }
- }
- float *zadnji (float *n , int v)
- {
- return &(n[v-1]);
- }
- float * zeljeni (float *n, int v)
- {
- return &(n[v]);
- }
- float * najblizi(float *n, int v)
- {
- float idealna=10.0;
- float razlika=abs(idealna-n[v]);
- float *adresa=&n[0];
- for (int i = 0; i < v; i++)
- {
- if(abs(idealna-n[i])<razlika)
- {
- razlika=idealna-n[i];
- adresa=&n[i];
- }
- }
- return adresa;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement