Typer brukerdefinerte funksjoner i C ++

I denne opplæringen vil du lære om forskjellige tilnærminger du kan ta for å løse et enkelt problem ved hjelp av funksjoner.

For bedre forståelse av argumenter og retur i funksjoner, kan brukerdefinerte funksjoner kategoriseres som:

  • Funksjon uten argument og uten returverdi
  • Funksjon uten argument men returverdi
  • Funksjon med argument men ingen returverdi
  • Funksjon med argument og returverdi

Vurder en situasjon der du må sjekke primtallet. Dette problemet løses nedenfor ved å lage brukerdefinert funksjon på 4 forskjellige måter som nevnt ovenfor.

Eksempel 1: Ingen argumenter bestått og ingen returverdi

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

I programmet ovenfor prime()kalles det fra hoved () uten argumenter.

prime() tar det positive tallet fra brukeren og sjekker om tallet er et primtall eller ikke.

Siden retur type prime()vil si void, ingen verdi returneres fra funksjonen.

Eksempel 2: Ingen argumenter bestått, men en returverdi

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

I programmet ovenfor prime()kalles funksjon fra main()uten argumenter.

prime()tar et positivt heltall fra brukeren. Siden returtypen til funksjonen er en int, returnerer den det innlagte nummeret fra brukeren tilbake til anropsfunksjonen main().

Deretter kontrolleres om tallet er primtall eller ikke i selve hovedmenyen () og skrives ut på skjermen.

Eksempel 3: Argumenter bestått, men ingen returverdi

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

I det ovennevnte programmet blir først positivt antall spurt fra brukeren som er lagret i variabelen num.

Deretter blir num sendt til prime()funksjonen der, om tallet er primtall eller ikke blir sjekket og skrevet ut.

Siden returtypen prime()er a void, returneres ingen verdi fra funksjonen.

Eksempel 4: Argumenter bestått og en returverdi.

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

I det ovennevnte programmet blir et positivt heltall spurt fra brukeren og lagret i variabelen num.

Deretter numsendes til funksjonen prime()hvor, om tallet er primtall eller ikke er sjekket.

Siden returtypen prime()er an int, returneres 1 eller 0 til main()anropsfunksjonen. Hvis tallet er et primtall, returneres 1. Hvis ikke, returneres 0.

Tilbake i main()funksjonen lagres den returnerte 1 eller 0 i variabelflagget, og den tilsvarende teksten skrives ut på skjermen.

Hvilken metode er bedre?

Alle fire programmene ovenfor gir samme utgang, og alle er teknisk riktige programmer.

Det er ingen hard og rask regel om hvilken metode som skal velges.

Den spesifikke metoden velges avhengig av situasjonen og hvordan du vil løse et problem.

Interessante artikler...