Лекция: 30 саѓат Лаборатория: 15 саѓат С¤Ж: 45 саѓат обс¤Ж: 45 саѓат Барлыќ саѓат саны: 135 саѓат



бет12/24
Дата14.06.2016
өлшемі1.16 Mb.
#135127
түріЛекция
1   ...   8   9   10   11   12   13   14   15   ...   24

Лекция 15.

Тақырыбы: Функциялар


(1 сағат)


  1. Функциялар

  2. Жай функциялар


Пайдаланылатын әдебиеттер:

а) негізгі

1. К.Паппас, У.Мюррей “Программирование на С и С++”, Киев, 2000

2. А.Кетков, Ю.Кетков “Практика программирования Бейсик,

Си, Паскаль”, М.: 2001



б) қосымша

3. Шилдт Г. “Теория и практика С++”, Санкт-Петербург, 1996

4. Березин Б.И., Березин С.Б. “Начальный курс С и С++”, М.:1999
1.Функциялар

Функциялар есептеу ж‰йелерінде пакеттеуде ќолайлы жол болѓаны ‰шін кµп ќолданылуы талап етеді. Функциялар аныќтамалары екі бµлімнен т±рады: интерфейс жєне денесі. Функция интерфейсі (функция прототипі) функцияныњ ќалай орындалуына арналѓан. Ол ‰ш бµлімнен т±рады:

Функция аты: б±л жай бірлік идентификатор.

Функция параметрі: б±л функциядан жєне функцияѓа мєндердіњ µтуі ‰шін ќолданылатын идентификатор типі.

Функция ќайту (ретурн) типі: б±л функция ретурн мєнін аныќтайтын тип.

Функция денесі функцияны ќосатын есептеу басќыштарынан т±рады.

Функцияны ќолдану оны “шаќыруды” білдіреді. Функцияны шаќыру оныњ атын фигуралы жаќша ішінде бос “( )” немесе ‰тірлер жєрдемінде ажратылѓан аргументтер жазылатын амалдан пайдаланып жазуылуын ќ±райды. Аргументтер саны функцияныњ параметрлерімен сєйкес келеді. єрбір аргумент типі функция интерфейсі ішіндегі лайыќты параметр типіне сєйкес келуі тиіс.

Функцияны шаќыруы орындалѓанда, бірінші аргумент орындалады, соњ оныњ жауаптаѓы мєні лайыќты параметрмен кµрсетіледі. Соњ, функция денесі орындалады. Ењ соњында, егер болса, функция ретурн мєні шаќырушыѓа µтеді.


2.Жай функциялар.

Тµмендегі мысал жай функциядан пайдаланып, берілген бірінші б‰тін санды екінші оњ б‰тін санды дєрежесіне асыратын программа.




1

2

3


4

5

6



7

int Power (int base, unsigned int exponent)

{

int result = 1;


for (int i = 0; i < exponent; ++i)

result *= base;

return result;

}


Т‰сінік:

1. Б±л ќатар функция интерфейсін аныќтайды. Б±л функцияныњ ретурн типімен басталады (б±л жаѓдайда int). Соњ функция аты, параметрлерінен алдын жазылады. Power екі параметрден (base жєне exponent) т±рады, олардыњ типтері сейкесінше int жєне unsigned int. Кµргеніњіздей, параметрлердіњ жазылу синтаксисі айнымалылардыњ жазылу синтаксисіне ±ќсас. Біраќ, бір типке ие параметрлерді ‰тір жєрдемінде жазу м‰мкін емес.

Мысалы: int Power (int base, exponent) // ќате

2. Б±л функция денесініњ басталуын білдіреді.



  1. Б±л локал айнымалы аныќтама ќатары.

4-5. Б±л ќатар base –ді дєрежеге алады жєне result –ќа саќтайды.

6. Б±л ќатар функцияныњ ќайту мєні сияќты, result-ќа ќайтады.

7. Б±л ќатар функция денесініњ аяќталѓанын білдіреді.

Кейінгі программада функцияны ќалайша шаќыру жолы берілген. М±ныњ ќолайлылыѓы берілген екі аргумент 2 жєне 8 кезекінше base жєне exponent параметріне сєйкес келеді. Соњ функция денесі орындалады.



1

2

3



4

5


#include
main (void)

{

cout << "2 ^ 8 = " << Power(2,8) << '\n';



}

Б±л программа нєтижесі тµмендегі нєтиже шыѓаарды:

2 ^ 8 = 256

Жалпы, функция ќолданылудан алдын фукнцияны сипаттау керек. Функцияныњ сиатталуы функцияныњ прототипінен т±рады: олар функция аты, параметр типі, ќайту (ретурн) типі. Тµмендегі программаныњ ‰шінші ќатарында Power функциясыныњ сипатталуын білдіреді. Функция µзініњ параметр атысыз жазылѓанымен

