Ֆունկցիաներ

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 ֆունկցիայի երկրորդ օրինակում resultint տիպի է, հետևաբար 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

To check your solution you need to sign in
Sign in to continue