Jenis Fungsi yang ditentukan pengguna dalam C ++

Dalam tutorial ini, anda akan belajar mengenai pendekatan yang berbeza yang dapat anda lakukan untuk menyelesaikan satu masalah menggunakan fungsi.

Untuk pemahaman yang lebih baik tentang argumen dan fungsi kembali, fungsi yang ditentukan pengguna dapat dikategorikan sebagai:

  • Fungsi tanpa argumen dan tanpa nilai pulangan
  • Fungsi tanpa argumen tetapi nilai pulangan
  • Berfungsi dengan hujah tetapi tiada nilai pulangan
  • Berfungsi dengan argumen dan nilai pulangan

Pertimbangkan situasi di mana anda mesti memeriksa nombor perdana. Masalah ini diselesaikan di bawah dengan membuat fungsi yang ditentukan pengguna dengan 4 cara yang berbeza seperti yang disebutkan di atas.

Contoh 1: Tidak ada argumen yang diluluskan dan tidak ada nilai pulangan

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

Dalam program di atas, prime()dipanggil dari utama () tanpa argumen.

prime() mengambil nombor positif dari pengguna dan memeriksa sama ada nombor tersebut adalah nombor perdana atau tidak.

Sejak, jenis pengembalian prime()adalah void, tidak ada nilai yang dikembalikan dari fungsi.

Contoh 2: Tidak ada argumen yang diluluskan melainkan nilai kembali

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

Dalam program di atas, prime()fungsi dipanggil dari main()tanpa argumen.

prime()mengambil bilangan bulat positif dari pengguna. Oleh kerana, jenis kembali fungsi adalah int, ia mengembalikan nombor yang dimasukkan dari pengguna kembali ke main()fungsi panggilan .

Kemudian, sama ada nombor itu utama atau tidak dicentang di induk () itu sendiri dan dicetak ke skrin.

Contoh 3: Hujah diluluskan tetapi tiada nilai pulangan

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

Dalam program di atas, nombor positif mula-mula diminta dari pengguna yang disimpan dalam angka pembolehubah.

Kemudian, prime()angka diserahkan ke fungsi di mana, sama ada nombor itu prima atau tidak diperiksa dan dicetak.

Oleh kerana, jenis pengembalian prime()adalah void, tidak ada nilai yang dikembalikan dari fungsi.

Contoh 4: Hujah diluluskan dan nilai pulangan.

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

Dalam program di atas, bilangan bulat positif diminta dari pengguna dan disimpan dalam pemboleh ubah num.

Kemudian, numditeruskan ke fungsi prime()di mana, sama ada nombornya prima atau tidak dicentang.

Oleh kerana, jenis pengembalian prime()adalah int, 1 atau 0 dikembalikan ke main()fungsi panggilan. Sekiranya nombor itu adalah nombor perdana, 1 dikembalikan. Sekiranya tidak, 0 dikembalikan.

Kembali ke main()fungsi, 1 atau 0 yang dikembalikan disimpan dalam bendera pemboleh ubah, dan teks yang sesuai dicetak ke layar.

Kaedah mana yang lebih baik?

Keempat-empat program di atas memberikan output yang sama dan semuanya adalah program yang betul secara teknikal.

Tidak ada peraturan yang keras dan cepat mengenai kaedah mana yang harus dipilih.

Kaedah tertentu dipilih bergantung pada keadaan dan bagaimana anda ingin menyelesaikan masalah.

Artikel menarik...