Си тілінен дәрістер



Кіріспе
СИ тіліне түсініктеме ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Алфавит ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Идентификаторлар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Қызметші (түйінді)сөздер ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Айнымалылар және атаулы тұрақтылар ... ... ... ... ... ... ... ... ..
Айнымалыларға мәндерді меншік шектеу ... ... ... ... ... ... ... ... ... ... ... ...
Шекті мәндер тұрақтылары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Нақты типтердің тұрақтылары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Математикалық функциялар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Операциялар және олардың түрлері ... ... ... ... ... ... ... ... ... ... ... .
Операциялар приоритеті (рангі) ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Ұнарлық (бір орынды) операциялар ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Бинарлық (екі орынды) операциялар ... ... ... ... ... ... ... ... ... ... ... ... ... .. Аддитивтік операциялар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Мультипликативтік операциялар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Разрядтық операциялар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Қатынас (салыстыру) операциялар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Логикалық бинарлық операциялар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Меншіктеу операциясы (14ранг) ... ... ... ... ... ... ... ... ... ... ... ... ..
Құрылымдық объект компоненттерін таңдау операциясы ... ... ... ... ...
Үтірді операция ретінде қолдану (15ранг) ... ... ... ... ... ... ... ... ... ...
Жақшаны операция ретінде қолдану ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Үш орынды шартты операция (13ранг) ... ... ... ... ... ... ... ... ... ... ... ... .
«Си» тілінде бағдарламалауға кіріспе ... ... ... ... ... ... ... ... ... ...
Қарапайым бағдарламаның құрылымы және компоненттері ... ... ... ...
Мәліметтердің негізгі типтері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Мәліметтерді ендіру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Мәліметтерді шығару ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
«Си» тілінің операторлары ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Шартты оператор ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Белгілер және бос оператор ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Шартсыз өту оператор ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Сатылы IF.ELSE.IF операторы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
«?» шартты операторы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Цикл операторы FOR ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Цикл операторы While ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Цикл операторы DO while ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Break операторы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Continue операторы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Цикл ішінде цикл ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Массивтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Бір олшемді массив ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Екі өлшемді массив ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Функциялар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Цилиндр көлемін есептеу функциясы ... ... ... ... ... ... ... ... ... ... ... ... ... .
Векторлардың скаляр көбейтіндісін есептеу функциясы ... ... ... ... ...
Биномиалдық коэффицентті есептеу ... ... ... ... ... ... ... ... ... ... ... ... ... .
Үшбұрыштын ауданын есептеу.Герон формуласы ... ... ... ... ... ... ... .
Векторларды скаляр көбейту ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Нүктелер жиынтығының диаметрі ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Динамикалық жад массивтері ... ... ... ... ... ... ... ... ... ... ... ...
Жадты ажырату және босату функциялары ... ... ... ... ... ... ... ... ... ... ..
Көрсеткіштер массивтері және көп өлшемді массивтерді модельдеу...
array[6]массивінің элементтерінің реттелу процесі ... ... ... ... ... ... ... ...
Функция параметріндегі көрсеткіштер ... ... ... ... ... ... ... ... ... ..
Көрсеткіш параметр ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Көмекші бағдарламаны имитациялау ... ... ... ... ... ... ... ... ... ... ... ... ...
Массивтер және жолдардың функция параметрлерінің қызметін атқару...
Жолдарды функция параметүрлері ретінде қолдану ... ... ... ... ... ... ... .
Жолдарды сорттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Жолдарының ұзындығы әртүрлі «Матрица» ... ... ... ... ... ... ... ... ... .
Жолдар аргументті параметр. массивпен инверттеу функциясы ... ... ...
Жолдарды салыстыру функциясы ... ... ... ... ... ... ... ... ... ... ... ... ..
Жолдарды қосу функциясы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Структуралар және бірлестіктер.Структуралық типтер ... ... ... ... ... ...
Құрылымдар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Құрылым элементтерімен жұмыс істеу ... ... ... ... ... ... ... ... ... ... ..
Құрылымдарды меншіктеу ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Құрылымдарды анықтау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Бірлестіктер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Бірлестікті сипаттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Бірлестіруші тип ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Биттік типтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Пайдаланылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Өткен ғасырдың орта кездерінде есептеуіш техника саласында күрделі өзгерістер болып, Фортран, Бейсик, Паскаль және т.б. көптеген жоғары деңгейлі программалау тілдерінің жарыққа шыққаны белгілі.
1972 жылы АТ&Т атаулы Американың корпорациясы жаңа С (Си) программалау тілін дайындап шықты. Ол-математикалық есептеуге арналған және жүйелік программаларды құруға бейімделген, салыстырмалы оңай, жоғарғы құрылымдық және алгоритмдерді басшылыққа алып дайындалған процедуралық жоғары деңгейлі программалау тіл.Тілге жылдам орындалатын, жеке биттермен операция жасайтын операторлар да енгізілген. Олар арқылы байланыс порттарын, магниттік дискілерде жинақтауыштарды және т.б. аппараттық құралдарды басқаруға мүмкіндік жасалды. Ал, алғашқы кездерде жеке типті компьютерлердің аппараттық құралдарына қол жеткізе алатын машиналық командалармен жұмыс істейтін төменгі деңгейлі ассамблер тілі ғана болатын.
Си тілі бірте-бірте дамытылып, қазіргі кезде пайдаланылып келе жатқан, 1983 жылы дүние жүзі елдері басшылыққа алған ANSI C нұсқасы да жарыққа шықты ( ANSI – стандарттардың Америкалық ұлттық институты). ANSI C тілінің түрлі нұсқаларына енгізілген стандартты кітапханалар да бар. Тілдің кемшілігі де жоқ емес, ол жүйелік және қолданбалы программаларды дайындауға бейім, бірақ айнымалыларға рұқсат етілмеген қол жеткізу механизмін қамтамасыз етпейді және құрылатын класты басқа кластың ішкі класы (мұрагер) ретінде жариялау мүмкін емес. Мұндай объектілі – бағдарлы программалау (ОБП) тілдеріне енетін ерекшеліктерді ескеріп, Borland International Inc фирмасы С тілінің дамытылған жаңа Turbo C (Турбо Си) нұсқасын 1980 жылдардың басында жарыққа шығарды. Кейіннен Turbo C++ 3.0 және олардың кеңейтілген Borland C++ нұсқалары да пайда болды: Borland C++ 2.0, Borland C++ 3.0, Borland C++ 3.1, Borland C++ 4.0 және т.б.
Олардың MS DOS, Windows операциялық жүйелерінде жұмыс істеу мүмкіндіктері жеткілікті.
Әдетте, жоғарыда аталған тілдер MS DOS жүйесінің NC (Norton Commander) қабықша прогаммасына енгізіліп қойылады. Онымен жұмыс істеу үшін алдымен берілетін негізгі командалар:
- сәйкес каталогтан tc.exe файлын іске қосу. Мәзірлер енгізілген жүйе терезесі ашылады;
- F10 пернесін басып, курсорды мәзірдің File пунктіне жылжыту және File-New командасын беру (Турбо Си ++ тілі тышқанмен жұмыс істейді, сондықтан мәзірмен тышқан арқылы жұмыс істей беруге болады);
- экранда прогамма терілген соң, компиляциялау: Alt+F9;
- прогамманы сақтау (save):F2;
- программаны іске қосу (run): Ctrl+F9;
- жүйеден шығып, NC-ке өту: Alt+X.
1. Подбельский В.B, Фомин С.C.Программирование на языке Си:Учеб.пособи.-2-е доп.изд.-М.:Финансы и статистика, 2000г. – 600с.
2. Прата Стивен.Язык праграммиравания C++. Лекции и упражнения. Учебник: Пер. с англ/ Стивен Прата-СП б: 000+4 «Дро Софт ЮП, 2002 г-896 с.
3. О.Комардинов :«Turbo C және C++ тілдерінде програмалау».Түркістан 2005
4. Паннас К., Мюррей У. Программирование на СИ и СИ++ .-К.: Ирина, BHV,2000
5. Хэнкок Л.,Кригер М. Введение в программирование на языке СИ/Пер. с англ.-М.:Радио и связь, 1986г,-192с.
6. Белецкий Я. Энциклопедия языка СИ/Пер. с англ. – М.: Мир, 1992г.-687с.
7. Карпов Б., Баранова Т. С++ Специальный справочник. – СПб,: Издательство «Питер», 2000г.-480с.
8. Дьюхарст С., Старк К. Программирование на СИ++. − Киев, 1993г.
9. Дейтел Х.,Дейтел П.Как программировать на СИ.-М.:Бином ,2000г.
10.Корнигин Б., Ритчи Д. Язык программирования СИ/Пер.с англ.- М.: Финансы и статистика, 1992г.-272с.

