228
'F', '%', '$', 'ы', '5', '+', '"', 'q', 'Я', ' '
Соңғы константа «босорын» таңбасы. Апостроф таңбасын мҧндай тәсілмен жаза алмай-
мыз. Сондықтан басқа тәсілді қолданамыз.
Екінші тәсіл кері қиғаш сызық (слеш) таңбасынан кейін керекті символдың оналтылық
кодын жазу арқылы беріледі:
'\x27'
("апостроф" символының коды, 39
10
= 27
16
)
'\x5C'
(кері қиғаш сызық
\
символының коды, 92
10
= 5С
16
)
Он алтылық кодтың алдыңғы нӛлсіз жазылатынына назар аударыңдар (оналтылық
сандар тҥрінде берілген константаларды жазу кезінде \0х болып бейнеленеді). Осы тәсілді
ASCII-код
кестесінің бас жағында (1-31 кодтары) орналасқан басқару кодтарының кез
келгенін жазу ҥшін қолдануға болады. С/С++ тілдеріндегі Escape-тізбектері болып табы-
латын басқару кодтары (4.6-кестені қ.) да осы тәсілмен жазылады. Мысалы:
'\''
– "апостроф" символы
'\\'
– "кері слеш" символы
Ҥшінші тәсіл "кері слеш" таңбасынан соң, символдың сегіздік кодын жазу болып
табылады:
'\47'
("апостроф" символының коды, 39
10
= 47
8
)
'\134'
(
\
символының коды, 92
10
= 134
8
)
Мҧндағы сегіздік кодтың да алдыңғы нӛлсіз жазылатынына назар аударыңдар (сегіздік
сандар тҥрінде берілген константаларды жазу кезінде олардың алдында \0 таңбасы
жазылады). Апостроф ішіндегі сегіздік код [0, 377] аралығында болуы тиіс.
Символдық айнымалылар олардың типін кӛрсететін
char
немесе unsigned char
спецификаторы (тҥйінді сӛзі) арқылы жарияланады. Оларға бірден мән беруге, яғни
айтылған тәсілдердің біоімен инициалдауға болады:
char ch1='Я',ch2='\x9F',ch3='\237',ch4= 0x9F,ch5=0237,ch6=159;
Осылай сан арқылы мән тағайындау тәсілі DOS-қосымшаларында да және Windows
ортасында да символдардың дҧрыс бейнеленуіне кепілдік бере алады. Windows ортасында
консолдық программалар қҧру кезінде символдық мәндер тағайындау тәсілі
ASCII-
код
кес-
тесінің тек бірінші жартысында орналасқан символдар ҥшін ғана дҧрыс жҧмыс істей алады.
229
Б ҚОСЫМШАСЫ
Сӛз тіркестерінен тұратын мәліметтермен операциялар орындау
Бірӛлшемді символдық жиымдар (массивтер) тҥрінде берілетін сӛз тіркестерін ӛңдеу
ҥшін С/С++ тілдерінің жҥйелік функциялар кітапханасында бірсыпыра амалдар
(операциялар) қарастырылған. Олардың прототиптері
string.h
тақырыптық файлына
жинақталып, кӛбісінің атаулары
str
(ағылш.
string – тіркес сӛзінің алғашқы әріптері
)
таңбаларынан басталады. Тіркестерді ӛңдейтін функцияларды қарастыру ҥшін, қолданыла-
тын аргументтер мен олардың типтері жайлы ортақ белгілеулер туралы бірсыпыра тҥсініктер
бере кетейік:
S, S1,S2
– символдық жиымға нҧсқауыш (кӛбінесе жиым аты);
CS
–
const char *
типіндегі нҧсқауыш (яғни ӛзгермейтін жиым немесе бастапқы
мәліметтер тҥрінде берілген тіркестік константа);
ch
– символ коды, кӛбінесе
int
типіндегі сандық мән;
k
– символдар саны.
Қ1.3-кесте
Функция
Атқарылатын операция
Сӛз тіркесінің (тіркестің) ұзындығын анықтау
strlen(CS)
S тіркесіндегі символдар санын береді
Тіркестерді қалыптастыру
strcpy(S1,CS2)
CS2 тіркесін S1-ге кӛшіреді, нҧсқауышты S1-ге қайтарады
strncpy(S1,CS2,k)
CS2 тіркесінің алғашқы k символын S1-ге кӛшіреді, нҧсқауышты
S1-
ге қайтарады
strset(S,ch)
S тіркесін ch символдарымен толтырады, нҧсқауышты S-ке
қайтарады
strnset(S,ch,k)
S тіркесінде ch символын k рет қайталайды, нҧсқауышты S-ке
қайтарады
Тіркестерді біріктіру (конкатенация)
strcat(S1,CS2)
CS2 тіркесін S1 тіркесінің соңына қосып жазады, нҧсқауышты S1-ге
қайтарады (S1 тіркесінің ҧзындығы екі тіркес сиятындай кӛлемді
болуы тиіс)
strncat(S1,CS2,k)
CS2 тіркесінің алғашқы k символын S1тіркесіне қосып жазады да,
нҧсқауышты S1-ге қайтарады
Регистрді ауыстыру
strlwr(S)
S
тіркесі символдарын кіші әріптерге ауыстыру, тек латын әліпбиі
әріптеріне әсер етеді
strupr(S)
S
тіркесі символдарын бас әріптерге ауыстыру, тек латын әліпбиі
әріптеріне әсер етеді
Тіркесті керісінше жазып шығу
strrev(S)
S тіркесіндегі символдарды кері бағытта жазып шығады
Сандық мәліметке түрлендіру
strtol(CS,ptr,r)
CS
тіркесінде символдық тҥрде бейнеленіп, негізі r болып келетін
санау жҥйесінде жазылған сан long типіндегі машиналық
форматтағы санға тҥрлендіріледі. ptr нҧсқауышына тҥрлендіруді
тоқтатқан (ҥзген) символ адресі жазылады. Қайтарылатын мән –
тҥрлендіру нәтижесі
strtoul(CS,ptr,r)
Жоғарыдағыдай тҥрлендіру ісі екі еселенген таңбасыз бҥтін сан ҥшін
атқарылады
strtod(CS,ptr)
Нақты санды символдық тҥрден double типіндегі машиналық
форматқа тҥрлендіру
Тіркестерді салыстыру
strcmp(CS1,CS2)
Егер CS1=CS2 болса, функция 0 мәнін қайтарады,
230
егер CS1>CS2 болса, функция 0-ден артық мән, ал
егер CS1 strncmp(CS1,CS2,k) CS1 және CS2 тіркестерінің алғашқы k символдары ғана
салыстырылады
stricmp(CS1,CS2)
Салыстыру кезінде бас әріптер мен кіші әріптер кодтарының
әртҥрлілігі есепке алынбайды
strcmpi(CS1,CS2)
Жоғарыдағы операция сияқты, тек функция аты ғана басқаша
strnicmp(CS1,CS2,k) Екі тіркестің алғашқы k символдарын бас әріп пен кіші әріп
кодтарының айырмашылығын есепке алмай салыстырады
strncmpi(CS1,CS2,k)
Жоғарыдағы операция сияқты, тек функция аты ғана басқаша
Символды іздеу
strchr(CS,ch)
CS тіркесі солдан оңға қарай ch символы табылғанша біртіндеп
қарастырылады. Егер ол табылса, нҧсқауыш CS тіркесіндегі осы
символды (позициясын) кӛрсетіп тҧрады, егер ондай символ
табылмаса, онда нҧсқауыш null (яғни 0) мәнін қайтарады
strrchr(CS,ch)
Жоғарыдағы операция сияқты, тек символды іздеу CS тіркесінің
соңынан басына қарай жҥргізіледі
Ішкі тіркесті іздеу
strstr(CS1,CS2)
CS2 тіркесін CS1 тіркесінің қҧрамынан іздеу (алғашқы кіруін
анықтау). Егер ол табылса, нҧсқауыш табылған тіркестің алғашқы
символын кӛрсетеді, табылмаса, ол null мәнін береді
Арнайы іздеу
strpbrk(CS1,CS2)
CS2
символының CS1 тіркесіндегі алғашқы кездесуі ізделеді.
Табылған символға нҧсқауыш немесе null қайтарылады
strspn(CS1,CS2)
Толығынан CS2 символдарынан тҧратын CS1 тіркесінің бастапқы
фрагментінің ҧзындығы анықталады (символдар реттілігі ешқандай
рӛл атқармайды)
strcspn(CS1,CS2)
CS2
символдарының бір де бірі қҧрамына кірмейтін CS1 тіркесінің
бастапқы фрагментінің ҧзындығы анықталады
strtok(S1,CS2)
S1 тіркесі ішінен CS2 символдарымен бӛлінген лексемдерді іздеу
Қ1.3-кестесінде кӛрсетілген функцияларға аздаған қосымша тҥсініктер бере кетейік.
Санның символдық бейнеленуін соған сәйкес машиналық форматқа тҥрлендіретін
strtol
және
strtoul
функцияларында оның негізін
r=0
деп те беруге болады. Мҧндайда
санау жҥйесінің негізі санның символдық жазылуымен анықталады. Егер тіркес
'0'
симво-
лынан басталып, ары қарай 7-ден аспайтын цифрлар орналасатын болса, онда ол сегіздік сан
болып саналады. Ал егер сӛз тіркесі
'0х'
немесе
'0X'
символдарынан басталып, ары
қарай оналтылық цифрлар орналасатын болса, онда
r=16
болып есептеледі.
Strtok
функциясында лексем болып ажыратқыш символдарының бірімен (босорын,
ҥтір, нҥкте, т.с.с.) аяқталатын символдар тіркесі саналады. Ол функцияны алғашқы рет
пайдалану кезінде
S1
тіркесінде бастапқы лексем орналасып, қайтарылатын мән оның
бірінші символына нҧсқауыш болып саналады. Осымен қатар
S1
тіркесіндегі анықталған
ажыратқыш символ орнына нӛлдік байт жазылады. Бҧл табылған лексеммен кейіннен сӛз
тіркесі ретінде жҧмыс істеуге мҥмкіндік береді. Мҧнан кейінгі
strtok
функциясын
пайдалану кезінде келесі лексемдерді іздеу ҥшін бірінші аргумент орнына нӛлдік аргумент
жазуға болады. Сонда функция енгізілген нӛлдік байттан оң жақта орналасқан келесі
лексемді іздеп табуға кіріседі. Осы тәсілмен
S1
тіркесіне кіретін барлық лексемдерді
біртіндеп тауып алуға болады. Тҥсіндіру ҥшін бір мысал келтірейік:
#include
#include
#include
void main()
231
{ char *ptr;
ptr=strtok("FEB.14,2009",".,-/");
while(ptr!=NULL)
{ printf("ptr=%s\n",ptr);
ptr=strtok(NULL, ".,-/");
}
getch();
}
//=== Бұл программа нәтижесі ===
ptr=FEB
ptr=14
ptr=2009
232
МАЗМҰНЫ
К І Р І С П Е ............................................................................................................................. 3
1. АЛГОРИТМДЕУ НЕГІЗДЕРІ ............................................................................................ 5
1.1 Алгоритм, программа ҧғымдары ..................................................................................... 5
1.2 Алгоритмдердің орындалуы............................................................................................. 6
1.3 Алгоритмнің қасиеттері .................................................................................................... 9
1.4 Алгоритмнің формалды орындалуы .............................................................................. 13
1.5 Горнер тәсілі бойынша есептеу алгоритмдері.............................................................. 16
1.6 Алгоритмнің ӛрнектелу жолдары .................................................................................. 18
1.6 Компьютерде есеп шығару кезеңдері ............................................................................ 18
1.7 Алгоритмдерді графикалық тҥрде жазу ........................................................................ 19
1.8 Алгоритмдердің бірыңғай қҧрылымы ........................................................................... 20
1.9 Программалау тілдері ..................................................................................................... 25
2 С ТІЛІНДЕ ПРОГРАММАЛАУ НЕГІЗДЕРІ ................................................................ 30
2.1 С тілінде жазылған программаның қҧрылымы ........................................................... 31
2.2 С тілінің қарапайым элементтері ................................................................................... 35
2.3 С тіліндегі мәліметтер типтері ....................................................................................... 41
2.4 Бҥтін сан тҥріндегі мәліметтерді сипаттау. ................................................................. 41
Int бҥтін сандар типі ............................................................................................................. 41
2.5 Printf және scanf функциялары ..................................................................................... 43
3 C ТІЛІНДЕГІ НЕГІЗГІ ОПЕРАЦИЯЛАР МЕН ОПЕРАТОРЛАР ............................... 47
3.1. Меншіктеу операторы .................................................................................................... 52
3.2 Типтерді тҥрлендіру ........................................................................................................ 54
3.3 Программа жҧмысын басқару операторлары ............................................................... 55
3.4 Шартты оператор ........................................................................................................... 56
3.4.1 Шартты операция ......................................................................................................... 60
3.5 Switch кӛп нҧсқалы таңдау операторы .......................................................................... 60
4 ЦИКЛ ОПЕРАТОРЛАРЫ.................................................................................................. 69
4.1 FOR цикл операторы ....................................................................................................... 69
4.2 While операторы .............................................................................................................. 72
4.3 Do ... while цикл операторы ............................................................................................ 74
4.4 С/С++ тілінің негізгі операторларын қолдану арқылы
есептер шығару ................................................................................................................ 76
5 С ТІЛІНДЕ ЖИЫМДАРДЫ ПАЙДАЛАНУ .................................................................. 82
5.2 Жиымды ӛңдеу есептерінің тҥрлері (кластары) ........................................................... 83
5.2.1 Бірінші тҥрдегі есептер ............................................................................................... 83
5.2.2 Екінші тҥрдегі есептер ................................................................................................ 84
5.2.3 Ҥшінші класс есептері ................................................................................................ 85
5.2.4 Тӛртінші класс есептері .............................................................................................. 86
5.3 Жиымды сҧрыптау (іріктеу, реттеу) .............................................................................. 86
5.3.1 Жай таңдау жолымен сҧрыптау .................................................................................. 86
5.3.2 Жай енгізу (кірістіру) тәсілімен сҧрыптау ................................................................. 87
5.3.3 Жай алмастыру арқылы сҧрыптау ............................................................................. 87
5.4 Адрестік операциялар ..................................................................................................... 90
5.4.1 Функциялар арасында байланыс жасау ҥшін
нҧсқауыштарды пайдалану ............................................................................................ 91
5.4.2 Жиымдар және жиымдарға қолданылатын нҧсқауыштар ...................................... 92
5.4.3 Нҧсқауыштарды пайдаланып жиымдармен жҧмыс істеу ........................................ 93
5.4.4 Нҧсқауыштарға қолданылатын операциялар ........................................................... 94
6 ЕКІ ӚЛШЕМДІ ЖИЫМДАР ......................................................................................... 100
6.1 Матрицаның барлық элементтерін ӛңдейтін алгоритмдер ....................................... 101
233
6.2 Екінші типтегі есептер алгоритмдері .......................................................................... 103
6.3 Екі ӛлшемді жиымдармен жҧмыс істеу кезінде
нҧсқауыштарды қолдану .................................................................................................... 109
7. СӚЗ ТІРКЕСТЕРІН ӚҢДЕУ .......................................................................................... 114
7.1 Символдық таңбаларды енгізу/шығару ...................................................................... 114
7.2 Символдық тіркестер .................................................................................................... 116
7.3 Символға нҧсқауышты пайдалану ............................................................................... 117
7.6 Сӛз тіркестерімен жҧмыс істейтін ӛзге функциялар ................................................ 121
8 ҚОЛДАНУШЫ ФУНКЦИЯСЫН ПАЙДАЛАНУ ....................................................... 129
8.1 Айнымалылардың әрекет ету аймағы ......................................................................... 131
9 ҚОЛДАНУШЫ АНЫҚТАЙТЫН МӘЛІМЕТТЕР ТИПТЕРІ
МЕН ҚҦРЫЛЫМДАРДЫ ПАЙДАЛАНУ .................................................................. 139
9.1 Типтердің атын ӛзгерту (typedef) ................................................................................. 139
9.2 Тізбелер (перечисления – enum) .................................................................................. 139
9.3 Қҧрылымдарды пайдалану ........................................................................................... 141
9.4 Қҧрылымдарды сипаттау .............................................................................................. 141
9.5 Қҧрылым ӛрістерін пайдалану ..................................................................................... 143
9.6 Қҧрылымдар жасау ....................................................................................................... 145
9.7 Қҧрылым жиымдарын
функция аргументі ретінде пайдалану ........................................................................ 150
9.8 Біріктірмелер (объединение – union) ........................................................................... 152
9.9 Биттік ӛрістер ................................................................................................................ 155
10 ФАЙЛДАРДЫ ПАЙДАЛАНУ ..................................................................................... 162
10.1 fprintf және fscanf функцияларын пайдалану ........................................................... 163
10.2 fgets және fputs функцияларын пайдалану .............................................................. 166
10.3 fwrite және fread функцияларын пайдалану ............................................................. 167
11. ГРАФИКАЛЫҚ РЕЖИМДЕ ЖҦМЫС ІСТЕУ .......................................................... 171
11.1. Графикалық режим орнату, одан шығу, мәтін жазу,
сызық салу функциялары ............................................................................................. 173
11.2. Сызық стильдерін беру .............................................................................................. 176
11.3. Тҧйық сызықтар салу ................................................................................................. 178
12 C ПРОГРАММАСЫН ОРЫНДАУ ОРТАСЫ ............................................................. 186
12.1. Турбо С редакторының терезесі ............................................................................... 186
12.2 Меню командалары ..................................................................................................... 187
12.3 Қателер коды және олардың мәліметтері ................................................................. 192
12.3.1 Программа орындалу кезінде шығатын қателер ................................................... 193
12.3.2 Операциялық жҥйе анықтайтын қателер ............................................................... 194
12.3.3 Енгізу-шығару қателері ........................................................................................... 194
12.3.4 Дағдарысты қателер ................................................................................................. 194
12.3.5 Фаталды қателер ....................................................................................................... 195
13. ПРОГРАММАЛАУ ТІЛДЕРІНІҢ ДАМУ ТАРИХЫ ................................................. 196
ГЛОССАРИЙ ....................................................................................................................... 203
ҚОЛДАНЫЛҒАН ТЕРМИНДЕРДІҢ
ҚЫСҚАША ОРЫСША-ҚАЗАҚША СӚЗДІГІ ................................................................. 207
C ТІЛІНДЕ ПРОГРАММАЛАУДАН ТЕСТ СҦРАҚТАРЫ ....................................... 211
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ...................................................................................... 224
А ҚОСЫМШАСЫ. Стандартты математикалық функциялар ....................................... 225
Ә ҚОСЫМШАСЫ.
Символдық мәліметтер және оларды компьютерде бейнелеу ..... 227
Б ҚОСЫМШАСЫ.
Сӛз тіркестерінен тҧратын мәліметтермен
операциялар орындау .................................................................................................... 229
234
Достарыңызбен бөлісу: |