1-Амалий машғулот


Download 0.81 Mb.
Pdf ko'rish
Sana16.06.2020
Hajmi0.81 Mb.
#119422
Bog'liq
1-Амалий машғулот


1-Амалий машғулот 

Мавзу:Функцияларни эьлони ва аниқлаш ва мурожаати. 

Асосий саволлар 

1.С++ дастурлаш тилида функциялар эълон қилиш ва аниқлаш. 

2.С++ дастурлаш тилида main () функцияси. 

3.Функция параметрлари ва аргументлари 

Дастурда  ишлатиладиган  ҳар  қандай  функция  эълон  қилиниши керак.  Одатда  функциялар  эълони 

сарлавҳа файлларда эълон қилинади ва #include директиваси ёрдамида Дастур матнига қўшилади.  

Функция  эълонини  функция  прототипи  тавсифлайди  (айрим  ҳолларда  сигнатура  дейилади). 

Функция прототипи қуйидаги кўри-нишда бўлади: 

<қайтарувчи қиймат тури> <функция номи>(<параметрлар рўйхати >); 

Бу ерда <қайтарувчи қиймат тури> - функция ишлаши натижасида у томонидан қайтарадиган қийматнинг 

тури.  Агар  қайтариладиган  қиймат  тури  кўрсатилмаган  бўлса,  келишув  бўйича  функция  қайтара-диган 

қиймат  тури  int  деб  ҳисобланади,  <параметрлар  рўйхати>-  вергул  билан  ажратилган  функция 

параметрларининг тури ва номлари рўйхати. Параметр номини ёзмаса ҳам бўлади. Рўйхат бўш бўлиши ҳам 

мумкин. Функция прототипларига мисоллар: 



int almashsin(int,int); 

double max(double x,double y); 

void func(); 

void chop_etish(void); 

Функция  прототипи  тушириб  қолдирилиши  мумкин,  агар  прог-рамма  матнида  функция 

аниқланиши  уни  чақирадиган  функциялар  матнидан  олдин  ёзилган  бўлса.  Лекин  бу  ҳолат  яхши  услуб 

ҳисоб-ланмайди, айниқса ўзаро бир - бирига мурожаат қилувчи функциялар-ни эълон қилишда муаммолар 

юзага келиши мумкин. 

Функция  аниқланиши  -  функция  сарлавҳаси  ва  фигурали  қавсга  (‘{‘,’}’)  олинган  қандайдир  амалий 

мазмунга  эга  танадан  иборат  бўлади.  Агар  функция  қайтарувчи  тури  void  туридан  фарқли  бўлса,  унинг 

танасида албатта мос турдаги параметрга эга return оператори бўлиши шарт. Функция танасида биттадан 

ортиқ  return  оператори  бўлиши  мумкин.  Уларнинг  ихтиёрий  бирортасини  бажариш  орқали  функциядан 

чиқиб  кетилади.  Агар  функция  қайтарадиган  қиймат  уни  чақирган  функцияда  ишлатилмайдиган  бўлса, 

функциядан  чиқиш  учун  параметрсиз  return  оператори  ишлатилиши  мумкин  ёки  умуман  return 

ишлатилмайди. Охирги ҳолда функциядан чиқиш - охирги ёпилувчи қавсга етиб келганда рўй беради. 

Функция  Дастурнинг  бирорта  модулида  ягона  равишда    аниқланиши  керак,  унинг  эълони  эса 

функцияни  ишлатадиган  модул-ларда  бир  неча  марта  ёзилиши  мумкин.  Функция  аниқланишида 

сарлавҳадаги барча параметрлар номлари ёзилиши шарт. 

Одатда Дастурда функция маълум бир ишни амалга ошириш учун чақирилади. Функцияга мурожаат 

қилганда,  у  қўйилган  масала-ни  ечади  ва  ўз  ишини  тугатишида  қандайдир  қийматни  натижа  сифатида 

қайтаради. 

