Есептерді шешуде функцияларды қолдану


ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ
БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
М. ӘУЕЗОВ АТЫНДАҒЫ
ОҢТҮСТІК ҚАЗАҚСТАН МЕМЛЕКЕТТІК УНИВЕРСИТЕТІ
«АҚПАРАТТЫҚ ЖҮЙЕЛЕР ЖӘНЕ МОДЕЛЬДЕУ» КАФЕДРАСЫ
БӨЖ
Тақырыбы: Есептерді шешуде функцияларды қолдану
Орындаған: Айдаулет Б. Е.
Тобы: ИП-19-3к2
Қабылдаған: Ельбергенова Ғ. Ж.
Шымкент 2020 ж
Функция - бұл белгілі бір аяқталған əрекетті орындайтын сипаттамалар мен операторлардың атау берілген тізбегі. Функция параметрлерді қабылдап, мəн қайтара алады.
С++ тіліндегі кез келген программа функциялардан тұрады, олардың бірі міндетті түрде main деп аталуы тиіс (программаның орындалуы осы функциядан басталады) . Функцияны шақырған кезде ол орындала бастайды. Кез келген функция жариялануы жəне анықталуы тиіс. Функция да басқа шамалар сияқты бірнеше рет жариялануы мүмкін, бірақ ол бір-ақ рет анықталуы тиіс.
Компилятор функцияны шақырудың дұрыстығын тексеруі үшін программа мəтінінде функцияны жариялау оны шақырудан ерте орналасуы тиіс. Функцияны жариялау (прототип, тақырып, сигнатура) оның атын, қайтарылатын мəнінің типін жəне оған берілетін параметрлер тізімін тағайындайды. Функцияны анықтауда, оны жариялаумен қатар, функция тұлғасы қамтылады, ол жүйелі жақшалар ішіндегі операторлар мен сипаттамалар тізбегінен тұрады:
[ класс ] типі атауы([ параметрлер_тізімі ] ) [throw
( аластамалар ) ] { функция тұлғасы }
Фукнкцияны анықтаудың құрама бөліктерін қарастырайық.
□ Міндетті түрде қажет етілмейтін класс модификаторының көмегімен, extern жəне static түйінді сөздерін қолдана отырып, функцияның көріну аймағын айқын түрде көрсетуге болады:
■ extern - функцияның программаның барлық модульдерінде ауқымды, яғни глобалды (келісім бойынша) түрде көрінуі;
■ static - функцияның тек өзі анықталған модуль шеңберінде көрінуі.
□ Функцияның қайтаратын мəнінің типі жиым мен функциядан (бірақ жиымға немесе функцияға нұсқауыш бола алады) басқа кез келген тип түрінде болуы мүмкін. Егер функция оны шақырған программаға ешқандай мəн қайтармайтын болса, онда void типі көрсетіледі.
□ Параметрлер тізімі функцияға оны шақыру кезінде берілуі тиіс болатын шамаларды анықтайды. Параметрлер тізімінің элементтері бірбірінен үтір арқылы ажыратылады. Функцияға берілетін əрбір параметрдің аты мен типі көрсетіледі (жариялау кезінде оның атын көрсетпеуге де болады) .
□ Функция арқылы өңделетін аластаулар туралы «Функцияның аластамалар тізімі» бөлімінде 245 б. жазылған. Бір функциянының анықталуындағы, жариялануындағы жəне шақырылуындағы параметрлердің типтері мен жазылу реттілігі бір-бірімен сəйкес келу керек. Параметрлер аттарына олардың сəйкестігі бойынша шек қойылмайды, себебі функцияны əртүрлі аргументтермен шақыруға болады, ал прототиптердегі атауларды компилятор ескермейді (олар тек программаның оқылуын жеңілдету үшін қолданылады) . Функцияны inline модификаторының көмегімен құрамдас функция ретінде анықтауға болады, бұл модификатор компиляторға функцияны пайдалану орнына оның кодын əрбір шақыру нүктесіне тікелей орналастыру керек екенін көрсетеді. inline модификаторы функция типінің алдына қойылады. Ол қысқа функцияларды шақыруға кететін қосымша шығындарды азайту үшін (регистрлерді сақтау жəне қалпына келтіру, басқаруды беру) қолданылады. inline директивасы ұсынылатын əрекет ретінде беріледі, сондықтан компилятор оны мүмкіндігіне қарай орындайды. inline функцияларды пайдалану атқарылатын программаның көлемін ұлғайтып жіберуі мүмкін. Функцияны анықтау оны шақырулардан бұрын орындалуы тиіс, əйтпесе компилятор inline кеңейтілудің орнына қарапайым функцияны шақыру əрекетін атқарады.
Қайтарылатын мəннің типі жəне параметрлердің типтері біріге отырып, функцияның типін анықтайды. Қарапайым жағдайда функцияны шақыру үшін оның атын, содан кейін жай жақша ішінде үтірлер арқылы бөлініп берілетін аргументтер аттарын көрсету керек. Функцияны шақыру программаның кез келген бөлігінде орындалуы мүмкін, ол тек синтаксис бойынша функцияның қайтаратын типі тұра алатын орында тұрса болғаны. Егер функцияның қайтаратын мəнінің типі void болмаса, онда ол кез келген өрнектің құрамына енуі мүмкін немесе жалпы меншіктеу операторының оң жақ бөлігінде орналаса алады.
Екі бүтін шаманың қосындысын қайтаратын функция мысалы:
#include <iostream. h>
int sum(int a, int b) ; // функцияны жариялау
int main() {
int a = 2, b = 3, c, d;
с = sum(a, b) ; // функцияны шақыру
cin >> d;
cout << sum(c, d) ; // функцияны шақыру
return 0;
}
int sum(int a, int b) { // функцияны анықтау
return (a + b) ;
}
Экранға функцияға берілген құрылым өрістерін шығару мысалы:
#include <iostream. h>
struct Worker{
char fio[30] ;
int date, code;
double salary;
};
void print_worker(Worker) ; // функцияны жариялау
int main() {
Worker stuff[100] ;
. . . /*stuff жиымын қалыптастыру */
for (int i = 0; i<100; i++)
print_worker(stuff[i] ) ; // функцияның шақыру
return 0;
}
void print_worker(Worker w) { // функцияны анықтау
cout << w. fio << ' ' << w. date << ' ' << w. code
<< ' ' << w. salary << endl;
}
Функцияның ішінде сипатталған барлық шамалар жəне оның параметрлері жергілікті (локалды) болып табылады. Олардың əрекет ету аймағы - функция іші (тұлғасы) . Функцияны шақыру кезінде, кез келген блокка енген кездегі сияқты, стекте жергілікті автоматты айнымалылар үшін жады бөлінеді. Сонымен қатар, стекте функцияны шақырудың алдыңғы сəтіндегі процессор регистрлерінің мəндері жəне функциядан кері қайту адресі сақталады, ол осы функциядан шыққаннан кейін оны шақырған программаның (басқа функцияның) орындалуын ары қарай жалғастыру үшін қажет болып табылады.
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz