Функцияны шақыру
КУРСТЫҚ ЖҰМЫС
Тақырыбы : С++ бағдарламалау тілінде функциялармен жұмыс жасау
Мазмұны
Кіріспе
Негізгі Бөлім.
1.СИ ++ тіліндегі функция ұғымы ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ...
1.1 Функцияны шақыру ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
1.2 Функцияны сипаттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1.3 Функцияны анықтау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
1.4 Функцияны қолданудың әдіс-тәсілдеріне есеп ... ... ... ... ... ... ... ... ... ... ..
ҚОРЫТЫНДЫ ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Қолданылған әдебиеттер тізімі ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ..
Кіріспе
Кез-келген табиғи тілдегі мәтіндер төрт негізгі жлементке бөлуге болады:
символдар,сөздер,сөз тіркестері, сөйлемдер. Мұндай элементтер бағдарламалау тілінде болады.,бірақ сөздер-лексемалар деп аталады,сөз тіркестері- өрнектер,ал сөйлемдер-операторлар деп аталады. Курстық жұмыстың тақырыбы С++ тіліндегі функциялармен жұмыс жасау деп аталады, сондықтан да бұл жұмыста көп қолданылатын фуекциялармен тереңірек танысу және оларды қолдану болып табылады. Бұл курстық жұмыстың мақсаты С++ тіліндегі қолданылатын функцияларды зерттеу,яғни оларды анықтау,шақыру,есептерде қолдану. Курстық жұмыстың басты міндеттері:
-Функцияларды қолданып бағдарлама құруды оңайлату,
-Функцияларды бағдарлама құрудағы қолданудың маңыздылыығын анықтау,
-Бағдарламалық жабдықтаудың күрделілігін азайту болып табылады. Өрнектер белгілі бір мәнді есептеудің ережесін береді. Операторлар белгілі бір әрекеттің аяқталған сипаттамасын береді. Күрделі әрекеттерді сиапттау үшін операторлар тізбегі қолданылады,операторларды құрама операторларға немесе блокқа біріктіруге болады. С++ тіліндегі блок дегеніміз өрнекті жақшаға алынған операторлар тізбегі.
Блок дегеніміз бір оператор ретінде қабылданатын операторлардың тізбегі. Операторлар орындалатын және орындалмайтын болып бөлінеді. Орындалатын операторлар деректерге жасалатын әрекеттерді береді. Орындалмайтын операторлар деректерді сипаттау үшін қажет. С++ тілінің бағдарламасы процессордың функцияларының сипаттамасын және дерективалардан тұрады. Функциялардың біреуі main. Бағдарламаның орындалуы осы функцияның бірінші операторынан тұрады. Көп жағдайларда функциялар белгілі бір мәнді есептеу үшін қолданылады. С++ ресми түрде 1983 жылы С++ деген атқа ие болды. С++ тілі одан бұрынғы бағдарламалау тілі С тілі негізінде құрылып, бағдарламаларды жасау процестерін оңайлатып береді.
Курстық жұмыстың мақсаты: Си++ бағдарламалау тіліндегі функциялар туралы мәліметтер алу. Бағдарламалау пәнінен алған білімдерімізді қорытындылау.
Курстық жұмыстың міндеттері: Функция ұғымы және оның түрлері туралы ьолық мағлұмат беру.
Курстық жұмыстың құрылымы: курстық жұмыс кіріспеден, негізгі бөлімнен және қорытынды мен пайдаланылған әдебиеттер санынан тұрады.
Негізгі бөлім
Функциялар
Функциялар - аяқталған әрекеттерді орындайтын операторлар тобы. Функция - басқа мәліметтер алу үшін анықталған мәліметтерге қоданылатын компьютердің іс-әрекеті.
Функцияларға олардың аттары бойынша жолығуға болады,оған мән беруге және одан нәтиже алуға болады. Функциялар бағдарлама құрылымын оңайлату үшін қажет. Берілген есептерді ішкі есептерге бөліп және әрбір ішкі есептерді функцияларға түрлендіреді. Әр түрлі аргументтерді функцияға беріп, оны бір рет жазып қойып, әр түрлі мақсаттарда қайтадан бірнеше рет қолдануға болады. Функцияны қолдану үшін, функцияның қалай жұмыс істейтінін білу міндетті емес, тек функцияны қалай шығару керектігін білу қажет яғни функцияны қолдану үшін олардың интерфейсн білу керек. Сауатты жазылған функция интерфейсі оның тақырыбымен анықталады,себебі оның шақыруына арналған барлық қажеттілер көрсетіледі: функция аты, қайтаратын нәтиже үлгісі, сонымен қатар аргументтер саны және оларға қандай меншіктелгенін көрсетіледі. Қарапайым функциялардың тақырып форматы: Тип атауы ([параметрлер тізімі]). Мысалы main функциясының тақырыбы көбінесе мынадай түрде болады: int main (). Бұл функцияға сырт жақтан ешқандай параметрлер берілмейтіндігін білдіреді, бірақ ол бір ғана int типті нәтиже қайтарады. Int (аяқталу коды). Функция нәтиже шығармауы да мүмкін,ондай жағдайда void типі көретілуі тиіс. Мысалы синус бұрышын есептейтін стандартты кітапханалық функция тақырыбы: double sin(double);
Мұнда функция sin деген атпен жазылғанын көрсетеді.
Функцияның ерекшелігі-оның орындалуы барысында бір ғана нәтиже шығады,ал кіру параметрлері бірнешеу болуы әбден мүмкін. Нәтижесі функцияның атауымен белгіленіп,негізгі бағдарламаға беріледі.
Шпенглердің (1880-1936) пікірі бойынша функция үғымы ең алғаш рет Европада енген және бұл туралы ешбір өзге мәдениетте бұған дейін кездеспеген. Алайда осы сала бойынша кең ауқымды зерттеулер жүргізген Мұхаммед Игбал,бұл пікірге қарсы тұрып, функция туралы ұғымды европалықтардан сан ғасырлар бұрын Бируни ашқандығын дәлелдеп шыққан болатын. Бируни- ұлы геолог,математик, астроном, географ, философ,тарихшы,ақын,этнограф.
Программалау жүйелерінің құрамында Жүйелік және өз функциялары бар. Жүйелік функциялар стандартты кітапханаларда сақталады және пайдаланушыға оларды іске асырудың егжей-тегжейін берудің керегі жоқ. Тек олардың сигналдарын білу ғана жеткілікті болып табылады. Бұрын қолданылатын жүйелік функциялардың мысалы printf() және scanf () функциялары болып табылады.
Жеке функциялар-нақты тапсыруды шешу үшін қолданушы жазған функциялар.
Бағдарламаларды функцияға бөлу келесі артықшылықтарды береді:
Функцияны бағдарлама кодын қайталамауға мүмкіндік беретін әр түрлі жерлерден шақыруға болады.
Бір функцияны түрлі бағдарламаларда пайдалануға болады.
Функциялар бағдарламаның модульдік деңгейін арттырады және оны жобалауды жеңілдетеді.
Функцияны пайдалану бағдарламаны оқу мен түсінуді жеңілдетеді және қателерді іздеу мен түзетуді жылдамдатады.
Шақырушы бағдарлама тұрғысынан функцияны бірнеше кіру және бір шығу бар
"қара жәшік" ретінде елестетуге болады. Шақырушы бағдарлама тұрғысынан алғанда, функцияның ішінде ақпаратты өңдеу қалай жүргізілетіні маңызды емес. Функцияны дұрыс пайдалану үшін оның сигнатурасын білу жеткілікті.
Функцияның жалпы түрі:
Си++ бағдарламалау тілінде функция атауы FUNCTION атауы (форм.параметрлер тізімі); function атауы (форм.
Параметрлер тізімі:)
Программалау тілдерінің даму бағытын 2 түрге бөлуге болады. Олар: процедуралық және процедуралық емес.
Процедуралық программалау есептеуіш техникаларының даму кезеңінен басталып таралған және әлі кең қолданыста. Және процедуралық тілдегі бағдарлама орындауға тиісті әрекеттерді сипаттайды, әрекеттерге сәйкес нәтиже нақты бір процедуралардың көмегімен алынады. Олай болса,процедуралық бағдарламалау алгоритмдік ойлау қабілетімен негізделеді, демек ойлау қабілетін дамыту құралы ретінде қолданыла алады. Процедуралық тілдердің ішінде структуралық тілдерді айрықша атауға болады.
Процедуралық емес программалауға функциональдық және логикалық тілдер жататыны белгілі. Функционалдық тілдердегі бағдарлама қандай да бір функцияның есептелуін сипаттайды.
Функцияны шақыру
Қоңырау қызметінің жалпы түрі
Айнымалы = Міфункциялар(Тізім);
Нақты дәлел-функцияны шақыру кезінде формальды дәлелге берілетін шама. Осылайша, формальды дәлел-бұл шақырылған функциядағы айнымалы, ал нақты дәлел-бұл айнымалы шақырушы функциямен берілген нақты мән. Нақты дәлел тұрақты, айнымалы немесе өрнек болуы мүмкін. Егер нақты дәлел өрнек түрінде берілген болса, онда оның мәні алдымен есептеледі, содан кейін шақырылған функцияға беріледі. Егер функцияға бірнеше мәндерді беру керек болса, олар үтір арқылы жазылады. Бұл ретте формальды параметрлер функцияның сигналында олардың жүру тәртібінде нақты параметрлердің мәндерімен алмастырылады.
Шақыру функциясына қайтару
Шақырылған функцияны орындау аяқталғаннан кейін оның шақыру нүктесіне мәнді қайтару жүзеге асырылады. Бұл мән айнымалы беріледі, оның түрі функцияның қайтарылатын мәнінің түріне сәйкес келуі тиіс. Функция шақырушы программаға тек бір мәнді жібере алады. Қайтарылатын мәнді шақыру функциясына жіберу үшін RETURN операторы форманың бірінде пайдаланылады:
return(қайтару тағайындау);
return қайтару белгісі;
Оператордың әрекеті келесідей: жақшадағы өрнектің мәні есептеледі және шақырушы функцияға жіберіледі. Қайтарылатын мән шақырушы бағдарламада кейбір өрнектің бөлігі ретінде пайдаланылуы мүмкін.
Return операторы сондай-ақ функцияны орындауды аяқтайды және басқаруды келесі операторға шақырушы функцияда береді. Return операторы функция денесінің соңында болуы міндетті емес.
Функциялар мәндерді қайтармай, кейбір есептеулерді орындай алады. Бұл жағдайда қайтарылатын void мәнінің бос түрі көрсетіледі, ал return операторы жоқ немесе ешқандай мәнді қайтармауы мүмкін: return;
Мысалы: Екі заттық санның функциясын қосу
float function(float x,float z)
{ float y; y=x+z; return(y);
}
Көрсетілген мысалда қайтарылатын мән float түрі бар. Қайтарылатын мән ретінде шақырушы функцияға y айнымалы мәні беріледі. Формальды дәлелдер X және z айнымалылары болып табылады.
Егер функция мәнді қайтармаса, ол үшін қайтарылатын мән түрі void ретінде көрсетіледі. Бұл жағдайда return операциясы түсірілуі мүмкін. Егер функция аргументтерді қабылдамаса, дөңгелек жақшаларда void көрсетіледі.
Функцияларды сипаттау
Функцияның сипаттамасы оның атын, қайтарылатын мәннің түрін (бар болса) және саны мен түрлерін қамтиды функцияны шақырған кезде қойылатын параметрлер. Мысалы: extern double sqrt(double); extern elem* next_elem();
extern char * strcpy(char * to, const char* from); extern void exit(int);
Параметрлердің берілу семантикасы инициализация семантикасына ұқсас: түрлері тексеріледі нақты параметрлер және қажет болса, типтердің айқын өзгерулері болады. Мәселен, егер ескеру келтірілген сипаттамалар, онда келесі анықтамада: double sr2 = sqrt(2);
Қалқымалы нүктесі бар sqrt() функциясының дұрыс қоңырауы бар. Бақылау және нақты параметр түрін түрлендіру с++ үлкен мәні бар.
Функция сипаттамасында параметрлер аттарын көрсетуге болады. Бұл бағдарламаны оқуды жеңілдетеді, бірақ бұл аттар тек елемейді.
Функцияларды анықтау
Бағдарламада шақыратын әрбір функция онда бір жерде анықталуы керек және тек бір рет. Функцияны анықтау-функцияның денесі бар сипаттамасы. Мысалы:
extern void swap (int*, int*); сипаттамасы void swap(int * p, int * q) анықтамасы
{ int t = * p; *p = * q;
*q = * t; }
Функцияны анықтау кейбір параметрлерді пайдаланбайтын жағдайлар сирек емес:
void search(table* t, const char* key, const char*) {
үшінші параметр қолданылмайды.
...
}
Осы мысалдан көрініп тұрғандай, егер оның аты көрсетілмесе, параметр қолданылмайды. Мұндай функциялар
бағдарламаны жеңілдетуде пайда болады немесе оны одан әрі кеңейтуге үміттенсе. Екі пайдаланылмайтын параметр үшін функцияны анықтау үшін орын резервтеуге кепілдік береді, бұл қоңырау бар басқа мүмкіндіктерді өзгертудің қажеті жоқ. Функцияны орнату (inline) ретінде анықтауға болады деп айтылды. Мысалы: inline fac (int i) { return i2 ? 1 : n * fac(n-1); }
Inline ерекшелігі fac функциясын қоңырау шалуға болады
функцияны шақырудың қарапайым механизмінің көмегімен емес, оның денесін қою арқылы.
fac(6) шақыру генерациясының орнына оңтайландыратын транслятор 720 константасын пайдалана алады.
Функциялардың-орын ауыстырулардың, сондай-ақ функциялардың-орын ауыстырулардың өзара курсивтік шақыруларының болуына байланысты, рекурсивтілігі кіріс мәліметтеріне байланысты деп айтуға болмайды. шын мәнінде, оның денесін қою арқылы жүзеге асырылады. Жүргізілетін оңтайландыру дәрежесі сол себепті, бір трансляторлар команда құрады 6*5*4*3*2*1, басқа-6 * fac(5), ал кейбірі расталмаған fac(6) шақыруымен шектеледі. Қоңырауды орнату үшін тым дамыған жүйелер үшін де мүмкін бағдарламалау, тек анықтау ғана емес, сонымен қатар функцияны сипаттау қажет ағымдағы көру аймағында болған. Қалған inline ерекшелігі семантикаға әсер етпейді шақыру.
Параметрлерді беру
Функцияны шақырғанда, оның ресми параметрлері үшін жады және әрбір формальды
параметр тиісті нақты параметрдің мәнімен іске асырылады. Семантика параметрлерді беру инициализация семантикасына ұқсас. Атап айтқанда, түрлері салыстырылады
және барлық стандартты және
теңшелетін түр түрлендіру. Массивтерді берудің арнайы ережелері бар
Параметрді типін бақылаудан тыс жіберу және орнату мүмкіндігі бар
Параметрдің стандартты мәні .
Функцияны қарастырайық:
void f(int val, int& ref)
{
Val++;
REF++;
}
F() Val++ түрінде шақырғанда бірінші нақты параметрдің жергілікті көшірмесі артады,
ал ref++ - екінші нақты параметр өзі артады. Сондықтан функцияда void g() ... жалғасы
Тақырыбы : С++ бағдарламалау тілінде функциялармен жұмыс жасау
Мазмұны
Кіріспе
Негізгі Бөлім.
1.СИ ++ тіліндегі функция ұғымы ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ...
1.1 Функцияны шақыру ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
1.2 Функцияны сипаттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1.3 Функцияны анықтау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
1.4 Функцияны қолданудың әдіс-тәсілдеріне есеп ... ... ... ... ... ... ... ... ... ... ..
ҚОРЫТЫНДЫ ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Қолданылған әдебиеттер тізімі ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ... ..
Кіріспе
Кез-келген табиғи тілдегі мәтіндер төрт негізгі жлементке бөлуге болады:
символдар,сөздер,сөз тіркестері, сөйлемдер. Мұндай элементтер бағдарламалау тілінде болады.,бірақ сөздер-лексемалар деп аталады,сөз тіркестері- өрнектер,ал сөйлемдер-операторлар деп аталады. Курстық жұмыстың тақырыбы С++ тіліндегі функциялармен жұмыс жасау деп аталады, сондықтан да бұл жұмыста көп қолданылатын фуекциялармен тереңірек танысу және оларды қолдану болып табылады. Бұл курстық жұмыстың мақсаты С++ тіліндегі қолданылатын функцияларды зерттеу,яғни оларды анықтау,шақыру,есептерде қолдану. Курстық жұмыстың басты міндеттері:
-Функцияларды қолданып бағдарлама құруды оңайлату,
-Функцияларды бағдарлама құрудағы қолданудың маңыздылыығын анықтау,
-Бағдарламалық жабдықтаудың күрделілігін азайту болып табылады. Өрнектер белгілі бір мәнді есептеудің ережесін береді. Операторлар белгілі бір әрекеттің аяқталған сипаттамасын береді. Күрделі әрекеттерді сиапттау үшін операторлар тізбегі қолданылады,операторларды құрама операторларға немесе блокқа біріктіруге болады. С++ тіліндегі блок дегеніміз өрнекті жақшаға алынған операторлар тізбегі.
Блок дегеніміз бір оператор ретінде қабылданатын операторлардың тізбегі. Операторлар орындалатын және орындалмайтын болып бөлінеді. Орындалатын операторлар деректерге жасалатын әрекеттерді береді. Орындалмайтын операторлар деректерді сипаттау үшін қажет. С++ тілінің бағдарламасы процессордың функцияларының сипаттамасын және дерективалардан тұрады. Функциялардың біреуі main. Бағдарламаның орындалуы осы функцияның бірінші операторынан тұрады. Көп жағдайларда функциялар белгілі бір мәнді есептеу үшін қолданылады. С++ ресми түрде 1983 жылы С++ деген атқа ие болды. С++ тілі одан бұрынғы бағдарламалау тілі С тілі негізінде құрылып, бағдарламаларды жасау процестерін оңайлатып береді.
Курстық жұмыстың мақсаты: Си++ бағдарламалау тіліндегі функциялар туралы мәліметтер алу. Бағдарламалау пәнінен алған білімдерімізді қорытындылау.
Курстық жұмыстың міндеттері: Функция ұғымы және оның түрлері туралы ьолық мағлұмат беру.
Курстық жұмыстың құрылымы: курстық жұмыс кіріспеден, негізгі бөлімнен және қорытынды мен пайдаланылған әдебиеттер санынан тұрады.
Негізгі бөлім
Функциялар
Функциялар - аяқталған әрекеттерді орындайтын операторлар тобы. Функция - басқа мәліметтер алу үшін анықталған мәліметтерге қоданылатын компьютердің іс-әрекеті.
Функцияларға олардың аттары бойынша жолығуға болады,оған мән беруге және одан нәтиже алуға болады. Функциялар бағдарлама құрылымын оңайлату үшін қажет. Берілген есептерді ішкі есептерге бөліп және әрбір ішкі есептерді функцияларға түрлендіреді. Әр түрлі аргументтерді функцияға беріп, оны бір рет жазып қойып, әр түрлі мақсаттарда қайтадан бірнеше рет қолдануға болады. Функцияны қолдану үшін, функцияның қалай жұмыс істейтінін білу міндетті емес, тек функцияны қалай шығару керектігін білу қажет яғни функцияны қолдану үшін олардың интерфейсн білу керек. Сауатты жазылған функция интерфейсі оның тақырыбымен анықталады,себебі оның шақыруына арналған барлық қажеттілер көрсетіледі: функция аты, қайтаратын нәтиже үлгісі, сонымен қатар аргументтер саны және оларға қандай меншіктелгенін көрсетіледі. Қарапайым функциялардың тақырып форматы: Тип атауы ([параметрлер тізімі]). Мысалы main функциясының тақырыбы көбінесе мынадай түрде болады: int main (). Бұл функцияға сырт жақтан ешқандай параметрлер берілмейтіндігін білдіреді, бірақ ол бір ғана int типті нәтиже қайтарады. Int (аяқталу коды). Функция нәтиже шығармауы да мүмкін,ондай жағдайда void типі көретілуі тиіс. Мысалы синус бұрышын есептейтін стандартты кітапханалық функция тақырыбы: double sin(double);
Мұнда функция sin деген атпен жазылғанын көрсетеді.
Функцияның ерекшелігі-оның орындалуы барысында бір ғана нәтиже шығады,ал кіру параметрлері бірнешеу болуы әбден мүмкін. Нәтижесі функцияның атауымен белгіленіп,негізгі бағдарламаға беріледі.
Шпенглердің (1880-1936) пікірі бойынша функция үғымы ең алғаш рет Европада енген және бұл туралы ешбір өзге мәдениетте бұған дейін кездеспеген. Алайда осы сала бойынша кең ауқымды зерттеулер жүргізген Мұхаммед Игбал,бұл пікірге қарсы тұрып, функция туралы ұғымды европалықтардан сан ғасырлар бұрын Бируни ашқандығын дәлелдеп шыққан болатын. Бируни- ұлы геолог,математик, астроном, географ, философ,тарихшы,ақын,этнограф.
Программалау жүйелерінің құрамында Жүйелік және өз функциялары бар. Жүйелік функциялар стандартты кітапханаларда сақталады және пайдаланушыға оларды іске асырудың егжей-тегжейін берудің керегі жоқ. Тек олардың сигналдарын білу ғана жеткілікті болып табылады. Бұрын қолданылатын жүйелік функциялардың мысалы printf() және scanf () функциялары болып табылады.
Жеке функциялар-нақты тапсыруды шешу үшін қолданушы жазған функциялар.
Бағдарламаларды функцияға бөлу келесі артықшылықтарды береді:
Функцияны бағдарлама кодын қайталамауға мүмкіндік беретін әр түрлі жерлерден шақыруға болады.
Бір функцияны түрлі бағдарламаларда пайдалануға болады.
Функциялар бағдарламаның модульдік деңгейін арттырады және оны жобалауды жеңілдетеді.
Функцияны пайдалану бағдарламаны оқу мен түсінуді жеңілдетеді және қателерді іздеу мен түзетуді жылдамдатады.
Шақырушы бағдарлама тұрғысынан функцияны бірнеше кіру және бір шығу бар
"қара жәшік" ретінде елестетуге болады. Шақырушы бағдарлама тұрғысынан алғанда, функцияның ішінде ақпаратты өңдеу қалай жүргізілетіні маңызды емес. Функцияны дұрыс пайдалану үшін оның сигнатурасын білу жеткілікті.
Функцияның жалпы түрі:
Си++ бағдарламалау тілінде функция атауы FUNCTION атауы (форм.параметрлер тізімі); function атауы (форм.
Параметрлер тізімі:)
Программалау тілдерінің даму бағытын 2 түрге бөлуге болады. Олар: процедуралық және процедуралық емес.
Процедуралық программалау есептеуіш техникаларының даму кезеңінен басталып таралған және әлі кең қолданыста. Және процедуралық тілдегі бағдарлама орындауға тиісті әрекеттерді сипаттайды, әрекеттерге сәйкес нәтиже нақты бір процедуралардың көмегімен алынады. Олай болса,процедуралық бағдарламалау алгоритмдік ойлау қабілетімен негізделеді, демек ойлау қабілетін дамыту құралы ретінде қолданыла алады. Процедуралық тілдердің ішінде структуралық тілдерді айрықша атауға болады.
Процедуралық емес программалауға функциональдық және логикалық тілдер жататыны белгілі. Функционалдық тілдердегі бағдарлама қандай да бір функцияның есептелуін сипаттайды.
Функцияны шақыру
Қоңырау қызметінің жалпы түрі
Айнымалы = Міфункциялар(Тізім);
Нақты дәлел-функцияны шақыру кезінде формальды дәлелге берілетін шама. Осылайша, формальды дәлел-бұл шақырылған функциядағы айнымалы, ал нақты дәлел-бұл айнымалы шақырушы функциямен берілген нақты мән. Нақты дәлел тұрақты, айнымалы немесе өрнек болуы мүмкін. Егер нақты дәлел өрнек түрінде берілген болса, онда оның мәні алдымен есептеледі, содан кейін шақырылған функцияға беріледі. Егер функцияға бірнеше мәндерді беру керек болса, олар үтір арқылы жазылады. Бұл ретте формальды параметрлер функцияның сигналында олардың жүру тәртібінде нақты параметрлердің мәндерімен алмастырылады.
Шақыру функциясына қайтару
Шақырылған функцияны орындау аяқталғаннан кейін оның шақыру нүктесіне мәнді қайтару жүзеге асырылады. Бұл мән айнымалы беріледі, оның түрі функцияның қайтарылатын мәнінің түріне сәйкес келуі тиіс. Функция шақырушы программаға тек бір мәнді жібере алады. Қайтарылатын мәнді шақыру функциясына жіберу үшін RETURN операторы форманың бірінде пайдаланылады:
return(қайтару тағайындау);
return қайтару белгісі;
Оператордың әрекеті келесідей: жақшадағы өрнектің мәні есептеледі және шақырушы функцияға жіберіледі. Қайтарылатын мән шақырушы бағдарламада кейбір өрнектің бөлігі ретінде пайдаланылуы мүмкін.
Return операторы сондай-ақ функцияны орындауды аяқтайды және басқаруды келесі операторға шақырушы функцияда береді. Return операторы функция денесінің соңында болуы міндетті емес.
Функциялар мәндерді қайтармай, кейбір есептеулерді орындай алады. Бұл жағдайда қайтарылатын void мәнінің бос түрі көрсетіледі, ал return операторы жоқ немесе ешқандай мәнді қайтармауы мүмкін: return;
Мысалы: Екі заттық санның функциясын қосу
float function(float x,float z)
{ float y; y=x+z; return(y);
}
Көрсетілген мысалда қайтарылатын мән float түрі бар. Қайтарылатын мән ретінде шақырушы функцияға y айнымалы мәні беріледі. Формальды дәлелдер X және z айнымалылары болып табылады.
Егер функция мәнді қайтармаса, ол үшін қайтарылатын мән түрі void ретінде көрсетіледі. Бұл жағдайда return операциясы түсірілуі мүмкін. Егер функция аргументтерді қабылдамаса, дөңгелек жақшаларда void көрсетіледі.
Функцияларды сипаттау
Функцияның сипаттамасы оның атын, қайтарылатын мәннің түрін (бар болса) және саны мен түрлерін қамтиды функцияны шақырған кезде қойылатын параметрлер. Мысалы: extern double sqrt(double); extern elem* next_elem();
extern char * strcpy(char * to, const char* from); extern void exit(int);
Параметрлердің берілу семантикасы инициализация семантикасына ұқсас: түрлері тексеріледі нақты параметрлер және қажет болса, типтердің айқын өзгерулері болады. Мәселен, егер ескеру келтірілген сипаттамалар, онда келесі анықтамада: double sr2 = sqrt(2);
Қалқымалы нүктесі бар sqrt() функциясының дұрыс қоңырауы бар. Бақылау және нақты параметр түрін түрлендіру с++ үлкен мәні бар.
Функция сипаттамасында параметрлер аттарын көрсетуге болады. Бұл бағдарламаны оқуды жеңілдетеді, бірақ бұл аттар тек елемейді.
Функцияларды анықтау
Бағдарламада шақыратын әрбір функция онда бір жерде анықталуы керек және тек бір рет. Функцияны анықтау-функцияның денесі бар сипаттамасы. Мысалы:
extern void swap (int*, int*); сипаттамасы void swap(int * p, int * q) анықтамасы
{ int t = * p; *p = * q;
*q = * t; }
Функцияны анықтау кейбір параметрлерді пайдаланбайтын жағдайлар сирек емес:
void search(table* t, const char* key, const char*) {
үшінші параметр қолданылмайды.
...
}
Осы мысалдан көрініп тұрғандай, егер оның аты көрсетілмесе, параметр қолданылмайды. Мұндай функциялар
бағдарламаны жеңілдетуде пайда болады немесе оны одан әрі кеңейтуге үміттенсе. Екі пайдаланылмайтын параметр үшін функцияны анықтау үшін орын резервтеуге кепілдік береді, бұл қоңырау бар басқа мүмкіндіктерді өзгертудің қажеті жоқ. Функцияны орнату (inline) ретінде анықтауға болады деп айтылды. Мысалы: inline fac (int i) { return i2 ? 1 : n * fac(n-1); }
Inline ерекшелігі fac функциясын қоңырау шалуға болады
функцияны шақырудың қарапайым механизмінің көмегімен емес, оның денесін қою арқылы.
fac(6) шақыру генерациясының орнына оңтайландыратын транслятор 720 константасын пайдалана алады.
Функциялардың-орын ауыстырулардың, сондай-ақ функциялардың-орын ауыстырулардың өзара курсивтік шақыруларының болуына байланысты, рекурсивтілігі кіріс мәліметтеріне байланысты деп айтуға болмайды. шын мәнінде, оның денесін қою арқылы жүзеге асырылады. Жүргізілетін оңтайландыру дәрежесі сол себепті, бір трансляторлар команда құрады 6*5*4*3*2*1, басқа-6 * fac(5), ал кейбірі расталмаған fac(6) шақыруымен шектеледі. Қоңырауды орнату үшін тым дамыған жүйелер үшін де мүмкін бағдарламалау, тек анықтау ғана емес, сонымен қатар функцияны сипаттау қажет ағымдағы көру аймағында болған. Қалған inline ерекшелігі семантикаға әсер етпейді шақыру.
Параметрлерді беру
Функцияны шақырғанда, оның ресми параметрлері үшін жады және әрбір формальды
параметр тиісті нақты параметрдің мәнімен іске асырылады. Семантика параметрлерді беру инициализация семантикасына ұқсас. Атап айтқанда, түрлері салыстырылады
және барлық стандартты және
теңшелетін түр түрлендіру. Массивтерді берудің арнайы ережелері бар
Параметрді типін бақылаудан тыс жіберу және орнату мүмкіндігі бар
Параметрдің стандартты мәні .
Функцияны қарастырайық:
void f(int val, int& ref)
{
Val++;
REF++;
}
F() Val++ түрінде шақырғанда бірінші нақты параметрдің жергілікті көшірмесі артады,
ал ref++ - екінші нақты параметр өзі артады. Сондықтан функцияда void g() ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz