Typy funkcji zdefiniowanych przez użytkownika w C ++

W tym samouczku poznasz różne podejścia, które możesz zastosować, aby rozwiązać pojedynczy problem za pomocą funkcji.

Aby lepiej zrozumieć argumenty i zwracać w funkcjach, funkcje zdefiniowane przez użytkownika można podzielić na następujące kategorie:

  • Funkcja bez argumentu i bez wartości zwracanej
  • Funkcja bez argumentu, ale zwraca wartość
  • Funkcja z argumentem, ale bez wartości zwracanej
  • Funkcja z argumentem i wartością zwracaną

Rozważ sytuację, w której musisz sprawdzić liczbę pierwszą. Ten problem został rozwiązany poniżej, tworząc funkcję zdefiniowaną przez użytkownika na 4 różne sposoby, jak wspomniano powyżej.

Przykład 1: nie przekazano żadnych argumentów i nie zwrócono wartości

 # include using namespace std; void prime(); int main() ( // No argument is passed to prime() prime(); return 0; ) // Return type of function is void because value is not returned. void prime() ( int num, i, flag = 0; cout <> num; for(i = 2; i <= num/2; ++i) ( if(num % i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout << num << " is not a prime number."; ) else ( cout << num << " is a prime number."; ) ) 

W powyższym programie prime()wywoływana jest z metody main () bez argumentów.

prime() pobiera liczbę dodatnią od użytkownika i sprawdza, czy jest to liczba pierwsza, czy nie.

Ponieważ zwracany typ prime()to to void, funkcja nie zwraca żadnej wartości.

Przykład 2: nie przekazano żadnych argumentów, ale wartość zwracana

 #include using namespace std; int prime(); int main() ( int num, i, flag = 0; // No argument is passed to prime() num = prime(); for (i = 2; i <= num/2; ++i) ( if (num%i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout<  n; return n; ) 

W powyższym programie prime()funkcja jest wywoływana main()z bez argumentów.

prime()pobiera dodatnią liczbę całkowitą od użytkownika. Ponieważ typem zwracanym funkcji jest an int, zwraca ona wprowadzoną liczbę od użytkownika z powrotem do main()funkcji wywołującej .

Następnie to, czy liczba jest pierwsza, czy nie, jest sprawdzane w samej funkcji main () i drukowane na ekranie.

Przykład 3: argumenty przekazane, ale brak wartości zwracanej

 #include using namespace std; void prime(int n); int main() ( int num; cout <> num; // Argument num is passed to the function prime() prime(num); return 0; ) // There is no return value to calling function. Hence, return type of function is void. */ void prime(int n) ( int i, flag = 0; for (i = 2; i <= n/2; ++i) ( if (n%i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout << n << " is not a prime number."; ) else ( cout << n << " is a prime number."; ) )

W powyższym programie użytkownik najpierw pyta o liczbę dodatnią, która jest przechowywana w zmiennej num.

Następnie liczba jest przekazywana do prime()funkcji, w której sprawdzane i drukowane jest to, czy liczba jest liczbą pierwszą, czy nie.

Ponieważ zwracanym typem prime()jest a void, funkcja nie zwraca żadnej wartości.

Przykład 4: Przekazane argumenty i wartość zwracana.

 #include using namespace std; int prime(int n); int main() ( int num, flag = 0; cout <> num; // Argument num is passed to check() function flag = prime(num); if(flag == 1) cout << num << " is not a prime number."; else cout<< num << " is a prime number."; return 0; ) /* This function returns integer value. */ int prime(int n) ( int i; for(i = 2; i <= n/2; ++i) ( if(n % i == 0) return 1; ) return 0; ) 

W powyższym programie użytkownik żąda dodatniej liczby całkowitej i zapisuje ją w zmiennej num.

Następnie numjest przekazywany do funkcji, w prime()której sprawdzane jest, czy liczba jest liczbą pierwszą, czy nie.

Ponieważ zwracanym typem prime()jest an int, do main()funkcji wywołującej zwracane jest 1 lub 0 . Jeśli liczba jest liczbą pierwszą, zwracana jest 1. Jeśli nie, zwracane jest 0.

W main()funkcji zwrócone 1 lub 0 jest przechowywane we fladze zmiennej, a odpowiedni tekst jest drukowany na ekranie.

Która metoda jest lepsza?

Wszystkie cztery programy powyżej dają te same wyniki i wszystkie są technicznie poprawnymi programami.

Nie ma sztywnej zasady, która metoda powinna zostać wybrana.

Konkretną metodę wybiera się w zależności od sytuacji i sposobu rozwiązania problemu.

Interesujące artykuły...