C ++ 'da Kullanıcı Tanımlı İşlev Türleri

Bu eğitimde, fonksiyonları kullanarak tek bir problemi çözmek için kullanabileceğiniz farklı yaklaşımları öğreneceksiniz.

Bağımsız değişkenlerin ve işlevlerin geri dönüşünün daha iyi anlaşılması için, kullanıcı tanımlı işlevler şu şekilde kategorize edilebilir:

  • Bağımsız değişken ve dönüş değeri olmayan işlev
  • Bağımsız değişken içermeyen ancak dönüş değeri olan işlev
  • Bağımsız değişkenli ancak dönüş değeri olmayan işlev
  • Bağımsız değişken ve dönüş değeri olan işlev

Asal sayıyı kontrol etmeniz gereken bir durumu düşünün. Bu problem aşağıda belirtildiği gibi 4 farklı şekilde kullanıcı tanımlı fonksiyon yapılarak çözülmüştür.

Örnek 1: Hiçbir bağımsız değişken geçirilmedi ve dönüş değeri yok

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

Yukarıdaki programda prime()main () 'den argüman olmadan çağrılır.

prime() pozitif sayıyı kullanıcıdan alır ve sayının asal sayı olup olmadığını kontrol eder.

İs dönüş türü prime()olduğundan void, işlevden herhangi bir değer döndürülmez.

Örnek 2: Hiçbir bağımsız değişken geçirilmedi, ancak bir dönüş değeri

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

Yukarıdaki programda prime()fonksiyon main()argümansız olarak çağrılır .

prime()kullanıcıdan pozitif bir tamsayı alır. İşlevin dönüş türü bir olduğundan int, kullanıcıdan girilen sayıyı çağıran main()işleve geri döndürür .

Ardından, sayının asal olup olmadığı main () 'in kendisinde kontrol edilir ve ekrana yazdırılır.

Örnek 3: Değiştirilen bağımsız değişkenler ancak dönüş değeri yok

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

Yukarıdaki programda num değişkeninde kayıtlı olan kullanıcıdan ilk önce pozitif sayı istenir.

Daha sonra prime()sayının asal olup olmadığı kontrol edilip yazdırıldığı fonksiyona num aktarılır .

Dönüş türü prime()a voidolduğundan, işlevden hiçbir değer döndürülmez.

Örnek 4: Geçilen bağımsız değişkenler ve bir dönüş değeri.

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

Yukarıdaki programda kullanıcıdan pozitif bir tamsayı istenir ve değişkende saklanır num.

Ardından sayının asal olup olmadığının kontrol edildiği numfonksiyona geçilir prime().

Dönüş türü bir prime()olduğu için int, 1 veya 0 main()çağıran işleve döndürülür . Sayı asal sayı ise, 1 döndürülür. Değilse, 0 döndürülür.

İşleve geri main()döndüğünde, döndürülen 1 veya 0 değişken bayrağında saklanır ve ilgili metin ekrana yazdırılır.

Hangi yöntem daha iyidir?

Yukarıdaki dört programın tümü aynı çıktıyı verir ve hepsi teknik olarak doğru programdır.

Hangi yöntemin seçilmesi gerektiğine dair kesin ve hızlı bir kural yoktur.

Belirli bir yöntem, duruma ve bir sorunu nasıl çözmek istediğinize bağlı olarak seçilir.

Ilginç makaleler...