int Power (int, unsigned int);

оны пайдалануѓа кењес берілмейді.




1

2

3



4

5

6


7

8

9


10

11

12



13

#include
int Power (int base, unsigned int exponent); // function declaration
main (void)

{

cout << "2 ^ 8 = " << Power(2,8) << '\n';



}
int Power (int base, unsigned int exponent)

{

int result = 1;


for (int i = 0; i < exponent; ++i)

result *= base;

return result;

}


Функцияныњ аныќталуы прототиптерінен ќ±ралѓандыќтан, ол сипаттама сияќты ќызмет етеді. Сондыќтан, функция ќолданылудан алдын функция аныќтамасы істетілсе, функцияныњ сипаттамасын ќосу ќажет емес. Функция прототипін ќолданылуы барлыќ жаѓдайларѓа негізделген. Б±л программистерге функциялардыњ толыќ аныќтамаларын оќымастан оњай функцияларѓа енуде ќолайлылыќ тудырады.

Лекция 16.

Тақырыбы: Функция прототипі. Функциялардыњ сипатталу синтаксисі


(1 сағат)


  1. Функция прототипі

  2. Функциялардыњ берілу синтаксисі


Пайдаланылатын әдебиеттер:

а) негізгі

1. К.Паппас, У.Мюррей “Программирование на С и С++”, Киев, 2000

2. А.Кетков, Ю.Кетков “Практика программирования Бейсик,

Си, Паскаль”, М.: 2001



б) қосымша

3. Шилдт Г. “Теория и практика С++”, Санкт-Петербург, 1996

4. Березин Б.И., Березин С.Б. “Начальный курс С и С++”, М.:1999
1. Функция прототипі

ANSI С стандартын ќабылдаѓан соњ, С тілінде функциялардыњ программалау принциптері µзгертірілді. Функция прототиптерініњ ќолданылуы негізінде ќалдырылып, С++ тілінде оныњ м‰мкіншіліктері кењейтірілді. С++ программалау тілі компиляторы С тілінде жазылѓан функцияларды да біргелікте орындай алады.


ANSI С стандартына кµре кез-келген функция прототиптерге ие болуы, еш болмаѓанда сипатталѓан ќайту мєні, типі жєне аргументтер типі, аты кµрсетілген функция болуы ќажет. Функция прототипі компиляторды функцияѓа ќажетті аргументтер жєне ќайту типі мєндері аќпараттарымен ќамтамасыз етеді. Б±л компиляторды типтерді тексеруге алып келеді.
2. Функциялардыњ берілу синтаксисі

Жања тєсіл бойынша функцияныњ сипатталу синтаксисі


Нєтиже_типі функция_аты(аргумент_типі міндеттіемесаргумент_аты[,…]);
Функция void, int, float типтердегі мєндерді ќайтаруы м‰мкін. Функция атын қалауымызша қойыуымызға болады, біраќ м‰мкіншілігінше атќаратын ќызметіне сєйкес қойылғаны дұрыс. Егер функция орындалуында аргумент кµрінісінде ќажетті мәндер берілмесе, фигуралы жаќша ішінде аргументтер типін толыќтыруѓа болады. Егер аргументтер бірнеше болса, олар ‰тірлер жєрдемінде ажратылады. Прототипте тек аргументтер аты берілместен, типі берілуі ќате болмайды. Б±ндай кµріністе прототиптердіњ жазылуы кітапханалыќ функцияларда болады.

Функцияныњ сипатталуы программалау ережесіне сєйкес, main () функциясы денесінен алдын келеді.

Нєтиже_типі функция_аты( аргумент_типі аргумент_аты[, …])

{

.



.

функция денесі

.

.

}



Ескерте кететін жайт, функция таќырыбы ќатары оныњ прототипінен жеке жєне н‰ктелі ‰тір жєрдемінде аяќталмайды.
Тµмендегі мысал функциялардыњ сипатталуына кµрсетілген.

Prototyp.cpp


#include

int iadder (int ix, int iy); // функция прототипі


int main()

{

int ia = 23;



int ib = 13;

int ic;
ic = iadder(ia, ib);

cout << “Qosindi ten” << ic<< “\n”;
return (0);

}

int iadder(int ix, int iy) // функцияныњ сипатталуы



{

int iz;


iz=ix+iy;

return(iz); // мєнніњ ќайтуы

}
м±нда функция аты iadder() аталады. Ол екі б‰тінсанды аргументтер ќабылдайды жєне б‰тін санды мєнге ќайтады.



Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   ...   24




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет