- •1.Си программалау тілі туралы түсінік
- •2.Сызықтық құрылымды алгоритм. Мысал.
- •3.Си тілінде жазылған программаның құрылымы
- •4.Файлдармен жұмыс
- •5.Си тілінің қарапайым элементтері
- •6.Берілгендерді енгізу операторлары. Мысал
- •7.Float және double жылжымалы нүктелі нақты сандар типтері
- •8.Файлға мәлімет жазу және оқу
- •10. Графикалық режим орнату, одан шығу, мәтін жазу, сызық салу функциялары
- •11.Си тілндегі негізгі операторлар
- •12.Си программасын орындау ортасы
- •13.Программа жұмысын басқару операторлары
- •14.While операторы. Қолдану мысалдары
- •15.Шартты операторлар
- •16.Бүтін сан түріндегі мәліметтерді сипаттау
- •18. Екі өлшемді массивтер.Мысалдары.
- •19.Тұтынушы функциясын пайдалану
- •20. Блок-схема және оның қызметі
- •21. Алгоритмнің циклдік құрылымы
- •22.Айнымалылардың әрекет ету аймағы
- •23.Do... While цикл операторы
- •24.Массив дегенымыз- реттелген бір текті элементтердің жиыны
- •25.Таңдау операторлары - бұлар шартты оператор және ауыстырғыш.
- •26.Құрылымдарды пайдалану
- •27.Си тілінде кездейсоқ сандарды пайдалану
- •28.Қарапайым программа.Препроцессор.
- •29.1.Массивтерді өңдеу есептерінің түрлері (кластары)
- •30.Символдық тіркестер (жолдар, қатарлар)
- •32.Блок-схемада қолданылатын геометриялық фигуралардың атқаратын қызметі
- •33.Массивті сұрыптау (іріктеу, реттеу).
- •34. Си тілінің графиктік операторлары.
- •35. Жай алмастыру арқылы сұрыптау.
- •36. Бір өлшемді массивтер және оларды енгізу, шығару
- •37. Адрестік операциялар
- •38. Printf () функциясы
- •39. Массивтер және массивтерге қолданылатын нұсқауыштар
- •40. Бір өлшемді массивтер және оларды енгізу, шығару
- •41.Нұсқауыштарға қолданылатын операциялар
- •42.Return () функциясы
- •43.Көрсеткіштерді пайдаланып жиымдармен жұмыс істеу
- •44.Тақырыпта қолданылатын стандартты файлдар
- •45.Символдық тіркестер
- •46.Getch() функциясы
- •47. Матрицаның барлық элементтерін өңдейтін алгоритмдер
- •48. Басқарушы символдар
- •49. Символдық таңбаларды енгізу/шығару
- •50. Формат символдары
- •51. Сөз тіркестерін енгізу және шығару функциялары
- •52. Препроцессордың қызметі
3.Си тілінде жазылған программаның құрылымы
Кез келген программа бір немесе бірнеше функциялардан тұрады. Олар программа құруға керекті негізгі модульдер болып табылады. Кез келген программаның жазылған алғашқы мәтіні бастапқы код деп аталады. Оны біріктірілген программалау ортасында теріп, сонан соң компилятор арқылы машиналық кодқа түрлендіріп орындаймыз.
Сонымен, Си программасы бірнеше функциялардан (main, f1, f2…) құралады және олардың біреуі міндетті түрде main() болуы қажет.
Қарапайым программаның мысалын қарастырайық. Жалпы кез келген функция оның тақырыбы мен тұлғасынан (денесінен) тұрады.
Алдымен программа препроцессор арқылы өңделіп, оның директиваларын (командаларын) орындайды. Мұнда программаға тақырыптық файлдар – программаға қосымша элементтер енгізетін мәтіндік файлдар жазылады. Олар мәліметтерді енгізу/шығару операцияларын немесе экран сипаттамаларын өзгерту үшін қажет.
Программадағы кез келген функция тақырыбы препроцессордың директивасынан және функция атынан тұрады. Функция атына жалғасып, жақша ішіне параметрлер жазылуы мүмкін, кейде параметрлер болмайды, ондайда жақша ішіне ешнәрсе жазылмайды.
Препроцессор директивалары
Си тілінің препроцессоры - макропроцессор, компиляцияның нөлдік фазасында бастапқы файл үшін қолданылады. Препроцессор директивалары - Си тіліндегі алдыңғы программада жазылған инструкциялары. Директивалары программаның кез келген жерінде жазылуы мүмкін, бірақ олардың әрекеттері программаның жазылған нүктесінен ғана басталады.
Атауланған константалар және макроанықтаулар
#define директивасы жиі қолданылатын константаларды, шешуші сөздер, операторларды түсінікті сөздермен аустыру үшін қолданылады.
Сандық және мәтіндік константаларды ауыстыратынидентификаторлар атауланған константалар деп аталады.
Си тілінің әрекеттер тізбегі операторлар тізбегі түрінде берілгенидентификаторлар макроанықтаулар деп аталады. Макроанықтауларда аргументтер болуы мүмкін. Макроанықтауға жолығу программадамакрошақыру деп аталады.
#undef директивасы атуланған константанаң ағымдық анықтамасын тоқтатады. Тек анықтау тоқтатылғаннан кейін ғана атауланған константаға басқа мән сәйкестендіріле алады.
#define директивасы
#define <идентификатор> <мәтін>
#define <идентификатор>(<параметрлер тізімі>) <мәтін>
Директива барлық <идентификаторлар> болған файлында <мәтінге> ауыстырады.
Бұл процесс макроподстановка деп аталады. Егерде олөзімен өзгеше лексем түрінде болса, осы жағдайда ғана <Идентификатор> өзгертіледі.
Мысалы, егер <идентификатор> жол бөлігі немесе одан әрі ұзын идентификатор болып табылса, онда ол өзгертілмейді. Егер <идентификатордан> <параметрлер тізімі> жүрсе, онда директива аргументтермен макроанықтаманыанықтайды.
<Мәтін> өзімен лексемдер теруін ұсынады, оның құрамына кілттік сөздер, константтар, идентификаторлар немесе өрнектер кіреді. Егер <мәтін> жолға симайтын болса, онда онда ол келесі жолда жалғастырылады; ол үшін бірінші жол соңында кері слеш \ қойылады.
Егер < параметрлер тізімі > тапсырылса, үтірлермен бөлінген бір немесе идентификатор құрайды. Тізімде идентификаторларбір-бірінен өзге болу керек. Олардыңқозғалу обласыолардың тапсырылуымен макроопределенияменшектелген. Тізім дөңгелек жақшалармен аяқталуы керек. <Мәтінде> формалды параметрлерді макрошақырудағы фактылық аргументтер позициясымен белгіленеді.
Макрошақырудаидентификатор соңымен дөңгелек жақшада <параметр тізіміндегі> формалды параметрлер құрамынан фактылық аргументтер жазылады.
#define директивасында <Мәтін> құрамында басқада макроанықтамаларжәне констант атаулары қойылуы мүмкін. Олардың өсуіосы мәтін <идентификатор> өсуімен ғана болады, ал #define директивасының анықтамасында емес.
Макроподстановка орындалғаннан соң алынған жол тағы да басқада констант және макроанықтамалар атауларын іздеуіне қарастырылады. Қайталанып қаралғаннан ерте құралған макроподстановканы қарау қабылданбайды. Сондықтан директива
#define x x
препроцессор зацикливаниясына әкелмейді.
Макроподстановажәне макроанықтамалар мысалдары:
#define WIDTH 80
#define LENGTH (WIDTH+10)
#define FILEMESSAGE "файлды құру мүмкіндігі дұрыс емес болды"
#define MAX(x,y) ((x)>(y)) ? (x):(y)
#define MULT (a,b) ((a)*(b))
#undef директивасы
#undef <идентификатор>
Директива <идентификатор> үшін #define болған анықтама қозғалысын тоқтатады. #undef директива әсерімен макроопределенияны тоқтату үшін оның идентификаторын беру жеткілікті. Параметр тізімінің тапсымасы қажетті емес.
#undef директивсын бұрын анықталған идентификаторға енгізу қате емес.
Директивада кейбір бұрын анықталған идентификатордың өткен программа обласын құрау үшін қолданылады .