I-ші тарау
Кіріспе
Өткен ғасырдың орта кездерінде есептеуіш техника саласында
күрделі өзгерістер болып, Фортран, Бейсик, Паскаль және т.б. көптеген
жоғары деңгейлі программалау тілдерінің жарыққа шыққаны белгілі.
1972 жылы АТ&Т атаулы Американың корпорациясы жаңа С (Си) программалау
тілін дайындап шықты. Ол-математикалық есептеуге арналған және жүйелік
программаларды құруға бейімделген, салыстырмалы оңай, жоғарғы құрылымдық
және алгоритмдерді басшылыққа алып дайындалған процедуралық жоғары
деңгейлі программалау тіл.Тілге жылдам орындалатын, жеке биттермен
операция жасайтын операторлар да енгізілген. Олар арқылы байланыс
порттарын, магниттік дискілерде жинақтауыштарды және т.б. аппараттық
құралдарды басқаруға мүмкіндік жасалды. Ал, алғашқы кездерде жеке типті
компьютерлердің аппараттық құралдарына қол жеткізе алатын машиналық
командалармен жұмыс істейтін төменгі деңгейлі ассамблер тілі ғана болатын.
Си тілі бірте-бірте дамытылып, қазіргі кезде пайдаланылып келе жатқан,
1983 жылы дүние жүзі елдері басшылыққа алған ANSI C нұсқасы да жарыққа
шықты ( ANSI – стандарттардың Америкалық ұлттық институты). ANSI C тілінің
түрлі нұсқаларына енгізілген стандартты кітапханалар да бар. Тілдің
кемшілігі де жоқ емес, ол жүйелік және қолданбалы программаларды
дайындауға бейім, бірақ айнымалыларға рұқсат етілмеген қол жеткізу
механизмін қамтамасыз етпейді және құрылатын класты басқа кластың ішкі
класы (мұрагер) ретінде жариялау мүмкін емес. Мұндай объектілі – бағдарлы
программалау (ОБП) тілдеріне енетін ерекшеліктерді ескеріп, Borland
International Inc фирмасы С тілінің дамытылған жаңа Turbo C (Турбо Си)
нұсқасын 1980 жылдардың басында жарыққа шығарды. Кейіннен Turbo C++ 3.0
және олардың кеңейтілген Borland C++ нұсқалары да пайда болды: Borland C++
2.0, Borland C++ 3.0, Borland C++ 3.1, Borland C++ 4.0 және т.б.
Олардың MS DOS, Windows операциялық жүйелерінде жұмыс істеу
мүмкіндіктері жеткілікті.
Әдетте, жоғарыда аталған тілдер MS DOS жүйесінің NC (Norton
Commander) қабықша прогаммасына енгізіліп қойылады. Онымен жұмыс істеу
үшін алдымен берілетін негізгі командалар:
- сәйкес каталогтан tc.exe файлын іске қосу. Мәзірлер енгізілген жүйе
терезесі ашылады;
- F10 пернесін басып, курсорды мәзірдің File пунктіне жылжыту және
File-New командасын беру (Турбо Си ++ тілі тышқанмен жұмыс істейді,
сондықтан мәзірмен тышқан арқылы жұмыс істей беруге болады);
- экранда прогамма терілген соң, компиляциялау: Alt+F9;
- прогамманы сақтау (save):F2;
- программаны іске қосу (run): Ctrl+F9;
- жүйеден шығып, NC-ке өту: Alt+X.
1.1 Си тіліне түсініктеме
Ескерту. 1. Си тілінде анықтамалық тек ағылшын тілінде жазылған. Оны
орыс тіліне аудару үшін ‘Socrat’ не сол сияқты аудару программасын
пайдалануға болады.
2. Программа ішінде қазақ алфавитін пайдаланып, қазақша мәтін
енгізу үшін алдын-ала NC панелінде жазылған kazega.com файлын іске
қосып қою керек. Программа ішінде оны теру үшін осы файлды іске қосу
командасы: SHIFT + SHIFT. Латын алфавитіне қайтып өту үшін осы
команданы қайта берсе болғаны.
3. Турбо СИ жүйесінде құрылған программаны Turbo C++ жүйесінде
де пайдалануға болады. Бірақ, прогамма соңына return 0; операторын
кірістіріп қойса болғаны.
4.Программа Си тілінде .С толықтыруымен, С++ тілінде .СРР
толықтыруымен сақталады.
1.2 СИ тілінің алфавиті

1) Латын алфавитінің үлкен және кішіәріптері (А,В,...,Z,a,b...,z);
2) Цифрлар:0,1,2,3,...,9
3) Арнайы белгілер:″ , & % () * [] + - = ! ? \ ; _ : Р‘ ^ ~ {}
4)Көзге көрінбейтін символдар,олар сөйлемдерді бір-бірінен ажыратуда
қолданады (мысалы, пробел (бос орын),табуляция,жаңа жолға өту).
Түсіндіру мәтіндерінде (коментартяларда), жолдарда және символдық
тұрақтыларда басқа литерлер де істетілуі мүнкін (мысалы, орыс немесе қазақ
әліппесінің әріптері).
Түсіндіру мәтіндерді *және* белгілерінің ішіне жазылады. Мысалы
*Бұл бағдарламада Евклид есебін шешеді*
Стандарттық СИ тілінде түсіндіру мәтіндерін бір-бірінің ішіне
жазуға болмайды, яғни *текст-1*текст-2*текст-3* көріністегі жазу-қате,
“текст-3” түсіндіру мәтіні болып есептеледі.
СИ тілінде ликсимнің 6 класы бар:Таңдап алынатын және қолданылатын
идентификаторлар, қызметші (түйінді) сөздер, тұрақтылар, жолдар (жолдық
тұрақтылар), ажырату белгілері (пунктуация белгілері).

1.3 Идентификатор

Әріптердің, цифрлардың және сызықша “–”символдарының әріптен немесе
символынан басталатын тізбегі СИ тілінің идентификаторы болып есептеледі.

Идентификаторға мысалдар:

KOM_16, Size88, _MIN, TIME,
time

СИ тілінде үлкен және кіші әріптер бір-бірінен өзгешеленеді,яғни
TIME және timе идентификаторлары басқа-басқа идентификаторлар.
Идентификаторлардың ұзындығы (яғни ондағы символдар саны) кез
келген мөлшерде болуы мүнкін, бірақ компилятор иденфитикаторлардағы
символдардың басынан бастап 31-ін ғана есепке алады. Кейбір компиляторлар
кез келген иденфикатордың бастапқы 8 символын ғана есепке алады. Мұндай
жағдайларда NUMBER_of_ROOM және NUMBER_OF_TEST
Иденфитикаторларының
айырмашылығы болмайды.

1.5 Қызметші (түйінді) сөздер.
Тілдің құрамына алдын ала алдынан енгізілген және бағдарламашы
тарапынан еркін таңдалып, қолдануға болмайтын иденфитикаторлар қызметші
(түйінді) сөздер деп аталады. Қызметші сөздер берілгендердің типін,
жадтардың классын, типтердің квалификаторларын, модизмкаторларды,
псевдоайнымалыларды және операторларды анықтайды. Тілдің стандартында
мынандай қызметші сөздер анықталады.

auto break case
unsigned char 8 0...255
сhar 8 (%S%c) -128...127
enum 16 -32768...32767
unsigned int 16 0...65535
short int (short) 16 (%d) -32768...32767
unsigned short 16 0...65535
int 16 (%d) -32768...32767
unsigne dlong 32 0...4294967295
long 32 -2147483648 ... 2147483647
float 32 (%f) 3.4E-38...3.4E+38
double 64 (%ef) 1.7-308...1.7E+308
long double 80 (%ef) 3.4E-4932...1.1E+4932

2.1Айнымалыға мәндерді меншіктеу:

