С++ тілінің базалық жабдықтары. Препроцессор директивалары
1.С++ тілінің базалық жабдықтары. Препроцессор директивалары.
2.Ағымдық енгізу шығару ж/е оларды пайдалану.C++тілінің ерекшеліктері
3.Тіл құрамы, тіл алфавиті, түсініктемелері
4.Идентификаторлар.Түйінді сөздер.Тұрақтылар
5.Функцияларды хабарлау, анықтау. Функцияның параметрлері. Рекурсивті функция
6.Негізігі мәліметтер типтері.Унарлы, бинарлы, тернарлы операциялар
7.Программа құрылымы, Айнымалылар мен өрнектер.
8.if, switch Тармақталу операторлары.Шартты оператордың құрылымдық сұлбасы
9.for, do while, while циклдік операторлары
10. Goto, Break, continue, return басқаруды беру операторлары
11.Нұсқауыштар мен жиымдар.Екі өлшемді жиымдар
12.Қатарлар. Қатарларға қолданылатын функциялар
13 . typedef, enum Қолданушы анықтайтын мәліметтер типтері:
14.Қолданушы анықтайтын мәліметтер тип/і:құрылым, біріктіру(struct, union)
15 .Borland Builder 6.0 прграммалау ортасының бас терезесінің құрылымы
16.Объектіге бағытталған прог/ң негізі.База/қ класт/ң қолданылуы, анықталуы
17.Конструкторлар және қасиеттері, көшіру конструкторы.
18. Конструкторлар, қатарларды меншіктеу.Қатардың бөлігін қосу, меншіктеу функциясы
19.Конструкторлар.Қатарларды түрлендіру, қатардың құрамын іздеу
20.Деструкторлар және оның қасиеттері
21. Класстың достық функциялары, шаблондары
22.Мұрагерлік.Жай және көптік мұрагерлік
23.Абстрактілі класс, виртуалды функция
24.Ағымдар, стандартты файлдық және қатарлық ағымдар
25.Манипуляторлар.Жай және параметрлі манипуляторлар
26. STL (Standard Template Library) кітапханасының құрылымы, итераторлар
27.Тізбекті контейнерлер, векторлар, кезектер
28.Екі жақты кезектер, стектер, тізімдер
29.Ассоциативті контейнерлер. Сөздіктер, жиындар
30.Алгоритмдер, функционалды объектілер, адаптерлер
2.Ағымдық енгізу шығару ж/е оларды пайдалану.C++тілінің ерекшеліктері
3.Тіл құрамы, тіл алфавиті, түсініктемелері
4.Идентификаторлар.Түйінді сөздер.Тұрақтылар
5.Функцияларды хабарлау, анықтау. Функцияның параметрлері. Рекурсивті функция
6.Негізігі мәліметтер типтері.Унарлы, бинарлы, тернарлы операциялар
7.Программа құрылымы, Айнымалылар мен өрнектер.
8.if, switch Тармақталу операторлары.Шартты оператордың құрылымдық сұлбасы
9.for, do while, while циклдік операторлары
10. Goto, Break, continue, return басқаруды беру операторлары
11.Нұсқауыштар мен жиымдар.Екі өлшемді жиымдар
12.Қатарлар. Қатарларға қолданылатын функциялар
13 . typedef, enum Қолданушы анықтайтын мәліметтер типтері:
14.Қолданушы анықтайтын мәліметтер тип/і:құрылым, біріктіру(struct, union)
15 .Borland Builder 6.0 прграммалау ортасының бас терезесінің құрылымы
16.Объектіге бағытталған прог/ң негізі.База/қ класт/ң қолданылуы, анықталуы
17.Конструкторлар және қасиеттері, көшіру конструкторы.
18. Конструкторлар, қатарларды меншіктеу.Қатардың бөлігін қосу, меншіктеу функциясы
19.Конструкторлар.Қатарларды түрлендіру, қатардың құрамын іздеу
20.Деструкторлар және оның қасиеттері
21. Класстың достық функциялары, шаблондары
22.Мұрагерлік.Жай және көптік мұрагерлік
23.Абстрактілі класс, виртуалды функция
24.Ағымдар, стандартты файлдық және қатарлық ағымдар
25.Манипуляторлар.Жай және параметрлі манипуляторлар
26. STL (Standard Template Library) кітапханасының құрылымы, итераторлар
27.Тізбекті контейнерлер, векторлар, кезектер
28.Екі жақты кезектер, стектер, тізімдер
29.Ассоциативті контейнерлер. Сөздіктер, жиындар
30.Алгоритмдер, функционалды объектілер, адаптерлер
Кез-келген тілдегі мәтінде төрт негізгі элементті бөліп көрсетуге болады: символдар, сөздер, сөз тіркестері және сөйлемдер. Алгоритмдік тіл де осындай элементтерден тұрады: символдар, лексемалар, өрнектер, операторлар. Лексемалар символдардан, өрнектер лексемалардан және символдардан, ал операторлар символдардан, лексемалардан, өрнектерден тұрады (1-сурет):
Символдар- негізгі бөлінбейтін таңбалар;
Лексема- өзіндік мағынасы бар тіл бірлігі;
Өрнек- қандай да бір мәннің есептелу ережесі;
Оператор- қандай да бір істің аяқталған сипаттамасы
Тіл алфавиті: бас және кіші латын әріптері; 0-ден 9-ға дейінгі араб цифрлары; Арнайы белгілер: [] {} , . ( ) + - / * \ % ; : ? < > = ! & # ^ “ ' бос орынды символдар: бос орын (пробел), табуляция символы, жаңа жолға көшу символы. Символдардан лексемалар құралады:идентификаторлар; түйінді сөздер; операция таңбалары; тұрақтылар; бөлгіштер (жақша, нүкте, үтір, бос орынды символдар). С++ тілінің мүмкіндіктері:
класстар, конструкторлар/деструкторлар.
класс шаблондары. Стандартты кітапханалар.
туынды класстар. Абстрактілі класстар.
операторларды қайта жүктеу.
орындалу кезінде типтік ақпаратқа қол жетімдік.
Препроцессор директивасы «#» таңбасымен басталады және соңынан нүктелі үтір (;) қойылмайды. Түрлері: 1) #include директивасы.
Бұл программаға көрсетілген файлдағы мәліметтерді қосады. Бұл директиваның екі формасы бар:
#include “басты файл “
# include <басты файл> Егер «файл аты» тырнақшада берілсе, онда файл сәйкес көрсетілген маршрутпен анықталатын орыннан, ал ол көрсетілмесе жұмысшы каталогтан ізделеді. Егер файл аты бұрыштама жақшада (< >) берілсе, онда файл стандартты директориядан ізделеді.
Басты тақырыптық файлдар: iostream.h, assert.h, float.h, math.h, ctype.h, limits.h, setjmp.h, errno.h, locale.h, signal.h, stdarg.h, stddef.h, stdlib.h, string.h, time.h. 2) #define директивасы. #define – директивасы жиі қолданылатын тұрақтыларды, қызметші сөздерді, операторларды және өрнектерді кейбір идентификаторлармен ауыстыруға мүмкіндік береді. Мысалы, #define WIDTH 80 #define LENGTH (WIDTH+10) бұл директивалар программадағы әрбір WIDTH сөзін 80 санына, ал LENGTH сөзін (80+10) өрісіне ауыстырады. 3) #undef директивасы. Бұл директива #define директивасы қызметін қайтаруға қолданылады. Яғни, көрсетілген идентификаторларға қолданылатын #define анықтамасы қызметін болдырмайды.
Символдар- негізгі бөлінбейтін таңбалар;
Лексема- өзіндік мағынасы бар тіл бірлігі;
Өрнек- қандай да бір мәннің есептелу ережесі;
Оператор- қандай да бір істің аяқталған сипаттамасы
Тіл алфавиті: бас және кіші латын әріптері; 0-ден 9-ға дейінгі араб цифрлары; Арнайы белгілер: [] {} , . ( ) + - / * \ % ; : ? < > = ! & # ^ “ ' бос орынды символдар: бос орын (пробел), табуляция символы, жаңа жолға көшу символы. Символдардан лексемалар құралады:идентификаторлар; түйінді сөздер; операция таңбалары; тұрақтылар; бөлгіштер (жақша, нүкте, үтір, бос орынды символдар). С++ тілінің мүмкіндіктері:
класстар, конструкторлар/деструкторлар.
класс шаблондары. Стандартты кітапханалар.
туынды класстар. Абстрактілі класстар.
операторларды қайта жүктеу.
орындалу кезінде типтік ақпаратқа қол жетімдік.
Препроцессор директивасы «#» таңбасымен басталады және соңынан нүктелі үтір (;) қойылмайды. Түрлері: 1) #include директивасы.
Бұл программаға көрсетілген файлдағы мәліметтерді қосады. Бұл директиваның екі формасы бар:
#include “басты файл “
# include <басты файл> Егер «файл аты» тырнақшада берілсе, онда файл сәйкес көрсетілген маршрутпен анықталатын орыннан, ал ол көрсетілмесе жұмысшы каталогтан ізделеді. Егер файл аты бұрыштама жақшада (< >) берілсе, онда файл стандартты директориядан ізделеді.
Басты тақырыптық файлдар: iostream.h, assert.h, float.h, math.h, ctype.h, limits.h, setjmp.h, errno.h, locale.h, signal.h, stdarg.h, stddef.h, stdlib.h, string.h, time.h. 2) #define директивасы. #define – директивасы жиі қолданылатын тұрақтыларды, қызметші сөздерді, операторларды және өрнектерді кейбір идентификаторлармен ауыстыруға мүмкіндік береді. Мысалы, #define WIDTH 80 #define LENGTH (WIDTH+10) бұл директивалар программадағы әрбір WIDTH сөзін 80 санына, ал LENGTH сөзін (80+10) өрісіне ауыстырады. 3) #undef директивасы. Бұл директива #define директивасы қызметін қайтаруға қолданылады. Яғни, көрсетілген идентификаторларға қолданылатын #define анықтамасы қызметін болдырмайды.
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 35 бет
Таңдаулыға:
Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 35 бет
Таңдаулыға:
1.С++ тілінің базалық жабдықтары. Препроцессор директивалары.
Кез-келген тілдегі мәтінде төрт негізгі элементті бөліп көрсетуге болады: символдар, сөздер, сөз тіркестері және сөйлемдер. Алгоритмдік тіл де осындай элементтерден тұрады: символдар, лексемалар, өрнектер, операторлар. Лексемалар символдардан, өрнектер лексемалардан және символдардан, ал операторлар символдардан, лексемалардан, өрнектерден тұрады (1-сурет):
Символдар- негізгі бөлінбейтін таңбалар;
Лексема- өзіндік мағынасы бар тіл бірлігі;
Өрнек- қандай да бір мәннің есептелу ережесі;
Оператор- қандай да бір істің аяқталған сипаттамасы
Тіл алфавиті: бас және кіші латын әріптері; 0-ден 9-ға дейінгі араб цифрлары; Арнайы белгілер: [] {} , . ( ) + - * \ % ; : ? = ! & # ^ " ' бос орынды символдар: бос орын (пробел), табуляция символы, жаңа жолға көшу символы. Символдардан лексемалар құралады:идентификаторлар; түйінді сөздер; операция таңбалары; тұрақтылар; бөлгіштер (жақша, нүкте, үтір, бос орынды символдар). С++ тілінің мүмкіндіктері:
oo класстар, конструкторлардеструкторлар.
oo класс шаблондары. Стандартты кітапханалар.
oo туынды класстар. Абстрактілі класстар.
oo операторларды қайта жүктеу.
oo орындалу кезінде типтік ақпаратқа қол жетімдік.
Препроцессор директивасы # таңбасымен басталады және соңынан нүктелі үтір (;) қойылмайды. Түрлері: 1) #include директивасы.
Бұл программаға көрсетілген файлдағы мәліметтерді қосады. Бұл директиваның екі формасы бар:
#include "басты файл "
# include басты файл Егер файл аты тырнақшада берілсе, онда файл сәйкес көрсетілген маршрутпен анықталатын орыннан, ал ол көрсетілмесе жұмысшы каталогтан ізделеді. Егер файл аты бұрыштама жақшада ( ) берілсе, онда файл стандартты директориядан ізделеді.
Басты тақырыптық файлдар: iostream.h, assert.h, float.h, math.h, ctype.h, limits.h, setjmp.h, errno.h, locale.h, signal.h, stdarg.h, stddef.h, stdlib.h, string.h, time.h. 2) #define директивасы. #define - директивасы жиі қолданылатын тұрақтыларды, қызметші сөздерді, операторларды және өрнектерді кейбір идентификаторлармен ауыстыруға мүмкіндік береді. Мысалы, #define WIDTH 80 #define LENGTH (WIDTH+10) бұл директивалар программадағы әрбір WIDTH сөзін 80 санына, ал LENGTH сөзін (80+10) өрісіне ауыстырады. 3) #undef директивасы. Бұл директива #define директивасы қызметін қайтаруға қолданылады. Яғни, көрсетілген идентификаторларға қолданылатын #define анықтамасы қызметін болдырмайды.
2.Ағымдық енгізу шығару же оларды пайдалану.C++тілінің ерекшеліктері
Программалаудың көмегімен есептеулер жүргізуге, мәтіндерді өңдеу, графикалық бейнелерді тұрғызу,мәліметтерді сұрыптау және іздеуді жүзеге асыруға болады. С++ тілінде iostream.h тақырыптық файлында анықталған енгізу-шығару операторлары (cin, cout) бар. С тілінде айнымалылар арнайы форматтар мен типтері анық көрсетілу арқылы орындалса, С++ тілінде - операторы мәлімет типін және форматын таңдайды, ал - операторы қабылданатын мәннің адресін, форматын анықтайды. С++-те де үш ағымдық класс қарастырылған: istream - енгізу; ostream - шығару; iostream - енгізу-шығару. Шығару: С-де: printf (" бүтін сан = %d, нақты = %f", ia, fb); Си++-те: cout "бүтін сан" ia " нақты = " fb; Енгізу: Си-де scanf ("%d %f", &ia, &fb); Си++-те: cin ia fb; Бұл жолдарда endl манипуляторы тіркелуі мүмкін. Мысалы, cout "бүтін сан = " іаendl; Манипулятор дз -ағымға қатысты нақты әрекет орындайтын арнайы функция. endl манипуляторы - жаңа жол символын қоюмен қатар ағым буферін тазартады.
Ағымдық енгізу-шығаруды пайдалану
Cи:
С++:
#include stdio.h
#include iostream.h
#include math.h
#include math.h
void main()
main()
{float a, b, c, p, s
{float a, b, c, p, s
printf("na="); scanf("%f",&a);
cout"na="; cina;
printf("\nb="); scanf("%f",&b);
cout"\nb="; cinb;
printf("\nc="); scanf("%f",&c);
cout"\nc="; cinc;
p=(a+b+c)2;
p=(a+b+c)2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("\nүшбұрыш ауданы=%f", s); }
cout"\nүшбұрыш ауданы=", s); }
Айнымалыларды хабарлаудың негізгі формасы- ның түрі: Тип айнымалылар_тізімі; Мысалы: int x , y, z; Сипаттау кезінде айнымалыға бастапқы мән беруге болады, оны инициализация деп атайды. Инициализаторды екі түрлі формада беруге болады: теңдік белгісімен =мән немесе жай жақшамен (мән). Тұрақты хабарлау кезінде инициализациялануы тиіс. Мысалы: const char с=`с'; Блок ішінде анықталған айнымалы жергілікті, ал блок сыртында анықталған айнымалы ауқымды деп аталады. Кез-келген программада есептеулер жүргізіледі. Мәндерді есептеу үшін өрнектер қолданылады. Өрнектер операндтардан, операция таңбаларынан, жақшалардан тұрады. Әрбір операнд өз кезегінде өрнек, болмаса оның жеке жағдайы - тұрақты немесе айнымалы болып табылады. Өрнектің нәтижесі мәнмен немесе типпен сипатталады.
3.Тіл құрамы, тіл алфавиті, түсініктемелері
Кез-келген тілдегі мәтінде төрт негізгі элементті бөліп көрсетуге болады: символдар, сөздер, сөз тіркестері және сөйлемдер. Алгоритмдік тіл де осындай элементтерден тұрады: символдар, лексемалар, өрнектер, операторлар. Лексемалар символдардан, өрнектер лексемалардан және символдардан, ал операторлар символдардан, лексемалардан, өрнектерден тұрады (1-сурет):
+ Символдар- негізгі бөлінбейтін таңбалар;
+ Лексема- өзіндік мағынасы бар тіл бірлігі;
+ Өрнек- қандай да бір мәннің есептелу ережесі;
+ Оператор- қандай да бір істің аяқталған сипаттамасы.
Алгоритмдік тіл құрамы
Операторлар
Өрнектер
Символдар
Лексемалар
(1-сурет)
Тіл алфавиті: бас және кіші латын әріптері; 0-ден 9-ға дейінгі араб цифрлары; Арнайы белгілер: [] {} , . ( ) + - * \ % ; : ? = ! & # ^ " ' ; бос орынды символдар: бос орын (пробел), табуляция символы, жаңа жолға көшу символы. Символдардан лексемалар құралады: идентификаторлар; түйінді сөздер; операция таңбалары; тұрақтылар; бөлгіштер (жақша, нүкте, үтір, бос орынды символдар) Идентификаторлар - программалық объектінің аты. Әріп немесе сызық таңбасы идентификатордың бірінші символы болуы мүмкін, бірақ цифр бола алмайды. Түйінді сөздер - компилятор үшін арнайы мәні бар резервтелген идентификаторлар. Операция таңбалары - операндтарға қолда- нылатын бір немесе бірнеше символдар. Тұрақтылар - өзгермейтін шамалар. Комментарийлер - компилятор үшін маңызы жоқ программаның бөлігі және программа мәтінін оқу ыңғайлы болуы үшін қолданылады. Ол символынан басталады.
4.Идентификаторлар.Түйінді сөздер.Тұрақтылар
Кез-келген тілдегі мәтінде төрт негізгі элементті бөліп көрсетуге болады: символдар, сөздер, сөз тіркестері және сөйлемдер. Алгоритмдік тіл де осындай элементтерден тұрады: символдар, лексемалар, өрнектер, операторлар. Лексемалар символдардан, өрнектер лексемалардан және символдардан, ал операторлар символдардан, лексемалардан, өрнектерден тұрады: Символдар- негізгі бөлінбейтін таңбалар; Лексема- өзіндік мағынасы бар тіл бірлігі; Өрнек- қандай да бір мәннің есептелу ережесі; Оператор- қандай да бір істің аяқталған сипаттамасы
Тіл алфавиті:
+ бас және кіші латын әріптері;
+ 0-ден 9-ға дейінгі араб цифрлары;
+ Арнайы белгілер: [] {} , . ( ) + - * \ % ; : ? = ! & # ^ " '
+ бос орынды символдар: бос орын (пробел), табуляция символы, жаңа жолға көшу символы. Символдардан лексемалар құралады: идентификаторлар; түйінді сөздер; операция таңбалары; тұрақтылар; бөлгіштер (жақша, нүкте, үтір, бос орынды символдар). Идентификаторлар - программалық объектінің аты. Әріп немесе сызық таңбасы идентификатордың бірінші символы болуы мүмкін, бірақ цифр бола алмайды. Түйінді сөздер - компилятор үшін арнайы мәні бар резервтелген идентификаторлар.Операция таңбалары - операндтарға қолда- нылатын бір немесе бірнеше символдар. Тұрақтылар - өзгермейтін шамалар. Комментарийлер - компилятор үшін маңызы жоқ программаның бөлігі және программа мәтінін оқу ыңғайлы болуы үшін қолданылады. Ол символынан басталады.
5.Функцияларды хабарлау, анықтау. Функцияның параметрлері. Рекурсивті функция
Функция дегеніміз - белгілі бір операциялар тобын атқаратын программа блогы. Функцияға мəліметтер береміз де, одан белгілі бір нəтижелер аламыз. Функцияның ішкі əрекеті программаның басқа бөліктеріне қатыссыз орындалады. Програмада кем дегенде, бір функция болады жəне программадағы бір функцияның аты main болуы тиіс. Программаның орындалуы осы main функциясынан басталады. Main функциясының орындалуы барысын- да басқа функциялар шақырылады, ал олар одан да басқа функцияларды шақыруы мүмкін. Функция мынадай жалпы түрде сипатталады: [функция типі] функция аты ([формальды параметрлер спецификациясы]) функция тұлғасы; мұндағы [функция типі] - функцияның есептелетін нəтижесі типі; функцияның аты - функция идентификаторы, яғни аты; формальды параметрлер спецификациясы - бұл болмауы да мүмкін (void) немесе əрбір параметр спецификациясы: типі параметр аты - формальды параметрлердің типтерін жəне идентификаторларын анықтайды; функция тұлғасы - орындалатын операторлар тізбегі жəне оның ішінде локальді айнымалының сипатталуы болуы мүмкін. Сонымен, функцияны хабарлау оның прототипін - аты жəне параметрлері саны мен типін программалық файлдың алдында жариялау болып табылады. Функцияны осылайша хабарлауды былай да көрсетуге болады: нəтиже_типіфункция_аты(типі айнымалы ,..., типі айнымалы); Егер жай жақша ішінде жазылатын айнымалылар идентификаторлары көрсетілмесе, онда компилятор оларға арнап компьютер жадында тек орын қалдырады. Мұнда функция тұлғасы жайлы сөз болмайды. Си тілінде функция өзін өзі шақырып та пайдалана алады, мұндай функция рекурсивті деп аталады. Берілген n бүтін санының факториалын есептейтін (n!=1⋅2⋅3⋅...⋅n) рекурсивті функция мысалы:
fakt (int n)
{int b;
if (n == 0) return 1;
b = fakt(n-1)*n;
return n;}
Осы функцияны енгізілген n мəні үшін кез келген бүтін санның факториалын есептеуде қолданудың толық программасы төмендегі мысалда келтірілген.
6.Негізігі мәліметтер типтері.Унарлы, бинарлы, тернарлы операциялар
Негізігі мәліметтер типтері: Char- символдық, яғни таңбалық тип.Ұзындығы 8 бит-1 байт. Диапазогы -128...+127. Float-нақты ман типі,яғни жылыжымалы нүктелі санр. Ұзыныдғы 32бит 4байт,сандар дипазоны 3,4*10-38...3,4*1038. Double-2еселенген нақты сан типі. Ұзындығы 64 бит 8байт.Диапазоны 1,7* 10-308 ... 1,7* 1038. Int- бүтін сан типі.Ұзыдығы 16 бит 4 байт.Диапазоны -32768...32767. Операндр - үстінен әрекет жүргізілетін деректер.Операнд ретінде тұрақтыр, массив әрекеттері(литералдар),айнымалыр, массив әрекетті мен функцияларды айтуға бы. Операнд операцияға жүргізілетін әрекеттерді анықтайды.Операцияр: Бинарлы;Унарлы; Тернарлы.Унарлы операция бір операндқа тиісті және оның белгісі операнд алдынан жазылады. Унарлы операциялар:
oo Арифметикалық теріске шығару
~ логикалық теріске шығару
логикалық теріске шығару
*бағыттау(жанама бағыттау)
& адресті есептеу
+ унарлы қосу
++ арттыру(инкремент)
oo Кеміту(декремент)
Size of - өлшем. Бинарлы операция екі операциялар арасындағы қатынасты өрнектейді және оның белгісі операндтар арасына жазылады, мысалы: X+Y. Бинарлы операциялар:
* Аддитивті операциялар:
= меншіктеу
+= меншіктеу қосынды
-= меншіктеу айырмасы
* Мультипликативті опрациялар:
*= меншіктеу көбейтіндісі
= меншіктеу бөлу
%= қалдықты меншіктеу
* Жылжыту операциялары:
солға жылжыту
оңға жылжыту
* Разрядты операциялар:
= кіші не тең
= үлкен не тең
кіші
үлкен
== тең
!= тең емес
!=0 ақиқат
==0 жалған.
Тернарлы операциялар.Операнд бір нақты болу керек. Егер операнд бір нөлге тең болмаса, онда операнд еі есептелінеді және бұл операция жауабы болып табылады.
Ескерту:операнд 2же 3есептелуде, бірақ бір мезетте 2 операнд бірдей есептелмейді.Нәтиже типі операнд 2 же 3ке байланысты өзгереді
1. Егер операнд 2 және 3 бүтін анықталмаған тип болса, онда арифметикалық өзгертулерден кейінгі типі болады.
2. Егер операнд 2 және 3 құрылымының түрі біріктіру немесе нұсқағыш болса, нәтиже типі құрылымның типі болып табылады.
3. Егер екі оперенд типтері Void болса, нәтиженің де типі Void болады.
4. Егер бір операнд кез келген типтегі нұсқағыш болса, ол басқа операнд Void нұсқағышта болса, онда нұсқағыш Void нұсқағышқа ауысады және осы нәтиже типі болады.
5. Егер операндта нұсқағыш болса, ал екінші операнд 0ге тең тұрақты болса, онда нұсқағыш типі болады.
7.Программа құрылымы, Айнымалылар мен өрнектер.
С++ тіліндегі программа препроцессор директивасынан, сипаттамалардан және функциялардан тұрады. Программа құрылымы:
препроцессор директивалары сипаттамалар
int main ()
{бас функция операторлары} Программадағы бір функция main болуы тиіс. Программаның орындалуы осы функцияның бірінші операторынан басталады. Функцияның қарапайым анықталуының форматы:
қайтарылатын_мәннің_типі аты ([параметрлер])
{функция денесінен құрайтын операторлар} Функция қандай да бір мәнді есептеуден басталады, сондықтан оның типі көрсетілуі керек.Қажетті мағлұматтар:
- егер функция мән қайтармаса, void типі көрсетіледі;
-функция денесі блок болып табылады, сондықтан фигуралы жақшаға алынады;
-әрбір оператор үтір-нүктемен аяқталады.
Айнымалыларды хабарлаудың негізгі формасы- ның түрі: Тип айнымалылар_тізімі; Мысалы: int x , y, z; Сипаттау кезінде айнымалыға бастапқы мән беруге болады, оны инициализация деп атайды. Инициализаторды екі түрлі формада беруге болады: теңдік белгісімен =мән немесе жай жақшамен (мән). Тұрақты хабарлау кезінде инициализациялануы тиіс. Мысалы: const char с=`с'; Блок ішінде анықталған айнымалы жергілікті, ал блок сыртында анықталған айнымалы ауқымды деп аталады. Кез-келген программада есептеулер жүргізіледі. Мәндерді есептеу үшін өрнектер қолданылады. Өрнектер операндтардан, операция таңбаларынан, жақшалардан тұрады. Әрбір операнд өз кезегінде өрнек, болмаса оның жеке жағдайы - тұрақты немесе айнымалы болып табылады. Өрнектің нәтижесі мәнмен немесе типпен сипатталады.
8.if, switch Тармақталу операторлары.Шартты оператордың құрылымдық сұлбасы
Кез-келген күрделі есептерді шығару кезінде үш құрылымнан (реттік, тармақталу, цикл) тұратын программаны құруға болады. Оларды құрылымдық программалаудың базалық құрастырғыштары деп атайды. Қандай да бір шарттың орындалуынан тәуелді құрастырғышты тармақталу деп атаймыз.
Тармақталу
Тармақталу операторлары: if, switch.
if шартты операторы есептеу үрдісінің екі бағытта тармақталуы үшін қолданылады. Оператор форматы: if (өрнек) оператор_1; [оператор_2;]
Үтір (,) операторы - бір жолда жазылған 2 өрнекті тізбектеп орындауға мүмкіндік береді. Нәтижесінде үтірдің оң жағында орналасқан өрнектің мәні қабылданады. switch операторы есептеу үрдісін бірнеше бағытта тармақтау үшін арналған. Оператор форматы:
switch (өрнек) {
case тұрақты өрнек_1: [1_ оператор_ тізімі]
case тұрақты өрнек_2: [2_ оператор_ тізімі]
...
case тұрақты өрнек_n: [n_ оператор_ тізімі]
[default: операторлар] }
9.for, do while, while циклдік операторлары
C++ тілінде үш циклдік оператор бар: Жазылу форматтары:
while (өрнек) оператор
do оператор while өрнек;
for (инициализация; өрнек; модификация) оператор;
Шарты алдын ала тексерілетін цикл схемасы:
Оның жазылуы:
While ( шарт-өрнек)
{1 оператор;
2 оператор;
... ..
N оператор;}
Мұнда шарт-өрнекке кіретін айнымалы цикл ішінде өзгеріп отырады.
Арифметикалық прогрессия сияқты For операторының жазылуы:
for(x=x0;x=xk;x+=dx) x = xk
1-оператор;
{1-оператор;
2-оператор;
. . .
n-ператор; }
Мұндағы өрнек1: x=x0; - цикл айнымалысының бастапқы мəні, өрнек2: x=xk; - циклдің қайталану шарты, өрнек3: x+=dx - цикл айнымалысының қадам мөлшеріне артуы.
For цикл операторында бір немесе бірнеше өрнектерді жазбауға да болады, бірақ мұндайда ; символын міндетті түрде өз орындарына жазып отыру керек.
Шарты соңынан тексерілетін do ... while циклінің схемасы
Жалпы жазылу түрі:
do
{1-оператор;
2-оператор;
... ... ...
n-оператор;}
while (өрнек);
Do ... while циклінде шарт соңында тексерілетін болғандықтан, оның тұлғасы ең болмағанда бір рет орындалады. Цикл соңында жазылған while(өрнек) өрнек ақиқат болса
(немесе 0-ге тең болмаса), цикл тұлғасы қайтадан орындалады. Ал өрнек жалған болса (немесе 0-ге тең болса), цикл аяқталады.
10. Goto, Break, continue, return басқаруды беру операторлары
С++ тілінде 4 басқаруды беру операторы бар:
+ goto шартсыз өту операторы;
+ break циклдан шығу операторы;
+ continue циклдың келесі итерациясына көшу операторы;
+ return функциядан қайтару операторы.
Циклдік операторлар: while, do while, for. Басқаруды беру операторлары: goto, break goto шартсыз өту операторының форматы: goto белгі;
мұндағы белгі - оператор нөміріне ұқсас ерекше белгі, яғни идентификатор. Бұл оператор бірінің ішіне бірі енгізілген бірнеше цикл жиынынан (мəлімет-тер арасында қателер кездессе) бірден сыртқа шығып кету керек болған кезде қолданылады. Мұндайда break операторын пайдалана алмаймыз. break циклдан шығу операторы цикл операторларының ішінде қолданылады немесе switch операторынан шығуды қамтамасыз етеді. Егер бұл оператор бірі-
нің ішіне бірі енгізілген қабаттасқан цикл ішінде орналасса, онда ол ішкі циклдан оның сыртқы циклына шығуды ғана жүзеге асырады. continue циклдың келесі итерациясына көшу операторы цикл денесінің аяғына дейінгі операторларды бос жіберіп, басқаруды келесі итерацияға береді. return функциядан қайтару операторы функцияның орындалуын аяқтап, басқаруды шақыру нүктесіне береді
11.Нұсқауыштар мен жиымдар.Екі өлшемді жиымдар
Массив немесе жиым - бір типтегі элементтердің реттелген жиыны. Олар бір атаумен - идентификатормен аталады да, индексті айнымалы ұғымына сəйкес келеді. Нұсқауыш мəліметтердің адресін сақтайтын айнымалы болып табылады. Жалпы алғанда, нұсқауыш адрестің символдық кескінделуі болып саналады. Қарастырылатын мысалда &sum - sum атты айнымалыға сілтейтін нұсқауыш болып табылады. Нақты адрес ретінде белгілі бір сан тұрады, ал &sum нұсқауыш типті константа болып табылады. Си тілінде нұсқауыш типті айнымалылар да бар. Нұсқауыш типті айнымалылар мəні болып белгілі бір шаманың адресі саналады. Нұсқауыш типті айнымалыны сипаттағанда берілген нұсқауыш қандай типті айнымалыға сілтейтінін көрсету қажет. Өйткені əр түрлі типті айнымалыға ЭЕМ жадында ұялардың əр түрлі саны бөлініп беріледі.Си тілінде нұсқауыштармен мынадай операциялар орындауға болады:
-нұсқауышқа алғашқы мəн ретінде бір объект адресін не нөлді (\0) меншіктеуге болады;
-нұсқауыш мəнін бірге арттыруға, кемітуге болады; (++ , --)
-нұсқауыш мəніне бүтін сан қосуға немесе алуға болады;
-екі нұсқауыш мəнін салыстыруға болады (= =, != операциялары);
-бір нұсқауыш мəнінен екінші нұсқауыш мəнін (егер олар бір типте болса) алуға болады. Арифметикалық операциялар орындалар кезде компилятор жадыдағы алатын орындары нұсқауыштардың əр түрлі екенін есте сақтайды.
Екі өлшемді жиымды - матрицаны пайдалану үшін тік жақшалар ішінде олардың екі өлшемінің де енін көрсету керек. Си тілінде екі өлшемді жиым былай сипатталады:
[жады класы] типі
жиым аты [1-өлшемі][2-өлшемі]
Жиым элементтері типі ескеріліп, олардың көлеміне жеткілікті етіп жиым үшін компьютер жадында қажетті орын бөлініп беріледі немесе жиымның аты осы аймақтың басына сілтейтін нұсқауыш типті константа болып табылады.
12.Қатарлар. Қатарларға қолданылатын функциялар
Қатар - нөл-символмен аяқталатын символдар массиві. С++-те қатармен жұмыс істеуді 2мүмкіндігі бар:С библиотекасынан (string.h не cstring) мұрагерлікке қалған функциялар және С++-тің string библиотекалық класы. С-дан мұрагерлікке қалған функциялар қолдану кезінде ыңғайсыз же қауіпті, сі олар қатардың шекарадан шығып кетуін қадағаламайды. string типті қатары ақпараттың шекарадан шығып кетуінен қорғалған және операциялар көмегімен жұмыс істеуге бы. string класының функциялары: Қатардың бөлігін қосу және меншіктеу
Бір қатардың бөлігін екінші қатарға меншіктеу үшін assign функциясы қолданылады
assign (const string&str);
assign (const string&str, size_type pos, size_type n);
assign (const char*s, size_type n);
Бір қатардың бөлігін екінші қатарға қосу үшін append функциясы қолданылады
append (const string&str);
append(const string&str, size_type pos, size_type n);
append (const char*s, size_type n);
Қатарларды түрлендіру
Бір қатардың бөлігін екіншісіне қою үшін insert функциясы қолданылады\
insert (size_type pos1, const string&str);
insert (size_type pos1, const string&str, size_type pos2, size_type n);
insert (size_type pos, const char*s, size_type n);
Қатардың бөлігін жою үшін erase функциясы қолданылады
erase (size_type pos=0, size_type n=npos); Ол pos позициясынан бастап шақырылған қатардың n элементін жояды. Егер позиция көрсетілмесе, онда қатардың басынан бастап жояды. Бүкіл қатарды тазалау қызметін clear функциясы атқарады: void clear(); Қатардың бөлігін ауыстыру үшін replace функциясы қолданылады
replace (size_type pos1, size_type n1, const string&str);
replace (size_type pos1, size_type n1, const string&str, size_type pos2, size_type n2);
replace (size_type pos1, size_type n1, const char*s, size_type n2);
2 қатарды бір-бірімен алмастыру үш.swap функ.қолд. swap (string&s);
Қатардың бөлігін бөліп алу үшін substr функциясы қолданылады
string substr (size_type pos=0, size_type n=npos) const;
string типті объектілерді ескі стильдегі қатарға түрлендіру үшін c_str функциясы қолданылады const char*c_str() const;
Қатардың құрамын іздеу size_type find(const string&str, size_type pos=0) const; Шақырылған қатардан pos позициясынан бастап str қатарының сол жақтан енуін іздейді және егер қатар табылмаса, онда қатардың позициясын немесе npos-ны қайтарады size_type find(char c, size_type pos=0) const; Шақырылған қатардан pos позициясынан бастап с символының сол жақтан енуін іздейді же егер қатар табылмаса,онда қатардың позициясын не npos-ны қайтарады. Шақырылған қатардан pos позициясына дейін str қатарының оң жақтан енуін іздейді же егер қатар табылмаса, онда қатардың позициясын не npos-ны қайтарады.
size_type rfind(char c, size_type pos=npos) const; Шақырылған қатардан pos позициясына дейін с символының оң жақтан енуін іздейді же егер қатар табылмаса,онда қатардың позициясын не npos-ны қайтарады. Қатардың бөліктерін салыстыру үшін compare функциясы қолданылады.
size_type rfind(const string&str, size_type pos=npos) const;
int compare (const string&str) const;
int compare(size_type pos1, size_type n1, const string&str) const;
int compare(size_type pos1, size_type n1, const string&str, size_type pos2, size_type n2 ) const;
13 . typedef, enum Қолданушы анықтайтын мәліметтер типтері:
С++ тілі программистке өз мәліметтер типін және олармен жұмыс істеу ережелерін анықтауға мүмкіндік береді. Қолданушы анықтайтын мәліметтер типтері: typedef, enum, struct, union. Программа анығырақ болу үшін typedef түйінді сөзінің көмегімен типке жаңа ат беруге болады: typedef тип жаңа_ ат [өлшемі]. typedef тип үшін тип спецификаторын анықтайды. Бұл хабарлау қолданушы анықтаған типтерге қысқа және мағыналы аттар беру үшін қолданылады.
Мысалы: typedef char name [100];
name str[10]; 100 символды 10 қатардан тұратын жиым
Программа жазу кезінде әр түрлі мәнді бірнеше тұрақтыны анықтау қажет болады. Ол үшін тізімделген мәліметтер типін қолданған жөн.
Форматы:
enum [тип_ аты] {тұрақтылар тізімі};
14.Қолданушы анықтайтын мәліметтер типі:құрылым, біріктіру(struct, union)
С++ тілі программистке өз мәліметтер типін және олармен жұмыс істеу ережелерін анықтауға мүмкіндік береді. Қолданушы анықтайтын мәліметтер типтері: typedef, enum, struct, union. Жиым элементтері бір типті болса, ал құрылым элементтері әр түрлі типті болады. struct типі бірнеше компоненттерді бір айнымалыға біріктіруге мүмкіндік береді. С++ тілінде құрылым класс түрі болып табылады, бірақ оны көп жағдайларда С тілінде анықталғандай қолдану жеткілікті.
Форматы:
struct [тип аты]
{ 1_тип 1_ элемент;
2_тип 2_ элемент;
... ... ... ... ... ..
n_тип n_элемент;}[сипаттамар тізімі];
Құрылымның мүшелеріне (.) арқылы енуге болады. Мысал ретінде пәтерді сипаттаушы құрылымды қарастырайық. Бұл құрылым төмендегі белгілерді сақтайды: бөлмелер саны, пәтер ауданы, нөмірі, пәтер қожайыны.
Struct apartment
{int count_rooms;
int area;
int number;
char fio[20]; };
Мұндағы struct - түйінді сөз, apartment ... жалғасы
Кез-келген тілдегі мәтінде төрт негізгі элементті бөліп көрсетуге болады: символдар, сөздер, сөз тіркестері және сөйлемдер. Алгоритмдік тіл де осындай элементтерден тұрады: символдар, лексемалар, өрнектер, операторлар. Лексемалар символдардан, өрнектер лексемалардан және символдардан, ал операторлар символдардан, лексемалардан, өрнектерден тұрады (1-сурет):
Символдар- негізгі бөлінбейтін таңбалар;
Лексема- өзіндік мағынасы бар тіл бірлігі;
Өрнек- қандай да бір мәннің есептелу ережесі;
Оператор- қандай да бір істің аяқталған сипаттамасы
Тіл алфавиті: бас және кіші латын әріптері; 0-ден 9-ға дейінгі араб цифрлары; Арнайы белгілер: [] {} , . ( ) + - * \ % ; : ? = ! & # ^ " ' бос орынды символдар: бос орын (пробел), табуляция символы, жаңа жолға көшу символы. Символдардан лексемалар құралады:идентификаторлар; түйінді сөздер; операция таңбалары; тұрақтылар; бөлгіштер (жақша, нүкте, үтір, бос орынды символдар). С++ тілінің мүмкіндіктері:
oo класстар, конструкторлардеструкторлар.
oo класс шаблондары. Стандартты кітапханалар.
oo туынды класстар. Абстрактілі класстар.
oo операторларды қайта жүктеу.
oo орындалу кезінде типтік ақпаратқа қол жетімдік.
Препроцессор директивасы # таңбасымен басталады және соңынан нүктелі үтір (;) қойылмайды. Түрлері: 1) #include директивасы.
Бұл программаға көрсетілген файлдағы мәліметтерді қосады. Бұл директиваның екі формасы бар:
#include "басты файл "
# include басты файл Егер файл аты тырнақшада берілсе, онда файл сәйкес көрсетілген маршрутпен анықталатын орыннан, ал ол көрсетілмесе жұмысшы каталогтан ізделеді. Егер файл аты бұрыштама жақшада ( ) берілсе, онда файл стандартты директориядан ізделеді.
Басты тақырыптық файлдар: iostream.h, assert.h, float.h, math.h, ctype.h, limits.h, setjmp.h, errno.h, locale.h, signal.h, stdarg.h, stddef.h, stdlib.h, string.h, time.h. 2) #define директивасы. #define - директивасы жиі қолданылатын тұрақтыларды, қызметші сөздерді, операторларды және өрнектерді кейбір идентификаторлармен ауыстыруға мүмкіндік береді. Мысалы, #define WIDTH 80 #define LENGTH (WIDTH+10) бұл директивалар программадағы әрбір WIDTH сөзін 80 санына, ал LENGTH сөзін (80+10) өрісіне ауыстырады. 3) #undef директивасы. Бұл директива #define директивасы қызметін қайтаруға қолданылады. Яғни, көрсетілген идентификаторларға қолданылатын #define анықтамасы қызметін болдырмайды.
2.Ағымдық енгізу шығару же оларды пайдалану.C++тілінің ерекшеліктері
Программалаудың көмегімен есептеулер жүргізуге, мәтіндерді өңдеу, графикалық бейнелерді тұрғызу,мәліметтерді сұрыптау және іздеуді жүзеге асыруға болады. С++ тілінде iostream.h тақырыптық файлында анықталған енгізу-шығару операторлары (cin, cout) бар. С тілінде айнымалылар арнайы форматтар мен типтері анық көрсетілу арқылы орындалса, С++ тілінде - операторы мәлімет типін және форматын таңдайды, ал - операторы қабылданатын мәннің адресін, форматын анықтайды. С++-те де үш ағымдық класс қарастырылған: istream - енгізу; ostream - шығару; iostream - енгізу-шығару. Шығару: С-де: printf (" бүтін сан = %d, нақты = %f", ia, fb); Си++-те: cout "бүтін сан" ia " нақты = " fb; Енгізу: Си-де scanf ("%d %f", &ia, &fb); Си++-те: cin ia fb; Бұл жолдарда endl манипуляторы тіркелуі мүмкін. Мысалы, cout "бүтін сан = " іаendl; Манипулятор дз -ағымға қатысты нақты әрекет орындайтын арнайы функция. endl манипуляторы - жаңа жол символын қоюмен қатар ағым буферін тазартады.
Ағымдық енгізу-шығаруды пайдалану
Cи:
С++:
#include stdio.h
#include iostream.h
#include math.h
#include math.h
void main()
main()
{float a, b, c, p, s
{float a, b, c, p, s
printf("na="); scanf("%f",&a);
cout"na="; cina;
printf("\nb="); scanf("%f",&b);
cout"\nb="; cinb;
printf("\nc="); scanf("%f",&c);
cout"\nc="; cinc;
p=(a+b+c)2;
p=(a+b+c)2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("\nүшбұрыш ауданы=%f", s); }
cout"\nүшбұрыш ауданы=", s); }
Айнымалыларды хабарлаудың негізгі формасы- ның түрі: Тип айнымалылар_тізімі; Мысалы: int x , y, z; Сипаттау кезінде айнымалыға бастапқы мән беруге болады, оны инициализация деп атайды. Инициализаторды екі түрлі формада беруге болады: теңдік белгісімен =мән немесе жай жақшамен (мән). Тұрақты хабарлау кезінде инициализациялануы тиіс. Мысалы: const char с=`с'; Блок ішінде анықталған айнымалы жергілікті, ал блок сыртында анықталған айнымалы ауқымды деп аталады. Кез-келген программада есептеулер жүргізіледі. Мәндерді есептеу үшін өрнектер қолданылады. Өрнектер операндтардан, операция таңбаларынан, жақшалардан тұрады. Әрбір операнд өз кезегінде өрнек, болмаса оның жеке жағдайы - тұрақты немесе айнымалы болып табылады. Өрнектің нәтижесі мәнмен немесе типпен сипатталады.
3.Тіл құрамы, тіл алфавиті, түсініктемелері
Кез-келген тілдегі мәтінде төрт негізгі элементті бөліп көрсетуге болады: символдар, сөздер, сөз тіркестері және сөйлемдер. Алгоритмдік тіл де осындай элементтерден тұрады: символдар, лексемалар, өрнектер, операторлар. Лексемалар символдардан, өрнектер лексемалардан және символдардан, ал операторлар символдардан, лексемалардан, өрнектерден тұрады (1-сурет):
+ Символдар- негізгі бөлінбейтін таңбалар;
+ Лексема- өзіндік мағынасы бар тіл бірлігі;
+ Өрнек- қандай да бір мәннің есептелу ережесі;
+ Оператор- қандай да бір істің аяқталған сипаттамасы.
Алгоритмдік тіл құрамы
Операторлар
Өрнектер
Символдар
Лексемалар
(1-сурет)
Тіл алфавиті: бас және кіші латын әріптері; 0-ден 9-ға дейінгі араб цифрлары; Арнайы белгілер: [] {} , . ( ) + - * \ % ; : ? = ! & # ^ " ' ; бос орынды символдар: бос орын (пробел), табуляция символы, жаңа жолға көшу символы. Символдардан лексемалар құралады: идентификаторлар; түйінді сөздер; операция таңбалары; тұрақтылар; бөлгіштер (жақша, нүкте, үтір, бос орынды символдар) Идентификаторлар - программалық объектінің аты. Әріп немесе сызық таңбасы идентификатордың бірінші символы болуы мүмкін, бірақ цифр бола алмайды. Түйінді сөздер - компилятор үшін арнайы мәні бар резервтелген идентификаторлар. Операция таңбалары - операндтарға қолда- нылатын бір немесе бірнеше символдар. Тұрақтылар - өзгермейтін шамалар. Комментарийлер - компилятор үшін маңызы жоқ программаның бөлігі және программа мәтінін оқу ыңғайлы болуы үшін қолданылады. Ол символынан басталады.
4.Идентификаторлар.Түйінді сөздер.Тұрақтылар
Кез-келген тілдегі мәтінде төрт негізгі элементті бөліп көрсетуге болады: символдар, сөздер, сөз тіркестері және сөйлемдер. Алгоритмдік тіл де осындай элементтерден тұрады: символдар, лексемалар, өрнектер, операторлар. Лексемалар символдардан, өрнектер лексемалардан және символдардан, ал операторлар символдардан, лексемалардан, өрнектерден тұрады: Символдар- негізгі бөлінбейтін таңбалар; Лексема- өзіндік мағынасы бар тіл бірлігі; Өрнек- қандай да бір мәннің есептелу ережесі; Оператор- қандай да бір істің аяқталған сипаттамасы
Тіл алфавиті:
+ бас және кіші латын әріптері;
+ 0-ден 9-ға дейінгі араб цифрлары;
+ Арнайы белгілер: [] {} , . ( ) + - * \ % ; : ? = ! & # ^ " '
+ бос орынды символдар: бос орын (пробел), табуляция символы, жаңа жолға көшу символы. Символдардан лексемалар құралады: идентификаторлар; түйінді сөздер; операция таңбалары; тұрақтылар; бөлгіштер (жақша, нүкте, үтір, бос орынды символдар). Идентификаторлар - программалық объектінің аты. Әріп немесе сызық таңбасы идентификатордың бірінші символы болуы мүмкін, бірақ цифр бола алмайды. Түйінді сөздер - компилятор үшін арнайы мәні бар резервтелген идентификаторлар.Операция таңбалары - операндтарға қолда- нылатын бір немесе бірнеше символдар. Тұрақтылар - өзгермейтін шамалар. Комментарийлер - компилятор үшін маңызы жоқ программаның бөлігі және программа мәтінін оқу ыңғайлы болуы үшін қолданылады. Ол символынан басталады.
5.Функцияларды хабарлау, анықтау. Функцияның параметрлері. Рекурсивті функция
Функция дегеніміз - белгілі бір операциялар тобын атқаратын программа блогы. Функцияға мəліметтер береміз де, одан белгілі бір нəтижелер аламыз. Функцияның ішкі əрекеті программаның басқа бөліктеріне қатыссыз орындалады. Програмада кем дегенде, бір функция болады жəне программадағы бір функцияның аты main болуы тиіс. Программаның орындалуы осы main функциясынан басталады. Main функциясының орындалуы барысын- да басқа функциялар шақырылады, ал олар одан да басқа функцияларды шақыруы мүмкін. Функция мынадай жалпы түрде сипатталады: [функция типі] функция аты ([формальды параметрлер спецификациясы]) функция тұлғасы; мұндағы [функция типі] - функцияның есептелетін нəтижесі типі; функцияның аты - функция идентификаторы, яғни аты; формальды параметрлер спецификациясы - бұл болмауы да мүмкін (void) немесе əрбір параметр спецификациясы: типі параметр аты - формальды параметрлердің типтерін жəне идентификаторларын анықтайды; функция тұлғасы - орындалатын операторлар тізбегі жəне оның ішінде локальді айнымалының сипатталуы болуы мүмкін. Сонымен, функцияны хабарлау оның прототипін - аты жəне параметрлері саны мен типін программалық файлдың алдында жариялау болып табылады. Функцияны осылайша хабарлауды былай да көрсетуге болады: нəтиже_типіфункция_аты(типі айнымалы ,..., типі айнымалы); Егер жай жақша ішінде жазылатын айнымалылар идентификаторлары көрсетілмесе, онда компилятор оларға арнап компьютер жадында тек орын қалдырады. Мұнда функция тұлғасы жайлы сөз болмайды. Си тілінде функция өзін өзі шақырып та пайдалана алады, мұндай функция рекурсивті деп аталады. Берілген n бүтін санының факториалын есептейтін (n!=1⋅2⋅3⋅...⋅n) рекурсивті функция мысалы:
fakt (int n)
{int b;
if (n == 0) return 1;
b = fakt(n-1)*n;
return n;}
Осы функцияны енгізілген n мəні үшін кез келген бүтін санның факториалын есептеуде қолданудың толық программасы төмендегі мысалда келтірілген.
6.Негізігі мәліметтер типтері.Унарлы, бинарлы, тернарлы операциялар
Негізігі мәліметтер типтері: Char- символдық, яғни таңбалық тип.Ұзындығы 8 бит-1 байт. Диапазогы -128...+127. Float-нақты ман типі,яғни жылыжымалы нүктелі санр. Ұзыныдғы 32бит 4байт,сандар дипазоны 3,4*10-38...3,4*1038. Double-2еселенген нақты сан типі. Ұзындығы 64 бит 8байт.Диапазоны 1,7* 10-308 ... 1,7* 1038. Int- бүтін сан типі.Ұзыдығы 16 бит 4 байт.Диапазоны -32768...32767. Операндр - үстінен әрекет жүргізілетін деректер.Операнд ретінде тұрақтыр, массив әрекеттері(литералдар),айнымалыр, массив әрекетті мен функцияларды айтуға бы. Операнд операцияға жүргізілетін әрекеттерді анықтайды.Операцияр: Бинарлы;Унарлы; Тернарлы.Унарлы операция бір операндқа тиісті және оның белгісі операнд алдынан жазылады. Унарлы операциялар:
oo Арифметикалық теріске шығару
~ логикалық теріске шығару
логикалық теріске шығару
*бағыттау(жанама бағыттау)
& адресті есептеу
+ унарлы қосу
++ арттыру(инкремент)
oo Кеміту(декремент)
Size of - өлшем. Бинарлы операция екі операциялар арасындағы қатынасты өрнектейді және оның белгісі операндтар арасына жазылады, мысалы: X+Y. Бинарлы операциялар:
* Аддитивті операциялар:
= меншіктеу
+= меншіктеу қосынды
-= меншіктеу айырмасы
* Мультипликативті опрациялар:
*= меншіктеу көбейтіндісі
= меншіктеу бөлу
%= қалдықты меншіктеу
* Жылжыту операциялары:
солға жылжыту
оңға жылжыту
* Разрядты операциялар:
= кіші не тең
= үлкен не тең
кіші
үлкен
== тең
!= тең емес
!=0 ақиқат
==0 жалған.
Тернарлы операциялар.Операнд бір нақты болу керек. Егер операнд бір нөлге тең болмаса, онда операнд еі есептелінеді және бұл операция жауабы болып табылады.
Ескерту:операнд 2же 3есептелуде, бірақ бір мезетте 2 операнд бірдей есептелмейді.Нәтиже типі операнд 2 же 3ке байланысты өзгереді
1. Егер операнд 2 және 3 бүтін анықталмаған тип болса, онда арифметикалық өзгертулерден кейінгі типі болады.
2. Егер операнд 2 және 3 құрылымының түрі біріктіру немесе нұсқағыш болса, нәтиже типі құрылымның типі болып табылады.
3. Егер екі оперенд типтері Void болса, нәтиженің де типі Void болады.
4. Егер бір операнд кез келген типтегі нұсқағыш болса, ол басқа операнд Void нұсқағышта болса, онда нұсқағыш Void нұсқағышқа ауысады және осы нәтиже типі болады.
5. Егер операндта нұсқағыш болса, ал екінші операнд 0ге тең тұрақты болса, онда нұсқағыш типі болады.
7.Программа құрылымы, Айнымалылар мен өрнектер.
С++ тіліндегі программа препроцессор директивасынан, сипаттамалардан және функциялардан тұрады. Программа құрылымы:
препроцессор директивалары сипаттамалар
int main ()
{бас функция операторлары} Программадағы бір функция main болуы тиіс. Программаның орындалуы осы функцияның бірінші операторынан басталады. Функцияның қарапайым анықталуының форматы:
қайтарылатын_мәннің_типі аты ([параметрлер])
{функция денесінен құрайтын операторлар} Функция қандай да бір мәнді есептеуден басталады, сондықтан оның типі көрсетілуі керек.Қажетті мағлұматтар:
- егер функция мән қайтармаса, void типі көрсетіледі;
-функция денесі блок болып табылады, сондықтан фигуралы жақшаға алынады;
-әрбір оператор үтір-нүктемен аяқталады.
Айнымалыларды хабарлаудың негізгі формасы- ның түрі: Тип айнымалылар_тізімі; Мысалы: int x , y, z; Сипаттау кезінде айнымалыға бастапқы мән беруге болады, оны инициализация деп атайды. Инициализаторды екі түрлі формада беруге болады: теңдік белгісімен =мән немесе жай жақшамен (мән). Тұрақты хабарлау кезінде инициализациялануы тиіс. Мысалы: const char с=`с'; Блок ішінде анықталған айнымалы жергілікті, ал блок сыртында анықталған айнымалы ауқымды деп аталады. Кез-келген программада есептеулер жүргізіледі. Мәндерді есептеу үшін өрнектер қолданылады. Өрнектер операндтардан, операция таңбаларынан, жақшалардан тұрады. Әрбір операнд өз кезегінде өрнек, болмаса оның жеке жағдайы - тұрақты немесе айнымалы болып табылады. Өрнектің нәтижесі мәнмен немесе типпен сипатталады.
8.if, switch Тармақталу операторлары.Шартты оператордың құрылымдық сұлбасы
Кез-келген күрделі есептерді шығару кезінде үш құрылымнан (реттік, тармақталу, цикл) тұратын программаны құруға болады. Оларды құрылымдық программалаудың базалық құрастырғыштары деп атайды. Қандай да бір шарттың орындалуынан тәуелді құрастырғышты тармақталу деп атаймыз.
Тармақталу
Тармақталу операторлары: if, switch.
if шартты операторы есептеу үрдісінің екі бағытта тармақталуы үшін қолданылады. Оператор форматы: if (өрнек) оператор_1; [оператор_2;]
Үтір (,) операторы - бір жолда жазылған 2 өрнекті тізбектеп орындауға мүмкіндік береді. Нәтижесінде үтірдің оң жағында орналасқан өрнектің мәні қабылданады. switch операторы есептеу үрдісін бірнеше бағытта тармақтау үшін арналған. Оператор форматы:
switch (өрнек) {
case тұрақты өрнек_1: [1_ оператор_ тізімі]
case тұрақты өрнек_2: [2_ оператор_ тізімі]
...
case тұрақты өрнек_n: [n_ оператор_ тізімі]
[default: операторлар] }
9.for, do while, while циклдік операторлары
C++ тілінде үш циклдік оператор бар: Жазылу форматтары:
while (өрнек) оператор
do оператор while өрнек;
for (инициализация; өрнек; модификация) оператор;
Шарты алдын ала тексерілетін цикл схемасы:
Оның жазылуы:
While ( шарт-өрнек)
{1 оператор;
2 оператор;
... ..
N оператор;}
Мұнда шарт-өрнекке кіретін айнымалы цикл ішінде өзгеріп отырады.
Арифметикалық прогрессия сияқты For операторының жазылуы:
for(x=x0;x=xk;x+=dx) x = xk
1-оператор;
{1-оператор;
2-оператор;
. . .
n-ператор; }
Мұндағы өрнек1: x=x0; - цикл айнымалысының бастапқы мəні, өрнек2: x=xk; - циклдің қайталану шарты, өрнек3: x+=dx - цикл айнымалысының қадам мөлшеріне артуы.
For цикл операторында бір немесе бірнеше өрнектерді жазбауға да болады, бірақ мұндайда ; символын міндетті түрде өз орындарына жазып отыру керек.
Шарты соңынан тексерілетін do ... while циклінің схемасы
Жалпы жазылу түрі:
do
{1-оператор;
2-оператор;
... ... ...
n-оператор;}
while (өрнек);
Do ... while циклінде шарт соңында тексерілетін болғандықтан, оның тұлғасы ең болмағанда бір рет орындалады. Цикл соңында жазылған while(өрнек) өрнек ақиқат болса
(немесе 0-ге тең болмаса), цикл тұлғасы қайтадан орындалады. Ал өрнек жалған болса (немесе 0-ге тең болса), цикл аяқталады.
10. Goto, Break, continue, return басқаруды беру операторлары
С++ тілінде 4 басқаруды беру операторы бар:
+ goto шартсыз өту операторы;
+ break циклдан шығу операторы;
+ continue циклдың келесі итерациясына көшу операторы;
+ return функциядан қайтару операторы.
Циклдік операторлар: while, do while, for. Басқаруды беру операторлары: goto, break goto шартсыз өту операторының форматы: goto белгі;
мұндағы белгі - оператор нөміріне ұқсас ерекше белгі, яғни идентификатор. Бұл оператор бірінің ішіне бірі енгізілген бірнеше цикл жиынынан (мəлімет-тер арасында қателер кездессе) бірден сыртқа шығып кету керек болған кезде қолданылады. Мұндайда break операторын пайдалана алмаймыз. break циклдан шығу операторы цикл операторларының ішінде қолданылады немесе switch операторынан шығуды қамтамасыз етеді. Егер бұл оператор бірі-
нің ішіне бірі енгізілген қабаттасқан цикл ішінде орналасса, онда ол ішкі циклдан оның сыртқы циклына шығуды ғана жүзеге асырады. continue циклдың келесі итерациясына көшу операторы цикл денесінің аяғына дейінгі операторларды бос жіберіп, басқаруды келесі итерацияға береді. return функциядан қайтару операторы функцияның орындалуын аяқтап, басқаруды шақыру нүктесіне береді
11.Нұсқауыштар мен жиымдар.Екі өлшемді жиымдар
Массив немесе жиым - бір типтегі элементтердің реттелген жиыны. Олар бір атаумен - идентификатормен аталады да, индексті айнымалы ұғымына сəйкес келеді. Нұсқауыш мəліметтердің адресін сақтайтын айнымалы болып табылады. Жалпы алғанда, нұсқауыш адрестің символдық кескінделуі болып саналады. Қарастырылатын мысалда &sum - sum атты айнымалыға сілтейтін нұсқауыш болып табылады. Нақты адрес ретінде белгілі бір сан тұрады, ал &sum нұсқауыш типті константа болып табылады. Си тілінде нұсқауыш типті айнымалылар да бар. Нұсқауыш типті айнымалылар мəні болып белгілі бір шаманың адресі саналады. Нұсқауыш типті айнымалыны сипаттағанда берілген нұсқауыш қандай типті айнымалыға сілтейтінін көрсету қажет. Өйткені əр түрлі типті айнымалыға ЭЕМ жадында ұялардың əр түрлі саны бөлініп беріледі.Си тілінде нұсқауыштармен мынадай операциялар орындауға болады:
-нұсқауышқа алғашқы мəн ретінде бір объект адресін не нөлді (\0) меншіктеуге болады;
-нұсқауыш мəнін бірге арттыруға, кемітуге болады; (++ , --)
-нұсқауыш мəніне бүтін сан қосуға немесе алуға болады;
-екі нұсқауыш мəнін салыстыруға болады (= =, != операциялары);
-бір нұсқауыш мəнінен екінші нұсқауыш мəнін (егер олар бір типте болса) алуға болады. Арифметикалық операциялар орындалар кезде компилятор жадыдағы алатын орындары нұсқауыштардың əр түрлі екенін есте сақтайды.
Екі өлшемді жиымды - матрицаны пайдалану үшін тік жақшалар ішінде олардың екі өлшемінің де енін көрсету керек. Си тілінде екі өлшемді жиым былай сипатталады:
[жады класы] типі
жиым аты [1-өлшемі][2-өлшемі]
Жиым элементтері типі ескеріліп, олардың көлеміне жеткілікті етіп жиым үшін компьютер жадында қажетті орын бөлініп беріледі немесе жиымның аты осы аймақтың басына сілтейтін нұсқауыш типті константа болып табылады.
12.Қатарлар. Қатарларға қолданылатын функциялар
Қатар - нөл-символмен аяқталатын символдар массиві. С++-те қатармен жұмыс істеуді 2мүмкіндігі бар:С библиотекасынан (string.h не cstring) мұрагерлікке қалған функциялар және С++-тің string библиотекалық класы. С-дан мұрагерлікке қалған функциялар қолдану кезінде ыңғайсыз же қауіпті, сі олар қатардың шекарадан шығып кетуін қадағаламайды. string типті қатары ақпараттың шекарадан шығып кетуінен қорғалған және операциялар көмегімен жұмыс істеуге бы. string класының функциялары: Қатардың бөлігін қосу және меншіктеу
Бір қатардың бөлігін екінші қатарға меншіктеу үшін assign функциясы қолданылады
assign (const string&str);
assign (const string&str, size_type pos, size_type n);
assign (const char*s, size_type n);
Бір қатардың бөлігін екінші қатарға қосу үшін append функциясы қолданылады
append (const string&str);
append(const string&str, size_type pos, size_type n);
append (const char*s, size_type n);
Қатарларды түрлендіру
Бір қатардың бөлігін екіншісіне қою үшін insert функциясы қолданылады\
insert (size_type pos1, const string&str);
insert (size_type pos1, const string&str, size_type pos2, size_type n);
insert (size_type pos, const char*s, size_type n);
Қатардың бөлігін жою үшін erase функциясы қолданылады
erase (size_type pos=0, size_type n=npos); Ол pos позициясынан бастап шақырылған қатардың n элементін жояды. Егер позиция көрсетілмесе, онда қатардың басынан бастап жояды. Бүкіл қатарды тазалау қызметін clear функциясы атқарады: void clear(); Қатардың бөлігін ауыстыру үшін replace функциясы қолданылады
replace (size_type pos1, size_type n1, const string&str);
replace (size_type pos1, size_type n1, const string&str, size_type pos2, size_type n2);
replace (size_type pos1, size_type n1, const char*s, size_type n2);
2 қатарды бір-бірімен алмастыру үш.swap функ.қолд. swap (string&s);
Қатардың бөлігін бөліп алу үшін substr функциясы қолданылады
string substr (size_type pos=0, size_type n=npos) const;
string типті объектілерді ескі стильдегі қатарға түрлендіру үшін c_str функциясы қолданылады const char*c_str() const;
Қатардың құрамын іздеу size_type find(const string&str, size_type pos=0) const; Шақырылған қатардан pos позициясынан бастап str қатарының сол жақтан енуін іздейді және егер қатар табылмаса, онда қатардың позициясын немесе npos-ны қайтарады size_type find(char c, size_type pos=0) const; Шақырылған қатардан pos позициясынан бастап с символының сол жақтан енуін іздейді же егер қатар табылмаса,онда қатардың позициясын не npos-ны қайтарады. Шақырылған қатардан pos позициясына дейін str қатарының оң жақтан енуін іздейді же егер қатар табылмаса, онда қатардың позициясын не npos-ны қайтарады.
size_type rfind(char c, size_type pos=npos) const; Шақырылған қатардан pos позициясына дейін с символының оң жақтан енуін іздейді же егер қатар табылмаса,онда қатардың позициясын не npos-ны қайтарады. Қатардың бөліктерін салыстыру үшін compare функциясы қолданылады.
size_type rfind(const string&str, size_type pos=npos) const;
int compare (const string&str) const;
int compare(size_type pos1, size_type n1, const string&str) const;
int compare(size_type pos1, size_type n1, const string&str, size_type pos2, size_type n2 ) const;
13 . typedef, enum Қолданушы анықтайтын мәліметтер типтері:
С++ тілі программистке өз мәліметтер типін және олармен жұмыс істеу ережелерін анықтауға мүмкіндік береді. Қолданушы анықтайтын мәліметтер типтері: typedef, enum, struct, union. Программа анығырақ болу үшін typedef түйінді сөзінің көмегімен типке жаңа ат беруге болады: typedef тип жаңа_ ат [өлшемі]. typedef тип үшін тип спецификаторын анықтайды. Бұл хабарлау қолданушы анықтаған типтерге қысқа және мағыналы аттар беру үшін қолданылады.
Мысалы: typedef char name [100];
name str[10]; 100 символды 10 қатардан тұратын жиым
Программа жазу кезінде әр түрлі мәнді бірнеше тұрақтыны анықтау қажет болады. Ол үшін тізімделген мәліметтер типін қолданған жөн.
Форматы:
enum [тип_ аты] {тұрақтылар тізімі};
14.Қолданушы анықтайтын мәліметтер типі:құрылым, біріктіру(struct, union)
С++ тілі программистке өз мәліметтер типін және олармен жұмыс істеу ережелерін анықтауға мүмкіндік береді. Қолданушы анықтайтын мәліметтер типтері: typedef, enum, struct, union. Жиым элементтері бір типті болса, ал құрылым элементтері әр түрлі типті болады. struct типі бірнеше компоненттерді бір айнымалыға біріктіруге мүмкіндік береді. С++ тілінде құрылым класс түрі болып табылады, бірақ оны көп жағдайларда С тілінде анықталғандай қолдану жеткілікті.
Форматы:
struct [тип аты]
{ 1_тип 1_ элемент;
2_тип 2_ элемент;
... ... ... ... ... ..
n_тип n_элемент;}[сипаттамар тізімі];
Құрылымның мүшелеріне (.) арқылы енуге болады. Мысал ретінде пәтерді сипаттаушы құрылымды қарастырайық. Бұл құрылым төмендегі белгілерді сақтайды: бөлмелер саны, пәтер ауданы, нөмірі, пәтер қожайыны.
Struct apartment
{int count_rooms;
int area;
int number;
char fio[20]; };
Мұндағы struct - түйінді сөз, apartment ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz