Си тілінде құрылған программаның құрылымы




Презентация қосу
Си тілінде құрылған программаның
құрылымы
• Си тілі (1972 жылы Деннис Ритчи
ұсынған) әдетте тек Ассемблер
тілінде бағдарламалағанда қол
жеткізген компьютер ресурстарын
тиімді қолдану мүмкіндіктері бар
жоғары дәрежелі тілдің
қасиеттерін біріктіреді. Си тілін
үйрену қарапайым емес және
бағдарламалауда мұқияттылық
қажет, бірақ ол ас тиімді және
күрделі бағдарламаларды құруға
ерік береді.
• Кез келген программа бір немесе бірнеше функциялардан
турады. Олар программа құруға керекті негізгі модульдер
болып табылады. Кез келген программаның жазыл ған
алғашқы мәтіні бастапқы код деп аталады.Оны біріктірілген
программалау ортасында теріп,сонан соң компилятор
арқылы машиналық кодқа түрлендіріп орындаймыз.
• Си тілінде жазылған программа препроцессор
директиваларынан, глобалды (ауқымды) айнымалыларды
жариялаулардан, бір немесе бірнеше функциялардан тұрады.
Осы функциялардың ішінде түгелдей программаны ң
жұмысын басқаратын бір негізгі (main) функция болады.
• С тіліндегі программаның жалпы құрылымы мынадай:
• <препроцессор директивалары>
• <қолданушы типтерін анықтау – typedef>
• <функциялар прототиптері>
• <глобалды объектілерді анықтау>
• <функциялар>

Сонымен Си программасы бірнеше
функциялардан құралады және
олардың біреуі міндетті түрде MAIN()
болуы қажет.
Қарапайым программаның мысалын
қарастырайық. Жалпы кез келген
функция оның тақырыбы мен
тұлғасынан тұрады.
Си тіліндегі бағдарлама:
#include 
Main () {
Float a[100],s;
Int I,n=100;
For (i=0;i<=n;i++) Get
(a[i]);
For (i=0;i<=n;i++)
S=s+a[i];
Printf (“s=f/n”,s);
}
• Файлдан оқу және файлға енгізу үшін ең алдымен файл fopen
функциясының көмегімен ашылуы тиіс. Бұл функция
операциялық жүйе арқылы орындалатын әрекеттерді
ұйымдастыру жұмысын орындайды және файлмен мәлімет

Си
алмасуға арналған көрсеткішті қайтарады.
• Мұндай құрылым сипаттамасы кітапханасындағы
FILE типінде беріледі. Қолдану үшін мынадай декларация
берілсе жеткілікті:
программа •

FILE * fp;
FILE * fopen (char * name, char * m);
• Мұндағы: fp – FILE типіндегі көрсеткіш, ал fopen FILE – ге
лау •
көрсеткішті қайтарады. Fopen функциясы мына түрде
қолданылады:
fp = fopen (name, m);

жүйесінің • Мұндағы: name – файлдың атын меншіктейтін жол; ал, m –
файлды қолдану режимі; яғни бұл да жол, қолданушы
файлды қалай қолданатынын білдіреді, төмендегідей

файлдары
мәндердің бірін иелене алады:
• " r " – (read) оқу режимі;
• " w "- ( write) жазу;
• " a "- ( apprnd) толықтыру;
Файл режимдері

