Типови кориснички дефинисаних функција у Ц ++

У овом упутству ћете научити о различитим приступима које можете предузети да бисте решили један проблем помоћу функција.

За боље разумевање аргумената и повратак у функције, кориснички дефинисане функције могу се категорисати као:

  • Функција без аргумента и без повратне вредности
  • Функција без аргумента, али повратне вредности
  • Функција са аргументом, али нема повратну вредност
  • Функција са аргументом и повратном вредношћу

Размотримо ситуацију у којој морате проверити прости број. Овај проблем је решен у наставку прављењем кориснички дефинисане функције на 4 различита начина као што је горе поменуто.

Пример 1: Нема прослеђених аргумената и нема повратне вредности

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

У горњем програму prime()се позива из маин () без аргумената.

prime() узима позитиван број од корисника и проверава да ли је број прост број или не.

Од, врсти повратка prime()ИС void, ниједна вредност се вратио из функције.

Пример 2: Нису прослеђени аргументи већ враћена вредност

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

У горњем програму, prime()функција се позива из main()без аргумената.

prime()узима позитиван цео број од корисника. Будући да је повратни тип функције ан int, он враћа унети број од корисника назад у позивајућу main()функцију.

Затим, да ли је број прост или не, проверава се у главном () и штампа на екрану.

Пример 3: Аргументи прослеђени, али нема враћене вредности

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

У горе наведеном програму од корисника се прво тражи позитиван број који је сачуван у променљивој нум.

Затим се нум преноси prime()функцији где се проверава и штампа да ли је број прост или не.

Будући да је тип поврата prime()а void, функција се не враћа.

Пример 4: Аргументи прослеђени и повратна вредност.

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

У горе наведеном програму од корисника се тражи позитиван цео број који се чува у променљивој num.

Затим numсе прослеђује функцији prime()где се проверава да ли је број прост или не.

Пошто је повратни тип prime()ан int, 1 или 0 се враћа функцији која main()позива. Ако је број прост број, враћа се 1. Ако није, враћа се 0.

Повратак у main()функцију, враћени 1 или 0 се чувају у променљивој застави, а одговарајући текст се штампа на екрану.

Који је метод бољи?

Сва горе наведена четири програма дају исте резултате и сви су технички исправни програми.

Не постоји чврсто и брзо правило о одабиру методе.

Одређена метода се бира у зависности од ситуације и начина на који желите да решите проблем.

Занимљиви Чланци...