Тип айнымалы-атауы==бастапқы _мән;
Осы әдіс- инициализация деп аталады. Меншіктеу операциясы-
бағдарламаның орындалуы барысында амалға асырылады, ал инициялазацилау-
айнымалыға жадтан орын ажыратылғанда (бөлінгенде) амалға асырылады.
Инициязациялық анықтауға мысалдар:
Float Pi=3.1415, CC=1.23;
Unsigned int year=1997;

2.2 Шекті мәндер тұрақтылары
Бүтін типтер үшін шекті мәндер –limits.h файлы.

1 – кесте .

Тұрақтының аты Мәні Мағынасы

CHAR_BIT 8 Байттағы биттер саны

SCHAR_MIN -128 Signed char-дың минимал мәні

SCHAR_MAX 127 Signed char-дың максимал мәні

UCHAR_MAX 255 Unsigned char-дың максимал мәні

CHAR_MIN ′0′ Char үшін минимал мәні
SCHAR_MIN
CHAR_MAX UCHAR_MAX Char үшін максимал мәні
SCHAR_MAX
MB_LEN_MAX 1 Көп байтты символдағы байттардың
минимал саны.
-
SHRT_MIN -32768 Short үшін минимал мәні

SHRT_MAX 32767 Short үшін максимал мәні

USHRT_MAX 65535 Unsigned short-тың максимал мәні
I
INT_MIN -32768 nt үшін минимал мәні

INT_MAX 32767 Int үшін максимал мәні

UINT_MAX 65535 Unsigned int үшін максимал мәні

LONG_MIN -2147483648 Long үшін минимал мәні

LONG_MAX 2147483647 Long үшін максимал мәні

ULONG_MAX 4294967295 Unsigned long үшін максимал мәні


2.3 Нақты типтердің тұрақтылары – float.h файлы

2-кесте.

Тұрақтының аты Мәні Мағынасы
1 2 3

FLT_RADIX 2 Экспоненциал түрде бейнелеу негізі,
Мысалы:2,16
FID_DIG 6 Дұрыс ондық цифр саны

FLT_EPSILON 1E-5 Минимал х, мұнда 1.0+х≠1.0
(1.192093Е-07)
FLT_MANI_DIG 24 Мантиссадағы FLT_RADIX негізі
бойынша цифрлар саны
FLT_MAX 1E+37 Жылжымалы нүктелі максимал сан
(3.402823Е+38)
FLT_MAX_EXP 128 Максимал n, мұндағы FLT_RADIXⁿ-1
өрнекті float типіндегі сан
Түрінде бейнеленуі мүмкін.
FLT_MAX_10_EXP 38
Максимал бүтін n,мұнда 10ⁿ float типі
түрінде бейнелеуі мүмкін.
FLT_MIN 1E-37 Float типіндегі жылжыиалы нүктелі
минимал,нормал түрде келтірілген сан
(1.175494 Е-38)
FLT_MIN_EXP -125 Минимал n,мұнда 10ⁿ саны нормал
көрініске келтірілген сан түріне
бейнелеуі мүмкін.

FLT_MIN_10_EXP 38 Максимал бүтін n,мұнда 10ⁿ саны
float типі түріндебейнеленуі мүмкін.
DBL_DIG 10 Double типі үшін дұрыс ондық
цифрлар саны.
DBL_EPSILON 1E-16 Минимал Х, мұнда 1.0+х =1.0 Х≠ 1.0
және Х double типіне тиісті.
(2.220446 Е-16)
DBL_MANT_DIG 53 FLT_RADIX негізі бойынша double
типіндегі санның мантиссасындағы
цифрлар саны.

DBL_MAX 1E+308 Double типіндегі жылжымалы
типіндегі максимал сан.
(1.797693 Е+308)
DBL_MAX_EXP 1024 Манимал n, мұнда FLT_RADIXⁿ-1
саны double типіндегі сан көрінісінде
бейнеленуі мүмкін.

DBL_MAX_10_EXP 308 Максимал бүтін n, мұнда 10ⁿ double типі
түрінде бейнеленуі мүмкін.
DBL_MIN 1E –308 Double типіндегі нормал түрге
- келтірілген жылжымалы нүктелі минимал
сан (2.225074Е-308)

DBL_MIN_EXP -1021 Минимал n, мұнда 10ⁿ саны нормал түрге
келтірілген double типіндегі
сан көрінісінде бейнеленуі мүмкін.

DBL_MIN_10_EXP -307 Минимал теріс n саны, мұнда 10ⁿ
саны double типіндегі сандардың
анықталу обылысында жатады .

Бұл кестедегі FLT_ префиксі float типіне, ал DBL_префиксі
double типіне сәйкес келеді. Жақшаның ішіне кейбір тұрақтылар
үшін олардың Borland 3.1 С+1тегі бейнеленуі үлгілері көрсетілген.

2.4 СИ бағдарламалау тілінің математикалық стандарт функциялары
3-кесте

Функция Протитип және олардың қызметтерінің қысқаша сипаттамасы
1. авs Int abs (int i);
Бүтін аргумент i-дің абсалют мәнән қайтарады.
2.acos Double acos(double x) ;
Арккосинус функциясы. Аргументтің мәні -1 мен +1
аралығында болуы қажет, яғни -1 ≤ х ≤+1
3.atan Double atan (double x) ;
Арктангенс функциясы.
4.atan 2 Double atan2 (double у, double x);
Ух мәнінің арктангенстің функциясы.
5.cads Double cabs (struct complex znum);
Znum комплекс санының абсалют мәнін есептейді. Сomplex
Структурасының ( типінің ) анықталуы-math.h файылында
6.Ceil Double ceil (double x) ;
Х аргументтен кіші болмаған ең жақын бүтін санды
есептейді ( анықтайды )
7. Сos Double cos (double x) ;
Косинус функциясы.Бұрыштың ( аргументтің )мәні
радиандуда берілуі тиіс
8. Exp Double еxp (double x) ;
еx-тің мәнін есептейді ( экспоненциалдық функция )
9.fabs Doubl fabs (double x) ;
Нақты түрдегі х аргументінің абсалют мәнін екілік дәлдікпен
қайтарады.
10.floor Doubl floor (double x) ;
Х-тің мәнінен үлкен болмаған ең үлкен бүтін санды
анықтайды.Оны double түрінде өрнектейді
11.fmod Doubl fmod (double x, double у);
Х-ті у-ке бөлгендегі қалдықты қайтарады
12.frexp Doubl frexp (double value,int exp);
Жылжымалы нүктелі value санын нормал түрге келтірілген
мантиссаға және бүтін бөлігін 2-нің дәрежесі көрінісінде
ажыратады (бөледі)
13.hypot Doubl hypot ( double x, double у);
Катеттері х,у болған тік бұрышты үшбұрыштың z гипотенузасын
Есептейді (zІ=xІ+yІ)
14.labs Long doubl labs ( long x);
long x бүтін аргументтің абсалют мәнін есептейді
15.dexp doubl ldexp (double v,int e );
v *2e өрнектің мәнін есептейді.
16.log double log(double x);
Натурал логарифмнің( lnx) мәнін есептейді
17.log 10 double log 10 (double x);
Ондық логарифмнің ( lg x) мәнін есептейді
18.Modf Double modf (duble value,double*iptr);
Жылжымалы нүктелі value санын бүтін және бөлшек
бөлімдерге ажыратады.Санның бүтін бөлігі жадтың iptr
сілтейтін аймағына жазылады,ал бөлшек бөлігінің мәні ф-я
қайтаратын мәнге тең болады.
19.Poly double poly (double x,int n, double c [ ] );
c[n] xⁿ +c[ n-1]xⁿЇ№ +... +c [ 1]x+c [0] полиномының мәнін
есептейді.
20.Pow double pow (double x, double у);
x y өрнектің мәнін есептейді
21.Pow 10 double pow 10 ( int p);
10p өрнектің мәнін есептейді.
22.Sin double sin (double x);
Синустың ф-ясы.Бұрыштың( аргументтік) мәні радиандарға
беріледі.
23.Sinh double sinh (double x);
x аргументтің гипербалалық синусының мәнін есептейді.
24.Sgrt double sgrt (double x);
х аргументтік оң мәнінің квадрат түбірін есептейді.
25.Tan double tan (double x);
Тангенстің ф-ясы.Бұрыштың(аргументтің) мәні радиандарға
беріледі.
26.Tanh double tanh (double x);
х аргументтің гипербалалық тангенсінің мәнін есептейді.