Функцияни чақириш учун унинг номи ва ундан кейин қавс ичида аргументлар рўйхати берилади: 

<функция номи>(<аргумент

1

>, <аргумент

2

>,…, <аргумент

n

 >); 

Бу ерда ҳар бир <аргумент

i

> - функция танасига узатиладиган ва кейинчалик ҳисоблаш жараёнида 



ишлатиладиган ўзгарувчи, ифода ёки ўзгармасдир. Аргументлар рўйхати бўш бўлиши мумкин.  

Функциялар ҳам ўз танасида бошқа функцияларни, ўзини ҳам чақириши мумкин. Ўз танасида ўзини 

чақирадиган функцияларга рекурсив функциялар дейилади. 

Олдинги бобларда таъкидлаб ўтилганидек, С++ тилидаги ҳар қандай Дастурда албатта  main() бош 

функцияси  бўлиши  керак.  Айни  шу  функцияни  юклагич  томонидан  чақирилиши  билан  програм-ма 

бажарилиши бошланади. 

1- расмда бош функциядан бошқа функцияларни чақириш ва улардан қайтиш схемаси кўрсатилган. 

Дастур  main()  функциясини  бажаришдан  бошланади  ва  «f1(x,y);»  -  функция  чақиришгача  давом 

этади  ва  кейинчалик  бошқа-рув  f1(x,y)  функция  танасидаги  амалларни  бажаришга  ўтади.  Бунда  Radius 

параметрининг  қиймати  сифатида  функция  х  ўзгарувчи  қийматини,  symbol  параметри  сифатида  у 

ўзгарувчисининг  қиймати  ишлатилади.  Функция  танаси  return  операторигача  бажарилади.  return 

оператори  бошқарувни  main()  функцияси  танасидаги  f1()  функцияси  чақирилган  оператордан  кейинги 

операторга ўтишни таъминлайди, яъни функциядан қайтиш рўй беради. Шундан кейин main() функция-си 

операторлари бажарилишда давом этади ва «f2(a,b,c);» - функция чақириши орқали бошқарув f2() функция 

танасига ўтади ва ҳисоблаш жараёнида мос равишда YesNo сифатида а ўзгарувчисининг, сount сифатида b 

ўзгарувчиcининг ва key сифатида с ўзгарувчисининг қийматлари ишлатилади. Функция танасидаги return 

оператори  ёки  охирги  оператор  бажаргандан  кейин  автоматик  равишда  бош  функцияга  қайтиш  амалга 

оширилади.

 


 

1-расм. Бош функциядан бошқа функцияларни чақириш ва қайтиш 

Аксарият  ҳолларда  main()  функциясининг  параметрлар  рўйхати  бўш  бўлади.  Агар 

юкланувчи  Дастурни  ишга  туширишда,  буйруқ  сатри  орқали  юкланувчи  Дастур  ишга 

туширилганда, унга   параметрларни узатиш (бериш) зарур бўлса, main() Дастурси  функциясининг 

синтаксиси ўзгаради: 



int main(int argc, char* argv[]);  

Бу  ерда  argc  -  узатиладиган  параметрлар  сони,  argv[]-  бир-биридан  пунктуация  белгилари  (ва 

пробел) билан ажратилган параметрлар рўйхатини ўз ичига олган массивга кўрсаткич. 

Қуйида функцияларни эълон қилиш, чақириш ва аниқлашга мисоллар келтирилган: 



// функциялар эълони 

int Mening_funksiyam(int Number, float Point); 

char Belgini_uqish(); void bitni_urnatish(short Num); void Amal_yoq(int,char); 

// функцияларни чақириш 

result=Mening_funksiyam(Varb1,3.14); symb=Belgini_uqish(); bitni_urnatish(3); 

Amal_yoq(2,Smbl); 

// функцияларни аниқлаш 

