Международный гуманитарно-технический



бет26/37
Дата22.06.2023
өлшемі2,73 Mb.
#179096
түріЛекция
1   ...   22   23   24   25   26   27   28   29   ...   37
Байланысты:
konspekt lektsiya-2021-2022

1. Си-дегі функциялар.
2. Функцияны құру жəне қолдану.
Си тілінде барлық бағдарламалар функция ретінде қарастырылады. Əдетте, бұл тілдегі бағдарламалар көптеген кішкене функциялардан тұрады. қолданылатын əр функция үшін функцияның баяндалуы мен анықтамасы келтіріледі. (Функцияны баяндау оның типі жəне параметрлердің жазылу реті туралы ақпаратты береді. Функцияны анықтау кезінде орындалатын нақты операторлар көрсетіледі) Функциялар типі нəтиже ретінде қайтаратын мəндердің типімен бірдей болуы қажет. Егер типі берілмесе, онда функция типі үндеместен іnt болады. Егер функция басқа тип болса, онда ол шақырушы бағдарламада жəне функцияның өзінің анықтамасында көрсетілуі керек.
Функцияның баяндалуын қарастырайық: функцияны баяндаудың екі түрлі стилін (классикалық жəне қазіргі стиль) қолдануға болады. Бірінші жағдайда, функцияны баяндау форматы келесідей: Тип функция_аты ();
Бұл спецификация функцияның атын жəне қайтаратын мəннің типін баяндайды. Қазіргі стиль ANSІ ұсынған Си тілінің кеңейтілген түрлерінің конструкцияларында қолданылады. Бұл Си тілінің түрінде функцияны баяндау кезінде “функция , прототипі” деп аталатын тілдің арнайы құралдары қолданылады. Оның прототипін қолданып функцияны баяндау кезінде параметрлері туралы қосымша ақпарат болады:
Тип функция_аты(парам_ақпар1, парам_ақпар2, ...);
Бұндағы парам_ақпар1 параметрі - формальды параметрлердің аты жəне типі туралы мəлімет.
Функция анықтамасы. Функцияны баяндау сияқты оны анықтау кезінде де екі стильді қолдануға болады - классикалық жəне қазіргі. Функцияны анықтаудың классикалық форматы келесідей:
Тип функция_аты (параметрлер аты) параметрлер анықтамасы;
{
локалдық баяндау;
операторлар;
}
қазіргі стиль баяндалу форматы функция атынан кейін тұратын жақша ішіндегі функция параметрлерінің анықталуын қарастырады.
Тип функция_аты(парамақпар, парам_ақпар, ...);
Бұндағы, параметр анықтамасы парам_ақпар - берілетін параметр (тип жəне идентификатор) туралы ақпаратты сақтайды.
Функция ішінде (maіn() басты функциясынан басқа) тұрған баяндаулар тізбегі (константалар, мəліметтер типі, айнымалылар) тек осы функция ішінде анықталады. Сондықтан
Си тілі ішкі циклдерді қамтымайды, яғни бір функция басқа функцияның ішінде баянала алмайды.
Функциялар бағдарлама ішінде əр түрлі ретте тұра береді жəне бағдарламаның барлық жеріне глобальды деп есептеледі, сосын қолданылмай тұрып баяндалған енгізілген функцияларды қосқанда да.
Функцияны шақыру функция аты жəне жақша ішінде аргументтері бойынша жүзеге асырылады.
Функцияның орындалу нəтижесі return операторы көмегімен қайтарылады. Жалпы түрі:
Return (өрнек);
Оператор функция жұмысын аяқтайды жəне басқаруды шақырған бағдарламадағы келесі операторға береді. Бұл return операторы функция денесінің соңғы операторы болмаса да, орындалады.
Return операторын мына түрде қолдануға болады:
return; return 0;
Оны қолдану ол тұрған функция жұмысын аяқтап, басқару шақырушы функцияға қайтады (беріледі). Оператордың жақшасының ішінде өрнек жоқ болғандықтан, функцияға ешқандай мəн берілмейді.
Maіn()
{
float y, x, mult(); /*шақырушы бағдарламадағы баяндау*/
іnt n;
y=mult(x, n); }
float mult(v, k) /*функция анықтамасында баяндау*/
float v; іnt k;
{
float res;
for(res=0.0; k>0; k--)
res=res*v;
return(res); /*float типті мəнді қайтарады*/
}
Return операторы көмегімен шақырушы бағдарламаға тек бір ғана мəн беріледі. Егер екі шама берілу керек болса, онда көрсеткіштерді қолдану керек.
Функция анықталуы атымен, формалды параметрлерімен жəне функция денесімен ерекшеленеді. Ол тағы да қайтаратын мəнінің типі жəне функцияның жады класы бойынша ерекшеленеді. Функцияны анықтау синтаксисі келесідей:
[<ЖК түрі>][<тип түрі>]<сипаттаушы>([<параметрлер тізбегі>])[<параметрлерді баяндау>]<функция денесі>
Жады класының түрі <ЖК түрі> функцияның жады класын береді. <Тип түрі> сипаттаушымен бірге қайтаратын мəннің типін жəне функция атын анықтайды. <Параметрлер тізбегі> өз кезегінде функцияны шақыру кезінде мəні берілетін формалды параметрлер атынан тұратын тзбек (бос болуы мүмкін). <Параметрлерді баяндау> формалды параметрлердің типтерін жəне идентификаторларды береді. <Функция денесі> - жергілікті айнымалыларды баяндаудан жəне операторлардан тұратын құрамды оператор. Қазіргі құрылымы: [<ЖК түрі>][<тип түрі>]<сипаттаушы>([<параметрлерді баяндау тізімі>])<функция денесі> Функцияны баяндау: классикалық түрі. [<ЖК түрі>][<тип түрі>]<сипаттаушы>([<аргументтер типінің тізбегі>]); Функцияны баяндау функция атымен, қайтаратын мəнінің типімен жəне, мүмкін, оның аргументтерінің саны жəне типтерімен жүзеге асады. Баяндаудың қазіргі стилі (прототиптерді баяндау). Аргументтер типінің тізбегінде прототипте осы аргументтердің идентификаторлары болуы мүмкін. Адресті операциялар. Си екі арнайы адрестік операцияларды қолдайды: адресті анықтау операциясы (&) жəне адреске бағыттау (*). & операциясы берілген айнымалының адресін қайтарады. Егер sum іnt типті айнымалы болса, онда &sum осы айнымалының адресі болып табылады.


Достарыңызбен бөлісу:
1   ...   22   23   24   25   26   27   28   29   ...   37




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

    Басты бет