2. Return операторы. Return операторының функцияда қолданылуының екі нұсқасы бар:
1) return операторы ағындағы функциядан сол бойда шығарады да программадағы функцияны шақырған нүктеге қайырады, мысалы:
a) max ( inta, int b)
{ int m; if (a>b) max=a;else max=b;
return;}
b) max ( inta, int b)
{ if (a>b) return a;else return b;}
c) max ( inta, int b)
if (a>b) return a; return b;}
return (a>b) ? a:b
d) max( int a,int b) { int m; if(a>b) return a;else return b;}
2) Функциядағы операторлар әрекеттері аяқталғаннан кейін оның мәнін( нәтижені) шақырған нүктеге қайырады:
max( int a,int b) { int m; if(a>b) m=a;else m=b; return m;}
немесе max( int a,int b) { return (a>b)? a:b; m;}
Функция денесінде return операторының бірнешеуі болуы, ал тіпті біреуде болмауы мүмкін. Егер программада return операторы болмаса негізгі ( шақырушы) программаға нәтиже функция денесіндегі соңғы оператор орындалғаннан кейін қайтарылады. Егер функция денесінде return опера торы немесе оператордан кейін ешқандай мән болмаса функцияның қайтаратын мәні белгісіз( анықталмаған). <функ. аты> функциясының есептеген мәнін main() функциясына return нұсқауының көмегімен қайтарылады. return сөзінен кейін кез-келген өрнек болуы мүмкін
return <өрнек>;
Функция негізгі программадағы кейбір мән қайтаруы міндетті емес. Егер return нұсқауы өрнексіз болса (ештеңе жазылмаған), ол басқаруды прог раммада шақырған нүктеге қайтарады, бірақ ешқандай нәтижелік мәні болмайды. Бұл, есептеу функция денесінің соңындағы жүйелі жақшаға жеткенше жүргізіледі. Мән қайыратын функцияларды өрнектердің құрамында пайдалануға болады, бірақ меншіктеу операторының сол жақ бөлігінде пайдалануға болмайды (функцияның қайтаратын мәні нұсқағыш болған жағдайда рұқсат етіледі).
/*_ C_50_ show() функциясының параметрі жоқ және негізгі программаға ешқандай мән қайырмайды __________*/
#include
void show()
{puts( " func show");}
main() {puts( " input func show " );
show(); puts(" return program" );}
/*_____________________________eo program__________*/
/* нәтиже : input func show func show return program */'
/* _C _51_ max функциясының формальді параметрлері бар , бірақ негізгі программаға мән қайырмайды. __________*/
#include
#include
void max(float x,float y); /* x, y формальді параметрлер */
void main(void) { clrscr();
float a,b; puts( " енгізіңіз a ,b");
scanf("%f %f",&a,&b);
max(a,b); /* a,b нақты параметрлер */
max(2 , 5); /* 2 ,5 нақты параметр-мәндер , x
max(3.1415,2.7382);} /* 3,14, 2,73 нақты параметр-мәндер x>y */
void max(float x,float y)
{ if(x>y) puts(" x > y");else puts( "x
/*_____________________________eo program__________*/
/* _C_52_ max функциясының формальді параметрлері бар және негізгі программаға float типті мән қайырады_*/
#include
#include
float max(float x,float y);
void main(void) { clrscr(); float a,b;
puts( " vvedite a ,b"); scanf("%f %f",&a,&b);
printf( " max(a,b)=%2.2f\n",max(a,b)); / * max(a,b)=6.00 */
printf( " max(2.71,3.14)=%2.2f",max(2.71,3.14)); }
/ * max(2.71,3.14)=3.14 */
float max(float x,float y)
{ float res ;
if(x>y) res=x; else res=y; return (res);}
/*_____________________________eo program__________*/
/ * Программа орындалу нәтижесі: енгізіңіз a ,b ----> 2 6 */
/* _C_53_ .Бүтін m санын оң бүтін n дәрежеге шығару._____*/
# include
int power (int m, int n); /* power атты функцияны хабарлау */
main() /* Бас функция */
{int i; for (i:=0; i<10; + +i)
prints (“% d % d \ n”, i, power (2,i), power(-3,i));
return o}
/* base бүтінін n>0 дәрежеге көтеру функциясын анықтау */
int power(int base, int n)
{ int I ; p=1; for (i=1; i<=n; + +i) /* функция денесі */
p=p*base; retun p;}
/*_____________________________eo program__________*/
Достарыңызбен бөлісу: |