• Файл мынадай режимдерде
ашылуы мүмкін:
• - текстік;
• - екілік;
• Текстік режимде ашу үшін
режимді көрсеткенде
қасына «t» символын тіркеу
арқылы жүзеге асады;
• Режимдер кестесі:
• Файлмен мәлімет алмасу мақсатында ifstream ж әне ofstream кластарын
қолданған тиімді. Ол үшін < fstream. h > тақырыптық файлы ашылуы тиіс.
Мұнда, сәйкесінше, ifstream класының объектісі myof және ostream
класының mygf лектері құрылып көрсетілген файлмен байланысады.
• Файлмен мәлімет алмасу мүмкіндігінің режимін өзгерту – файлдық
объектінің сипатындағы екінші аргументін өзгерту арқылы ж үзеге асады .
• Мысалы, Ofsetream myof ( “prim.in”,ios::app | ios::nocreate); - м ұнда ғы файл
бар болса ғана myof объектісі құрылып, байланыс орнатылады, себебі
ios::nocreate аргументі берілген, яғни файл болмаса, объект құрылмайтынын
білдіреді. Ал, ios::app аргументі файлға шығарылатын мәндер файлдың
соңына қосылатынын анықтайды.
• Флаг-аргументтер биттік | - «немесе» амалыны ң к өмегімен біріктіріліп
анықтала алады.
• Файлдық лекті анықтау барысында қолданылатын аргументтерді
анықтайтын флагтар төмендегідей:
флаг Мағынасы
ios::in Файл оқуға ашылады
ios::out Файл жазуға ашылады
ios::ate Объект құрылған соң, ағымды көрсеткіш файлдың
соңына орнатылады
ios::app Мәндер файлдың соңына жазылады
ios::trunc Егер файл бар болса, ол тазартылады < fstream
st ream .h>
o ios::nocreate Файл болмаса, онда объект құрылмайды
ios::noreplace Файл бар болса, онда объект құрылмайды
ios::binary Файл екілік режимде ашылады (қалыпты жағдайда
тексттік режим)
• feоf (FILE * fp) – функциясы файлдың соңын анықтайды.
• Файлды жабу үшін:
• Int fclose(FILE *fp) функциясы қолданылады, яғни файлдық көрсеткішпен орнатылған
байланысты үзеді.
• Файлмен мәлімет алмасу үшін fstream класының объектісі де қолданылады: Fstream
io(“update.dat”, ios::in|ios::app); - бұл жағдайда көрсетілген файл мәліметті о қу ға ж әне
жазуға ашылады.
• Seekg() файлдан оқу ал, seekp() файлға жазу барысында функциялары файлдың ағымды
позициясының маркерін басқаруға қолданылады.
• Мысалы, io.seekg(5, ios::cur) – оқу барысында маркерді ағымды орынынан 5 байтқа
жылжыту;
• io.seekg(-7, ios::end)- маркерді соңынан бастап 7 байтқа жылжыту керектігін білдіреді.
• Аргументтер:
• Io::cur – ағымды орынынан; Io::beg – файл басынан;
• Io::end - файл соңынан жылжытылатынын білдіреді.
• Файлдың лектік күйін анықтау функциялары:

Функция Түсініктеме
eof() Файл соңын кездестірсе, 0-дік емес мән қайтарады
fail() Лекте қате кездессе 0- ден өзге мән қайтарады
bad() Енгізу-шығару барысында мағыналы қате кетсе, нөлден өзге
мән қайтарады, онда лекпен жұмыс тоқтатылғаны дұрыс. Лек
күйінің биттік мәндері анықталмаса, 0-ге тең емес мән береді.
rdstate() Мына тұрақтылардың бірін, яғнм лектің ағымды күйін
анықтайтын мәнді қайтарады:
Ios::goodbit - қате жоқ
Ios::eofbit – файл соңына жетті
Ios::failbit – форматтау немесе түрлендіру қатесі
Ios::badbit - маңызды қате
clear() 0-ге тең болса тазарту

Ұқсас жұмыстар
Си тілінде құрылған программаның құрылымын сипаттау Си программалау жүйесінің файлдарының құрамы қандай Си тілінде деректерді ұйымдастыру
Pascal тілінде бағдарламалау
Ішкі және модульдік программалау
TP және Си подпрограммаларды пайдалануды салыстыру. Ішкі программаларды пайдаланатын программалар құру. Модульдерді пайдаланатын программа құру
СИ тілінің жалпы характеристикасы. Си программалау жүйесіне кіріспе
Ішкі және модульдік программалау. Си тілі мен Паскаль тілінде жазылған бағдарламалар
Си тілінде құрылған программаның құрылымын сипаттау
Бағдарламалау тілдері
TP және Си подпрограммаларды пайдалануды салыстыру. Ішкі программаларды пайдаланатын программалар құру
ТР және СИ подпрограммаларды пайдалануды салыстыру
Пәндер