Poniższym program prezentuje możliwości wykorzystania funkcji bez parametrów. W programie pracujemny na zmiennych globalnych (w celu uniknięcia przekazywnia parametrów - funkcje z parametrami znajdziesz w innym artykule w dziale programowanie), poszczególne części zadania realizowane są przez funkcje wykonujące operacje na elementach tablicy globalnej:

  • losowanie liczb i zapis do tablicy globalnej,
  • wypisanie liczb z tablicy globalnej,
  • poszukiwanie min, max, wartości średniej itd.,
  • sprawdzenie, czy w zestawie wylosowano zero.
  1. //Tablica liczbowa T o rozmiarze 100 elementow
  2. //Dla n=20 wykorzystujemy tylko 20 elementow tablicy
  3. //Przyklad wykorzystania funkcji
  4. //Funckcje bez parametrów
  5. //
  6. //Deklaracja funkcji w zaleznosci od oczekiwanego wyniku
  7. //
  8. // void Funkcja() - funkcja nie zwraca wyniku
  9. // int Funkcja() - funkcja zwraca wynik typu int (l.calkowita)
  10. // float Funkcja()- funkcja zwraca wynik typu float (l.zmiennoprzecinkowa)
  11. // bool Funkcja()- funkcja zwraca wynik typu TRUE/FALSE
  12. //
  13.  
  14. #include<iostream>
  15. #include<algorithm>
  16. #include<ctime>
  17. using namespace std;
  18.  
  19. //zmienne globalne
  20. int T[100];
  21. int n=20;
  22.  
  23. //deklaracja funkcji
  24. void Losuj();   //funkcja bez parametrow    
  25. void Wypisz();  //funkcja bez parametrow
  26. int MaxW();
  27. int MinW();
  28. float SredW();
  29. int IleParzystych();
  30. int IleDodatnich();
  31. bool CzySaZera();
  32.  
  33. //funkcja glowna
  34. int main()
  35. {
  36.         Losuj();
  37.         Wypisz();
  38.         cout<<"\nNajwieksza liczba w tablicy to: " << MaxW();
  39.         cout<<"\nNajmniejsza liczba w tablicy to: " << MinW();
  40.         cout<<"\nSrednia wartosc liczb w tablicy to: " << SredW();
  41.         cout<<"\nIlosc liczb parzystych w tablicy to: " << IleParzystych();
  42.         cout<<"\nIlosc liczb dodatnich w tablicy to: " << IleDodatnich();
  43.        
  44.         if ( CzySaZera() )
  45.                 cout<<"\nW tablicy znaleziono wartosc ZERO";
  46.         else
  47.                 cout<<"\nW tablicy nie znaleziono wartosci ZERO";      
  48. }
  49.  
  50. //definicje funkcji uzytych w programie
  51. bool CzySaZera()
  52. {
  53.         for (int i=0;i<n;i++)
  54.                 if (T[i]==0) return true;
  55.         return false;
  56. }
  57.  
  58. int IleDodatnich()
  59. {
  60.         int ile=0;
  61.         for (int i=0;i<n;i++)
  62.                 if (T[i]>0) ile++;
  63.         return ile;    
  64. }
  65.  
  66. int IleParzystych()
  67. {
  68.         int ile=0;
  69.         for (int i=0;i<n;i++)
  70.                 if (T[i]%2==0) ile++;
  71.         return ile;    
  72. }
  73.  
  74. float SredW()
  75. {
  76.         float suma=0;
  77.         for (int i=0;i<n;i++)
  78.                 suma=suma+T[i];
  79.         return float(suma/20);         
  80. }
  81.  
  82. int MinW()
  83. {
  84.         int minT = 250 ;       
  85.         for (int i=0;i<n;i++)
  86.                 if (T[i]<minT)
  87.                         minT=T[i];
  88.         return minT;   
  89. }
  90.  
  91. void Losuj()
  92. {
  93.         //losowanie liczb i zapis do tablicy globalnej T
  94.         srand(time(NULL));
  95.         for (int i=0;i<n;i++)
  96.                 T[i] = rand() % 401 - 200 ;  //zakres <-200;200>
  97. }
  98.  
  99. void Wypisz()
  100. {
  101.         //wypisanie liczb z tablicy globalnej T
  102.         for (int i=0;i<n;i++)
  103.                 if (i==n-1)
  104.                         cout<<T[i];
  105.                 else
  106.                         cout<<T[i]<<",";               
  107. }
  108.  
  109. int MaxW()
  110. {
  111.         int maxT = -250 ;      
  112.         for (int i=0;i<n;i++)
  113.                 if (T[i]>maxT)
  114.                         maxT=T[i];
  115.         return maxT;           
  116. }
  117.  
  118.  

 

Zobacz przykład wykonania powyższego kodu w edytorze online >>

 

Komentarze dotyczące funkcji MaxW() i MinW() - w celu skutecznego wyszukania wartości minimalnel, wartośc zmiennej minT ustawiamy na 250 (czyli wartość, która na osi liczbowej leży po stronie prawej od przeszukiwanego zakresu), dzięki temu mamy pewność, że wsyztskie liczby z naszej tablicy są mniejsze od zmiennej minT.

W przyszłości zamiast przypisania wartości 250 użyjemy polecenia INT_MAX ( dla zmiennej typu int przypisuje jej największa możliwą wartość), do użycia tej instrukcji potrzebna jest biblioteka climits (#include<climits>). W takim przypadku nasza funkcja będzie wyglądac tak:

  1. int MinW()
  2. {
  3.         int minT = INT_MAX ;   
  4.         for (int i=0;i<n;i++)
  5.                 if (T[i]<minT)
  6.                         minT=T[i];
  7.         return minT;   
  8. }