Τύποι λειτουργιών που καθορίζονται από το χρήστη στο C ++

Σε αυτό το σεμινάριο, θα μάθετε για διάφορες προσεγγίσεις που μπορείτε να ακολουθήσετε για την επίλυση ενός προβλήματος χρησιμοποιώντας λειτουργίες.

Για καλύτερη κατανόηση των επιχειρημάτων και επιστροφή συναρτήσεων, οι λειτουργίες που καθορίζονται από τον χρήστη μπορούν να κατηγοριοποιηθούν ως:

  • Λειτουργία χωρίς όρισμα και χωρίς τιμή επιστροφής
  • Λειτουργία χωρίς όρισμα αλλά τιμή επιστροφής
  • Λειτουργία με όρισμα αλλά χωρίς τιμή επιστροφής
  • Λειτουργία με όρισμα και τιμή επιστροφής

Σκεφτείτε μια κατάσταση στην οποία πρέπει να ελέγξετε τον πρώτο αριθμό. Αυτό το πρόβλημα επιλύεται παρακάτω κάνοντας τη λειτουργία που ορίζεται από το χρήστη με 4 διαφορετικούς τρόπους όπως αναφέρθηκε παραπάνω.

Παράδειγμα 1: Δεν διαβιβάστηκαν ορίσματα και καμία τιμή επιστροφής

 # 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."; ) ) 

Στο παραπάνω πρόγραμμα, prime()καλείται από το κύριο () χωρίς ορίσματα.

prime() λαμβάνει τον θετικό αριθμό από τον χρήστη και ελέγχει αν ο αριθμός είναι πρωταρχικός αριθμός ή όχι.

Δεδομένου ότι, ο τύπος επιστροφής prime()είναι void, δεν επιστρέφεται καμία τιμή από τη συνάρτηση.

Παράδειγμα 2: Δεν πέρασαν ορίσματα αλλά τιμή επιστροφής

 #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; ) 

Στο παραπάνω πρόγραμμα, η prime()συνάρτηση καλείται από το main()χωρίς ορίσματα.

prime()παίρνει έναν θετικό ακέραιο από τον χρήστη. Δεδομένου ότι, ο τύπος επιστροφής της συνάρτησης είναι int, επιστρέφει τον εισαγόμενο αριθμό από τον χρήστη πίσω στη main()λειτουργία κλήσης .

Στη συνέχεια, αν ο αριθμός είναι πρωταρχικός ή όχι, ελέγχεται στο κύριο () και εκτυπώνεται στην οθόνη.

Παράδειγμα 3: Τα επιχειρήματα πέρασαν αλλά καμία τιμή επιστροφής

 #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."; ) )

Στο παραπάνω πρόγραμμα, ζητείται πρώτα ο θετικός αριθμός από τον χρήστη που είναι αποθηκευμένος στη μεταβλητή αριθ.

Στη συνέχεια, ο αριθμός μεταφέρεται στη prime()συνάρτηση όπου, είτε ο αριθμός είναι πρωταρχικός είτε όχι, ελέγχεται και εκτυπώνεται.

Δεδομένου ότι, ο τύπος επιστροφής prime()είναι void, δεν επιστρέφεται τιμή από τη συνάρτηση.

Παράδειγμα 4: Τα επιχειρήματα πέρασαν και μια τιμή επιστροφής

 #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; ) 

Στο παραπάνω πρόγραμμα, ζητείται ένας θετικός ακέραιος από τον χρήστη και αποθηκεύεται στη μεταβλητή num.

Στη συνέχεια, numμεταφέρεται στη συνάρτηση prime()όπου, είτε ο αριθμός είναι πρωταρχικός είτε όχι, ελέγχεται

Δεδομένου ότι, ο τύπος επιστροφής prime()είναι ένα int, 1 ή 0 επιστρέφεται στη main()λειτουργία κλήσης. Εάν ο αριθμός είναι πρώτος αριθμός, επιστρέφεται 1. Εάν όχι, επιστρέφεται το 0.

Επιστρέφοντας στη main()συνάρτηση, το επιστρεφόμενο 1 ή 0 αποθηκεύεται στη μεταβλητή σημαία και το αντίστοιχο κείμενο εκτυπώνεται στην οθόνη.

Ποια μέθοδος είναι καλύτερη;

Και τα τέσσερα παραπάνω προγράμματα δίνουν την ίδια έξοδο και όλα είναι τεχνικά σωστά προγράμματα.

Δεν υπάρχει σκληρός και γρήγορος κανόνας σχετικά με τη μέθοδο που πρέπει να επιλεγεί.

Η συγκεκριμένη μέθοδος επιλέγεται ανάλογα με την κατάσταση και τον τρόπο με τον οποίο θέλετε να λύσετε ένα πρόβλημα.

ενδιαφέροντα άρθρα...