Ы збекистон Республикаси Олий ва ырта махсус таълим вазирлиги
Функцияни эълон =илиш ва чи=ариш
Download 407 Kb.
|
SI
Функцияни эълон =илиш ва чи=ариш.Функцияга ани= мурожаат =илиш учун у ща=идаги барча маълумотлар компляторга олдиндан маълум былиши зарур, яъни функцияни ча=иришдан аввал стандарт томонидан тавсия этилишига ыша фанга унинг ани=ланишини ёки тавсифини жойлаштириш керак. Стандарт быйича функцияни ани=лаш учун унинг тимсоли хизмат =илади. тип функция_исми (парметрлар _ хусусиятлари); Масалан: double f(int n, float x); double f(int, float); лар бир-бири билан эквивалент. Функцияга мурожаат =илиш учун «()» операцияси билан ифодалар фойдаланилади: функцияни _белгиланиши (ща=и=ий _параметрлар _ рыйхати) «()» операциянинг операндалари сифатида функцияни _белгиланиши ва ща=и=ий _параметрлар рыйхати. Функцияни белгиланиши бу унинг исми ща=и=ий параметрлар рыйхати, аргументлар деб аталиб, уларнинг сони функциянинг расмий параметрлари сонига тенг. Ща=и=ий ва расмий параметрлар орасидаги мослик уларнинг рыйхатда ызаро жойлашишига =араб ани=ланади. Ща=и=ий параметрларни щисоблаш (ынгдан чапга ёки чапдан ынга) Си тили стандартида ани=ланмаган. Расмий ва ща=и=ий параметрлар типлари быйича мос былиши зарур. Ща=и=ий параметр типи расмий параметр типи билан бир хил былгани яхширо=. Акс щолда, бундай типларни келтириш мумкин былса, компилятор типларни яратиш буйру=ларига автоматик равишда =ышади. Масалан функция тимсоли билан =уйидагича ани=ланган былсин: int g(int,long); Программада уни чи=ариш =уйидагича: g(5.0+m,6.3e+2) Бу ерда иккала параметр щам double типига эга. Компилятор функция тимсолига асосланиб, автоматик равишда мана бундай алмаштиришни =арайди: g((int)(3.0+m), (long) 6.3e+2) Функция ифода щисобланганлиги сабабли, унинг танасидаги операторлар бажарилгач, ча=ириш ну=тасига айрим =ийматлар =айтарилади, унинг типи эса =атъий равишда унинг тимсолида ани=ланган функция исми олдида келувчи типга мос келади. Масалан:
{ if (x } щамиша float типидаги =ийматни =айтаради. Функцияни ча=ириш – ифода щисобланиб, бундай ифода программа матнида функциянинг кайтарадиган =ийматларига бо\ли= былади. Масалан: void print (int gg, int mm, int dd) { print f (“\n йил:%d”, gg); print f (“\n ой:%d”, mm); print f (“\n кун:%d”, dd); } Унга мурожаат print (2001, 10, 15); Экранга =уйидагича натижани чи=ариш билан якунланади. Йил: 2001 ой:10 кун:15 Учбурчакнинг томонлари берилса, унинг периметри ва юзини щисобловчи программани кыриб ытайлик. Бизга геометрия курсидан маълумки, томонлари а, в, с былган учбурчакни ясаш учун a+b≥c, a+c≥b, b+c≥a тенгсизликлар бажарилиши керак. Бу щолда, учбурчак периметри р=а+в+с унинг юзи эса формулалари ёрдамида топилади. Программанинг кыриниши =уйидагича. # include # include main() { float x,y,z,pp,ss; / *тимсол:*/ int triangle(float,float,float,float*,float*); printf("\ n x ни киритинг x="); scanf("%f ", &x); printf("\t y ни киритинг: y="); scanf("%f ", &y); printf("\t z ни киритинг: z="); scanf("%f ", &z); if (triangle(x,y,z,&pp,&ss)==1) { print("Периметр=% f ",pp); print ("юза =% f", ss); } else print ("\n маьлумотлар хато"); } /* функцияни ани=лаш / int triangle(float a,float b,float c,float *perimeter,float *arrea); { float e; * perimeter=*arrea=0.0; if (a+b<=c:: a+c<=b:: b+c<=a); return 0 *perimeter= a+b+c e=*perimeter/2; *arrea=sqrt(e*(e-a)*(e-b)*(e-c)); return 1 } Программанинг бажариш натижаси: x ни киритинг: x=3 y ни киритинг: y=4 z ни киритинг: z=5 периметр=12.000000 юза=6.000000 Download 407 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling