Ііі. Есептің программасы


a "- ( apprnd) толықтыру;  Кейбір  жүйеде  тексттік  және  бинарлық  файлдар  болып  жіктеледі,  бұл  жағдайда  режим жолына "в



жүктеу 1,13 Mb.
Pdf просмотр
бет35/41
Дата06.02.2020
өлшемі1,13 Mb.
#28386
түріПрограмма
1   ...   31   32   33   34   35   36   37   38   ...   41

234 
 
a "- ( apprnd) толықтыру; 
Кейбір  жүйеде  тексттік  және  бинарлық  файлдар  болып  жіктеледі,  бұл  жағдайда 
режим жолына "в" (binary – бинарлық) немесе “t”(тексттік) таңбасы тіркеледі. 
Файлмен  жұмыс  жасау  барысында  қате  кездессе,  онда    fopen  функциясы  NULL 
мәнін қайтарады. 
 
Файлдан    оқу  -  жазу    әрекетінің  ең  қарапайым  тәсілі  –  getc    және  putc 
функцияларын қолдану.   
   int  getc  (FILE  *  fp)  -  файлға  көрсеткіштен  тәуелді  және  файлдан  кезекті 
литерді қайтарады. 
Ал, int putc (int с, FILE * fp) – функциясы  с литерін fp файлына жазады және 
жазылған литерді немесе EOF мәнін қайтарады (егер қате болса). 
Файлға форматтап енгізу – шығару функциялары: 
int fscanf ( FILE * fp, char * format,…) 
int frint (FILE * fp, char * format,…) 
Бұлар  scanf    және  printf  функциялары  секілді,  тек  бірінші  аргументтері  –  файлға 
көрсеткіш.  
Жолдарды оқып – жазуға мынадай функциялар қолданылады: 
char * fgets ( char * l, int maxl, FILE * fp); 
int fputs ( char * w, FILE * fp)  
мұндағы fgets – fp файлынан келесі жолды оқып алып, w литерлер массивіне 
орналастырады, көшірілген жол "о" литерімен толықтырылады. 
fputs – шығару функциясы  жолды файлға жазады. 
Мұндағы: w – жол тұрған массив адресі; 
maxl – жолдағы символдардың максимум саны; 
fp – файл көрсеткіші; 
feоf (FILE * fp) – функциясы файлдың соңын анықтайды. 
Файлды жабу үшін: 
Int  fclose(FILE  *fp)  функциясы  қолданылады,  яғни  файлдық  көрсеткішпен 
орнатылған байланысты үзеді. 
С++ тілінде: 
Файлмен  мәлімет  алмасу  мақсатында  ifstream  және  ofstream  кластарын 
қолданған тиімді. Ол үшін < fstream. h >  тақырыптық файлы ашылуы  тиіс. 
Мұнда,  сәйкесінше,  ifstream  класының  объектісі  myof  және  ostream 
класының mygf лектері құрылып көрсетілген файлмен байланысады.  
Мысалы,     Ifstream myof(“prim.in”,ios::in); 
Ofstream mygf(“prim.out”,ios::out); 
  Бір  объектімен  тізбектеп  бірнеше  лекті  байланыстыру  қажет  болса,  онда  ол 
төмендегідей ретпен орындалады: 
Ifstream  myof; 
.  .     . 
myof(“prim.in”); 
.   .   . 
myof.close(); 
myof.open (“prim2.in”); 
.   .   . 


235 
 
myof.close(); 
  Файлмен мәлімет алмасу мүмкіндігінің  режимін өзгерту – файлдық объектінің 
сипатындағы екінші аргументін өзгерту арқылы жүзеге асады. 
Мысалы,    Ofsetream  myof  (  “prim.in”,ios::app  |  ios::nocreate);  -  мұндағы  файл  бар 
болса  ғана  myof  объектісі  құрылып,  байланыс  орнатылады,  себебі  ios::nocreate 
аргументі  берілген,  яғни  файл  болмаса,  объект  құрылмайтынын  білдіреді.  Ал, 
ios::app  аргументі  файлға  шығарылатын  мәндер  файлдың  соңына  қосылатынын 
анықтайды.  
Флаг-аргументтер  биттік  |  -  «немесе»  амалының  көмегімен  біріктіріліп 
анықтала алады. 
Файлдық  лекті  анықтау  барысында  қолданылатын  аргументтерді  анықтайтын 
флагтар төмендегідей: 
флаг 
Мағынасы 
ios::in 
Файл оқуға ашылады 
ios::out 
Файл жазуға ашылады 
ios::ate 
Объект  құрылған  соң,  ағымды  көрсеткіш  файлдың 
соңына орнатылады 
ios::app 
Мәндер файлдың соңына жазылады 
ios::trunc 
Егер файл бар болса, ол тазартылады 
ios::nocreate 
Файл болмаса, онда объект құрылмайды 
ios::noreplace 
Файл бар болса, онда объект құрылмайды 
ios::binary 
Файл  екілік  режимде  ашылады  (қалыпты  жағдайда 
тексттік режим) 
 
  Файлмен мәлімет алмасу үшін 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-ге тең емес мән береді. 


236 
 
rdstate() 
Мына тұрақтылардың бірін, яғнм лектің ағымды күйін 
анықтайтын мәнді қайтарады: 
Ios::goodbit  - қате жоқ 
Ios::eofbit – файл соңына жетті 
Ios::failbit – форматтау немесе түрлендіру қатесі 
Ios::badbit - маңызды қате 
clear() 
0-ге тең болса тазарту 
 
Файлдан оқу және файлға шығару әрекеттерін қолдану мысалы
Есеп:  
Білім  деңгейін  тексеруге  арналған  тестілеу  программасын  құрыңыз.  Мұндағы 
тест материалдары тексттік файлда мынадай ретпен берілсін: 
 Алдыңғы  жолда тест сұрағы; 
 келесі бес жолда сол сұрақтың мүмкін болатын жауаптар нұсқасы;  
 одан кейінгі жолда дұрыс жауабының нөмірі орналастырылады; 
 келесі сұрақтар осындай ретпен файлға жазылады. 
Тестілеу  нәтижесін  дұрыс  жауаптар  саны  мен  сәйкес  алған  бағасын 
жариялау арқылы хабарлау керек. 
Есеп қойылымын нақтылау:  Белгілеулер енгізейік:  
F – файлдық айнымалы;  
Kb –  варианттар саны, жалпы жағдайда 5-ке тең; 
Sur_san – Файлдағы сұрақтар біткенше оқылып анықталатын сұрақтар саны; 
Dur_san – қолданушының жауаптарына қарай анықталатын дұрыс жауаптар саны; 
Otb  - қолданушы енгізетін ағымды жауаптарын меншіктейтін айнымалы; 
Dg –  файлдан оқылып анықталатын әр сұрақтың ағымды дұрыс жауабы; 
Baga –  дұрыс жауаптарының саны арқылы анықталатын баға;  
P – дұрыс жауаптардың пайыздық мөлшерін меншіктейтін  айнымалы; 
Gol – сұрақтар мен варианттарын меншіктейтін ағымды жол айымалысы; 
Fname – Тест материалдарынан тұратын файл аты енгізілетін айнымалы. 
Математикалық моделі: 
 
 
P=dur_san *100/sur_san; 
 
 
 













жаєдайда
ќалєан
p
егер
p
егер
p
егер
baga
_
,
2
90
56
_
,
3
91
76
_
,
4
91
_
,
5
 
 
Есептің программасы (С тілінде): 
#include "stdio.h" 
#include "conio.h" 
#include "string.h" 
#define kb 5 
void main() 
{char fname[40]; FILE* f; 
int sur_san=0; 


жүктеу 1,13 Mb.

Достарыңызбен бөлісу:
1   ...   31   32   33   34   35   36   37   38   ...   41




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

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау