Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.54 KB | None | 0 0
  1. /*Zadatak
  2. Kreirajte niz od 5 realnih brojeva.
  3.  
  4. ·         Kreirajte sljedeće funkcije:
  5. void unos(float *, int);
  6. void ispis(float *, int);
  7. ·         Funkcije upis i ispis pozovite korištenjem odgovarajućih pokazivača.
  8. ·         Kreirajte funkcije:
  9. o    float *zadnji (float *, int); koja vraća adresu zadjeg elemenata u nizu;
  10. o    float * zeljeni (float *, int); koja vraća adresu elemenata po izboru korisnika;
  11. o    float * najblizi(float *, int); koja vraća adresu elementa koji je po svojoj vrijednosti najbiži vašoj idealnoj ocjeni;
  12.  
  13. ·         Kreirajte niz od 3 pokazivača;
  14. ·         kreirajte funkciju čija je zadaća dodijeliti adrese funkcija zadnji, zeljeni i najblizi pokazivačima u prethodno kreiranom
  15.             nizu pokazivača;
  16. ·         pozovite funkcije zadnji, zeljeni i najblizi preko pokazivača.*/
  17. #include<iostream>
  18. #include<conio.h>
  19.  
  20. using namespace std;
  21.  
  22. void unos(float *, int);
  23. void ispis(float *, int);
  24. float *zadnji (float *, int);
  25. float * zeljeni (float *, int);
  26. float * najblizi(float *, int);
  27. float*(*getFunc(int i))(float * ,int )
  28. {
  29.     if(i==0)
  30.         return &zadnji;
  31.     if(i==1)
  32.         return &zeljeni;
  33.     else
  34.         return &najblizi;
  35. }
  36. int main()
  37. {
  38.     const int vel1=5;int element;
  39.     const int vel2=3;
  40.     float niz[vel1];
  41.    
  42.     void(*fPtr)(float*,int);
  43.     fPtr=unos;
  44.     fPtr(niz,vel1);
  45.     cout<<endl;
  46.     fPtr=ispis;
  47.     fPtr(niz,vel1);
  48.     float*(*getFuncNaPok[vel2])(float*,int)={NULL};
  49.     for (int i = 0; i < vel2; i++)
  50.     {
  51.         getFuncNaPok[i]=getFunc(i);
  52.     }
  53.     cout<<"Adresa zadnjega u nizu je: "<<(getFuncNaPok[0])(niz,vel1)<<"i taj broj je: "<<(*(getFuncNaPok[0])(niz,vel1))<<endl;
  54.     cout<<"Unesite element od 1 do 4: ";
  55.     do
  56.     {
  57.         cin>>element;
  58.     } while (element<1|| element>4);
  59.     cout<<"Adresa zeljenog elementa je: "<<(getFuncNaPok[1])(niz,element)<<" je: "<<(*(getFuncNaPok[1])(niz,element))<<endl;
  60.     cout<<"Adresa koji je najblizi elementu je: "<<(getFuncNaPok[2])(niz,element)<<" je: "<<(*(getFuncNaPok[1])(niz,element))<<endl;
  61.     _getch();
  62.     return 0;
  63. }
  64. void unos(float *n, int v)
  65. {
  66.     for (int i = 0; i < v; i++)
  67.     {
  68.         cout<<"["<<i+1<<"]: ";
  69.         cin>>n[i];
  70.     }
  71. }
  72. void ispis(float *n, int v)
  73. {
  74.     for (int i = 0; i < v; i++)
  75.     {
  76.         cout<<n[i]<<endl;
  77.     }
  78. }
  79. float *zadnji (float *n , int v)
  80. {
  81.     return &(n[v-1]);
  82. }
  83.  
  84. float * zeljeni (float *n, int v)
  85. {
  86.     return &(n[v]);
  87. }
  88. float * najblizi(float *n, int v)
  89. {
  90.     float idealna=10.0;
  91.     float razlika=abs(idealna-n[v]);
  92.     float *adresa=&n[0];
  93.     for (int i = 0; i < v; i++)
  94.     {
  95.         if(abs(idealna-n[i])<razlika)
  96.         {
  97.             razlika=idealna-n[i];
  98.             adresa=&n[i];
  99.         }
  100.     }
  101.     return adresa;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement