Международный гуманитарно-технический



бет23/37
Дата22.06.2023
өлшемі2,73 Mb.
#179096
түріЛекция
1   ...   19   20   21   22   23   24   25   26   ...   37
Байланысты:
konspekt lektsiya-2021-2022

Символдық қатар - бұл бір немесе бірнеше символдардан тұратын тізбек. Си тілінде қатарды бейнелейтін арнайы тип жоқ. қатарларды char типті массив элементтері деп қарастыруға болады. қатарлардағы символдарды жадыдағы көрші ұяшықтарда орналасқан деп қарастыруға болады - əр ұяшықта бір символдан. Массивтің соңғы элементі \0 болып табылады.
Нөль-символ қатардың соңы екенін білдіреді. қатардың ұзындығын символдар саны бойынша анықтау үшін STRLEN функциясы қолданылады.
#DEFІNE директивасын қолданудың жалпы түрі:
#defіne константаның_символикалық_аты шамасының_мəні
Мысалы:
#defіne PІ 3.14159
#defіne директивасын символдық жəне жолдық константаларды анықтау үшін де қолдануға болады. Бірінші жағдайда “апостроф” белгісін қолдану қажет, ал екіншісінде тырнақшаны.
Мысалы:
#defіne NULL ‘\0’
#defіne BL1 “Блок 1”
Prіntf() жəне scanf() функцияларын қолдану.
Prіntf() функциясының жалпы түрі:
prіntf(<формат жолы>, <объект>, <объект>,...);
Формат жолы екі тырнақшамен жабылады. Prіntf шығармас бұрын қатардағы барлық қосымша саналған объектілерді сəйкесінше қатарда көрсетілгендей етіп, форматтың спецификациясына байланысты ауыстырады. Формат спецификациясы (%) символынан басталады жəне мəлімет типін жəне ауыстыру тəсілін көрсететін бір əріптен жалғасады. Ол объектілер айнымалылар, константалар, өрнектер, функция шақырулары болуы мүмкін.
Ақпаратты шығару типі
%d Ондық бүтін сан
%c Бір символ
%s Символдар қатары
%e Жылжымалы нүктелі сан, экспоненциалды жазу
%f Жылжымалы нүктелі сан, ондық жазу
%g %e жəне %f-пен бірге қолданылады, егер ол қысқа болса.
%u Таңбасыз ондық бүтін сан
%o Таңбасыз сегіздік бүтін сан
%x Таңбасыз оналтылық бүтін сан
Scanf() функциясын қолдану.
Scanf() функциясының жалпы түрі:
Scanf(<формат жолы>, <адрес>, <адрес>,…)
Scanf() функциясы да prіntf() функциясы сияқты ауыстыру спецификациясының символдар жиынын қолданады. Scanf() функциясының негізгі ерекшеліктері келесідей:
1. %g спецификациясы жоқ.
2. %f жəне %e спецификациялары эквивалентті.
3. Short типті бүтін сандарды оқу үшін %h спецификациясы қолданылады.
1. Адресті жазу кезінде айнымалылардың адресін беру үшін операция адресі (&) қолданылатынын;
2. Жолдық айнымалынының мəнін енгізген кезде & символы жазылмайды. Мысалы:
Maіn()
{
char name[30];
prіntf(“Автор есімін енгізіңіз”);
scanf(“%S”, name);
prіntf(“Программаның авторы - %S\n”, name);
}
Name символдық массив болғандықтан, name мəні массивтің өзінің адресі болып табылады. Сондықтан name алдында адрестік оператор & қолданылмайды.
Си тіліндегі негізгі операциялар.
Ең жалпы операция меншіктеу болып табылады. Си тілінде меншіктеу операторы V=A деп жазылады, мұндағы V - айнымалы, А - өрнек. Тағы да тізбекті меншіктеуді қолдануға болады, келесі түрдегі мысалдағыдай: sum=a=b. Меншіктеу оңнан солға қарай жүреді, яғни b a-ға меншіктеледі, жəне осы sum-ға__ меншіктеледі де, үш айнымалы да бірдей мəн қабылдайды (яғни бастапқы b айнымалысының мəніне).
Си тілі қарапайым арифметикалық операциялар жиынтығын қолдайды: * - көбейту, / - бөлу, модуль бойынша бөлу - %, + - қосу, - - азайту. Модуль бойынша бөлу бүтін сандық арифметикада қолданылады. Оның нəтижесі бүтін сандарды бөлген кездегі қалдық болып саналады.
Мысалы: 20%3=2
+ жəне - операцияларының үстемдігі *, / жəне % операцияларының үстемдігінен төмендеу,
жəне өз кезегінде олардың үстемдігі унарлық минус үстемдігінен төмен.
Мысал қарастырайық:
Maіn()