III-тарау
Операциялар және олардың түрлері

Өрнектерді құрастыруда және содан кейін мәнін есептеуде операциялар
қолданылады.Бір операцияны бейнелеу үшін , көп жағдайларда бірнеше
операциялар істеледі.Кестеде ,СИ тілінің стандарты бойынша анықталған
операциялардың барлық белгілері (таңбалары) келтірілген . Кестеде
операциялар топтары бөлініп,олардың топтарға сәйкес рангтері ( реті)
көрсетілген .
3.1Операциялар приоритеті ( рангі)
Рангі Операциялар Ассоциятивтігі
1 ( )[ ] . .
2 ! ~+ -++ -&* ( тип )size of
3 *% ( мультипликативтік бинарлы)
4 + - ( аддитивтік бинарлы )
5 ( разрядтық жылжымалы )
6 = = ( қатынас )
7 = != ( қатынас )
8 & ( разрядтық конъюнкция және )
9 ^ ( разрядтық жоғалту немесе )
10 ( разрядтық дизъюнкция немесе)
11 && ( конъюнкция және)
12 ( дизъюнкция немесе)
13 ?: ( шартты операция)
14 = * = = % = + = - = & = ^ = = = =
15 , ( үтір операциясы)

3.2 Ұнарлық ( бір орыңды ) операциялар

Бір орынды префикстік және постфикстік операцияларды бейнелеу үшін
мынадай символдар істеледі:
&-операцияның адресін анықтау операциясы (2 ранг)
*-адрес бойынша қатынас жасау операциясы, яғни сілтемені ашу,басқаша
айтқанда атын анықтау операциясы .Мұнда сілтеме (көрсеткіш) операнд болуы
керек.(2 ранг).
+-унарлы плюс,унарлы минуспен симметриялы болуы үшін енгізілген(2 ранг).
~ -бүтін санды аргументтің ішкі екілік кодын разрядтық инверттеу(2 ранг).

! –ЕМЕС –операндтың мәнін логикалық теріске шығару (2 ранг).Скалярлық
операндтарға қолданылады.Бүтін мәнді нәтиже 0-ге тең (егер операнд нөлдік
болмаса ,яғни шын болса)немесе 1-ге тең (егер операнд нөлдік, яғни жалған
болса ). Ескертеміз ,тілдің логикалық мәні ретінде бүтін сандар
істеледі:
0- жалған және нөл емес яғни (!0)= шын. Кез-келген нөл болмаған санды
теріске шығару нәтижесі болады, ал нөлді теріске шығару нәтижесі
1- ге тең болады.Сөйтіп :!1=0; !2=0; !(-5)=0; !0=1;
++ - бірге арттыру (ингремент) немесе авто арттыру (2ранг); екі түрі
бар:
Префикстік операция- қолданудан алдын операндтың мәнін 1-ге тең
арттыру.Ассоциативтік стандартқа сәйкес ( );
Постфикстік операция –қолданғаннан соң операндтың мәнін бірге
арттыру.Ассоциятивтігі стандартқа cәйкес ( ).++(және- - )операциялар
үшін операнд тұрақты бола алмайды.
+ +5 немесе 84+ + жазулары дұрыс емес .Сондай-ақ + +(j+k) жазу да дұрыс
емес.
- - -бірге азайту операциясы (декремент немесе автоазайту -2
ранг).Мұнда операнд тұрақты да,өрнек те бола алмайды;
Злефикстік операция- қолданудан алдын операндтың мәнін бірге азайту;
Постфикстік операция- қолданғаннан соң операндтың мәнін бірге азайту;
Size of –операндының типі анық болған объектінің өлшемін (байттарда)
есептеу операциясы(2 ранг).Бұл операцияның екі форматы бар:

of
size
size of
өрнек
size of
(тип)
өрнектің мәнін есептемейді,ол тек оның типін анықтайды, содан кейін
өлшемін есептейді.

3.3 Бинарлық( екі орындық) операциялар
Мынадай топтарға бөлінеді :
• Аддитивтік ;
• Мультипликативтік;
• Жылжымалы;
• Разрядтық;
• Қатынас операциялары;
• Меншіктеу;
• Құрылымдық объектінің компаненттерін таңдау;
• Үтір операциясы;
• операция ретінде жақшадан пайдалану ;

3.4 Аддитивтік операциялар;
+ -бинарлық плюс –арифметикалық операндтарды қосу немесе бүтін санды
операндқа ие болған көрсеткішті қосу(4 ранг);
- -бинарлық минус- арифметикалық операндтарды айыру немесе
көрсеткіштерді айыру(4 ранг).

3.5 Мультипликативтік операциялар:

* -арифметикалық типтегі операндтарды көбейту(3 ранг)’
-арифметикалық типтегі операндтарды бөлу (3 ранг). Бүтін санды мәнді
операндтарда нәтиженің абсолоют мәні бүтін мәнге жуықтап
теңестіріледі.Мысалы,
203=6, -203=-6, (-20)3=-6, 20(-3)=-6;
% -бүтін мәнді оперантарда бөлуде қалдықты есептеу (модульдік бөлу,3
ранг).
Мысалы,13%4=1, (-13)%4=-1; 13%(-4)=+1, (-13)%(-4)=-1.
Жылжымалы операциясы ( тек бүтін мәнді операндтар үшін қолдану мүмкін).
Жылжыту операциясы бар өрнектің форматы:
Сол операнд-жылжыту операциясы-оң-опреанд
-сол жақтағы бүтін мәнді операндтың сол жаққа бағытталып жылжуы,мұнда
жылжыған разрядтар(позициялар) саны оң жақтағы бүтін мәнді операндтың
мәніне тең болады( 5ранг );
-сол жақтағы бүтін мәнді операндтың оң жаққа жылжуы , мұнда жылжыған
разрядтар(позициялар)саны оң жақтағы бүтін мәнді операндтың мәніне тең
болады(5 ранг)
Мысалдар:
42өрнектің мәні 16-ға тең болуы ;51 операция нәтижесі 2-ге тең.
4-тің екілік коды 100-ге тең ,ал 5-тің екілік коды 101-ге,6-ның екілік
коды 110-ға тең және т.с.с.

(Басқаша жазсақ 410=1002,510=1012,610=1102 және т.с.с.).
1) 4 2
2) 100 нәтиже10 000,бұл 16-ға тең
2 позицияға
2) 5 1
101 1позицияға нәтиже 10,2-ге тең.

3.6 Разрядтық операциялар.

& -Биттік бейнеленген бүтін мәнді операндтар мәндерінің разрядтық
конъюнкциясы ( және),(8 ранг);
- Биттік бейнеленген бүтін мәнді операндтар мәндерінің разрядтық
дизъюнциясы (немесе,10 ранг);
^ -Биттік бейнеленген бүтін мәнді операндтар мәндерінің немесе
операциясының жоққа шығару(9 ранг);

Мысалдар,
1) 6&5 операциясының нәтижесі 4-ке тең.
610=1102;510=1012;&-логикалық көбейту.

110
& 101 Демек,110&101=100, 1002=420
100

P g P & g
0 1 0
0 0 0
1 0 0
1 1 1

1100 0001
& 0111 & 1111
0100 0001

2) 615 операцияның нәтижесі 7-ге тең
110
101
111. Демек 110101=111, 1112=710

P g Pg
0 0 0
1 0 1
0 1 1
1 1 1

3) 6^5 операцияның нәтижесі 3-ке тең.

110
^ 101
011

Демек 110^101=011,112=310;

P g P
0 0 0
1 0 1
0 1 1
1 1 0

0111 1111
^ 0111 ^ 1000
0000 0111

3.7 Қатынас (салыстыру) операциялары

кем (6 ранг);
үлкен (6 ранг);
= кем немесе тең (6 ранг);
= үлкен немесе тең (6 ранг);
== тең (7 ранг);
!= тең емес.
Мысалдар:
35=1;
35=0;
3==5=0;
3=5=0;
3=5=1;

3.8 Логикалық (бинарлық) операциялар

&& - арифметиаклық операндтардың немесе қатынастардың конъюнкциясы (және,11
ранг).Операцияның бүтін мәнді нәтижесі 0 ( жалған) немесе 1 (ақиқат
)болады;
- арифметикалық операндтардың немесе қатынастырдың дизъюнкциясы (
немесе 12 ранг).Операндтың бүтін мәнді нәтижесі 0 (жалған) немесе
1 ( ақиқат )болады.
Мысалдар:
1) 3!=5==5=1
2) 3+45&&3+54&&4+53=1

P g P && g Pg
0 0 0 0
1 0 0 1
0 1 0 1
1 1 1 1

Шешуі :
3!=5=1
10
3==5=0

3+45=1
3+54=1 1&&1&&1=1&&1=1
4+53=1

3.9 Меншіктеу операциясы (14 ранг)

ОЖО – оң жақтағы операнд, СЖО-сол жақтағы операнд.Меншіктеу операциясын
санап өтейік,мұнда бір жай операция және бірнеше құрама операциялар
бар :

=- қарапайым меншіктеу: ОЖО- өрнектің мәнін СЖО- қа меншіктейді.Мысал:
р=10.3-2*x;

*= көбейтіндінің нәтижесінің мәнін меншіктеу:
Оң жақтағы екі операндтың көбейтіндісін СЖО-қа меншіктейді.
Мысал : p=p*2, ал осы өрнекке p*=2 өрнегі эквивалент ;

= бөлу операциясының нәтижесін мәнін меншіктеу: СЖО-тың ОЖО-қа
бөлгендегі шыққан нәтижені СЖО-қа меншіктейді.
Мысал ,р=2.2-d өрнегі p=p(2.2-d өрнегіне эквилалент);

%= бөлу операциясының нәтижесінің мәнін модуль бойынша меншіктеу: СЖО-
тың ОЖО-қа бүтін мәнді бөлгендегі қалдыққа СЖО-қа меншіктейді.
Мысал: N%=3 өрнегі N=N%3өрнегіне эквивалент;

+ = -қосындының мәнін меншіктеу;екі операндтың қосындысының мәні СЖО-
қа меншіктейді.Мысал, А+ =В өрнегі А=А+В өрнегіне эквивалент;

- = -айырманың мәнін меншіктеу: СЖО-пен ОЖО-тың айырмасын СЖО-қа
меншіктейді.Мысал: X- =4.3- Z өрнегі X=X-(4.3-Z)өрнегіне эквивалент;

= -разрядтарды солға жылжытқаннан кейінгі меншіктеу: СЖООЖО
операциясының нәтижесінің мәнін СЖО-қа меншіктейді.
Мысал: а =4 өрнегі а=а 4 өрнегіне эквивалент;

= Разрядтарды оңға жылжытқаннан кейінгі меншіктеу:СЖООЖО
операциясының нәтижесінің мәнін СЖО-қа меншіктейді.
Мысал: а= 4 өрнегі а=а 4 өрнегіне эквивалент.

& = -разрядтық конъюнкциядағы және кейінгі меншіктеу: СЖО&ОЖО
операциясының нәтижесінің мәнін СЖО-қа меншіктейді.
Мысал: Е&=44 өрнегі E=&44 өрнегіне эквивалент;

= -разрядтық дизъюнкциядан (немесе) кейінгі меншіктеу: СЖО ОЖО
операциясының нәтижесінің СЖО-қа меншіктейді.
Мысал: а = в өрнегі а=а в өрнегіне эквивалент;

^ = -разрядтық “және”-ні болғызбағаннан (жоққа шығарғаннан) кейінгі
меншіетеу; СЖО^ОЖО операциясының нәтижесінің мәнін СЖО-қа меншіктейді.
Мысал: z ^ =x + y өрнегі z = z ^ (x + y)өрнегіне эквивалент.

Жоғарыда санап өтілген операциялардан мынаны байқаймыз: барлық құрама
меншіктеу,операциялары үшін Е1 ор=Е2 меншіктеу формасы (түрі) Е1=Е1 ор
(Е2) өрнегіне эквивалент, мұндағы ор-операцияның белгіленуі.

3.10 Құрылымдық объект компоненттерін таңдау операциясы

.(нүкте)-құрылымдық объекттің (бірлестіктің немесе құрылымның)компонентін
тікелей таңдау (ажыратып алу),
1-ранг.
Операцияның қолдану форматы:құрылымдық, объекттің аты.

- көрсеткіш сілтейтін құрылымдық объекттің компонентін жанамалы
түрде таңдау (ажыратып алу), 1-ранг. Осы операцияны қолданғанда
көрсеткіштің объектпен байланысқан болуы талап етіледі. Бұл
операцияның қолдану форматы :құрылымдық,объект көрсеткіші
компонент аты.

3.11 Үтірді операция ретінде қолдану (15 ранг)

, белгісімен яғни үтірбелгісімен ажыратылған(бөлінген ) бірнеше
өрнектер солдан оңға қарай ретімен орындалады (есептеледі). Нәтиже
ретінде оң жақтағы ең соңғы қрнектің типі және мәні сақталады.Сөйтіп,
үтір операциясы есептеу нәтижелерін солдан оңға қарай жинақтайды.
Нәтиженің типі және мәні үтірмен ажыратылған операндтардың (өрнектердің)
оң жақтағы ең соңғысымен аяқталады.Сол жақтағы барлық операндтардың
мәндері есепке алынбайды.
Мысалы, егер х айнымалысының типі int болса, онда (х=3,3*х ) өрнектің
мәнін меншіктейді.

3.12 Жақшаны операция ретінде қолдану

Жай ( ) және квадрат [ ] жақшалар функцияларды шақырғанда және
массивтердің элементтерін индекстеуде бинарлық операциялар ролін
(қызметін )атқарады.
Функцияларды шақырғанда, әлбетте жай жақшалардың істетілуі мүмкін:
Функция аты (аргументтер тізімі)
Мұндағы функция аты және аргументтер тізімі операндтар қызметін атқарады
.Шақыру нәтижесі функцияның денесінде анықталады (есептеледі).
Массивті сипаттау :
Массив аты [ индекс ]
Мұндағы массив аты және индекс [ ] операциясы үшін операндтар қызметін
атқарады.

3.13 Үш орынды шартты операция (13ранг)

Бұл операцияда үш операнд қолданылады. Шартты операцияны бейнелеуде екі
? және : символдары және үш операнд - өрнектер қолданылады:
1 өрнек? 2 өрнек: 3өрнек
Бірінші кезекте 1 өрнектің мәні есептеледі. Егер оның нәтижесі ақиқат
(шын)болса , яғни нөлге тең болмаса, онда 2 өрнектің мәні есептеледі және
ол нәтиже 0 болса,онда нәтиже ретінде
3 өрнектің мәні алынады. Классикалық мысал: х0? –х : х;
Өрнек х айнымалысының абсолют қайтарады.

IV-тарау

Си тілінде бағдарламауға кіріспе

Қарапайым бағдарламаның структурасы (құрылымы) және компоненттері.
Си тілінде жазылған әрбір бағдарламада процессор директивалары, глобал
обектердің және функциялардың сипаттамалары тізбектері бар.Препроцессорлық
директивалары (#include және #define) бағдарлама мәтіндерінің
компляциялауға дейінгі түрлендірулерін басқарады.Әрбір препроцессорлық
директива “#”символынан басталады.
# define директивасы бағдарлама мәтіндерінде алмастыру ережелерін
көрсетеді.
#include директивасы бағдарлама мәтініне қандай мәтіндік файлдарды ендіру
керек екендігін анықтайды.

0

1- Орындалатын бағдарламаларды дайындау схемасы.

4.1 Директиваның жазылу формасы:
#includeтақырыптық файл атауы
Бағдарлама структурасы(құрылымы).
Бағдарлама мәтіні препроцессорлық өңделгеннен соң онда бірде-бір
препроцессорлық директивалар қалмайды.Енді бағдарламада сипаттамаларды
және анықтамалардың жиыны қалады. Егер глобалдық объектілер және
сипаттамаларды қарастырмайтын болсақ,онда бағдарламада негізінен
функциялардың анықтамалары қалады.
Осы функциялардың ішінде main атты функцияның болуы шарт.Осы фунция
бағдарламаның глобалды функциясы болып есептеледі, бұл функциясыз бірде-
бір бағдарлама орындалмайды. Тек функциялардан құрылған қарапайым
бағдарламаның жалпы көрінісі мынанадай түрде болады:
Препроцессор директивалары
Void main( )
{
объекттерді анықтау (сипаттау);
орындалатын операторлар;
}
Егер mаіn функциясы параметрлерді қабылдайтын және нәтижені қайтаратын
болса ,онда ол мынадай көріністе баяндалады:
Int main ( int arge ,char*argv [ ])
{
*нұсқаулар (операторлар)
*
return(мән);
}
Егер mаіn функциясы параметрлерді қабылдамаса және нәтижені қайтармаса
,онда ол мынадай көріністе баяндалады:
Void main ( )
{ *
нұсқаулар(операторлар)
*
}
4.2 Мәліметтердің негізгі типтері
С\С++ тілінің мәліметтерінің негізгі типтеріне мыналар жатады:
1)Бүтін сандар (int және басқалар );
2)Бөлшек (наұқты )сандар(float және басқалар );
3)символдар (char).
Бүтін сандар және жылжымалы нүктелі сандар әр түрлі форматтарда жазылуы
(бейнеленуі )мүмкін .
Бүтін сандар
(тип) бит Мәндер диапапазоны
Int 16 -32768...32767
Short int 16 -32768...32767
Unsigned int 16 0...65535
Enum 16 -32768...32767
Long 16 -2147483648...2147483647
Unsigned long 32 0...42994967295

