Ы збекистон Республикаси Олий ва ырта махсус таълим вазирлиги


Функцияни эълон =илиш ва чи=ариш


Download 407 Kb.
bet11/15
Sana18.02.2023
Hajmi407 Kb.
#1213815
1   ...   7   8   9   10   11   12   13   14   15
Bog'liq
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)

Функция ифода щисобланганлиги сабабли, унинг танасидаги операторлар бажарилгач, ча=ириш ну=тасига айрим =ийматлар =айтарилади, унинг типи эса =атъий равишда унинг тимсолида ани=ланган функция исми олдида келувчи типга мос келади.


Масалан:
float ft(douible x, int n)


{
if (xreturn n;
}
щамиша 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:
1   ...   7   8   9   10   11   12   13   14   15




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling