Jenis Fungsi yang Ditentukan Pengguna dalam Pemrograman C.

Dalam tutorial ini, Anda akan belajar tentang pendekatan berbeda yang dapat Anda lakukan untuk menyelesaikan masalah yang sama menggunakan fungsi.

4 program di bawah ini memeriksa apakah bilangan bulat yang dimasukkan oleh pengguna adalah bilangan prima atau bukan.

Output dari semua program di bawah ini sama, dan kami telah membuat fungsi yang ditentukan pengguna di setiap contoh. Namun, pendekatan yang kami ambil di setiap contoh berbeda.

Contoh 1: Tidak ada argumen yang diberikan dan tidak ada nilai yang dikembalikan

 #include void checkPrimeNumber(); int main() ( checkPrimeNumber(); // argument is not passed return 0; ) // return type is void meaning doesn't return any value void checkPrimeNumber() ( int n, i, flag = 0; printf("Enter a positive integer: "); scanf("%d",&n); for(i=2; i <= n/2; ++i) ( if(n%i == 0) ( flag = 1; ) ) if (flag == 1) printf("%d is not a prime number.", n); else printf("%d is a prime number.", n); ) 

The checkPrimeNumber()fungsi mengambil input dari user, cek apakah itu adalah bilangan prima atau tidak dan menampilkannya di layar.

Tanda kurung kosong dalam checkPrimeNumber();pernyataan di dalam main()fungsi menunjukkan bahwa tidak ada argumen yang diteruskan ke fungsi tersebut.

Jenis kembalian dari fungsinya adalah void. Karenanya, tidak ada nilai yang dikembalikan dari fungsi tersebut.

Contoh 2: Tidak ada argumen yang diberikan kecuali nilai yang dikembalikan

 #include int getInteger(); int main() ( int n, i, flag = 0; // no argument is passed n = getInteger(); for(i=2; i<=n/2; ++i) ( if(n%i==0)( flag = 1; break; ) ) if (flag == 1) printf("%d is not a prime number.", n); else printf("%d is a prime number.", n); return 0; ) // returns integer entered by the user int getInteger() ( int n; printf("Enter a positive integer: "); scanf("%d",&n); return n; ) 

Tanda kurung kosong dalam n = getInteger();pernyataan menunjukkan bahwa tidak ada argumen yang diteruskan ke fungsi tersebut. Dan, nilai yang dikembalikan dari fungsi tersebut ditetapkan ke n.

Di sini, getInteger()fungsi mengambil masukan dari pengguna dan mengembalikannya. Kode untuk memeriksa apakah suatu bilangan prima atau tidak ada di dalam main()fungsi tersebut.

Contoh 3: Argumen berhasil tetapi tidak ada nilai yang dikembalikan

 #include void checkPrimeAndDisplay(int n); int main() ( int n; printf("Enter a positive integer: "); scanf("%d",&n); // n is passed to the function checkPrimeAndDisplay(n); return 0; ) // return type is void meaning doesn't return any value void checkPrimeAndDisplay(int n) ( int i, flag = 0; for(i=2; i <= n/2; ++i) ( if(n%i == 0)( flag = 1; break; ) ) if(flag == 1) printf("%d is not a prime number.",n); else printf("%d is a prime number.", n); ) 

Nilai integer yang dimasukkan oleh pengguna diteruskan ke checkPrimeAndDisplay()fungsi.

Di sini, checkPrimeAndDisplay()fungsi memeriksa apakah argumen yang dilewatkan adalah bilangan prima atau bukan dan menampilkan pesan yang sesuai.

Contoh 4: Argumen diteruskan dan nilai kembalian

 #include int checkPrimeNumber(int n); int main() ( int n, flag; printf("Enter a positive integer: "); scanf("%d",&n); // n is passed to the checkPrimeNumber() function // the returned value is assigned to the flag variable flag = checkPrimeNumber(n); if(flag == 1) printf("%d is not a prime number",n); else printf("%d is a prime number",n); return 0; ) // int is returned from the function int checkPrimeNumber(int n) ( int i; for(i=2; i <= n/2; ++i) ( if(n%i == 0) return 1; ) return 0; ) 

Masukan dari pengguna diteruskan ke checkPrimeNumber()fungsi.

The checkPrimeNumber()pemeriksaan fungsi apakah argumen berlalu prima atau tidak.

Jika argumen yang dilewatkan adalah bilangan prima, fungsi mengembalikan 0. Jika argumen yang dilewatkan adalah bilangan non-prima, fungsi mengembalikan 1. Nilai yang dikembalikan ditetapkan ke variabel bendera.

Bergantung pada apakah flag bernilai 0 atau 1, pesan yang sesuai dicetak dari main()fungsi tersebut.

Pendekatan mana yang lebih baik?

Ya, itu tergantung pada masalah yang Anda coba selesaikan. Dalam kasus ini, meneruskan argumen dan mengembalikan nilai dari fungsi (contoh 4) lebih baik.

Suatu fungsi harus melakukan tugas tertentu. The checkPrimeNumber()fungsi tidak mengambil input dari user atau ini akan menampilkan pesan yang sesuai. Ini hanya memeriksa apakah sebuah bilangan prima atau tidak.

Artikel yang menarik...