Ֆունկցիաներ
C++ում ֆունկցիաները օգտագործվում են գործողություններ մի տեղ միավորելու համար, որպեսզի հետո դրանք մի քանի տեղ օգտագործեն և նույն գործողությունները տարբեր տեղեր չգրեն։ Մենք իրականում արդեն օգտագործել ենք մի քանի հայտնի ֆունկցիա։ Օրինակ
<algorithm>
գրադարանի sort()
ֆունկցիան, որը նախատեսված է զանգվածներ սորտավորելու համար շատ լավ օրինակ է։ sqrt()
կամ abs()
ֆունկցիաները նույնպես հաճախ օգտագործվող ֆունկցիաներ են, որոնք մենք արդեն օգտագործել ենք տարբեր խնդիրներում։ Եթե չլինեին այս ֆունկցիաները
<algorithm>
և <cmath>
գրադարաններում, մենք այս բոլորը պետք է ամեն մեր ծրագրում ինքներս իրականացնեինք։ Այսինքն օրինակint y = abs(x);
օգտագործելու փոխարեն պետք է գրեինք՝int y;
if (x >= 0)
y = x;
else
y = -x;
Որը բավական անհարմար է հատկապես եթե
abs
գործողությունը հաճախ է պետք ծրագրի աշխատանքի ընթացքում։ Այսինքն մենք այդ դեպքում կունենայինք բազմաթիվ տողեր, որոնք ունեն գրեթե նույն պարունակությունը։ Իսկ ծրագրի մեջ կրկնվող հատվածներ ունենալը շատ վատ բան է, քանի որ մի տեղ սխալ թույլ տալու դեպքում, հետո այդ հատվածը copy/paste անելու դեպքում հետո կարիք է լինում բոլոր տեղերը այդ սխալը գտնել և ուղղել։Ֆունկցիաները ունեն հետևյալ գրելաձևը՝
return_type function_name(type1 param1, type2 param2, ..., typen, paramn) {
body of the function
...
return something;
}
Օրինակ
abs
ֆունկցիան կունենա հետևյալ տեսքը։int abs(int a) {
if (a >= 0)
return a;
else
return -a;
}
Կամ օրինակ
max
ֆունկցիան կունենա հետևյալ տեսքը։int max(int a, int b) {
if (a > b)
return a;
else
return b;
}
int max(int a, int b) {
int result;
if (a > b)
result = a;
else
result = b;
return result;
}
Որից հետո մենք կարող ենք օգտագործել այս ֆունկցիան C++ում արդեն հայտնի այլ ֆունկցիաների նման։ Իսկ ֆունկցիայի մեջ գրված կոդը աշխատում է սովորական
main
-ում գրված կոդի նման՝ տող առ տող։Այսինքն ֆունկցիա գրելու համար պետք է նշել ֆունկցիայի վերադարձվող արժեքի տիպը։ Մեր դեպքում
max
ֆունկցիայի երկրորդ օրինակում result
-ը int
տիպի է, հետևաբար max()
ֆունկցիան պետք է ունենա int max(
հայտարարման տեսք։ Եթե մենք ունենայինք ֆունկցիա, որը կհաշվեր շրջանագծի երկարությունը, ապա դա կունենար double
տիպ՝double circumference(int r) {
const double pi = 3.14159265359;
return 2 * pi * r;
}
// Այս ֆունկցիան կարող էինք օգտագործել օրինակ այսպես՝
int main() {
double res = circumference(5);
cout << res;
}
Ուշադրություն դարձրեք, որ ֆունկցիաները պետք է հայտարարել
main
-ից առաջ, որպեսզի հնարավոր լինի դրանք օգտագործել main
-ում։ C++
-ի ծրագրերն աշխատում են տող-առ-տող և ծրագիրը չի «իմանա» որ circumference
ֆունկցիան գոյություն ունի, եթե այն նախօրոք չի հայտարարվոլ։ Այսինքն պետք է ֆունկցիաները հայտարարել օգտագործումից մի քանի տող առաջ։Վարժություն՝
C++ի ստանդարտ գրադարաններում արդեն կա իրականացված
min
և max
ֆունկցիաները։ Բայց դրանք աշխատում են միայն երկու պարամետրով, այսինքն նրանք հաշվում են մեծագույն կամ փոքրագույն արժեքը միայն երկու փոփոխականի համար։ Շատ ավելի հարմար կլիներ, եթե հնարավոր լիներ ունենալ ֆունցկա, որը կհաշվեր max
4 արժեքների միջից։Իրականացրեք
max
ֆունկցիա, որը կստանա 4 ամբողջ թիվ և կվերադարձնի այդ 4 ամբողջ թվից մեծագույնը։Մուտքում տրված են 4 ամբողջ թվեր։ Ելքում անհրաժեշտ է տպել այդ թվերից մեծագույնը։
Մուտք | Ելք |
1 4 3 2 | 4 |
Constraints
Time limit: 0.2 seconds
Memory limit: 512 MB
Output limit: 1 MB