Poniższy program prezentuje możliwości wykorzystania funkcji z parametrami. Na początek jako parametry funkcji przekzujemy pojedyncze zmienne (tablica pozosataje globalna - tablica jako parametr w C++ występuje w innym artykule), poszczególne części zadania realizowane są przez funkcje z parametrami wykonujące operacje na elementach tablicy globalnej:

  • losowanie liczb i zapis do tablicy globalnej - parametr decyduje o ilosci losowanych liczb,
  • wypisanie liczb z tablicy globalnej - parametry decydują o ilosci wypisanych liczb, szerszy opis funkcji wypisz1, wypisz2, wypisz3 znajdziesz po kodem programu (>>>).

 

  1. //funkcje z parametrami, na razie pozostajemy przy tablicy globalnej
  2. #include<iostream>
  3. #include<algorithm>
  4. #include<ctime>
  5. #include<climits>
  6. using namespace std;
  7.  
  8. //zmienne globalne
  9. int T[100000];
  10.  
  11. //deklaracja funkcji
  12. void Losuj(int);
  13. void Wypisz1(int);     
  14. void Wypisz2(int,int);
  15. void Wypisz3(int,int);
  16.  
  17. //funkcja glowna
  18. int main()
  19. {
  20.         Losuj(100);
  21.  
  22.         cout<<"\nWszystkie liczby z tablicy: ";
  23.         Wypisz1(100);
  24.                
  25.         cout<<"\n\nPierwszych 10 liczb z tablicy: ";
  26.         Wypisz1(10);   
  27.        
  28.         cout<<"\n\nLiczby na pozycja od 11. do 20. : ";
  29.         Wypisz2(10,20);
  30.        
  31.         cout<<"\n\nWszystkie liczby z tablicy, ktore sa podzielne przez 3: ";
  32.         Wypisz3(100,3);
  33. }
  34.  
  35. /********     definicje funkcji uzytych w programie    ************/
  36.  
  37. //losowanie liczb i zapis do tablicy globalnej T -> funkcja bez parametru -> losuje 100 liczb
  38. void Losuj(int n)
  39. {
  40.         srand(time(NULL));
  41.         for (int i=0;i<n;i++)
  42.                 T[i] = rand() % 100 + 1 ;
  43. }
  44.  
  45. //wypisanie n liczb z tablicy globalnej T -> funkcja wypisuje n liczb od indexu 0 do n
  46. void Wypisz1 (int n )
  47. {
  48.         for (int i=0;i<n;i++)
  49.                 if (i==n-1)
  50.                         cout<<T[i];
  51.                 else
  52.                         cout<<T[i]<<",";               
  53. }
  54.  
  55. //wypisanie liczb z tablicy globalnej T -> parametry x i y wyznaczaja ktore liczby z tablicy mamy wypisac x->index początkowy | y->index końcowy
  56. void Wypisz2 (int x, int y)
  57. {
  58.         for (int i=x;i<y;i++)
  59.                 if (i==y-1)
  60.                         cout<<T[i];
  61.                 else
  62.                         cout<<T[i]<<",";               
  63. }
  64.  
  65. //Funkcja wypisz3 - 2 parametry: n->ilosc liczb ,d->dzielnik | funkcja wypisuje z tablicy globalnej wszystkie liczby podzielne przez dzielnik 'd'
  66. void Wypisz3 (int n, int d)
  67. {
  68.         for (int i=0;i<n;i++)
  69.                 if (T[i]%d==0)
  70.                         cout<<T[i]<<",";               
  71. }
  72.  

 

Zobacz dziłanaie powyższego kodu w kompilatorze online >>>.

 

 

Opis funckcji wypisz:

Wszystkie trzy funkcje wypisz użyte w naszym programie realizują swoje zadnie bez zwracania wyników do funkcji main() (dlatego są typu void) - wypisywanie liczb spełniających zadane warunki odbywa się w funkcjach

  1. void Wypisz1 (int n )
  2. {
  3.         for (int i=0;i<n;i++)
  4.                 if (i==n-1)
  5.                         cout<<T[i];
  6.                 else
  7.                         cout<<T[i]<<",";               
  8. }
powyższa funkcja używa jednego parametru: 
  • n - ilość odczytanych liczb z tablicy, 

 

 

  1. void Wypisz2 (int x, int y)
  2. {
  3.         for (int i=x;i<y;i++)
  4.                 if (i==y-1)
  5.                         cout<<T[i];
  6.                 else
  7.                         cout<<T[i]<<",";               
  8. }
powyższa funkcja używa dwóch parametrów: 
  • x -> numer indeksu pierwszej liczby,
  • y-1 -> numer indeksu ostatniej liczby,
 
 
  1. void Wypisz3 (int n, int d)
  2. {
  3.         for (int i=0;i<n;i++)
  4.                 if (T[i]%d==0)
  5.                         cout<<T[i]<<",";               
  6. }
powyższa funkcja używa dwóch parametrów: 
  • n -> ilość odczytanych liczb z tablicy, 
  • d -> dzielnik -> poszukujemy liczb podzielnych przez d w tablicy T.