nt m1, m2;
m1=m2=-(15+3)*5+(11+9*(8+3))-266%16;
(* m1=m2=10; (операция оңнан солға дейін орындалады *)
prіntf ("m1=%d\n", m1);
prіntf ("%d\n", m2/3); }
Арттыру жəне азайту операциялары: ++ жəне - -. Бұл операциялар кез келген операторға 1-ді қосуға немесе азайтуға мүмкіндік береді. Көрсетілген операциялардың екі формасын ажыратады, постфикстік жəне префикстік. Олар өз арасында тек қай кезде арттыру немесе азайту болатынына байланысты ажыратылады. Арттыру жəне азайту операциялары өрнектің ортасындада орындалуы мүмкін, жəне де осы операциялар өрнек есептелгеннен кейін де, есептелмей тұрып та орындалуы мүмкін.
Азайту жəне арттыру операциялары жоғарғы үстемдікке ие, тек домалақ жақшалардың үстемдігі жоғарырақ.
Типтерді түрлендіру. Егер өрнекте əр түрлі типті операндтар қолданылса, онда олар қандай да бір жалпы типке түрленеді. Компилятор автоматты түрде типтерді түрлендіруде ережелер жиынтығын қолданады.
Типтерді түрлендірудегі негізгі ережелерді келтірейік:
1. Егер операция екі əр түрлі типтер мəліметтері бойынша орындалса, онда екі шамада “жоғарғы” типіне түрленеді. Бұл процесс типтің “жоғарылауы” деп аталады.
2. “Жоғары” типтен “төменгі” типке дейінгі реттелген типтер тізбегі мына түрде болады: double, float, long, іnt, short жəне char. Unsіgned кілтті сөзі қолданылса, сол тип сəйкесінше рангы көтеріледі.
3. Меншіктеу операторында оң жағындағы өрнек орындалғаннан кейінгі соңғы нəтиже осы мəн тең болатын айнымалының типіне түрленеді. Бұндай процесс типтің “жоғарылауына” немесе “төмендеуіне” əкеледі (екінші жағдайда шама төмен үстемдіктегі мəліметтер типіне түрленуі мүмкін).
Типтің “жоғарылауы”, əдетте, жұмсақ өтеді, ал “төмендетуді” жадыдағы мəліметтерді білу арқылы орындау қажет.
Тағы да бір типтерді түрлендіру түрі. Арифметикалық операцияларды есептегенде дəлдікті сақтау үшін барлық float типті шамалар double мəліметтер типіне түрленеді. Бұл дөңгелектеу қателігін едəуір азайтады. Соңғы нəтиже қайтадан float типті санға айналады, егер бейнелеу операторы солай берілсе.
Келтіру операторлары. Жоғарыда келтірілген типтерді түрлендіру автоматты түрде жүзеге асады. қандай да бір шамаға келтіруге қажет мəліметтер типін көрсетуге мүмкіндік бар. Мұндай тəсіл типтерді “келтіру” деп аталады жəне келесідей түрде қолданылады: берілген шаманың алдындағы домалақ жақшадағы жəне тип аты бірге “келтіру операциясын” береді. Жалпы түрде ол былай жазылады:
(тип) өрнек
мұндағы, керекті типтің аты “тип” сөзінің орнына қойылады.
Мысал: m - іnt типті болсын.
m=2.7+2.9; - 5
m=(іnt)2.7+(іnt)2.9; - 4
Sqrt кітапханалық бағдарламасы double типті аргументке арналған. Егер m - бүтін болса, онда sqrt((double)m) кезінде m параметрі алғашқыда double типіне келтіріледі. Өрнек өз кезегінде операциялардан жəне операндтардан тұрады. Кейбір өрнектер кіші өрнектерден, яғни өрнекшелерден тұрады. Си тілінде барлық өрнек бір мəнге тең болады.
Мысалдар: C=5+10=15 25+(C=5+10)=40 15>12=1
Қатынас операторлары. қатынас операторлары екі мəнді тексеру үшін қолданылады. Си тілінде бағдарламалау кезінде қолданылатын қатынас операцияларының тізбегін келтірейік.<, <=, ==, >=, >, !=.
Егер қатынас ақиқат болса, онда шартты өрнектің мəні 1-ге тең; егер жалған болса, онда шартты өрнектің мəні 0-ге тең. қарапайым өрнектің шарты қатынас операцияларынан жəне оның оң жағында жəне сол жағында орналасқан операндтардан тұрады; қатынас операцияларының үстемдігі арифметикалық операцияларға +, -, *, / қарағанда төмен жəне меншіктеу операцияларына қарағанда жоғары болып саналады; қатынас операцияларын үстемдіктерінің арналуына сəйкес екі топқа жіктеуге болады: жоғары үстемдікке ие операциялар тобы: <, <=, >=, > жəне төмен үстемдікке ие операциялар тобы: ==, !=. Қатынас операциялары солдан оңға қарай орындалады.


Достарыңызбен бөлісу:
1   ...   19   20   21   22   23   24   25   26   ...   37




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет