СИ тіліндегі директивалар және оларды пайдалану


СИ тіліндегі директивалар және оларды пайдалану
- СИ тілінің сипаттамасыСИ тілінің элементтері. Қолданылатын таңбалар.
СИ тілінде қолданылатын таңбалардың көпшілігін бес топқа бөлуге болады.
1. Өзекті сөздерді және идентификаторларды түзуге қолданылатын таңбалар (1-кесте) . Бұл топқа ағылшын алфавитінің бас және кіші әріптері, сондай-ақ асты сызылған таңбалар енеді. Бірдей бас және кіші әріптер әртүрлі таңбалар болып саналатындығын ескеру керек, өйткені олар әртүрлі кодқа ие.
1-кесте
2. Орыс алфавитінің бас және кіші әріптерінің тобы және араб цифрлары (2-кесте) .
2-кесте
3. Нөмірлеу белгілері және арнайы таңбалар (3-кесте) . Бұл таңбалар бір жағынан есептеу процесін ұйымдастыру үшін, ал басқа жағынан белгілі терудің нұсқауын компиляторға беру үшін қолданылады.
3-кесте
4. Басқаратын және бөлетін таңбалар. Бұл топқа: ашық жер, табуляция таңбалары, жолды ауыстыру, каретканы қайтару, жаңа бет және жаңа жол таңбалары жатады. Бұл таңбалар бір-бірінен пайдаланушы анықтайтын объектілерді бөледі, оларға тұрақтылар және идентификаторлар жатады. Бөлу таңбаларының бір ізділігін құрастырушы бір таңба ретінде қарастырады (ашық жер бір ізділігі) .
5. Бөлініп көрсетілген топ таңбаларынан басқа СИ тілінде басқаратын бір ізділік деп аталатын, сондай-ақ енгізу және шығару функцияларында қолданылатын арнайы таңбалы комбинациялар кеңінен пайдаланылады. Басқаратын бір ізділік (\) кері бөлшек сызықты (міндетті түрдегі бірінші таңба) және латын әріптері мен сандарының комбинациясын қолдану негізінде құрылады (4-кесте) .
4-кесте
\ddd және \xddd (мұнда d санды білдіреді) түрлерінің бір ізділігі ПЭВМ теру кодтарынан символды сегіздік тізбек немесе он алтылық сәйкес сан бір ізділігі ретінде қарауға мүмкіндік береді. Мысалы, каретканы қайтару таңбасы әртүрлі жолдармен көрсетуі мүмкін:
\r - жалпы басқаратын бір ізділілік,
\015 - сегіздік басқаратын бір ізділік,
\x00D - он алтылық басқаратын бір ізділік.
Жол тұрақтыларында әрқашан да міндетті түрде барлық үш санды басқару жүйесінде беру қажеттігін ескерген жөн. Мысалы, жеке басқаратын жүйелілікті \010 немесе \хА деп көрсетуге болады, бірақ жол тұрақтыларында барлық үш санды көрсету керек, өзге жағдайда таңба немесе таңбалар келесі басқару жүйелілігінің жетіспейтін бөлігі ретінде қарастырылады. Мысалы:
“ABCDE\x009FGH” берілген жолдың команда СИ тілінің белгілі функциясын қолданып басылады, 8 ашық жермен бөлінген ABCDE FGH екі сөз сияқты, бұл жағдайда егер толық емес басқару жолын “ABCDE\x09FGH” көрсетсе, онда басылымда ABCDE=/=GH пайда болады, өйткені құрастырушы тізбек \x09F-ті “=+=” таңбасы ретінде қабылдайды.
Бұл жағдайды көрсете кетейік, егер теріс бөлшек сызық басқаратын жүйелілік болмайтын және сан болмайтын таңбаның алдында болса, онда бұл сызық ескерілмейді, ал таңбаның өзі литералды түрде көрсетіледі. Мысалы: \h таңбасы жолдық немесе таңбалық константада h таңбасы болып көрсетіледі. Басқару жүйелілігін анықтаудан басқа, теріс бөлшек сызық (\), сондай-ақ жалғастыру таңбасы ретінде қолданылады. Егер (\) соңынан (\n) болса, онда екі таңба ескерілмейді, ал келесі жол алдыңғының жалғасы болып табылады. Бұл қасиет ұзын жолдарды жазу үшін қолданылуы мүмкін.
- Константалар
Программадағы өлшемдердің түгелделіп шығуы константалар деп аталады СИ тілінде константалардың төрт түрі көрсетіледі: бүтін костан-талар, жылжымалы, таңбалы константалар және жолдық литералдар.
Бүтін константа: бұл ондық, сегіздік және он алтытылық сан, олар келесі формалардың ішінднгі бүтін өлшемді көрсетеді: ондық, сегіздік немесе он алтытылық. Ондық константа бір немесе бірнеше ондық сандардан тұрады, жәнеде алғашқы сан нөл болмауы керек (ондай жағдайда сан сегіздік ретінде қабылданады) .
Сегіздік константа міндетті түрде нөлден және бір немесе бірнеше сегіздік саннан құралады (сандар арасында сегіз және тоғыз сандары болмауы керек бұл сандар сегіздік есептеу жүйесіне енбейді) .
Он алтылық константа міндетті жүйелілік ОХ немесе ОХ-тен басталады және бір немесе бірнеше он алтылық саннан құралады (есептеудің он алтылық сандар жүйесін көрсететін сандар: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) .
Бүтін константалардың мысалдары:
Ондық константа
16
127
240
Сегіздік константа
020
0117
0360
Он алтылық константа
0x10
0x2B
0XF0
Егер теріс бүтін константа құру керек болса, онда “-” белгісін константа жазуының алдында қолданады (унарлы минус деп аталады) . Мысалы: -0x2A, -088, -16.
Әр бүтін константаға түрленуді анықтайтын тип меншіктеледі, егер константа білдіруде қолданылса, онда олар орындалуы керек.
Константа типі келесі түрде анықталады:
- ондық константалар белгілері бар өлшем ретінде қарастырылады және оларға константа мағынасына сәйкес int (бүтін) немесе long (ұзын бүтін) типі меншіктеледі. Егер константа 32768-ден кіші болса, онда оған int типі меншіктеледі, өзге жағдайда - long. сегіздік және он алтылық константаларға int типі меншіктеледі, unsigned int (белгісіз бүтін), long немесе unsigned long 5-кестеге сәйкес константалар мағынасына тәуелді.
5-кесте
Кез келген бүтін константаны long типімен анықтау үшін константа соңына “1” немесе “L” әрпін қойса жеткілікті. Мысалы:
5l, 6l, 128L, 0105L, OX2A11L.
Жылжымалы нүктелі константа - бұл ондық немесе экспонентті ақиқат өлшем түрінде көрсетілген ондық сан.
Формат келесі түрге ие:
[цифрлар] . [цифрлар] [Ее[+-] цифрлар] .
Жылжымалы нүктелі сан бүтін және бөлшек бөліктерден және (немесе) экспоненталардан құралады.
Жылжымалы нүктелі константа екі еселенген дәлдіктің (double типіне ие) ондық өлшемдерін көрсетеді.
Теріс өлшемді анықтау үшін минус және оң белгілі константалардан құралатын константалық кескінді міндетті түрде құру керек.
Мысалдар: 115. 75, 1. 5E-2, -0. 025, 0. 075, -0. 85E2
Символды константа - апострофта қорытындыланған символ түрінде көрсетіледі.
Басқарушы тізбек және символ түрінде қарастырылады. Оны символды константаларда қолдануға болады. Символды константаның мағынасы болып символдың сандық коды табылады. Мысалдар:
‘’ - бос орын,
‘Q’ - Q әріпі,
‘\n’ - жаңа жол символы,
‘\\’ - кері бөлшекті сызық,
‘\v’ - тік табуляция.
Символды константалар int типіне ие және типтердің түрленуі кезінде белгімен толықтырылады.
Жолдық константа (бедербелгі) - тырнақшамен (“) алынған символдар тізбегі (орыс және латынның жолдық және бас әріптерін, сондай-ақ сандарды қосқанда) . Мысалы: “N35 мектеп”, “Тамбов қаласы”, “YZPT КОД”.
Айта кетейін, барлық басқаратын символдар тырнақшалар (“), кері бөлшек сызық (\) және жаңа жол символы жолдық бедербелгіде және символды константаларда сәйкес басқаратын тізбекпен көрсетіледі. Мысалы: “\n N35 мектеп” бедербелгісін жазу кезінде оның “мектеп” бөлігі бір жолда басылады да, ал екінші бөлігі “N35” келесі жолда басылады.
Жолдың бедербелгі символдары оперативті сақтау аймағында сақталады.
Әр жолдық бедербелгі аяғында құрастырушы басқарушы тізбекпен көрсетілген \0 нөл символын қосады.
Жолдық бедербелгі char[] типіне ие. Бұл жол - символдарының массиві ретінде қарастырылатынын білдіреді.
Маңызды ерекшелікті ескерейін, нөлдік символ (жол соңының символы) массив элементі болғандықтан, массив элементінің саны плюс 1 жолындағы символдар санына тең. Барлық жолдық бедербелгілерді құрастырушы әртүрлі объект ретінде қарастырады. Жолдық бедербелгілер бірнеше жолдарда орналасуы мүмкін. Мұндай бедербелгілер кері бөлшек сызықты және ввод пернесін қолдану негізінде құралады. Құрастырушы жаңа жол символды кері сызықты ескермейді, бұл келесі жол алдыңғының жалғасы болатындығына әкеп соғады. Мысалы:
“белгісіз ұзындықты жол \n”
бедербелгіге толығымен ұқсастық
“белгісіз ұзындықты жол”.
Жолдық бедербелгіні тіркеу үшін ашық жол символын (немесе символдарын) пайдалануға болады. Егер программада ашық жолдармен бөлінген бір немесе бірнеше жолдық бедербелгілер кездессе, онда олар бір символды жол ретінде қарастырылады. Бұл принципті бір жолдан артық қамтитын жолдық бедербелгіні құру үшін қолданады.
- Идентификатор
Идентификатор деп - сандар және әріптер тізбегін, сондай-ақ арнайы символдар тізбегін айтады, бірақ та бірінші әріп немесе арнайы символ тұруы шарт. Идентификаторларды құру үшін латын алфавитінің кіші немесе бас әріптері қолданылуы мүмкін. Арнайы символ ретінде (_) астын сызу символы қолданылады. Екі идентификатордың құрылуына қолданылатын сәйкес кіші және бас әріптер әр түрлі деп саналады. Мысалы: abc, ABC, A128B, a128b.
Ең маңызды мәселе құрастырушы идентификаторда символдың кез келген мөлшерін рұқсат етеді, бірақ мағыналысы алғашқы 31 символ болып табылады. Идентификатор ауыспалы, функциясы, структуралы хабар кезеңінде пайда болады және осыдан кейін оны келесі операторлық өңдеу программаларында қолдануға болады. Идентификаторды таңдау кезіндегі маңызды ерекшеліктерді ескере өтейін.
Біріншіден, идентификатор өзекті сөздермен, қосарланған сөздермен және СИ тіліндегі құрастырушының кітапханалық функция аттарымен сәйкес келмеуі керек.
Екіншіден, (_) астын сызу символын идентификатордың алғашқы символы ретінде қолдануға ерекше көңіл бөлу керектігін айта кеткен жөн, себебі идентификаторлар солай құралған. Олар бір жағынан жүйенің функциясының және (немесе) ауыспалы атымен сәйкес келуі мүмкін, екінші жағынан мұндай идентификаторларды қолданғанда программалар ауыр болуы мүмкін, оларды басқа типті компьютерлерде қолдануға болмайды.
Үшіншіден, сыртқы айнымалыларды анықтау үшін қолданылатын идентификаторларға шекара қою керек, редактор байланысының құрылатын хабары (байланыс редакторының әртүрлі хабарын қолдану немесе әртүрлі редакторларға сыртқы айнымалылар атауларына әртүрлі шарттар қояды) .
- Түйінді сөздер
Түйінді сөздер - бұл белгілі мағынамен жасалынған, қосарланған идентификаторлар. Оларды құрастырушыға белгілі СИ тіліндегі сәйкес мағынамен ғана қолдануға болады.
Түйінді сөздердің тізмін келтірейік
auto double int struct break else long switch
register tupedef char extern return void case float
unsigned default for signed union do if sizeof
volatile continue enum short while
Сондай-ақ, қарастырылып отырған жағдайда СИ тілінде жүзеге асыру, қосарланған сөздер болып табылады:
_asm, fortran, near, far, cdecl, huge, paskal, interrupt.
far, huge, near түйінді сөздері сақтау аймағындағы көрсеткіштердің өлшемін анықтауға мүмкіндік береді. _asm, cdelc, fortran, paskal түйінді сөздері өзге тілде жазылған функциялар арасындағы байланысты ұйымдастыру үшін қолданылады, сондай-ақ СИ тілінде өңделетін программа денесінде сәйкес ассемблер тіліндегі командаларды қолдану үшін пайдаланылады.
Түйінді сөздер идентификатор ретінде қолданыла алмайды.
- Программа мәтінінде түсініктемелерді қолдану
Түсініктемелер - бұл символдар жиынтығы, оларды құрастырушы елемейді, бұл символдар жиынтығына дегенмен келесі шектеулер қойылады. Түсініктемелерді көрсететін символдар жиынтығының ішінде түсініктеменің басын және аяғын анықтайтын арнайы символ болмайды, (/* және */) -ға сәйкес. Ескерейік, түсініктеме бір жолды ғана емес, сондай-ақ бірнеше жолды ауыстыруы мүмкін. Мысалы:
/* программаға түсініктеме */
/* алгоритм бастамасы */
немесе
/* түсініктемені келесі түрде жазуға болады, бірақ абай болу керек, құрастырушы ескермейтін тізбек ішіне программалар операторлары түспеу керек, өйткені ескерілмей қалуы мүмкін */
Түсініктемелерді қате анықтау.
/* алгоритмге түсініктеме /* негізгі тапсырманы шешу */ */
немесе
/* алгоритм шешіміне түсініктеме */ негізгі тапсырма */
СИ тіліндегі директивалар және оларды пайдалану
Жүйенің кірістік мәліметтері ретінде, жүйе тілінің директивалары енгізілген программаның мәтіндік файлы ұсынылады. Директивалар жүйемен өңделеді және түсіндіріледі, содан кейін өңдеу нәтижесі СИ тілінің құрафтырушы кірісіне беріледі. Директиваның ерекше белгісі болып $ префиксі қызмет етеді. Нәтиже типіне байланысты барлық директиваларды үш топқа бөлуге болады: нәтиже файлына мәтін түрінде нәтиже беру директивасы (*. df кеңейтуімен) ; өңделетін файлға мәтін түрінде берілетін нәтиже (*. cpp кеңейтуімен) ; және басқа формулаларға енгізу үшін жұмыс нәтижесі формула немесе объект болып табылады.
Жүйеде келесі директивалар анықталды:
$func - формулалар хабарламасы;
$insert_c - СИ тіліндегі формуланың жариялау функциясына түрленуі және оны программаға қою;
$func_i - $func және $insert_c директиваларының жұмысын біріктіреді;
$str, $str_df - формуланы мәтін жолына түрлендіру;
$diff - формуланы дифференциалдау;
$calc - формуланың сандық мәндерін есептеу;
$Jacob - якобианды есептеу;
$Taylor_coef - Тейлор қатарының коэффициентін есептеу;
$Taylor1 - бір айнымалы функцияны Тейлор қатарына жіктеу.
Бұл директивалардың ішінен тек $func, $func_i, $insert_c, $str және $str_df жеке шақырылуы мүмкін, қалғандары $func директивасын шақыру кезінде формула денесіне енгізіледі. Барлық жеке шақырылатын директивалар міндетті түрде ‘; ’ символына аяқталу керек.
//insert жүйесі жұмысының нәтижесімен файлды қою орнын көрсету үшін программада сондай-ақ қызметші тамға қолданылады (СИ тіліндегі комментария түрінде) . Жүйенің келесі жолында Процессор директивасы #include “имя_файла. df” қойылады, мұндағы имя_файла - өңделетін *. срр файлының аты. Егер программа файлы жүйенің мәнін редакторында терілген болса, онда өңдеу басында оны міндетті түрде қандай да бір атпен сақтау керек, әйтпесе жүйе оны өңдеуден бас тартады.
$func директивасы
$func директивасы формуланы жариялау үшін қызмет етеді және келесі пішімге ие:
$func формула_аты(аргумент_1, …, аргумент_n) =формула_денесі;
Мұндағы
формула_аты - берілген формула аты. 32 символдан ұзын емес әріпті-санды санды тізбек. Ол бірегей болу керек, өйткені формуланың жалғыз идентификаторы түрінде қатысады. Егер аттас екі формула анықталса, онда жүйе қате туралы хабар беріледі.
аргумент_1, . . . , аргумент_n - формула аргументтерінің тізімі. Аргумент түрінде 32 символдан ұзын емес әріпті-санды тізбек беріледі. Егер формулада тағы подформулалар шақырылса, онда формула аргументтерінің тізімі, подформула аргументтерінің тізімін толығымен жабуы керек. Сонымен бірге аргументтер мен подформулалардың аттары сәйкес келмеуі керек, солай болғандықтан бұл жағдайда жүйе подформуланы аргумент ретінде идентификациялайды. Формула_денесі - формулаға тән. СИ тіліндегі пішімде, онда анықталған (+, -, *, /, pow, sin, cos және т. б. ) математикалық функцияны қолдану арқылы жазылады. Сондай-ақ дәреже табу операциясын екі әдіспен жазуға болады: pow() функциясын немесе ^ белгісін пайдалану арқылы. Формула денесінде, сондай-ақ кейбір жүйе директивалары енеді, мысалы $diff, $calc, $Taylor1 және $Jacob.
Формулалар ішінде программаның ауқымды айнымалыларын қолдануға рұқсат етіледі, бірақ оларды міндетті түрде программада биязы хабарлау және қадағалау керек, олардың аттары алдыңғы хабарланған формулалардың аттарымен сәйкес келмеуі керек.
Мысалы:
$func f(x, y) =x^2+u*y+1;
Мұндағы u - f функциясына қатысты ауқымды айнымалы.
Күрделі функцияларды көрсету үшін аралық белгілерді енгізуге болады. Мысалы, g(x, y) =(x+y-1) *sin(x+y-1) *x-y/x функциясын келесі түрде анықтауға болады:
$func u(x, y) =x+y-1;
$func v(x, y) =sin(u) *x;
$func g(x, y) =u*v-y/x.
$insert_c директивасы
$insert_c директивасы формуланы СИ тіліндегі жариялау функциясы түрінде нәтиженің мәтін файлына қою үшін қолданылады. Сонымен бірге СИ функциясының аты ретінде, _c суффиксі қосылатын формула аты алынады.
$insert_c директивасы келесі пішімге ие:
$insert_c(формула_аты) ;
Мысалы:
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

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