С++ қарапайым функциялар
Кіріспе
1.бөлім. С++ тіліндегі қарапайым функциялар және қысқаша тарихы
1.1. «С++» тілінің тағайындалуы және қысқаша тарихы
1.2. Функциялар
1.3. Функциялардың атаулары
1.4. Функцияларды шақыру
1.5. Рекурсия
1.6. Компиляция және бағдарлама орындалуы
1.7. «С++» тіліндегі функция. Жариялау, анықтау, шақырулар. Функция айнымалының аргумент саны
1.8. Стандарты функциялар
1.9. Математикалық функциялар
1.10. Қайта құру немесе өзгерту функциялары
1.11. Енгізу . шығару функциялары
1.12. Файлдармен жұмыс істейтің функциялар
1.13. Жолдармен жұмыс істейтін функциялар
2.бөлім. Функцияларды есептерде қолдану
2.1. «С++» тіліндегі ең қарапайым бағдарлама
2.2. Функцияларды сызықтық бағдарламада қолдану
2.3. Функцияларды циклда қолдану
2.4. Функцияларды символдар мен жолдарда қолдану
2.5. Математикалық функцияларды қолдану
Қорытынды
Қолданылған әдебиеттер
1.бөлім. С++ тіліндегі қарапайым функциялар және қысқаша тарихы
1.1. «С++» тілінің тағайындалуы және қысқаша тарихы
1.2. Функциялар
1.3. Функциялардың атаулары
1.4. Функцияларды шақыру
1.5. Рекурсия
1.6. Компиляция және бағдарлама орындалуы
1.7. «С++» тіліндегі функция. Жариялау, анықтау, шақырулар. Функция айнымалының аргумент саны
1.8. Стандарты функциялар
1.9. Математикалық функциялар
1.10. Қайта құру немесе өзгерту функциялары
1.11. Енгізу . шығару функциялары
1.12. Файлдармен жұмыс істейтің функциялар
1.13. Жолдармен жұмыс істейтін функциялар
2.бөлім. Функцияларды есептерде қолдану
2.1. «С++» тіліндегі ең қарапайым бағдарлама
2.2. Функцияларды сызықтық бағдарламада қолдану
2.3. Функцияларды циклда қолдану
2.4. Функцияларды символдар мен жолдарда қолдану
2.5. Математикалық функцияларды қолдану
Қорытынды
Қолданылған әдебиеттер
Кіріспе
Кез-келген табиғи тілдегі мәтіндер төрт негізгі элементке бөлуге болады: символдар, сөздер, сөз тіркестері, сөйлемдер. Мұндай элементтер боғдарламалау тілінде де болады, бірақ сөздер - лексемалар деп аталады, сөз тіркестері - өрнектер, ал сөйлемдер - операторлар деп аталады.
Курстық жұмыс тақырыбы «Қарапайым функциялар» деп аталады, сондықтан да бұл жұмыста көп қолданылатын функциялармен тереңірек таңысу және оларды қолдану болып табылады.
Бұл курстық жұмыстың мақсаты «С++» тіліндегі қолданылатын функцияларды зерттеу, яғни оларды анықтау, шақыру, жариялау және есептерде қолдану.
Курстық жұмыстың басты міндеттері:
- Функцияларды қолданып бағдарлама құруды оңайлату;
- Функцияларды бағдарлама құрудағы қолданудың маңыздылығын анықтау;
- Бағдарламалық жадықтаудың күрделігін азайту болып табылады.
Өрнектер белгілі бір мәнді есептеудің ережесін береді. Операторлар белгілі бір әрекеттің аяқталған сипаттамасын береді. Күрделі әрекеттерді сипаттау үшін операторлар тізбегі қоданылады, операторларды құрама операторларға немесе блокқа біріктіруге болады. «С++» тіліндегі блок дегеніміз өрнекті жақшаға алынған операторлар тізбегі. Блок дегеніміз бір оператор ретінде қабылданатын операторлардың тізбегі. Операторлар орындалатын және орындалмайтын болып бөлінеді. Орындалатын операторлар деректерге жасалатын әрекеттерді береді. Орындалмайтын операторлар деректерді сипаттау үшін қажет.
Тілдін кез-келген элементі синтаксис және семантикамен анықталады. Синтаксистік анықталулар тілдін элементтерінің құрылу ережелерін орнатады. Семантика олардың мәні мен қолдану ережелерін анықтайды. Бағдарламаны орындауда ол бірінші препроцессорға жібереді. Мұнда бағдарлама лексемаларға ажыратылып тілдің грамматикасы негізінде олардан құралған өрнектер мен операторларды оқиды. Компилятор синтаксистік қателерді тексереді, егер қателер жоқ болған жағдайда компилятор объектілі модуль тұрғызады. Байланыс редакторы бағдарламаның орындалатын модулін құрады. Орындалатын модель экзетивті болады және қарапайым жолмен іске қосылады. С++ тілінің бағдарламасы препроцессордың функцияларының сипаттамалардан және дерективалардан тұрады. Функциялардың біреуі main. Бағдарламаның орындалуы осы функцияның бірінші операторынан тұрады. Көп жағдайларда функциялар белгілі бір мәнді есептеу үшін қолданылады.
«С++» тілі ресми түрде 1983 жылы «С++» тілі деген атқа ие болды. «С++» тілі одан бұрынғы бағдарламалау тілі - «С» тілі негізінде құрылып, бағдарламаларды жасау процестерін оңайлатып берді.
Кез-келген табиғи тілдегі мәтіндер төрт негізгі элементке бөлуге болады: символдар, сөздер, сөз тіркестері, сөйлемдер. Мұндай элементтер боғдарламалау тілінде де болады, бірақ сөздер - лексемалар деп аталады, сөз тіркестері - өрнектер, ал сөйлемдер - операторлар деп аталады.
Курстық жұмыс тақырыбы «Қарапайым функциялар» деп аталады, сондықтан да бұл жұмыста көп қолданылатын функциялармен тереңірек таңысу және оларды қолдану болып табылады.
Бұл курстық жұмыстың мақсаты «С++» тіліндегі қолданылатын функцияларды зерттеу, яғни оларды анықтау, шақыру, жариялау және есептерде қолдану.
Курстық жұмыстың басты міндеттері:
- Функцияларды қолданып бағдарлама құруды оңайлату;
- Функцияларды бағдарлама құрудағы қолданудың маңыздылығын анықтау;
- Бағдарламалық жадықтаудың күрделігін азайту болып табылады.
Өрнектер белгілі бір мәнді есептеудің ережесін береді. Операторлар белгілі бір әрекеттің аяқталған сипаттамасын береді. Күрделі әрекеттерді сипаттау үшін операторлар тізбегі қоданылады, операторларды құрама операторларға немесе блокқа біріктіруге болады. «С++» тіліндегі блок дегеніміз өрнекті жақшаға алынған операторлар тізбегі. Блок дегеніміз бір оператор ретінде қабылданатын операторлардың тізбегі. Операторлар орындалатын және орындалмайтын болып бөлінеді. Орындалатын операторлар деректерге жасалатын әрекеттерді береді. Орындалмайтын операторлар деректерді сипаттау үшін қажет.
Тілдін кез-келген элементі синтаксис және семантикамен анықталады. Синтаксистік анықталулар тілдін элементтерінің құрылу ережелерін орнатады. Семантика олардың мәні мен қолдану ережелерін анықтайды. Бағдарламаны орындауда ол бірінші препроцессорға жібереді. Мұнда бағдарлама лексемаларға ажыратылып тілдің грамматикасы негізінде олардан құралған өрнектер мен операторларды оқиды. Компилятор синтаксистік қателерді тексереді, егер қателер жоқ болған жағдайда компилятор объектілі модуль тұрғызады. Байланыс редакторы бағдарламаның орындалатын модулін құрады. Орындалатын модель экзетивті болады және қарапайым жолмен іске қосылады. С++ тілінің бағдарламасы препроцессордың функцияларының сипаттамалардан және дерективалардан тұрады. Функциялардың біреуі main. Бағдарламаның орындалуы осы функцияның бірінші операторынан тұрады. Көп жағдайларда функциялар белгілі бір мәнді есептеу үшін қолданылады.
«С++» тілі ресми түрде 1983 жылы «С++» тілі деген атқа ие болды. «С++» тілі одан бұрынғы бағдарламалау тілі - «С» тілі негізінде құрылып, бағдарламаларды жасау процестерін оңайлатып берді.
Қолданылған әдебиеттер
1. Павловская Т.А. «С\С++ Структурное программирование» М.: 2005.
2. Культин Н.Б. «C/C++» М:2001ж.
3. Атымтаева М.С. «Программалау тілінін алгоритмі» 2005.
4. Кондратюк Е. «С++ трюки и эффекты»
5. Гуденко «Язык программирование» 2005.
6. Уинер Р. «Язык Turbo Си» М.: Мир, 1999.
7. Уэйт М. Прата С. Мартин Д. «Язык Си Руководство для начинающих» М.: Мир, 1988.
8. Вирт И. «Алгоритмы и структуры данных» М.: Мир, 1989.
9. Зелковиц М. Шоу А. Гэннон Дж. «Принципы разработки программного обеспечения» М.: Мир, 1982.
10. Мик Б. и др. «Практическое руководство по программированию» М.: Радио и связь, 1986.
11. Фокс Дж. «Программное обеспечение и его разработка» М.: Мир, 1985.
12. Курочкина В. М. «Язык компьютера» М.: Мир, 1989.
13. Уэит, Мартин Д. «Язык Си» М.:1988ж.
14. Уиннер Р. «Язык Turbo C» М.:1991ж.
15. Керниган Б. Ритчи Д. Фьюэр А. «Язык программирования Си» М.: Финансы и статистика, 1985.
1. Павловская Т.А. «С\С++ Структурное программирование» М.: 2005.
2. Культин Н.Б. «C/C++» М:2001ж.
3. Атымтаева М.С. «Программалау тілінін алгоритмі» 2005.
4. Кондратюк Е. «С++ трюки и эффекты»
5. Гуденко «Язык программирование» 2005.
6. Уинер Р. «Язык Turbo Си» М.: Мир, 1999.
7. Уэйт М. Прата С. Мартин Д. «Язык Си Руководство для начинающих» М.: Мир, 1988.
8. Вирт И. «Алгоритмы и структуры данных» М.: Мир, 1989.
9. Зелковиц М. Шоу А. Гэннон Дж. «Принципы разработки программного обеспечения» М.: Мир, 1982.
10. Мик Б. и др. «Практическое руководство по программированию» М.: Радио и связь, 1986.
11. Фокс Дж. «Программное обеспечение и его разработка» М.: Мир, 1985.
12. Курочкина В. М. «Язык компьютера» М.: Мир, 1989.
13. Уэит, Мартин Д. «Язык Си» М.:1988ж.
14. Уиннер Р. «Язык Turbo C» М.:1991ж.
15. Керниган Б. Ритчи Д. Фьюэр А. «Язык программирования Си» М.: Финансы и статистика, 1985.
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 27 бет
Таңдаулыға:
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 27 бет
Таңдаулыға:
Кіріспе
Кез-келген табиғи тілдегі мәтіндер төрт негізгі элементке бөлуге
болады: символдар, сөздер, сөз тіркестері, сөйлемдер. Мұндай элементтер
боғдарламалау тілінде де болады, бірақ сөздер - лексемалар деп аталады, сөз
тіркестері - өрнектер, ал сөйлемдер - операторлар деп аталады.
Курстық жұмыс тақырыбы Қарапайым функциялар деп аталады, сондықтан
да бұл жұмыста көп қолданылатын функциялармен тереңірек таңысу және оларды
қолдану болып табылады.
Бұл курстық жұмыстың мақсаты С++ тіліндегі қолданылатын функцияларды
зерттеу, яғни оларды анықтау, шақыру, жариялау және есептерде қолдану.
Курстық жұмыстың басты міндеттері:
- Функцияларды қолданып бағдарлама құруды оңайлату;
- Функцияларды бағдарлама құрудағы қолданудың маңыздылығын анықтау;
- Бағдарламалық жадықтаудың күрделігін азайту болып табылады.
Өрнектер белгілі бір мәнді есептеудің ережесін береді. Операторлар
белгілі бір әрекеттің аяқталған сипаттамасын береді. Күрделі әрекеттерді
сипаттау үшін операторлар тізбегі қоданылады, операторларды құрама
операторларға немесе блокқа біріктіруге болады. С++ тіліндегі блок
дегеніміз өрнекті жақшаға алынған операторлар тізбегі. Блок дегеніміз бір
оператор ретінде қабылданатын операторлардың тізбегі. Операторлар
орындалатын және орындалмайтын болып бөлінеді. Орындалатын операторлар
деректерге жасалатын әрекеттерді береді. Орындалмайтын операторлар
деректерді сипаттау үшін қажет.
Тілдін кез-келген элементі синтаксис және семантикамен анықталады.
Синтаксистік анықталулар тілдін элементтерінің құрылу ережелерін орнатады.
Семантика олардың мәні мен қолдану ережелерін анықтайды. Бағдарламаны
орындауда ол бірінші препроцессорға жібереді. Мұнда бағдарлама лексемаларға
ажыратылып тілдің грамматикасы негізінде олардан құралған өрнектер мен
операторларды оқиды. Компилятор синтаксистік қателерді тексереді, егер
қателер жоқ болған жағдайда компилятор объектілі модуль тұрғызады. Байланыс
редакторы бағдарламаның орындалатын модулін құрады. Орындалатын модель
экзетивті болады және қарапайым жолмен іске қосылады. С++ тілінің
бағдарламасы препроцессордың функцияларының сипаттамалардан және
дерективалардан тұрады. Функциялардың біреуі main. Бағдарламаның орындалуы
осы функцияның бірінші операторынан тұрады. Көп жағдайларда функциялар
белгілі бір мәнді есептеу үшін қолданылады.
С++ тілі ресми түрде 1983 жылы С++ тілі деген атқа ие болды. С++
тілі одан бұрынғы бағдарламалау тілі - С тілі негізінде құрылып,
бағдарламаларды жасау процестерін оңайлатып берді.
1-бөлім. С++ тіліндегі қарапайым функциялар және қысқаша тарихы
1.1. С++ тілінің тағайындалуы және қысқаша тарихы
С++ тілінің негізін салушысы және құрастырушысы Бьерн Страуструп
болып саналады. С++ тілін жасау барысында Симула, Модула2 абстракты типті
деректер үлгілеріне сүйене отырып жұмысын жасады. Негізгі жұмыстар Bell
Labs компаниясының зерттеу орталығында жүргізілді.
С++ тілі 1979 жылы пайда болған С тілі негізінде жасалды, 1997
жылы С++ тілі халықаралық стандартқа ие болды, ол 20 жыл бойы даму
барысының нәтижесі еді. Стандартты қабылдаған соң С++ тілінің
ұйымдастыруларың бір түрлігін қамтамасыз етті. С++ тілін стандарттау
кезіндегі маңыздысы, өндеу және бекіту процесі барысында С++ тілі
маңызды мүмкіншіліктермен толықтырылды.
С++ тілі бағдарламау тілінің әмбебап түрі болып саналады, оған қоса
әр түрлі кітапханалар өнделіп қосылған. Сондықтанда С++ тілі барлық
жағдайларда берілген бағдарлама есептерін шешуге мүмкіндігі мол. Әйткенмен
әр түрлі себептердің күрделігіне байланысты, кейбір есептердің түрлеріне
көп қолданылады, ал кейбіреуіне көп қолданылмайды.
С тілінің ізбасары ретінде С++ тілі жүйелік бағдарламауда кең
қолданылады. Соның ішінде аса тиімді бағдарламалар, операциялық жүйелер,
драйверлер және т.б. бағдарламалар жазуға болады. С++ тілі трасляторларды
өндеу тілінің негізгілерінің бірі.
Көбіне - көп жүйелік бағдарламалық қамтамасыз ету С және С++
тілдерінде жиі жазылған. Сондықтан да операциялық жүйелерге арналған ішкі
жүйелік бағдарламалық интерфейстері де С++ тілдерінде жиі жазылады.
Сәйкесінше осы бағдарламалар және операциялық жүйелермен бірлесіп әрекет
істейтін қолданбалы бағдарламаларды да С++ тілдерінде жазылған.
Әр түрлі компьютерлерде қолданылатын жүйелер де С++ тілдерінде
жазылып шығарылған. Оған жағдай жасайтын Corba және Com модельдерінің
кең тараған компоненттерінің С++ тіліне арналған ыңғайлы интерфейсі.
С++ тілінің көп тараған мүмкіншіліктерін айта кетсек, ол мәтіннің
күрделі құрлымдарын, бизнес ақпараттарды, интернет парақтарды және т.б.
өндеуі. Қолданбалы бағдарламалауда, сірә С++ тілі қандай облыстарда
қолданылмайтынын айту оңай болады.
Қолданушылық графикалық интерфейсті өндеу С++ тілінде істелінеді,
көбіне - көп қажетті күрделі интерфейс жасау кезінде қолданылады. Қарапайым
бағдарламалар көбіне Visual Basic, Java және т.б. тілдерінде жазылады.
Интернетке арналған бағдарламалаулар көбіне Java, VBScript, Perl тілдерінде
жазылады.
Қорыта келе бүгінгі күнде С++ тілі дүние жүзі бойынша көп тараған
бағдарламалау тілі болып саналады.
1.2. Функциялар
Функциялар – аяқталған әрекеттерді орындайтын операторлар тобы.
Функцияларға олардың аттары бойынша жолығуға болады, оған мән беруге және
одан нәтиже алуға болады. Функциялар бағдарлама құрлымын оңайлату үшін
қажет. Берілген есептерді ішкі есептерге бөліп және әрбір ішкі есептерді
функцияларға түрлендіреді. Әр түрлі аргументтерді функцияға беріп, оны бір
рет жазып қойып, әр түрлі мақсаттарда қайтадан бірнеше рет қолдануға
болады. Функцияны қолдану үшін, функцияның қалай жұмыс істейтінің білу
міндетті емес, тек функцияны қалай шақыру керектігін білу қажет яғни
функцияны қолдану үшін олардың интерфейсін білу керек. Сауатты жазылған
функция интерфейсі оның тақырыбымен анықталады, себебі оның шақыруына
арналған барлық қажеттілер көрсетіледі: функция аты, қайтаратын нәтиже
үлгісі, сонымен қатар аргументтер саны және оларға қандай меншіктелген
көрсетіледі. Қарапайым функцияның тақырып форматы: Тип атауы([параметрлер
тізімі])
Мысалға main функциясының тақырыбы әдетте мынадай түрде болады:
int main()
Бұл функцияға сырт жақтан ешқандай параметрлер берілмейтіндігін
білдіреді, бірақ ол бір ғана int типті нәтиже қайтарады. int(аяқталу коды).
Функция нәтиже қайтармауы да мүмкін, ондай жағдайда void типі көрсетілуі
тиіс. Мысалға синус бұрышын есептейтін стандартты кітапханалық функция
тақырыбы:
double sin (double);
Мұнда функция sin деген атпен жазылғанын көрсетеді. Синус нәтижесі
double типті, және ол үшін аргументті double типті берілу керек. Ал міне
memcpy функция тақырыбы, n ұзындықтағы байтқа тең жады блогін src адресінен
бастап, dest адресіне дейін көшірмесі алынады:
void *memcpy(void *. const void *. size_t);
Сауатсыз жазылған функция сонымен қатар ағымдағы файлдың кез келген
блоктағы аргументтер мен глобальды айнымалыларды қолданатын болса. Осындай
функцияны қолдану үшін алдымен оның мәтінің зерттеу қажет.
Функция тақырыбы функция жариялауын қояды. Тақырыбына басқа функция
анықтамасы функция денесін қосады, яғни функция шақырылу кезінде оындалатын
операторлар, мысалы:
int sum(int a. int b) екі айнымалының қосындысын табады
{
return a + b: функция денесі
}
Бағдарлама мәтінінде, жариялаудың бір функцияға өзіндік бірнеше саны
болады, ал анықтама тек қана бір рет беріледі. Функция денесі фигуралық
жақшаға алынған блокты құрайды. Есептелген функция нәтижесін қайтару үшін
return операторы қызмет етеді. Содан кейін өрнектер, есептелген нәтиже
көрсетіледі және функция шақырылу нүктесіне беріледі. Нәтиже қажетті
жағдайларда көрсетілген тақырыпқа байланысты жалпы ережелермен қайта
құрылада. Функцияда бірнеше қайтару операторы бола алады, ол алгоритммен
анықталады.
Фукнцияны шақыру үшін оның атын көрсету қажет, сонымен қатар оның
көрсетілген тақырыбы бойынша оған аргументтер жиынтығы беріледі. Сәйкесінше
ол қатал сақталу керек: егер функция тақырыбында қанша мөлшерде, қандай
типті керекті дұрыс жұмыс істеу үшін сұралса, онда соны солай беру қажет.
Қарапайы мысал келтіретін болсақ нан пісіретін зауытта кірер бастан ұн
салып, ал шыққан нан аламыз. Егер біз кірер бастан басқа нәрсе салсақ,
шыққан кезде нан алуымыз екі талай.
Белгілі бір типтегі нәтиже қайтаратын функцияны шақыру, әрбір бөлікте
жазуға болады. Мысалы функцияны қалай шақыруға болады:
double у, xl = 0.34, х2 = 2;
у = sin(xl);
cout у ' ' sin(x2) endl; экранға y және sin(x2)
у = sin(xl + 0.5) - sin(xl - 0.5);
char *cite = "Never say never"; символдармен жұмыс
char b[100]; жол атауы мен оның ұзындығы
memcpy(b. cite, strlen(cite) + 1);
int summa, a = 2;
summa = sum(a, 4);
1.3. Функциялардың атаулары
С++ тілінде бірнеше функциялардың атаулары бірдей болуы ғажап емес,
себебі барлық функциялар өздерінің атаулары арқылы ажыратыла бермейді, олар
кейбір кезде аргументерінің типімен де ажыратылады. Солай сияқты жоғарыда
айтып кеткен sum функциясына аттас бір функция анықтадық.
double
sum (double a, double b, double c)
{
double result;
result = a + b + c;
return result;
}
Ол жаңа функция болып есептеледі. Кейде бұл функциялардың қолтаңбалары
әр түрлі деп айтады. Келесі программа үзіндісінде біріншісінде бірінші
функция шақырылады, ал екіншісінде екінші функция шақырылады.
int x, y, z, ires;
double p, q, s, dres;
. . .
sum функциясының бірінші анықтамасын шақыру
ires = sum(x, y, z);
sum функциясының екінші анықтамасын шақыру
dres = sum(p, q, s);
sum функциясын бірінші шақыруында барлық нақты аргументтер int
типті. Сондықтан да бірінші функция шақырылады. Ал екінші функция
шақырылғанда аргументтері double типті болып келеді, сәйкесінше осы
функция екінші болып шақырылады.
Тек аргументтін типі ғана маңызды емес, сонымен қатар олардың саны
қажетті. sum функциясы арқылы төрт аргументтің қосындыларын анықтауға
болады.
int
sum(int x1, int x2, int x3, int x4)
{
return x1 + x2 + x3 + x4;
}
Функция анықталуын алу кезінде функцияға аргумент типі мен аргумент
санын меншіктесе, бірақ қайтарылатын нәтижеге меншіктелмейді. Екі бірдей
атпен, бірдей аргументтермен, бірақ әр түрлі қайтарылатын нәтижелер беретің
функцияларды анықтау кезінде, компиляция қатесін шығарып береді.
int foo(int x);
double foo(int x);
қате – екі бірдей атаумен анықталған
1.4. Функцияларды шақыру
Есептеулерді шығару кезінде функция шақырылады. Шақырылған функцияға
қажетті айқын аргументтер беріледі, функция керекті әрекеттерді орындап
нәтижесін шығарады.
С++ программалау тілінде кем дегенде бір функция болады, ол main
функциясы. С тілінде арқашан бағдарламаны есептеуден басталмайды.
Бағдарлама орындалу барысында функция атын кездестіргенде операторларды
орындауға бастайды. Функция сонында немесе функциядан шығу return –
операторына барып, шақырылған функция жеріне қайта оралып орнына есептелген
есептің нәтижесін береді.
Ең алдымен функцияны жариялау қажет. Функцияны жариялау, айнымалыны
жариялауға ұқсас. Жариялау кезінде функция атын және оның типін, аргументер
санын және шығарылатын нәтиженің типін анықтайды.
double sqrt(double x);
sqrt функциясы бір аргументті заттық санмен екі есе дәлдікпен,
double типті үлгідегі нәтижені қайтарып береді
int sum(int a, int b, int c);
sum функциясы үш аргументтің бүтіні
бүтін санды қайтарып береді
Кейде функцияны жариялауды, функция Түп тұлғасы немесе Прототипі
деп атайды. Функция жария етілгеннен соң, оны өрнектерге қолдануға болады:
double x = sqrt (3) + 1;
sum (k, l, m) 15;
Егер void сияқты жарияланған функция ешқандай нәтижені қайтарып
бермесе, онда шақырулар күрделі өрнектерге қолданыла алмайды, ол өзі
жазылуға тиіс:
func(a, b, c);
Функция анықталуы келесі түрде сипатталады: қалай жұмыс істейді яғни
қандай әрекеттер орындау керек, ізделініп отырған нәтижені алу үшін. sum
функциясына арналған анықтама келесі өрнекпен өрнектеледі:
int
sum(int a, int b, int c)
{
int result;
result = a + b + c;
return result;
}
Бірінші жолда - функция тақырыбы, ол жариялау функциясымен сәйкес
келеді. Одан әрі фигуралық жақша ішіне функция берілген әрекеттерді
орындайтын функция денесі жазылған.
a, b және c аргументтері формалдық параметрлер болып саналады. Олар
анықталған функция денесіндегі айнымылылар яғни фигуралық жақша ішінде ғана
оларға сүйенуге болады. Функция мағынасын жазу барысында программа
нәтижесін анықтай алмайды. Функция шақырылған кезде олардын орнына
шақырылатын функциясының нақты мағыналы параметрлері қойылады. Sum
функциясын шақыруда нақты параметрлерімен немесе нақты аргументтері k, l
және m айнымалыларымен келеді.
Формальдық параметрлері нақты шақыру кезінде берілген аргументтердің
мәнің қабылдайды әрі қарай функция орындалады.
Біріншіден, біз функция денесіндегі ішкі айнымалының result типін
бүтін деп жариялаймыз. Функция денесінде жарияланған айнымалыны локальды
деп те атайды. Функция денесіндегі sum функциясы орындалу уақытында ғана
result айнымалысы пайдаланылады. Функцияны орындаған соң ол жойылады және
айнымалы алып отырған жады көлемі босатылады.
Функция денесіндегі екінші жолдағы анықтама – нәтижесін есептеу.
Барлық аргументтер суммасына result айнымалысы меншіктеледі. Айта кетсек
result айнымалысын меншіктеуге дейін мағынасы болды, яғни алдын ала
есептеуге болмайтын айнымалы мағынасы бір өзіндік санмен сипатталады.
Соңғы жолда функция жауабы ретінде есептелген мәндердің нәтижесін
қайтарып береді. return операторы орындаған функцияны және берілгендерді
қайта қайтарады, return кілттік сөзі жазылғаннан соң шығатын мәнге ие
болады. s айнымалысына келесі 10 деген мән меншіктеледі.
Int k =2;
Int l =3;
Int m =5;
Int s = sum ( k , l , m );
1.5. Рекурсия
Функция анықтамасы бір функция денесінде бола алмайды яғни бір
функция денесі ішінде екінші бір функция денесін анықтауға болмайды. Әрине
басқа функция арқылы басқа бір функцияны шақыруға болады, сонымен қатар
функция өзін өзі шақыра алады.
Бүтін сан факториалын есептеу функциясын қарастырып шығайық. Оны екі
тәсілмен іске асыруға болады. Біріншісі итерацияны қолдану арқылы:
int
fact(int n)
{
int result = 1;
for (int i = 1; i = n; i++)
result = result * i;
return result;
}
Екінші тәсіл рекурсияны қолдану арқылы:
int
fact (int n)
{
if (n == 1) 1 санының факториалы 1ге тең
return 1;
else факториал n санына тең
n-1факториалға
return n * fact (n -1);
n-ға көбейтілген
}
Модификацияланған аргументтермен fact функциясы өзін өзі шақырады.
Есептеудің осындай тәсілі рекурсия деп аталады. Рекурсия ол есептеудің
қуатты әдісі. Математикалық көсеткіштердің маңызды бөлімдерін функция
рекурсивті терминдер арқылы анықтайды. Сонымен қатар бағдарламауда күрделі
алгоритм құрылымдарын өндеуі де көбіне көп рекурсивті болады. Мысалға
екілік ағаш құрлымын қарастырайық. Ағаш түйіндерден және бағытталған
байланыстардан түзіледі. Әрбір түйінмен бір немесе екі түйін байланысу
мүмкін, олар осы түйіннің балалары деп аталады. Сәйкесінше балалар
түйіні байланысып шыққан түйін - әкесі деп аталады. Әкесі жоқ түйін
тамыр болып саналады. Ағаш тек қана бір тамырдан тұрады. Балалары жоқ
түйіндер жапырақтар деп аталады. Мысал ретінде 1-суретте көрсетілген.
1-Сурет. Ағашқа мысал.
1-сурет бойынша А-ағаш тамыры, В және С түйіндері А түйінің балалары, D
және E түйіндері В түйінінің балалары, F түйіні С түйінінің баласы. D, E
және F түйіндері жапырақтар. В түйіні шікі ағаш тамыры болып саналады, ол
B, D және E түйіндерінен тұрады. Ағашты мынадай тәсілмен талдауға болады:
1. Ағаш тамырына жолығу.
2. Берілген түйіннің ішкі тамыр балаларына жолығу, әрине егер балалары
болған жағдайда.
3. Егер түйін балалары болмаса одна жолығу аяқталады.
Көп жағдайларда рекурсия және итерация өзара алмастырылады. Олардың
арасындағы таңдау аралық мүмкіншілігі түрлі факторларға байланысты
ескертіледі. Көбіне рекурсия аса көрнекі және жеңілірек іске асады. Бірақ
итерация көп жағдайда нәтижелі болады.
1.6. Компиляция және бағдарлама орындалуы
С++ тіліндегі бағдарлама ол - жазылған мәтін. Сол өзіндік мәтіндік
редактор көмегімен бағдарламашы нұсқауды жазып алады, сәйкесінше сонымен
компьютер жұмыс істейді, тап осы жазылған бағдарламаны орындайды. С++
тілінде жазылған бағдарламаларды компьютер орындай алу үшін, тілді
машиналық нұсқаулар тіліне ауыстыру қажет. Ол мақсатты компилятор шешеді.
Компилятор бағдарлама мәтіндік файлын оқиды, оны талдайды, мүмкін қателерді
іздеп тексереді, егер қателер табылмаса ол машиналы нұсқаулармен
орындалатын файл жасайдыда оны орындайды.
Windows ортасында бағдарламаны копиляциялау және орындау.
Егер Microsoft Windows 98, Windows NT немесе Windows 2000 операциялық
жүйесі бар компьютер қолданылса, онда бұл жүйедегі компилятор Visual C++
болуы ықтимал. Осы компилятор өзінің интегралды ортасын ұсынады, яғни ол
мәтіндік редакторды, компиляторды, жөндеушіні және т.б. қосалқы
бағдарламалар қатарын біріктіреді.
Visual C++ ортасында алдын ала жаңа проект құру қажет. Ол үшін File
мәзірінен New атрибутың таңдау қажет. Содан соң жаңа диологты терезе
ашылады. Терезенің сала баптауында Projects тізімнің ішінен Win32
Consols Application таңдау қажет. Create new workspace түймесі белгілеулі
тұрғанына көз жеткізу керек. Содан соң Project name өрісінде проект
атауын беру қажет(мысалға test). Бәрі біткен соң Ok батырмасын басу
қажет. Енді жаңа файл құру қажет. Ол үшін тағыда File мәзірінен New
атрибутың таңдау қажет. Пада болған File диологты терезенің сала
баптауында text file ді белгілеу керек. Жаңа файл ағымдағы проектке
қосылады, оны Add to project өрісіне қарап қосылғандығына көз жеткізуге
болады. File name өрісіне файлдың атауын шығару қажет. Мысалға ол
main.cpp болсын. cpp кеңейтілуі – ол С++ тілінің негізгі мәтіндік
файлдардың стандартты кеңейтілуі. Location өрісі C:\Work каталогына
көрсетуі тиіс. Ok батырмасын басу қажет. Экранда бос файл ашылады.
Бағдарлама мәтінің енгізу қажет. Компиляция Build мәзірі көмегімен
орындалады. Build test.exe пунктің таңдау қажет немесе F7 пернесің басу
арқылы орындауға болады. Экранның төменгі жағынан компиляция хабарламасы
пайда юолады. Егер қандай да бір қате жіберген жағдайда, хабарлама жолының
үстінен екі рет шерту арқылы, қате жолын тауып оны дұрыстауға мүмкіндік
береді. Қатені дұрыстаған соң, қайтадан компиляция істеп, жүйе табысты
копиляцияланғаны және бағдарлама дұрыс құрылғандығы туралы Linking деген
хабарлама шығарылады. Дайын бағдарламаны Build мәзірінің Execute
test.exe пункті көмегімен немесе Ctrl және F5 пернелерін бір уақытта
басу арқылы орныдауға болады. Монитор экранына консольдық терезе ашылады,
сол терезеде "Hello world!" жолы шығарылады. Содан соң "Press any key to
continue" жазуы пайда болады. Осы жазу бағдарламаның орындалғаның
білдіреді. Консоль терезесін жабу үшін перненің басылуын күтуде.
1.7. С++ тіліндегі функция. Жариялау, анықтау, шақырулар. Функция
айнымалының аргумент саны
С++ тілінің басқа бағдарламалау тілдерінен айырмашылығы, мұнда ішкі
бағдарламаларға, процедураларға және функцияларға бөлмейді. С++
тіліедегі бағдарлама тек қана функциялардан түзіледі.
Функция - ол операторларды тәуелсіз жариялаудың жиынтығы, әдетте айқын
мақсаттарды орындауға арналған. Әрбір функцияның аты болуы қажет.
Бағдарлама main, Winmain, Qumain осы функциялардан бастау алады.
Функцияларды шақыру кезінде функцияға аргумент арқылы ақпарат берілу
мүмкін. Функция белгілі бір мағына қайтарып бере алады, бірақ кейбір
функцияларға аргументтер берілмейді және мағынасын қайтарып бермейді.
Функцияларды қолдану үш ұғыммен байланыстырылады:
1. Функцияның анықталуы.
2. Функцияны жариялау.
3. Функцияны шақыру.
Мысалы:
int IfRus(char c)
{
if (c="А" && c="я") Return 1;
else Return 0;
}
Бағдарлама денесі жоқ функцияны жариялауды прототип деп атайды.
int IfRus(char c). Прототипте міндетті түрде айнымалының атауын көрсету
қажет емес.
Функцияның анықталуының жалпы форматы:
[спецификатор түрі] атауы [(параметр тізімі)]
Егер спецификатор түрі қолданылмаса, онда функция int нәтижесін
қайтарады деп есептеледі.
Параметр тізімі – үтірлермен бөлінген, жариялаудың формальдық
параметрлерінің жүйелігі.
Формальдық параметрлер – функцияларды шақыру уақытында, функция
айнымалыларға мән береді.
Егер функция мәндерді қайтарып бермесе, онда спецификатор типі void.
Функцияны шақырудың жалпы форматы:
Өрнек([Өрнектердің тізімі])
1.8. Стандарты функциялар
Функцияларды белгілеу кезінде келесідей бейнелеу қабылданған:
• Функциялардың аттары Courier қәріпімен белгіленген.
• Функция атының алдынан функция типі көрсетіледі яғни функция
қайтаратын нәтиже типі.
• Параметрлер курсивпен белгіленген. Параметрлер ретінде тұрақтылар,
өзгергіштер немесе лайықты типтегі өрнектер қолданыла алады.
• Функция бейнеленген соң, тақырыптық файлдың аты көрсетіледі,
бағдарлама мәтініне сілтеме көрсетілу тиісті болу керек, ол функция
қолайлы болу үшін.
1.9. Математикалық функциялар
Abs, fabs:
Синтаксисі:
int abs (int ... жалғасы
Кез-келген табиғи тілдегі мәтіндер төрт негізгі элементке бөлуге
болады: символдар, сөздер, сөз тіркестері, сөйлемдер. Мұндай элементтер
боғдарламалау тілінде де болады, бірақ сөздер - лексемалар деп аталады, сөз
тіркестері - өрнектер, ал сөйлемдер - операторлар деп аталады.
Курстық жұмыс тақырыбы Қарапайым функциялар деп аталады, сондықтан
да бұл жұмыста көп қолданылатын функциялармен тереңірек таңысу және оларды
қолдану болып табылады.
Бұл курстық жұмыстың мақсаты С++ тіліндегі қолданылатын функцияларды
зерттеу, яғни оларды анықтау, шақыру, жариялау және есептерде қолдану.
Курстық жұмыстың басты міндеттері:
- Функцияларды қолданып бағдарлама құруды оңайлату;
- Функцияларды бағдарлама құрудағы қолданудың маңыздылығын анықтау;
- Бағдарламалық жадықтаудың күрделігін азайту болып табылады.
Өрнектер белгілі бір мәнді есептеудің ережесін береді. Операторлар
белгілі бір әрекеттің аяқталған сипаттамасын береді. Күрделі әрекеттерді
сипаттау үшін операторлар тізбегі қоданылады, операторларды құрама
операторларға немесе блокқа біріктіруге болады. С++ тіліндегі блок
дегеніміз өрнекті жақшаға алынған операторлар тізбегі. Блок дегеніміз бір
оператор ретінде қабылданатын операторлардың тізбегі. Операторлар
орындалатын және орындалмайтын болып бөлінеді. Орындалатын операторлар
деректерге жасалатын әрекеттерді береді. Орындалмайтын операторлар
деректерді сипаттау үшін қажет.
Тілдін кез-келген элементі синтаксис және семантикамен анықталады.
Синтаксистік анықталулар тілдін элементтерінің құрылу ережелерін орнатады.
Семантика олардың мәні мен қолдану ережелерін анықтайды. Бағдарламаны
орындауда ол бірінші препроцессорға жібереді. Мұнда бағдарлама лексемаларға
ажыратылып тілдің грамматикасы негізінде олардан құралған өрнектер мен
операторларды оқиды. Компилятор синтаксистік қателерді тексереді, егер
қателер жоқ болған жағдайда компилятор объектілі модуль тұрғызады. Байланыс
редакторы бағдарламаның орындалатын модулін құрады. Орындалатын модель
экзетивті болады және қарапайым жолмен іске қосылады. С++ тілінің
бағдарламасы препроцессордың функцияларының сипаттамалардан және
дерективалардан тұрады. Функциялардың біреуі main. Бағдарламаның орындалуы
осы функцияның бірінші операторынан тұрады. Көп жағдайларда функциялар
белгілі бір мәнді есептеу үшін қолданылады.
С++ тілі ресми түрде 1983 жылы С++ тілі деген атқа ие болды. С++
тілі одан бұрынғы бағдарламалау тілі - С тілі негізінде құрылып,
бағдарламаларды жасау процестерін оңайлатып берді.
1-бөлім. С++ тіліндегі қарапайым функциялар және қысқаша тарихы
1.1. С++ тілінің тағайындалуы және қысқаша тарихы
С++ тілінің негізін салушысы және құрастырушысы Бьерн Страуструп
болып саналады. С++ тілін жасау барысында Симула, Модула2 абстракты типті
деректер үлгілеріне сүйене отырып жұмысын жасады. Негізгі жұмыстар Bell
Labs компаниясының зерттеу орталығында жүргізілді.
С++ тілі 1979 жылы пайда болған С тілі негізінде жасалды, 1997
жылы С++ тілі халықаралық стандартқа ие болды, ол 20 жыл бойы даму
барысының нәтижесі еді. Стандартты қабылдаған соң С++ тілінің
ұйымдастыруларың бір түрлігін қамтамасыз етті. С++ тілін стандарттау
кезіндегі маңыздысы, өндеу және бекіту процесі барысында С++ тілі
маңызды мүмкіншіліктермен толықтырылды.
С++ тілі бағдарламау тілінің әмбебап түрі болып саналады, оған қоса
әр түрлі кітапханалар өнделіп қосылған. Сондықтанда С++ тілі барлық
жағдайларда берілген бағдарлама есептерін шешуге мүмкіндігі мол. Әйткенмен
әр түрлі себептердің күрделігіне байланысты, кейбір есептердің түрлеріне
көп қолданылады, ал кейбіреуіне көп қолданылмайды.
С тілінің ізбасары ретінде С++ тілі жүйелік бағдарламауда кең
қолданылады. Соның ішінде аса тиімді бағдарламалар, операциялық жүйелер,
драйверлер және т.б. бағдарламалар жазуға болады. С++ тілі трасляторларды
өндеу тілінің негізгілерінің бірі.
Көбіне - көп жүйелік бағдарламалық қамтамасыз ету С және С++
тілдерінде жиі жазылған. Сондықтан да операциялық жүйелерге арналған ішкі
жүйелік бағдарламалық интерфейстері де С++ тілдерінде жиі жазылады.
Сәйкесінше осы бағдарламалар және операциялық жүйелермен бірлесіп әрекет
істейтін қолданбалы бағдарламаларды да С++ тілдерінде жазылған.
Әр түрлі компьютерлерде қолданылатын жүйелер де С++ тілдерінде
жазылып шығарылған. Оған жағдай жасайтын Corba және Com модельдерінің
кең тараған компоненттерінің С++ тіліне арналған ыңғайлы интерфейсі.
С++ тілінің көп тараған мүмкіншіліктерін айта кетсек, ол мәтіннің
күрделі құрлымдарын, бизнес ақпараттарды, интернет парақтарды және т.б.
өндеуі. Қолданбалы бағдарламалауда, сірә С++ тілі қандай облыстарда
қолданылмайтынын айту оңай болады.
Қолданушылық графикалық интерфейсті өндеу С++ тілінде істелінеді,
көбіне - көп қажетті күрделі интерфейс жасау кезінде қолданылады. Қарапайым
бағдарламалар көбіне Visual Basic, Java және т.б. тілдерінде жазылады.
Интернетке арналған бағдарламалаулар көбіне Java, VBScript, Perl тілдерінде
жазылады.
Қорыта келе бүгінгі күнде С++ тілі дүние жүзі бойынша көп тараған
бағдарламалау тілі болып саналады.
1.2. Функциялар
Функциялар – аяқталған әрекеттерді орындайтын операторлар тобы.
Функцияларға олардың аттары бойынша жолығуға болады, оған мән беруге және
одан нәтиже алуға болады. Функциялар бағдарлама құрлымын оңайлату үшін
қажет. Берілген есептерді ішкі есептерге бөліп және әрбір ішкі есептерді
функцияларға түрлендіреді. Әр түрлі аргументтерді функцияға беріп, оны бір
рет жазып қойып, әр түрлі мақсаттарда қайтадан бірнеше рет қолдануға
болады. Функцияны қолдану үшін, функцияның қалай жұмыс істейтінің білу
міндетті емес, тек функцияны қалай шақыру керектігін білу қажет яғни
функцияны қолдану үшін олардың интерфейсін білу керек. Сауатты жазылған
функция интерфейсі оның тақырыбымен анықталады, себебі оның шақыруына
арналған барлық қажеттілер көрсетіледі: функция аты, қайтаратын нәтиже
үлгісі, сонымен қатар аргументтер саны және оларға қандай меншіктелген
көрсетіледі. Қарапайым функцияның тақырып форматы: Тип атауы([параметрлер
тізімі])
Мысалға main функциясының тақырыбы әдетте мынадай түрде болады:
int main()
Бұл функцияға сырт жақтан ешқандай параметрлер берілмейтіндігін
білдіреді, бірақ ол бір ғана int типті нәтиже қайтарады. int(аяқталу коды).
Функция нәтиже қайтармауы да мүмкін, ондай жағдайда void типі көрсетілуі
тиіс. Мысалға синус бұрышын есептейтін стандартты кітапханалық функция
тақырыбы:
double sin (double);
Мұнда функция sin деген атпен жазылғанын көрсетеді. Синус нәтижесі
double типті, және ол үшін аргументті double типті берілу керек. Ал міне
memcpy функция тақырыбы, n ұзындықтағы байтқа тең жады блогін src адресінен
бастап, dest адресіне дейін көшірмесі алынады:
void *memcpy(void *. const void *. size_t);
Сауатсыз жазылған функция сонымен қатар ағымдағы файлдың кез келген
блоктағы аргументтер мен глобальды айнымалыларды қолданатын болса. Осындай
функцияны қолдану үшін алдымен оның мәтінің зерттеу қажет.
Функция тақырыбы функция жариялауын қояды. Тақырыбына басқа функция
анықтамасы функция денесін қосады, яғни функция шақырылу кезінде оындалатын
операторлар, мысалы:
int sum(int a. int b) екі айнымалының қосындысын табады
{
return a + b: функция денесі
}
Бағдарлама мәтінінде, жариялаудың бір функцияға өзіндік бірнеше саны
болады, ал анықтама тек қана бір рет беріледі. Функция денесі фигуралық
жақшаға алынған блокты құрайды. Есептелген функция нәтижесін қайтару үшін
return операторы қызмет етеді. Содан кейін өрнектер, есептелген нәтиже
көрсетіледі және функция шақырылу нүктесіне беріледі. Нәтиже қажетті
жағдайларда көрсетілген тақырыпқа байланысты жалпы ережелермен қайта
құрылада. Функцияда бірнеше қайтару операторы бола алады, ол алгоритммен
анықталады.
Фукнцияны шақыру үшін оның атын көрсету қажет, сонымен қатар оның
көрсетілген тақырыбы бойынша оған аргументтер жиынтығы беріледі. Сәйкесінше
ол қатал сақталу керек: егер функция тақырыбында қанша мөлшерде, қандай
типті керекті дұрыс жұмыс істеу үшін сұралса, онда соны солай беру қажет.
Қарапайы мысал келтіретін болсақ нан пісіретін зауытта кірер бастан ұн
салып, ал шыққан нан аламыз. Егер біз кірер бастан басқа нәрсе салсақ,
шыққан кезде нан алуымыз екі талай.
Белгілі бір типтегі нәтиже қайтаратын функцияны шақыру, әрбір бөлікте
жазуға болады. Мысалы функцияны қалай шақыруға болады:
double у, xl = 0.34, х2 = 2;
у = sin(xl);
cout у ' ' sin(x2) endl; экранға y және sin(x2)
у = sin(xl + 0.5) - sin(xl - 0.5);
char *cite = "Never say never"; символдармен жұмыс
char b[100]; жол атауы мен оның ұзындығы
memcpy(b. cite, strlen(cite) + 1);
int summa, a = 2;
summa = sum(a, 4);
1.3. Функциялардың атаулары
С++ тілінде бірнеше функциялардың атаулары бірдей болуы ғажап емес,
себебі барлық функциялар өздерінің атаулары арқылы ажыратыла бермейді, олар
кейбір кезде аргументерінің типімен де ажыратылады. Солай сияқты жоғарыда
айтып кеткен sum функциясына аттас бір функция анықтадық.
double
sum (double a, double b, double c)
{
double result;
result = a + b + c;
return result;
}
Ол жаңа функция болып есептеледі. Кейде бұл функциялардың қолтаңбалары
әр түрлі деп айтады. Келесі программа үзіндісінде біріншісінде бірінші
функция шақырылады, ал екіншісінде екінші функция шақырылады.
int x, y, z, ires;
double p, q, s, dres;
. . .
sum функциясының бірінші анықтамасын шақыру
ires = sum(x, y, z);
sum функциясының екінші анықтамасын шақыру
dres = sum(p, q, s);
sum функциясын бірінші шақыруында барлық нақты аргументтер int
типті. Сондықтан да бірінші функция шақырылады. Ал екінші функция
шақырылғанда аргументтері double типті болып келеді, сәйкесінше осы
функция екінші болып шақырылады.
Тек аргументтін типі ғана маңызды емес, сонымен қатар олардың саны
қажетті. sum функциясы арқылы төрт аргументтің қосындыларын анықтауға
болады.
int
sum(int x1, int x2, int x3, int x4)
{
return x1 + x2 + x3 + x4;
}
Функция анықталуын алу кезінде функцияға аргумент типі мен аргумент
санын меншіктесе, бірақ қайтарылатын нәтижеге меншіктелмейді. Екі бірдей
атпен, бірдей аргументтермен, бірақ әр түрлі қайтарылатын нәтижелер беретің
функцияларды анықтау кезінде, компиляция қатесін шығарып береді.
int foo(int x);
double foo(int x);
қате – екі бірдей атаумен анықталған
1.4. Функцияларды шақыру
Есептеулерді шығару кезінде функция шақырылады. Шақырылған функцияға
қажетті айқын аргументтер беріледі, функция керекті әрекеттерді орындап
нәтижесін шығарады.
С++ программалау тілінде кем дегенде бір функция болады, ол main
функциясы. С тілінде арқашан бағдарламаны есептеуден басталмайды.
Бағдарлама орындалу барысында функция атын кездестіргенде операторларды
орындауға бастайды. Функция сонында немесе функциядан шығу return –
операторына барып, шақырылған функция жеріне қайта оралып орнына есептелген
есептің нәтижесін береді.
Ең алдымен функцияны жариялау қажет. Функцияны жариялау, айнымалыны
жариялауға ұқсас. Жариялау кезінде функция атын және оның типін, аргументер
санын және шығарылатын нәтиженің типін анықтайды.
double sqrt(double x);
sqrt функциясы бір аргументті заттық санмен екі есе дәлдікпен,
double типті үлгідегі нәтижені қайтарып береді
int sum(int a, int b, int c);
sum функциясы үш аргументтің бүтіні
бүтін санды қайтарып береді
Кейде функцияны жариялауды, функция Түп тұлғасы немесе Прототипі
деп атайды. Функция жария етілгеннен соң, оны өрнектерге қолдануға болады:
double x = sqrt (3) + 1;
sum (k, l, m) 15;
Егер void сияқты жарияланған функция ешқандай нәтижені қайтарып
бермесе, онда шақырулар күрделі өрнектерге қолданыла алмайды, ол өзі
жазылуға тиіс:
func(a, b, c);
Функция анықталуы келесі түрде сипатталады: қалай жұмыс істейді яғни
қандай әрекеттер орындау керек, ізделініп отырған нәтижені алу үшін. sum
функциясына арналған анықтама келесі өрнекпен өрнектеледі:
int
sum(int a, int b, int c)
{
int result;
result = a + b + c;
return result;
}
Бірінші жолда - функция тақырыбы, ол жариялау функциясымен сәйкес
келеді. Одан әрі фигуралық жақша ішіне функция берілген әрекеттерді
орындайтын функция денесі жазылған.
a, b және c аргументтері формалдық параметрлер болып саналады. Олар
анықталған функция денесіндегі айнымылылар яғни фигуралық жақша ішінде ғана
оларға сүйенуге болады. Функция мағынасын жазу барысында программа
нәтижесін анықтай алмайды. Функция шақырылған кезде олардын орнына
шақырылатын функциясының нақты мағыналы параметрлері қойылады. Sum
функциясын шақыруда нақты параметрлерімен немесе нақты аргументтері k, l
және m айнымалыларымен келеді.
Формальдық параметрлері нақты шақыру кезінде берілген аргументтердің
мәнің қабылдайды әрі қарай функция орындалады.
Біріншіден, біз функция денесіндегі ішкі айнымалының result типін
бүтін деп жариялаймыз. Функция денесінде жарияланған айнымалыны локальды
деп те атайды. Функция денесіндегі sum функциясы орындалу уақытында ғана
result айнымалысы пайдаланылады. Функцияны орындаған соң ол жойылады және
айнымалы алып отырған жады көлемі босатылады.
Функция денесіндегі екінші жолдағы анықтама – нәтижесін есептеу.
Барлық аргументтер суммасына result айнымалысы меншіктеледі. Айта кетсек
result айнымалысын меншіктеуге дейін мағынасы болды, яғни алдын ала
есептеуге болмайтын айнымалы мағынасы бір өзіндік санмен сипатталады.
Соңғы жолда функция жауабы ретінде есептелген мәндердің нәтижесін
қайтарып береді. return операторы орындаған функцияны және берілгендерді
қайта қайтарады, return кілттік сөзі жазылғаннан соң шығатын мәнге ие
болады. s айнымалысына келесі 10 деген мән меншіктеледі.
Int k =2;
Int l =3;
Int m =5;
Int s = sum ( k , l , m );
1.5. Рекурсия
Функция анықтамасы бір функция денесінде бола алмайды яғни бір
функция денесі ішінде екінші бір функция денесін анықтауға болмайды. Әрине
басқа функция арқылы басқа бір функцияны шақыруға болады, сонымен қатар
функция өзін өзі шақыра алады.
Бүтін сан факториалын есептеу функциясын қарастырып шығайық. Оны екі
тәсілмен іске асыруға болады. Біріншісі итерацияны қолдану арқылы:
int
fact(int n)
{
int result = 1;
for (int i = 1; i = n; i++)
result = result * i;
return result;
}
Екінші тәсіл рекурсияны қолдану арқылы:
int
fact (int n)
{
if (n == 1) 1 санының факториалы 1ге тең
return 1;
else факториал n санына тең
n-1факториалға
return n * fact (n -1);
n-ға көбейтілген
}
Модификацияланған аргументтермен fact функциясы өзін өзі шақырады.
Есептеудің осындай тәсілі рекурсия деп аталады. Рекурсия ол есептеудің
қуатты әдісі. Математикалық көсеткіштердің маңызды бөлімдерін функция
рекурсивті терминдер арқылы анықтайды. Сонымен қатар бағдарламауда күрделі
алгоритм құрылымдарын өндеуі де көбіне көп рекурсивті болады. Мысалға
екілік ағаш құрлымын қарастырайық. Ағаш түйіндерден және бағытталған
байланыстардан түзіледі. Әрбір түйінмен бір немесе екі түйін байланысу
мүмкін, олар осы түйіннің балалары деп аталады. Сәйкесінше балалар
түйіні байланысып шыққан түйін - әкесі деп аталады. Әкесі жоқ түйін
тамыр болып саналады. Ағаш тек қана бір тамырдан тұрады. Балалары жоқ
түйіндер жапырақтар деп аталады. Мысал ретінде 1-суретте көрсетілген.
1-Сурет. Ағашқа мысал.
1-сурет бойынша А-ағаш тамыры, В және С түйіндері А түйінің балалары, D
және E түйіндері В түйінінің балалары, F түйіні С түйінінің баласы. D, E
және F түйіндері жапырақтар. В түйіні шікі ағаш тамыры болып саналады, ол
B, D және E түйіндерінен тұрады. Ағашты мынадай тәсілмен талдауға болады:
1. Ағаш тамырына жолығу.
2. Берілген түйіннің ішкі тамыр балаларына жолығу, әрине егер балалары
болған жағдайда.
3. Егер түйін балалары болмаса одна жолығу аяқталады.
Көп жағдайларда рекурсия және итерация өзара алмастырылады. Олардың
арасындағы таңдау аралық мүмкіншілігі түрлі факторларға байланысты
ескертіледі. Көбіне рекурсия аса көрнекі және жеңілірек іске асады. Бірақ
итерация көп жағдайда нәтижелі болады.
1.6. Компиляция және бағдарлама орындалуы
С++ тіліндегі бағдарлама ол - жазылған мәтін. Сол өзіндік мәтіндік
редактор көмегімен бағдарламашы нұсқауды жазып алады, сәйкесінше сонымен
компьютер жұмыс істейді, тап осы жазылған бағдарламаны орындайды. С++
тілінде жазылған бағдарламаларды компьютер орындай алу үшін, тілді
машиналық нұсқаулар тіліне ауыстыру қажет. Ол мақсатты компилятор шешеді.
Компилятор бағдарлама мәтіндік файлын оқиды, оны талдайды, мүмкін қателерді
іздеп тексереді, егер қателер табылмаса ол машиналы нұсқаулармен
орындалатын файл жасайдыда оны орындайды.
Windows ортасында бағдарламаны копиляциялау және орындау.
Егер Microsoft Windows 98, Windows NT немесе Windows 2000 операциялық
жүйесі бар компьютер қолданылса, онда бұл жүйедегі компилятор Visual C++
болуы ықтимал. Осы компилятор өзінің интегралды ортасын ұсынады, яғни ол
мәтіндік редакторды, компиляторды, жөндеушіні және т.б. қосалқы
бағдарламалар қатарын біріктіреді.
Visual C++ ортасында алдын ала жаңа проект құру қажет. Ол үшін File
мәзірінен New атрибутың таңдау қажет. Содан соң жаңа диологты терезе
ашылады. Терезенің сала баптауында Projects тізімнің ішінен Win32
Consols Application таңдау қажет. Create new workspace түймесі белгілеулі
тұрғанына көз жеткізу керек. Содан соң Project name өрісінде проект
атауын беру қажет(мысалға test). Бәрі біткен соң Ok батырмасын басу
қажет. Енді жаңа файл құру қажет. Ол үшін тағыда File мәзірінен New
атрибутың таңдау қажет. Пада болған File диологты терезенің сала
баптауында text file ді белгілеу керек. Жаңа файл ағымдағы проектке
қосылады, оны Add to project өрісіне қарап қосылғандығына көз жеткізуге
болады. File name өрісіне файлдың атауын шығару қажет. Мысалға ол
main.cpp болсын. cpp кеңейтілуі – ол С++ тілінің негізгі мәтіндік
файлдардың стандартты кеңейтілуі. Location өрісі C:\Work каталогына
көрсетуі тиіс. Ok батырмасын басу қажет. Экранда бос файл ашылады.
Бағдарлама мәтінің енгізу қажет. Компиляция Build мәзірі көмегімен
орындалады. Build test.exe пунктің таңдау қажет немесе F7 пернесің басу
арқылы орындауға болады. Экранның төменгі жағынан компиляция хабарламасы
пайда юолады. Егер қандай да бір қате жіберген жағдайда, хабарлама жолының
үстінен екі рет шерту арқылы, қате жолын тауып оны дұрыстауға мүмкіндік
береді. Қатені дұрыстаған соң, қайтадан компиляция істеп, жүйе табысты
копиляцияланғаны және бағдарлама дұрыс құрылғандығы туралы Linking деген
хабарлама шығарылады. Дайын бағдарламаны Build мәзірінің Execute
test.exe пункті көмегімен немесе Ctrl және F5 пернелерін бір уақытта
басу арқылы орныдауға болады. Монитор экранына консольдық терезе ашылады,
сол терезеде "Hello world!" жолы шығарылады. Содан соң "Press any key to
continue" жазуы пайда болады. Осы жазу бағдарламаның орындалғаның
білдіреді. Консоль терезесін жабу үшін перненің басылуын күтуде.
1.7. С++ тіліндегі функция. Жариялау, анықтау, шақырулар. Функция
айнымалының аргумент саны
С++ тілінің басқа бағдарламалау тілдерінен айырмашылығы, мұнда ішкі
бағдарламаларға, процедураларға және функцияларға бөлмейді. С++
тіліедегі бағдарлама тек қана функциялардан түзіледі.
Функция - ол операторларды тәуелсіз жариялаудың жиынтығы, әдетте айқын
мақсаттарды орындауға арналған. Әрбір функцияның аты болуы қажет.
Бағдарлама main, Winmain, Qumain осы функциялардан бастау алады.
Функцияларды шақыру кезінде функцияға аргумент арқылы ақпарат берілу
мүмкін. Функция белгілі бір мағына қайтарып бере алады, бірақ кейбір
функцияларға аргументтер берілмейді және мағынасын қайтарып бермейді.
Функцияларды қолдану үш ұғыммен байланыстырылады:
1. Функцияның анықталуы.
2. Функцияны жариялау.
3. Функцияны шақыру.
Мысалы:
int IfRus(char c)
{
if (c="А" && c="я") Return 1;
else Return 0;
}
Бағдарлама денесі жоқ функцияны жариялауды прототип деп атайды.
int IfRus(char c). Прототипте міндетті түрде айнымалының атауын көрсету
қажет емес.
Функцияның анықталуының жалпы форматы:
[спецификатор түрі] атауы [(параметр тізімі)]
Егер спецификатор түрі қолданылмаса, онда функция int нәтижесін
қайтарады деп есептеледі.
Параметр тізімі – үтірлермен бөлінген, жариялаудың формальдық
параметрлерінің жүйелігі.
Формальдық параметрлер – функцияларды шақыру уақытында, функция
айнымалыларға мән береді.
Егер функция мәндерді қайтарып бермесе, онда спецификатор типі void.
Функцияны шақырудың жалпы форматы:
Өрнек([Өрнектердің тізімі])
1.8. Стандарты функциялар
Функцияларды белгілеу кезінде келесідей бейнелеу қабылданған:
• Функциялардың аттары Courier қәріпімен белгіленген.
• Функция атының алдынан функция типі көрсетіледі яғни функция
қайтаратын нәтиже типі.
• Параметрлер курсивпен белгіленген. Параметрлер ретінде тұрақтылар,
өзгергіштер немесе лайықты типтегі өрнектер қолданыла алады.
• Функция бейнеленген соң, тақырыптық файлдың аты көрсетіледі,
бағдарлама мәтініне сілтеме көрсетілу тиісті болу керек, ол функция
қолайлы болу үшін.
1.9. Математикалық функциялар
Abs, fabs:
Синтаксисі:
int abs (int ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz