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



жүктеу 1,13 Mb.
Pdf просмотр
бет24/41
Дата06.02.2020
өлшемі1,13 Mb.
#28386
түріПрограмма
1   ...   20   21   22   23   24   25   26   27   ...   41

193 
 
ЛАБОРАТОРИЯЛЫҚ ЖҰМЫС №6 
 
Тақырыбы: С/С++ ТІЛІНДЕ ЖОЛДЫҚ ҚАТАРЛАРДЫ ӨҢДЕУ 
Мақсаты:  Студентттерді  С/С++  тіліндегі  жолдық  қатарларды  өңдеуге  арналған 
негізгі функциялармен таныстыру. 
Қажетті материалдар мен жабдықтар:  ДК, лабораториялық жұмысты 
орындауға арналған әдістемелік нұсқаулар. 
 
Лабораториялық жұмыстың мазмұны және орындалу реті: 
 
1.  С/С ++  тілінде жолдармен жұмыс жасауға қатысты келтірілген әдістемелік 
нұсқау – матриалдарды алдын- ала танысып меңгеру. 
2.  Ұсынылған мысалды орындау және талқылау. 
3.  Өзіндік жеке тапсырмалардың оқытушы ұсынған нұсқасын орындау. 
4.  Лабораториялық жұмыстың есебін (отчет) дайындап тапсыру. 
 
Әдістемелік нұсқау: 
С/С++ тілдерінде Турбо  Паскаль тіліндегідей жолдық  тип  жоқ. Жолдар соңғы 
элементі  \0  литеры  болатын  литерлер  массиві  ретінде  ұйымдастырылады.  С 
тіліндегі литерлік массивтің ұзындығы шектелмеген.  
Жол литерлік массив түрінде сипатталады.  
Мысалы:           
char STR[20]; 
 
Жолдарды енгізу-шығару функциялары 
 
