Käyttäjän määrittelemien toimintojen tyypit C ++: ssa

Tässä opetusohjelmassa opit erilaisista lähestymistavoista, joita voit käyttää yksittäisen ongelman ratkaisemiseksi toimintojen avulla.

Argumenttien paremman ymmärtämisen ja funktioiden paluun parantamiseksi käyttäjän määrittelemät toiminnot voidaan luokitella seuraavasti:

  • Toiminto ilman argumenttia ja palautusarvoa
  • Toiminto ilman argumenttia, mutta palautusarvo
  • Toiminto argumentin kanssa, mutta ei palautusarvoa
  • Funktio argumentin ja palautusarvon kanssa

Harkitse tilannetta, jossa sinun on tarkistettava alkuluku. Tämä ongelma ratkaistaan ​​alla tekemällä käyttäjän määrittelemä toiminto neljällä eri tavalla, kuten edellä mainittiin.

Esimerkki 1: Ei argumentteja välitetty eikä palautusarvoa

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

Yllä olevassa ohjelmassa prime()sitä kutsutaan main (): sta ilman argumentteja.

prime() ottaa positiivisen luvun käyttäjältä ja tarkistaa, onko luku alkuluku vai ei.

Koska palautustyyppi prime()on void, funktiosta ei palauteta arvoa.

Esimerkki 2: Ei argumentteja annettu, mutta palautusarvo

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

Yllä olevassa ohjelmassa prime()funktio kutsutaan main()ilman argumentteja.

prime()ottaa käyttäjältä positiivisen kokonaisluvun. Koska toiminnon palautustyyppi on an int, se palauttaa syötetyn numeron käyttäjältä takaisin kutsutoimintoon main().

Sitten, onko numero alkuluku vai ei, tarkistetaan itse pääosassa () ja tulostetaan ruudulle.

Esimerkki 3: Argumentit lähetetty, mutta ei palautusarvoa

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

Yllä olevassa ohjelmassa kysytään ensin käyttäjältä positiivista lukua, joka on tallennettu muuttujaan num.

Sitten numero välitetään prime()funktiolle, jossa tarkistetaan ja tulostetaan riippumatta siitä, onko numero alkuluku vai ei.

Koska palautustyyppi prime()on a void, funktiosta ei palauteta arvoa.

Esimerkki 4: Välitetyt argumentit ja palautusarvo.

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

Yllä olevassa ohjelmassa käyttäjältä kysytään positiivinen kokonaisluku ja se tallennetaan muuttujaan num.

Sitten numvälitetään funktiolle, prime()jossa tarkistetaan, onko luku alkuluku vai ei.

Koska palautustyyppi prime()on int, 1 tai 0 palautetaan main()kutsutoimintoon. Jos luku on alkuluku, palautetaan 1. Jos ei, palautetaan 0.

Takaisin main()toiminto, palautettu 1 tai 0 tallennetaan muuttujaan lippu, ja vastaava teksti tulostetaan näytölle.

Mikä menetelmä on parempi?

Kaikki edellä mainitut neljä ohjelmaa tuottavat saman tuloksen ja kaikki ovat teknisesti oikein.

Ei ole kovaa ja nopeaa sääntöä siitä, mikä menetelmä tulisi valita.

Menetelmä valitaan tilanteen mukaan ja siitä, miten haluat ratkaista ongelman.

Mielenkiintoisia artikkeleita...