int Mening_funksiyam(int Number,float Point); {  int x;  //...   return x; } 

char Belgini_uqish() 

{ char Symbol;  cin>>Symbol;  return Symbol; }; 

void bitni_urnatish(short number) 

{  global_bit=global_bit | number; }; 

void Amal_yoq(int x,char ch){}; 

Функциянинг Дастурдаги ўрнини янада тушунарли бўлиши учун сон квадратини ҳисоблаш 

масаласида функциядан фойдала-нишни кўрайлик. 

Функция прототипини “sarlavha.h” сарлавҳа файлида жойлаш-тирамиз: 



long Son_Kvadrati(int); 

Асосий  Дастурга  ушбу  сарлавҳа  файлини  қўшиш  орқали  Son_Kvadrati()  функция  эълони 

Дастур матнига киритилади: 

#include  

#include ”sarlavha.h” 

int main()  {  int Uzgaruvchi=5;  cout<

long Son_Kvadrati(int x) {return x*x;} 

Худди  шу  масалани  сарлавҳа  файлидан  фойдаланмаган  ҳолда,  функция  эълонини  Дастур 

матнига ёзиш орқали ҳам ҳал қилиш мумкин: 

#include  

using namespace std

long Son_Kvadrati(int); 

int main() 

{  int Uzgaruvchi=5;  cout<

long Son_Kvadrati(int x){return x*x;} 

 

Дастур ишлашида ўзгариш бўлмайди ва натижа сифатида экранга 25 сонини чоп этади.  



1-Мисол. 

#include  

using namespace std; 

int sum(int a, int b){ 

return a + b;   // 

  }   int main()   {       int a, b, c; 

//================================================= 

      a = 55, b =59; 

      c = sum(a,b);       //c = 55+59, c = 114 

      cout <<"c="<

//================================================= 

      a = 30, b =20; 

      c = sum(a,b);       //c = 30+20, c = 50 

      cout <<"c="<

//================================================= 

      a = 111, b =112; 

      c = sum(a,b); 

      cout <<"c="<

//================================================= 

      cin.get();   } 

 Дастур натижаси 

 

2-Мисол. 



#include  

using namespace std; 

int sum(int a, int b){ 

       cout <<"Yig'indi butun son="; 

       return a + b; } 

double sum(double a, double b){ 

    cout <<"Yig'indi xaqiqiy son="; 

    return a + b; } 

 int main(){ 

        double value1 = 5.6; // 

        double value2 = 6.7; // 

        int value3 = 9; 

        int value4 = 10; 

        cout << sum(value1, value2) << '\n'; 

        cout << sum(value3, value4) << '\n';  } 

Дастур натижаси 

 

Топшириқлар 

1-Топшириқ. Берилган функцияларни функция ёрдамида ҳисоблаш дастурини тузинг. 

Y катталикнинг қийматини аргументларнинг берилган Х

1

, Х


2

, Х


3

, Х


4

, Х


5

, Х


6

, Х


7

    қийматларида 

ҳисоблаш дастурини тузинг. 

№ 



№ 



1. 

 

2

7



6

3

3



2

3

2



2

1

cos



ln

sin


4

X

X

X

e

X

X

X

X





 

2. 

 

2

7



2

5

6



2

1

4



3

sin


)

cos(


1

)

cos(



1

X

X

X

X

X

X

X





 

3. 

 

4. 

 

5. 

 

6. 



 

7. 

 



7

)



ln(

sin


6

5

4



3

2

1



X

e

X

X

X

X

X

X





 

8. 

 

1

2



7

3

6



4

3

2



5

1

)



(log

X

X

X

X

X

X

X

X



 



9. 

 

10. 



 

11. 

 

12. 



 

13. 

 

2



7

2

6



5

4

3



2

2

1



)

cos(


X

X

X

X

X

X

X





 

14. 

 

7

6



5

2

4



3

2

2



1

X

X

X

X

X

X

X





 

15. 

 

16. 



 

17. 

 

18. 



 

19. 

 

2



7

5

4



3

2

2



2

1

X



X

X

X

X

X

X





 

20. 



 

7

6



5

4

3



2

2

1



cos

2

sin



X

X

X

X

X

X

X



 



21. 

 

22. 



 

23. 

 

24. 



 

25. 

 

7



6

5

4



3

sin


2

1

X



X

X

X

X

e

X

X



 

26. 



 











7



6

5

4



3

2

1



sin

X

X

X

arctgX

X

X

X

 

27. 

 

28. 

 

29. 

 

7



6

5

4



3

sin


2

1

X



X

X

X

X

e

X

X



 

30. 



 











7



6

5

4



3

2

1



sin

X

X

X

arctgX

X

X

X

 

31. 

 

32. 

 

33. 

 

34. 



 

Қуйидаги жадвалда Х

1

, Х


2

, Х


3

, Х


4

, Х


5

, Х


6

, Х


7

 ларнинг қийматлари берилган: 



№ 

X

1

 

X

2

 

X

3

 

X

4

 

X

5

 

X

6

 

X

7

 

1. 

6,4 


4,8 

3,7 


4,8 

6,4 


3,7 

3,7 


2. 

6,3 


5,6 

4,9 


6,3 

5,6 


4,9 

4,9 


3. 

7,5 


6,8 

5,6 


7,5 

6,8 


5,6 

5,6 


4. 

8,6 


7,2 

3,8 


8.6 

7.2 


3,8 

3,8 


5. 

4,5 


6,5 

3,7 


4,5 

6,3 


3,7 

3,7 


6. 

10,4 


5,5 

3,6 


10,4 

3,6 


5,5 

3,6 


7. 

8,3 


7,4 

6,5 


8,2 

7,4 


6,5 

6,5 


8. 

9,9 


8,8 

9,9 


7,7 

8,8 


7,7 

9,9 


9. 

7,8 


6,6 

7,8 


5,5 

5,5 


6,6 

7,8 


10. 

7,2 


4,1 

7,2 


5,2 

5,2 


4,1 

7,2 


11. 

6,8 


3,4 

4,4 


6,8 

4,4 


3,4 

4,4 


12. 

5,4 


2,8 

3,8 


5,4 

2,8 


2,8 

3,8 


13. 

2,5 


2,8 

1,4 


2,8 

1,4 


2,5 

1,4 


14. 

2,4 


2,3 

1,5 


1,5 

2.3 


2.4 

1,5 


15. 

2,6 


1,6 

2,6 


2,1 

1,6 


2,1 

2,6 


16. 

1,4 


2,5 

2,4 


2,5 

2,4 


1,4 

2,4 


17. 

3,2 


2,3 

1,7 


1,4 

3,2 


3,2 

1,7 


18. 

5,2 


3,3 

2,2 


2,2 

5,2 


3,3 

2,2 


19. 

4,8 


1,2 

5,6 


4,2 

1,2 


5,6 

5,6 


20. 

3,4 


2,3 

4,5 


3,4 

2,3 


4.5 

4,5 


21. 

2,3 


3,7 

6,4 


2,3 

3,7 


6,4 

6,4 


22. 

3,2 


4,4 

2,3 


3,1 

2,3 


4,4 

2,3 


23. 

4,2 


5,5 

5,5 


4,2 

3,4 


3,4 

5,5 


24. 

5,3 


6,6 

4,5 


4,5 

5,3 


6,6 

4,5 


25. 

4,2 


1,2 

5,6 


4,2 

1,2 


5,6 

5,6 


26. 

3,4 


2,3 

4,5 


3,6 

2,3 


4,5 

4,5 


27. 

2,3 


3,7 

6,4 


2,3 

3,7 


6,4 

6,4 


28. 

1,7 


2,9 

3,4 


1,7 

2,8 


3,4 

3,4 


29. 

1,8 


2,7 

3,3 


1,8 

3,3 


2,7 

3,3 


30. 

1,9 


2,6 

3,2 


1,9 

2,3 


2,6 

3,2 


31. 

3,2 


4,4 

2,3 


3,1 

2,3 


4,4 

2,3 


32. 

4,2 


5,5 

5,5 


4,2 

3,4 


3,4 

5,5 


33. 

5,3 


6,6 

4,5 


4,5 

5,3 


6,6 

4,5 


 

 

 

 

2-Топшириқ.Берилган функцияларни функция ёрдамида ҳисоблаш дастурини тузинг. 



 

Функция 

Ўзгарувчи 

қийматилари

 



 

Функция 

Ўзгарувчи 

қийматилари

 

1. 


2



1

1

1



x

z

z

x

x

z

y





 

7

,



3

5

,



2



z

x

 

18. 



x

xu

x

u

y

2

3



2

2

sin





 

75

,



0

5

,



2



x

u

 

2. 



2

2

2



sin

y

x

x

z



 

07

,



1

05

,



0



y

x

 

19. 







b

a

b

a

b

a

b

a

x





2

3

2



3

 

3



,

2

5





b



a

 

3. 



x

z

x

z

x

y





1

1



1

2

2



2

2

 



3

,

1



03

,

0





z



x

 

20. 



 

3

2



5

sin


6

5

2









xa

xa

x

y

 

03



,

0

02



,

0





a

x

 

4. 



1

1

1



2

2





x

a

a

w

 

04



,

0

4



,

2





x

a

 

21. 



x

y

x

y

x

a





1

1



3

3

3



2

2

 



5

,

0



8

,

0





y



x

 

5. 



x

x

y

y

x

a

2

1



3

2

2



2

2





 

4



3



y

x

 

22. 



3

2

2



2

2

2



3

2

2



2

b

a

b

a

b

ab

a

y



 



6

,

2



3

,

1





b



a

 

6. 



2

2

5



3

2

cos



1

a

x

a

x

tg

x

y



 



5

,

2



32

,

0





a



x

 

23. 



3

2

3



3

3

2



3

3

3



,

2

b



a

b

a

b

a

b

a

z





 

34

,



0

4





b

a

 

7. 





b



a

b

a

b

a

z





sin

3

65



,

2

2



2

 

34



,

0

01



,

0





b

a

 

24. 







a

b

a

a

b

b

a

b

s



sin



sin

2

sin



sin

2

2



 

9

,



0

7

,



0



b

a

 

8. 



3

2

3



2

4

3



b

a

b

a

y



 

2



,

1

1



,

2





b

a

 

25. 



 




y

x

y

x

y

x

a

2

2



sin

sin


sin

sin




 

4

,



0

6

,



0



y

x

 

9. 







n

m

n

m

n

n

n

r





2

4



6

3

2



 

5

4





m



n

 

26. 



y

tg

x

y

x

b

2

2



3

4

cos





 

2

,



0

3

,



0



y

x

 

10. 



b

a

b

a

v

2

2



2

sin


cos

3

1



3



 



05

,

0



02

,

0





b



a

 

27. 



a

ab

b

a

a

b

b

a

y

2

4



cos

2

4



2





 

3

25



,

0





b

a

 

11. 



3

2

2



2

2

2



b

a

b

a

s



 

2



4



b

a

 

28. 



3

2

3



2

4

3



b

a

b

a

y



 

2



,

1

1



,

2





b

a

 

12. 



2

5

2



2

3

3



h

h

v

v

h

vh

a



 



2

3





h

v

 

29. 







n

m

n

m

n

n

n

r





2

6



3

10

 



5

4





m

n

 

13. 





b



a

ab

b

a

b

a

z

2

2



3



 



4

,

1



8

,

2





b



a

 

30. 



b

a

b

a

v

2

2



2

sin


cos

1

3





 

05



,

0

02



,

0





b

a

 

14. 



b

a

a

tg

b

tg

a

s

cos


1

2

2



2



 

5



,

1

8



,

0





b

a

 

31. 



3

4

2



2

2

2



b

a

b

a

s



 

2



4



b

a

 

15. 



2

cos


1

:

2



cos

1

3



y

x

b



 

6



,

0

3



,

0





y

x

 

32. 







y

x

y

x

y

x

a

2

2



sin

sin


sin

sin




 

4



,

0

6



,

0





y

x

 

16. 





b



a

ab

b

a

b

a

z

2

2



3

:



 



4

,

1



8

,

2





b



a

 

33. 



y

tg

x

y

x

b

2

2



3

4

cos





 

2

,



0

3

,



0



y

x

 

17. 



b

a

a

tg

b

tg

a

s

cos


1

2

:



2

2



 



5

,

1



8

,

0





b



a

 

34. 



a

ab

b

a

a

b

b

a

y

2

:



4

cos


2

4

2





 

3



25

,

0





b



a

 

 



 

 

 

 

 

3-Топшириқ. Берилган функцияларни функция ёрдамида ҳисоблаш дастурини тузинг. 

№ 

Функция 

№ 

Функция 

1. 



3

d

c

B

tgx

B

Y

X

x

y

x

y











 

18 



x

e

x

x

x

a

x





3



3

ln

5



2

 

2. 



3



4

2

3



2

sin


ln

2

1



3

X

X

x

t

tg

B



 



19 

3

2



ln

3

3



sin

cos


sin

x

b

axy

x

a

x

b

x

a





 



3. 



2

37

,



0

3

18



,

0

2







X

Lg

e

x

 

20 







x

b

x

e

xy

2

4



3

cos


3

log


sin

2

sin



 



4. 

ajk

X



3

cos



1

19

4



,

0

 



21 



X

t

X

X

e

ln

2



3

2

1



sin

ln





 

5. 

 





2

2

sin



log

a

t

tg

e

x

yi



 

22. 

3

ln



3

3

sin



lg



















X

x

X

tg

b

a

 

6. 



3



5

sin


3

1

x



j

i

i

y

x

x



 

23. 

5

2

2



2

cos


1

1

x



a

a

w



 

7. 

 

3

sin



cos

sin


ln

3

x



m

x

a

x

x

arctgx

e



 



24. 

3

3



4

5

2



2

62

,



35

1

2



,

43

75



,

3

5



,

3

x



x

x

y

y

x

a





 

8. 



X

K

X

K

X

k

k

sin


1

1

ln



1



 



25. 

2

,



578

5

3



65

,

3



2

cos


3

,

56



1

2

5



3

5







a



x

a

x

ctg

x

x

y

 

9. 

7

,

3



4

1

/



1

2

3



10

03

,



12

5

2



2





a

b

a

x

a

b

 

26. 



5



5

2

2



12

21

1



,

34

1



,

21

cos



)

(

3



65

,

2



b

a

b

a

b

a

z





 

10 

x

x

x

x

e

x

e

x

sin


1

1

3



2

1

2







 


 



27. 

3

2



3

2

4



3

sin


b

a

tg

b

a

y



 

11 

 

m

b

c

x

ab

2

sin



14



 

28. 





n

m

n

m

n

n

n

r





2

4



6

3

2



 

12 

x

x

t

t

2

2



log

1

arcsin





 

29. 

b

a

b

a

v

2

2



2

sin


cos

3

1



3



 



13 

2

2



2

x

cbs

b

c

b

c

t



 

30. 

3

32



,

65

2



2

ln

5



6

b

a

b

a

s



 

14 

5

,

0



5

3

4



4

1

1



3

x

x

x





 

31. 

2

5



2

2

3



3

h

h

v

v

h

vh

a



 



15 

2

2



2

1

3



3

X

X

X

X



 

32. 



a



b

a

ab

b

a

b

a

z

3

,



65

2

,



65

3

4



2

45





 



16 

x

x

a

a

x

ctg

arctg

2

2



3

1

/



1

1



 



33. 

b

a

a

tg

b

tg

a

s

cos


1

2

2



2



 

17 



X



x

a

ln

lg



 



34. 

2

cos



1

2

cos



1

3

y



x

b





 



 

Download 0.81 Mb.

Do'stlaringiz bilan baham:




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