gets ( ), puts ( ), fgets ( ), fputs ( ), sprintf ( ) 
gets ( )  функциясы  литерлерді  енгізу  құрылғысынан  қабылдап,  аргумент 
ретінде  алынған  массивке  орналастырады.  Енгізуді  аяқтаған  (Enter  пернесін 
басқан)  кезде,  жаңа  жол  литері  (\n)  алынады.  gets ( )  функциясы  оны  нольдік 
литерге (\0) айналдырады. 
gets ( )  функциясын  қолданған  кезде  енгізілген  литерлер  саны  массив 
өлшемінен асып кететіндігін анықтау мүмкіндігі жоқ екендігін есте сақтаған жөн. 
puts ( )  функциясы  gets ( )  функциясының  көмегімен  енгізілген  жолды  экранға 
шығарады. Ол нольдік литерді, керісінше, жаңа жол литеріне ауыстырады. 
fgets ( )  функциясы  gets ( )  функциясына  ұқсас,  бірақ  массив  өлшеміне  сәйкес 
клавиатурадан  енгізілетін  литерлер  санын  бақылап  отыруға  мүмкіндік  береді. 
Литерлер  қандай  да  бір  файлдан  немесе  стандартты  енгізу  құрылғысынан  (stdin
оқылады. Енгізілген литерлер саны массив өлшемінен бір бірлікке аз болуы керек, 
өйткені  соңғы  позицияға  автоматты  түрде  нольдік  литер  орналасады.  fgets ( ) 
функциясымен  бірге  fputs ( )  функциясы  қолданылады.  Бұл  функция  литерлерді 
файлға немесе стандартты шығару құрылғысына (stdout) бағыттайды.  


194 
 
sprintf ( ) 
(string 
printf(), 
яғни 
printf() 
жолдық) 
функциясы 
printf() 
функциясындағыдай 
форматтау 
спецификаторлары 
қолданылады. 
Айырмашылығы  sprintf ( )  функциясы  нәтижені  экранға  емес,  берілген  массивке 
орналастырады.  Бұндай  жағдай  нәтижені,  айталық  экранға  және  принтерге 
бірнеше рет шығару кезінде тиімді болуы мүмкін. 
 
Жолдармен жұмыс істеуге арналған негізгі функциялар (string.h, stdlib.h) 
Функция 
Прототипі және атқаратын қызметі 
Atof 
double atof (char *str); 
str жолын double типті нақты санға түрлендіреді 
Atoi 
int atoi (char *str); 
str жолын ондық бүтін санға түрлендіреді 
Itoa 
char *itoa (int v, char *str, int baz); 
v бүтін санын str жолына түрлендіреді. Санды бейнелеу кезінде 
baz (2 ≤ baz ≤ 36) негізі қолданылады.  
Strcat 
char *strcat (char *sp, char *si); 
si жолын sp жолына тіркеп жазады (конкатенация) 
Strncat 
char *strncat (char *sp, char *si, int k); 
si жолының k литерін sp жолына тіркеп жазады (конкатенация) 
Strchr 
char *strchr (char *str, int c); 
str жолында c литерінің алғашқы енуін анықтайды 
Strrchr 
char *strnchr (char *str, int c); 
str жолында c литерінің соңғы енуін анықтайды 
Strcmp 
int strcmp (char *str1, char *str2); 
str1 және str2 жолдарын салыстырады. Егер str1  < str2 болса, 
нәтиже теріс; егер str1 = str2 болса, нәтиже нольге тең және егер 
str1 > str2 – нәтиже оң. 
Strncmp 
char *strncmp (char *str1, char *str2, int k); 
str1 және str2 жолдарының алғашқы k литерін салыстырады. 
Егер str1  < str2 болса, нәтиже теріс; егер str1 = str2 болса, 
нәтиже нольге тең және егер str1 > str2 – нәтиже оң. 
Strcpy 
char *strcpy (char *sp, char *si); 
si жолын байттарын sp жолына көшіреді. 
Strncpy 
char *strncpy (char *sp, char *si, int k); 
si жолының k литерін sp жолына көшіреді. 
Strlen 
unsigned strlen (const char *str); 
str жолының ұзындығын анықтайды 
Strlwr 
char *strlwr (char *str); 
Жолдағы жоғарғы регистр әріптерін сәйкесінше төменгі 
регистрге ауыстырады. 
Strupr 
char *strupr ( char *str); 
Жолдағы төменгі регистр әріптерін сәйкесінше жоғарғы 
регистрге ауыстырады. 


195 
 
Strset 
char *strset (char *str, int c); 
str жолын c литерімен толтырады 
Strnset 
char *strnset (char *str, int c, int kol); 
str жолының алғашқы k литерін c литерімен ауыстырады 
Strstr 
char *strstr (const char *str1, const char *str2); 
str1 жолыннан str2 жолын іздейді. Көрсеткішті str1 жолының 
str2 жолы басталатын элементіне қайтарады 
 
 
Мысал. Жол берілген. Жолдағы әрбір сөзді қиып алып, кері ретпен шығару 
 
 Есептің  қойылуы.  Жолдағы  сөздерді  бөліп  тұратын  символдар  үшін  razd
берілген жолды енгізу үшін p, ал сөздерді қиып алу үшін t символдық массивтерін 
аламыз.  
l – ажыратқыштардан тұратын массив ұзындығы, dt – әрбір сөздің ұзындығы. 
i, j, r – цикл параметрлері. 
m – әрбір сөздегі әріптер саны. 
 
С тіліндегі программасы 
#include 
#include  
#define size 100 
main() 
{ int i,j,k,r,l,dt,m=0; 
  
//Сөйлемдегі сөздерді ажырату белгілерінен тұратын символдық массив 
   char razd[]={' ','"',',','?',';',':','.','!','-','+','/','(',')','[',']','{','}','~','^','<','>','=','\0'}; 
   char c, p[size],t[size]=""; 
   
 gets(p); 
  l=strlen(razd); 
   for(j=0;j<=strlen(p)-1;j++) 
    {k=0; 
     for(i=0;i<=l-1;i++) 
       if (p[j]==razd[i]) k=1; 
     if (k==0) {t[m]=p[j]; m++;} 
     else if(m!=0) { printf("\n%s - ",t); 


жүктеу 1,13 Mb.

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




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

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