Бөлшек (нақты )сандар.
(тип) бит Мәндер диапазоны
Float 32 3.4*10^-38...3.4*10^38
Double 64 1.7*10^-308...1.7*10^308
Long double 80 3.4*10^-4932...1.1*10^4932

Символдар.
тип бит Мәндер диаппазоны
Insignet char 8 0...255
Char 8 -128...127

Мәліметтерді ендіру–шығаруда #include stdio.h директивалары
істеледі,мұндағы: std-standart (стандарттық), i-input
(ендіру),output(шығару),h-head(тақы рып).
#includeconio.h-MS-Dos компиляторы үшін істеледі(экранды тазалау);
#include assert.hбағдарламаны диагностика жасау;
#include ctype.hсимволдарды түрлендіру және тексеру;
#includeerrno.hқателерді тексеру;
#includefloat.hнақты мәлімттермен жұмыс жасау;
#includelimits.hбүтін мәнді мәліметтердің шекті мәндері;
#includestdarg.hпараметрдің айнымалы санын ұстап тұру;
#includestddef.hқосымша анықтамалар ендіру;
#incudestdlib.hжалпы қызмет атқаратын функциялармен жұмыс істеу;
#includestring.hсимволдар жолдарымен жұмыс істеу;
#includetime.hкүнді және уақытты анықтау;
#incudegraphics.hграфикалық библиотекамен байланысы;

4.3 Мәліметтерді ендіру
Мәліметтерді компьютердің жадына клавиатура арқылы ендіру үшін
scanf функциясы істеледі. Оның жазылу форматы :
Scanf (форматтық жол, аргументтер тізімі);
Scanf( ) функциясы клавиатурадан ендірілетін кодтарды “ оқиды”.Бұл кодтар
–көрінетін символдардың кодтары,көмекші клавиатурадан келетін басқару
кодтары және олардың комбинациясы арқылы келетін кодтың болуы мүмкін
.Scanf( ) фунциясы кодтарды қабылдайды ,оларды ішкі форматқа түрлендіреді
және бағдарламаға жібереді. Scanf( ) функциясының форматтық жолы мынадай
көріністе болады:
%*өріс кеңдігі модификатор спецификатор
Түрлендіру спецификаторларының элементерінің арасында мыналардың болуы
шарт :% және спецификатор .Сандық мәндерді шығаруда мына спецификатор
қолданылады :
d-бүтін ондық сандар үшін (int muni );
U-таңбасыз бүтін сандар үшін(unsigned int muni);
f-нақты сандар үшін (float muni);
e-нақты сандар үшін (float muni);
Өріс кеңдігі –бүтін оң сан болып, ендірілетін және қанша байт (символ)
мөлшері сәйкес келетіндігін анықтайды.
*- Бұл символ қазіргі кезеңде қолданылмайды.
Модификатор ретінде мына символдар істеледі.
h-mini short int (hd)болған мәндерді енгізу үшін;
l-muni long int (ld)болған мәндерді енгізу;
L-muni long double (Lf,Le)болған мәндерді үшін ;
Scanf ( )функциясындағы аргументтер –бағдарлама объекттерінің адрестері
болады ,және жеке жағдайда функцияның айнымалыларының адрестері болады.
Объектің адресін алу үшін Си тілінде арнайы ұнарлық операциясы(&)бар :
&-объект_аты;
Айнымалының адресін алу өрнегі мынадай көріністе болады;
& айнымалы _аты;
Мысалы,n,z,x-айнымалылардың мәндерін клавиатура арқылы ендіру үшін
ендіру операторы мынадай көріністе жазылады:
Scanf (“% d % f”,&n,&z,&x);
Мысалы, Цилиндердің көлемін есептеу бағдарламасын жазайық.
* Цилиндірдің көлемін есептеу*
#include stdio.h
#includestdio.h
#includemath.h
Void main ( )
{
clrscr( );
double h,r,v;
const float Pi=3.141593;
* h-цилиндр биіктігі , r- цилиндр радиусы *
*v-цилиндр көлемі,Pi- “пи” саны*
Printf (“\n цилидр радиусы r=?”);
Scanf (“%ef”,&r);
Printf (“\n цилидр биіктігі h=?”);
Scanf (“%ef”,&h);
V=Pi*r*r;
Prinf (“Цилиндр көлемі V=%10.4f”,V);
}
Ctrl+F9,Alt+F5
Цилиндр радиусы r=? 2.0
Цилиндр биіктігі h=? 4.0
Alt+F5
Цилиндр көлемі v=? 50.2654

4.4 Мәліметтерді шығару

Компьютерден ақпараттарды шығаруда бағдарламаларда printf( )
функциясы қолданылады.Бұл функция мәліметтерді ішкі кодтан символдық
бейнелеуге өткізеді және символдық бейнеленген нәтижелерді дисплей
экранына шығарады. Мұнда бағдарламашы экранда шығарылатын ақпаратты әр
түрлі көрініске келтіруі мүмкін.Printf-тың толық жазылуы Print formatted.
Printf( ) функциясын шақыру операторы мынадай түрде жазылады:
Printf (формат,айнымалылар тізімі );
Форматталу жолы-екі тырнақша белгісімен шектеліп,оның ішінде кез-келген
мәтін,басқару символдары және мәліметтерді түрлендіру спецификациялары
жазылуы мүмкін. Аргументтер тізімі болмауы да мүмкін.

Мысалы:
#includestdio.h
Void main ( )
{
printf(“\n Салем тыныштық!\n”)
}
Мұндағы ‘\n’-“жолды(қатарды)өткізу” басқару символы .Осы бағдарлама
компьютерде орындалатын дисплей экранында шығатын ақпарат көрінісі:
Салем, тыныштық!
Бірінші ‘\n’-символы осы сөйлемді жаңа жолдың басынан бастап шығарады,ал
екінші ‘\n’-басқару символы курсорды келесі жолдың басына өткізеді.
Мәліметтерді түрлендіру спецификациялары printf( ) функциясының
аргументтерінің мәндерінің бейнелеу формасын(түрлерін) басқару үшін
қызмет жасайды.Түрлендіру спецификациясының жалпы формасы мынадай
көріністе болады:
% Байрақтар(тулар)өріс кеңдігі анықтық модификатор-спецификатор .
Түрлендіру спецификаторларының ішінде мына екеуі шартты түрде болуы керек:
% символы және спецификатор .
Мынандай түрдегі спецификаторлар істелуі мүмкін:
D-бүтін ондық сандар үшін (int типі),
U-таңбасыз бүтін ондық сандар үшін(unsigned типі),
F-орнықты нүктелі түрдегі нақты сандар үшін (float,double munmepi)
E-жылжымалы нүктелі түрдегі нақты сандар үшін (мантиссалы және дәрежелі)-
double және float munmepi үшін .
Мысалы, summa айнымалысының мәні 567.3 тең болсын, сонда бағдарламаның
Printf(“\n summa=%f”,summa);
Жолы компьютерде орындалғанда мынадай нәтиже шығады:
Summa =567.3
Мына операторлар орындалғанда
Float c,e;
Int k;
C=48:3;k=-83;e=16.33;
Printf(“\nc=%f\tk=%d\te=%e”,c,k,e);
Экранда мына көріністегі жол шығады:
C=48.299999; k=-83 e=1.63300e+01
Бағдарламадағы ‘t’-табуляция басқару символы ,ол жолдағы мәндер арасы
ашық болып шығуын қамтамасыз етеді.
Түрлендіру спецификациясында сандық мәндерді шығаруда “өріс кеңдігі”
және “анықтығы”өте пайдалы және сандарды форматты түрде шығару
мүмкіндігін береді.
Өріс кеңдігі- бүтін оң сан болып , экранда шығарылатын мәндерді
бейнелер ұзындығын (Экрандағы позициялар санын ) анықтайды.
Анықтығы- бүтін оң сан болып ,нақты жылжымайтын нүктелі сандардың
бөлшек бөлігіндегі цифрларды немесе оның мантиссасын (Жылжымалы
нүктелі сан болса )бейнелеудегі позициялар санын анықтайды .
Мысал ретінде бағдарламаның мынандай жолын (үзіндісін) қарастырайық:
Float c,e;
Int k;
C=48.3 ; k=-83; e=16.33;
Printf(“\nc=%5.2\tk=%5d\te=%11.4e”, c,k,e,e);
Экранда шығатын нәтиже:
C=48.30 k=-83 e=16.33 e=1.6330e+0.1
Түрлендіру спецификациясында модификатор ретінде мына символдар
қолданылады:
h-short int типіндегі мәндерді шығару үшін ;
l-long типіндегі мәндерді шығару үшін ;
L-long double типіндегі мәндерді шығару үшін ;

