(C++) Subrutin: Prosedur dan Fungsi - 2


Fungsi ialah subrutin yang mengembalikan hasil (nombor, rentetan aksara, dsb.)

Bayangkan anda telah memesan produk dari kedai dalam talian. Dari sudut pengaturcaraan, anda telah memanggil subrutin tertentu, dan tidak seperti prosedur, subrutin ini mesti mengembalikan hasil - menghantar produk yang anda pesan. Subrutin ini dipanggil fungsi.
Fungsi diformat dengan cara yang sama seperti prosedur. Satu-satunyaperbezaan daripada prosedur ialah kehadiran pengendali khas kembaliselepas itu nilai yang akan dikembalikan kepada program utama ialah bertulis.

Fungsi yang mengembalikan min aritmetik bagi dua integer akan kelihatan seperti ini: purata apungan (int a, int b) { purata apungan = (a + b) / 2.; kembali aug; } Ia kekal untuk memahami cara memanggil fungsi ini dalam program utama:
Anda tidak sepatutnya memanggil fungsi dengan cara yang sama anda memanggil prosedur: purata(10, 5); Nilai yang dikembalikan oleh fungsi akan hilang. Seolah-olah barangan dari kedai online itu tidak diberikan kepada sesiapa, malah dibuang begitu sahaja. Tidak mungkin pelanggan akan menyukainya.

Lebih tepat untuk menyimpan hasil dalam pembolehubah (atau mencetaknya ke skrin): a = purata(10, 5); cout << purata(10, 5);

Selalunya pengaturcara menggunakan fungsi boolean yang mengembalikan nilai boolean true atau false (trueatau false)
Fungsi sedemikian berguna untuk   semak beberapa harta.
Pertimbangkan dua contoh menulis fungsi logik yang menyemak nombor untuk kesamaan
Dan nota terakhir tentang bekerja dengan fungsi dan prosedur: bilangan fungsi dan prosedur dalam program tidak terhad. Di samping itu, satu subrutin boleh memanggil subrutin lain dan juga dirinya sendiri.
 

1)  Cara yang lebih baik:
hasil ungkapan
n % 2 == 0
akan menjadi benar (Benar) atau palsu (Salah)
Tidak perlu menulis pernyataan bersyarat!
2) Jangan buat begitu!
Anda boleh menulisnya seperti itu, tetapi lebih baik jangan lakukan rekod yang lebih panjang lagi
bool isEven(int n) { pulangan (n % 2 == 0); } bool isEven(int n) { jika (n % 2 == 0) kembali benar; lain kembali Salah; }