#include stdio.h
Void main ( )
{
double a,b,c,t1,t2,t3;
a=95.0;b=0.02;
t1=(a+b)*(a+b);
t2=-20*a*b-a*a;
t3=b*b;
c=(t1+t2)t3;
Printf (“\nc=%f\n”,c);
}
Бағдарламаның орындалу нәтижесі:
C=2.441406

Түрлендіру спецификаторлары және баспаға (экранға ) шығарылатын
нәтиже кестесі.
Түрлендіру спецификациясы Нәтиже ( шығару нәтижесі)
% a Жылжымалы нүктелі сан он алтылық санақ
жүйесіндегі сандар және р-жазу (c 99)
% A Жылжымалы нүктелі сан,он алтылық санақ
жүйесіндегі сандар және р-жазу(c 99)
% c Бірлік символ
% d Таңбалы ондық бүтін сан
% e Экспотенциал түрде бейнеленген жылжымалы
нүктелі сан (e-бейнелеу)
% E Жылжымалы нүктелі сан ,Е-бейнелеу
% f Жылжымалы нүктелі сан ,ондық бейнелеу
% g Мәніне байланысты %f немесе %e
істеледі.Дәреже-4 тен болса % e
істеледі
% G Мәніне байланысты % f немесе %е істеледі .
Егер дәреже көрсеткіші -4 тен кіші болса
%e істеледі
% i Таңбалы ондық бүтін сан
% o Таңбасыз сегіздік бүтін сан
% p Сілтеме (нұсқағыш)
% S Символдар жолы
% U Таңбасыз ондық бүтін сан
% x Таңбасыз он алтылық бүтін сан ,он алтылық
of сандарынан пайдалану
% X Таңбасыз он алтылық бүтін сан,он алтылық OF
сандарынан пайдалану
% % % белгісін баспадан шығару

Түрлендіру спецификаторы қолданылған бағдарламаны қарастырайық.
* Түрлендіру спецификаторын қолдану*
#include stdio.h
#define Pi 3.141593
int main ( void)
{
int number=5;
float kofe=13.5;
int cost=3100;
Printf(“% d жігіт % f кесе кофе ішті .n”,);
Printf (“Pi-мәні тең % f .n “,Pi);
Printf (“Ақ жол!Бұл сапарға шығып келу маған өте қымбатқа түсті ,яғни
n”,);
Printf (“% c% dn’,”$”,2*cost);
Return 0;
}
Бағдарламаның орынадалу нәтижесі :
5 Жігіт 13.500 000 кесе кофе ішті
Рi- дің мәні тең 3.141593
Ақ жол!Бұл сапарға шығып келу маған өте қымбатқа түсті,
яғни $6200;

V-тарау
5.1 Шартты операторлар.

Шартты оператордың қысқа түрде жазылуы:
If ( шарт-өрнек ) оператор;
Мұндағы шарт-өрнек ретінде арифметикалық өрнек ,қатынас және логикалық
өрнек қолданылуы мүмкін . Шарт операторындағы оператор тек шарт өрнектің
мәні ақиқат болғанда ғана орындалады.
Мысал: if(x0 && x-10) x=-x;
Шартты оператордың толық түрде жазылуы:
If ( шарт-µрнек )
Оператор_1
Else
Оператор_2
Мұнда, егер шарт өрнектің мәні ақиқат болса оператор_1,ал шарт- өрнектің
мәні жалған (яғни 0 -ге тең) болса оператор _2 орындалады.
Мысал:
If(x0)
B=x;
else
B=-x;

Шартты оператордың схемалық көріністері 1 -суретте бейнеленген.
Шартты операторда кез-еклген оператор ретінде ( шарттан кейін немесе else
түйінді сөзінен кейін ) құрмас оператор қолданылуы мүмкін
ен кейін ) құрмас оператор қолданылуы мүмкін.

1-сурет. Шартты оператордың блок схемалары. А-қысқа формасы (
түрі); б-толық формасы(түрі); 1-мысал.
A*x^2+b*x+c=0 көрінісіндегі 2-ші дәрежелі алгебралық теңдеудің квадрат
теңдеудің түбірлерін табу алгоритмін және бағдарламасынын жазайық;

Есепті шешу алгоритмінің блок-схемасы:

Енді бағдарлама мәтінін жазамыз .
* a*x^2+b*x+c=0 квадрат теңдеудің түбірлерін табу бағдарламасы*
#include stdio.h
#includeconio.h
#includemath.h
Void main( )
{
int a,b,c ;*
float d, x1, x2, x;
ali:clrscr( );
printf(“a=”);scanf(“%d”,&a);
printf(“b=”);scanf(“%d”,&b);
printf(“c=”);scanf(“%d”,&c);
printf(“_\n”);
d=pow(b,2)-4*a*c;
if (d0)
{
printf(“ екі түбірі бар ;”);
x1=(-b-sgrt(D))(2*a);
x2=(-b+sgrt”(D))(2*a);
printf(“\n x1=%5.28,\t x2=%5.2f”,x 1,x2);
}
else if (d==0)
{
x=-b(2*a);printf (“\n бір түбірі бар :”_”);
printf(“\n x=%5.8f,x);
}
else if (d0) printf (“\n түбірі бар”);
printf(“_\n”);
printf (“k=?”);scanf(“\n%d”,&k);
if (k==1) goto ali;
getch( );
}

Бағдарламаның орындалуы :
А=? 1
B=? 2
C=?
Бір түбірі бар:
X=1.00

5.2 Белгілер және бос орындар

Бағдарламаның орындалуын оның кез-келген жерінен тиісті операторға
өткізу үшін белгілер істеледі.
Белгі-бұл идентификатор болып, оператордың сол жағына ”:” қос нүкте
белгісі арқылы ажыратылып жазылады.
Белгі ретінде сан немесе айнымалылар істеледі.
Мысал,
СОН:x+=-8; * x+=-8=x=x+(-8)*
Белгіні бағдарламаның кез-келген жеріне қою үшін бос оператор істеледі.
Оның жазылу түрі тек бір символ ғана, яғни нүктелі үтір “:” символы.
Мысал,
Belgi : ;

5.3 Шартсыз өту операторы

Шартсыз өту операторының жазылу ережесі форматы мынадай көріністе
болады:
goto идентификатор;
Мұндағы идентификатор бағдарламадағы белгілердің бірі.
Мысал:
Goto COH;немесе goto belgi;
2-мысал.
Магикалық санды табу бағдарламасы.
\* магикалық сан*\
#includestduo.h
]#includestdlib.h
int main(void)
{
int magic;*магикалық сан*
int guess;*ойыншының санды табу әрекеті*
magic=rand( );*магикалық санды генерациялау *
printf(“магикалық санды тап :?”);
scanf(“%d”,&guess);
if (guess==magic) printf(“**дұрыс **”);
else printf (“**дұрыс емес **”);
return 0;
}
if опреаторын бір-бірінің іштеріне орналастыру мүмкін.
Мысал,
if(i)
{
if (j) dosomething 1( );
if ( k ) dosomething2( );*бұл if ішкі else мен байланысқан*
else dosomething3( );
}
else dosomething4 ( );*бұл if( i ) мен байланысқан*

Соңғы else түйінді сөзі if( i )- ге байланысты емес,себебі ол басқа
блокта орналасқан .C89 стандартты 15if операторларын бірінің ішіне бірін
орналастыру мүмкіндігін береді,ал C99 стандартында-127.

3-мысал.
Магикалық санды табу бағдарламасын және де толықтырып жазайық.
#include stdio.h
#includestdio.h
int main(Void)
{
int magic;
int guess;
magic=rand( );
printf(“магикалық санды тап :?);scanf(“%d”,&guess);
i(guess==magic)
{
printf(“**дұрыс**”)
printf(“магикалық сан=%d\n”,magic);
}
else{
printf(“**дұрыс емес**”);
if (guessmagic)printf(“өте үлкен сан \n”);
* ішкі if*
else printf(“өте кіші сан \n’);
}
return 0;
}
магикалық квадрат.

2 9 4
7 5 3
6 1 8

5.4 Сатылы if-else-if операторы

Бағдарламаларда шартты оператордың сатылы if-else-if деп аталатын
( сондай-ақ таңдау структурасы немесе шартты өту құрылымы)жиі
қолданылады. Оның жазылу ережесі.( форматы ):
If( өрнек ) оператор;
else
if (өрнек)оператор;
else
if(өрнек )оператор;
.
.
.
else оператор;
Әдетте,ыңғайлы болуы үшін if-else-if сатылы құрылымы мынадай көріністе
жазылады:
If( өрнек ) оператор;
Else if ( өрнек ) оператор;
Else if ( өрнек )оператор;
.
.
else
оператор;

Осы if-else-if сатылы құрылымынан пайдаланып магикалық санды табу
бағдарламасын жазайық.

#includestdio.h
#includestdlib.h
int main (Void)
{
int magic;
int guess;
magic rand( );
printf(“магикалық санды тап :?”);
scanf(“%d”, &guess);
if(guess==magic){
printf(“**дұрыс**”);
printf(“магикалық сан=%d \n”,magic);
}
else if (guessmagic)
printf(“дұрыс емес,өте үлкен”);
else
printf(“дұрыс емес,өте үлкен”);
return 0;
}

5.5 “?”шартты операторы

If-else операторының жазылу форматын есімізге түсірейік:
If (шарт) айнымалы =1-өрнек;
Else айнымалы =2-өрнек;
Осы if-else операторының орнына “?”операторын тернарлық оператор болып
есептеледі,себебі ол үш операндтан құралады.Оның жазылу ережесі
1 -өрнек?
2- өрнек:
3- өрнек ;

“?”операциясының орындалу реттілігі мынадай :
Бірінші кезекте 1-өрнектің мәні есептеледі.Оның нәтижесі ақиқат болса,онда
2-өрнектің мәні есептеледі және оның мәні жалған болса,онда 3-өрнектің
есептеледі және оның мәні операциясының нәтижесі болады.

Мысалы:
X=10;
Y=X9?100:200;
Осы мысалда Y айнымалысына 100 мєні меншіктеледі,яғни Y=100 болады.Егер
x9 болғанда,онда Y=200 болар еді. Енді осы операцияны if-else
құрылымына пайдаланып жазайық:
X=100;
If(X9) Y=100;
Else y=200;

4-мысал
#include stdio.h
int main(Void)
{
int is grd,I;
printf(“ сан ендіріңіз :?”);scanf(“%d,&i);
is grd=i0?i*i(i*i);
*if (i10) is grd=i*I;else isgrd=-(i*i);*
printf(“%d-ның квадраты =%dn”,I,isgrd);
return 0;
}
5-мысал.
*Бірінші санды екіншісіне бөлу *
#includestdio.h
int main(Void)
{
int a,b;
printf(“екі сан ендіріңіз :”);
printf(“ бірінші сан =?”);scanf(&a);
printf(“ екінші сан =?);scanf(&b);
if(b!=0) printf(“%dn”,ab);
else printf(“нөлге бөлуге болмайды!\n”);
return 0;
}

Егер b басқарушы өрнектің мәні 0-ге тең болса, онда оның нәтижесі ЖАЛҒАН
болады және else операторы орындалады.Әйтпесе(b 0) нәтиже АҚИҚАТ
болып,бөлу амалы (ab) орындалады.Бағдарламаның if операторын мынадай
көріністе жазу мүмкін:
If (b!=0) printf(“%d\n”,a\b);

Ең үлкен ортақ бөлгішті анықтау.

#includestdio.h
#includeconio.h
int main( )
{
int a,b;
_
metka :clrscr( );
printf(“ екі сан енгіз :”); +
printf(“\n \n”);
_
printf(“a=?”); scanf(“&d”,&a);
printf(“b=?”); scanf(“&d”,&b);
printf(“\n \n”);
while (a!=b) *a=b*
{
if
(ab) a-=b;
else b-=a;
}
printf(“ No d=%d”,a);
printf(“\n \n”);
printf(“k=?”); scanf(“%d”,&k);
if(k==1)goto metka;
+
return 0;

}


Үш оң бүтін сан берілген.Үш сан арасындағы ең үлкенін анықта.

#include stdio.h
#includeconio.h
int main( )
{
int a,b ,c,max,k;
metka:clrscr( );
printf(“ ‡ш сан енгіз :”);
printf(“a=?”);scanf(“%d”,&a);
printf(“b=?”);scanf(“%d”,&b);
printf(“c=?”);scanf(“%d”,&c);
printf(“ \n”);
if(ab) max=a;
else max=b;
if (maxc) max=c;
printf(“ максимал сан max=%d”,max);
printf(“k=?”);scanf(“%d”,&k); +

if(k=1)goto metka;
return 0;
}

+


+

_

5.6 Цикл операторлары For

Кейбір шарттын орындалуына байланысты , торлардың тізбегінің көп
рет қайталанып отыруында , цикл операторлары істетіледі.олардын үш түрі
бар:For (үщін) циклі.
Барлық бағдарламалау тіліндегі for циклі операторлары бір-біріне
ұқсас.Бірақ СИ тіліндегі бұл цикл әсіресе (өте) икемді және күшті болып
есептеледі.
For операторының жалпы жазылу түрі мынандай: for (инициализациялау;
шарт; арттырма (итерация)) оператор;
Мұндағы инициализациялау – цикл параметрі деп аталатын айнымалыға бастапқы
мәнді меншіктеу .
Шарт – шартты өрнек болып , цикл операторының (немесе операторының
яғни цикл денесінің ) орындалу қажеттілігін немесе қажет еместігін
анықтайды. Арттырма (итерация) операторы әр бір циклден соң цикл
параметрінің мәнін өзгертеді.Осы үш оператор (сондай-ақ , олар for
операторының секциялары деп те аталады) міндетті түрде нүктелі үтір (;)
белгісімен ажыратылып жазылады.Шарт өрнегінің мәні АҚИҚАТ болғанда for
операторы орындалады. Егер шарт өрнегінің мәні ЖАЛҒАН болса , онда
бағдарламаның орындалуы циклден шығып , for операторының денесінен кейінгі
орналасқан операторлары орындалады.for циклі – параметрлік цикл деп те
аталады.
for циклін мынандай көріністе де жазуға болады:
for (1-өрнек; шарт_өрнек; 3_өрнек) цикл – денесі.

For операторындағы ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Геологиялық барлау жұмыстарына және пайдалы қазба кенорындарына өнеркәсіптік игеруге салынған инвестицияларының инвест жобаның тиімділігін бағалау
Жастардың өзіне – өзі қол жұмсаудың алдын алу шаралары
Ортаның факторларына организмдердің адаптациясы
Электрондық оқулықтың жұмыс тәртіптері
Электрондық оқулықтардың қолдануы
Python тілі жайында
Мұнай-газ өнеркәсібінде жобаларды инвестициялық талдау
Сұйықтық қозғалысының ламинарлық режимі
Өлшеу қателіктері және өлшеу құралдары
PHP және MySql
Пәндер