Алматы экономика және статистика академиясы



жүктеу 5,39 Kb.
Pdf просмотр
бет13/28
Дата22.02.2018
өлшемі5,39 Kb.
#10536
1   ...   9   10   11   12   13   14   15   16   ...   28

40 
 
#include  
#include  
using namespace std; 
int main () { 
 string s1(―uzdik okushy‖), s2(―torlar‖), s3(―shyt‖); 
cout<<―s1: ‖<cout<<―s2: ‖<cout<<―s3: ‖<// insert функциясын қолдану: 
cout<<―insert-ten kein: ‖<cout<<―s1: ‖<//erase функциясын қолдану: 
s1.erase(0,2); 
s1.erase(1,3); 
cout << ―erase-den kein: ‖ << endl; 
cout<<―s1: ‖<// append функциясын қолдану: 
cout<<―append-ten kein: ‖<cout<<―s1: ‖<
Бұл программа нәтижесі келесі бетте келтірілген. 
 
 
 
4-5 лекция.C++ ортасында тіркестерді ӛңдеу жолдары 
 
1.  Тіркестердің қҧрамын іздеу 
2.  Тіркестердің бӛліктерін салыстыру 
3.  Тіркестердің сипаттамаларын алу 
4.  Мәліметтердің динамикалық қҧрылымдары   
1. Тіркестің ішкі қҧрамын  ӛңдеу 
   
Тіркестің ішкі құрамынан (подстрока) сӛздер іздеу үшін бірнеше 
функциялар қарастырылған. Тӛменде солардың негізгілері келтірілген: 
      size_type find(const string&str, size_type pos=0) const; 
  Шақырылған қатардан pos позициясынан бастап str қатарының сол жақтан енуін 
іздейді және егер қатар табылмаса, онда тіркестің позициясын немесе npos-ты қайтарады. 
       size_type find(char c, size_type pos=0) const; 


41 
 
  Шақырылған тіркестен pos позициясынан бастап с символының сол жақтан енуін 
іздейді және егер тіркес табылмаса, онда тіркестің позициясын немесе npos-ты қайтарады.  
Жоғарыдағы функцияларды қолдануға арналған мысал: 
#include  
#include  
using namespace std; 
int main () { 
 string s1(―kurstagy okushy‖), s2(―ku‖); 
cout<<―s1: ‖<cout<<―s2: ‖<int i=s1.find(s2); 
int j=s1.rfind(s2); 
cout<<―s1-degi birinshi s2: ‖<cout<<―s1-degi songy  s2: ‖<cout<<―s1-degi birinshi ‗y‘:‖ <cout<<―s1-degi songy ‗y‘: ‖<cout<<―s1-degi birinshi :‖ <cout<<―s1-degi songy : ‖<
Нәтижесі: 
s1-degi birinshi s2: 
 

s1-degi songy  s2:  
 
10 
s1-degi birinshi ‗y‘:‖   7 
s1-degi songy ‗y‘:  
 
14 
s1-degi birinshi: 
 

s1-degi songy:   
12 
 
 
 
2.Тіркестің бӛліктерін салыстыру 
  Тіркестерді толық салыстыру үшін асыра жүктелген қатынас операциялары, 
ал олардың бӛліктерін салыстыру үшін compare функциясы қолданылады. 
int compare (const string&str) const; 
int compare(size_type pos1, size_type n1, const string&str) const; 
int  compare(size_type  pos1,  size_type  n1,  const  string&str,  size_type  pos2, 
size_type n2 ) const; 


42 
 
Бұл функциялардың бірінші формасы екі тіркесті толық салыстырады да, егер 
шақырушы  тіркес  лексико-графикалық  түрде  str  тіркесінен  кіші  болса,  0-ден  кіші 
тең болса – 0, артық болса 0-ден артық  мән қайтарады. 
Функциялардың  екінші  формасы  str  тіркесін  шақы-рушы  функцияның  n1 
символымен pos1 позициясынан бастап салыстырады да, алдыңғы функция сияқты 
жұмыс істейді.  
Функциялардың  үшінші  формасы  шақырушы  тіркес-тің  pos1  позициясынан 
басталған n1 символын,  str тіркесінің pos2 позициясынан басталған n2 символымен 
салыстырады да, алдыңғы функциялар сияқты жұмыс істейді.  
Осындай  функциялар  string  типті  тіркестерді  ескі  стильдегі  тіркестермен 
салыстыру үшін де қолданылады. 
Енді бұларға бір мысал келтірейік.  
#include  
#include  
using namespace std; 
int main () { 
 string s1(―lesnaya koroleva‖), s2(―le‖), s3(―korova‖); 
cout<<―s1: ‖<cout<<―s2: ‖<cout<<―s3: ‖<if (s2.compare(s3) > 0) cout << ―s2 > s3‖ << endl;  
if (s1.compare(7,4,s3) <0)   
     cout << ―s1[7-10] < s3 ― << endl; 
if (s1.compare(7,4,s3,0,4) ==0)   
     cout << ―s1[7-10] == s3[0-3] ― << endl; 
}   
Нәтижесі келесі бетте: 
 
3. Тіркестердің сипаттамаларын алу 
String класында тіркес ұзындығын анықтайтын және объект алып тұрған 
жады кӛлемін беретін бірнеше мүше-функциялар қарастырылған, олар: 
size_type size() const;  // тіркес элементтері саны 
size_type length() const;// тіркес элементтері саны 
size_type max_size() const;// тіркестің max ұзындығы 
size_type capacity() const; // тіркесалған жады кӛлемі 
bool empty() const;  // тіркес бос болса, ақиқат болады 
5.Мәліметтердің динамикалық қҧрылымдары 
Компилятор айнымалыны анықтау операто-рын ӛңдеу кезінде, мысалы, int i =10; 
,  ол  типке  (int)  сәйкес  жады  аймағын  бӛледі  де,  оған  айны-малы  мәнін  жазады  (10). 
Программадағы  i  айны-малысын  пай-далануды  компилятор  кӛрсетілген  мән 
сақталатын жады адресіне (нӛміріне) ауыс-тырады.   


43 
 
      Программалаушы  жады  адрестерін  есте  сақ-тайтын  ӛз  айнымалыларын  анықтай 
алады.  Олар  нұсқауыштар  болып  табылады.  Сонымен,  нұсқауыштар  жады  аймағы 
адрестерін сақтау үшін керек.   
C++  тілінде  3  түрлі  нұсқауыштар  қолданыла-ды:  объектіге  нұсқауыш,  функцияға 
нұсқауыш  және  void  типіне  нұсқауыш,  олар  ӛз  қасиеттері-мен  және  орындалатын 
операциялар  жиынымен  ерекшеленеді.  Нұсқауыш  жеке  тип  емес,  ол  бір  нақты  типпен 
тұрақты байланыс жасайды. 
      Нұсқауыштар  кӛбінесе  компьютердің  динам-икалық  жадымен  жұмыс  істеу 
кезінде  қолданы-лады.    Ол  –  программа  орындалуы  кезінде  қаж-еттілігіне  қарай 
пайдаланылатын  жадыдағы  белгілі  бір  бос  аймақ  (орын).  Динамикалық  жады  аймағын 
пайдалану динамикалық айнымалылар кӛмегімен тек нұсқауыштар арқылы атқарылады.  
Динамикалық  айнымалылардың  қолданылу  кезеңі  –  ӛмірлік  мерзімі  (время  жизни) 
олар  жас-алған  сәттен  бастап,  программа  аяғына  шейін  немесе  жады  әдейілеп 
босатылғанға дейін жал-ғасады.  
     Егер  программа  жұмысы  басталғанға  дейін  компьютер  жадында  оның 
мәліметтерін  сақтауға  қанша  орын  керек  екендігін  анықтай  алмасақ,  онда  жады 
нұсқауыштар  арқылы  блоктар  түрін-де  жұмыс  барысында  біртіндеп  бӛлініп  беріліп 
отырады.   
    C++  тілінде  динамикалық  жадымен  жұмыс  істеудің  екі  тәсілі  бар:  алғашқысы  – 
mallос  функциясын  қолдану  (ол  Си  тілінен  келген)  екіншісі  –  new  және  delete 
операцияларын пайдалану.  
Егер жұмысты бастағанға дейін мәліметтерді сақтауға қанша жады талап етілетінін 
анықтау  мүмкін  болмаса,  онда  жады  қажеттілікке  байла-нысты  бӛлінеді.  Мәліметтерді 
ұйымдастырудың  бұл  тәсілі  мәліметтердің  динамикалық  құрылы-мы  деп  аталады, 
мұндағы керекті жады мӛлшері программаның орындалуы кезінде ӛзгеріп оты-рады.  
       new  операциясы  арқылы  бӛлінген  жады  dele-te  арқылы  босатылады,  ал  malloc 
функциясымен берілген жады – free функциясымен босайды. 
Программаларда  динамикалық  құрылым-дардың    сызықтық  тізімдер,  стектер, 
кезектер    және  бинарлық  бұтақтар  сияқты  түрлері  қол-данылады.  Олар  жеке 
элементтердің  бір-бірі-мен  байланысы  және  олармен  орындауға  болатын  операциялар 
арқылы ерекшеленеді.   
     Динамикалық құрылымдар компьютер жадының үзіліссіз аймағын емес, оның әр 
жерінде де орналаса алады.  
      Динамикалық  құрылымдар  кӛлемдері  ал-дын  ала  белгілі  мәліметтермен  тиімді 
жұмыс  істеу  үшін  жиі  қолданылады.  Мысалы,  егер  программада  кӛлемді  жиым 
элементтерімен  жұмыс  істеу  керек  болса,  оларды  сызықты  тізім  ретінде  қарастыруға 
болады.  
 
6-7-лекция.Мәліметтердің  динамикалық  қҧрылымдары 
 
1. Сызықтық тізімдер 
3. Стектер 
4. Кезектер 
5. Бинарлы бҧтақтар 
1. Сызықтық тізімдер  
Программада  сызықтық  тізімдер,  стектер,  кезек-тер,  бинарлы  бұтақтар  жиі 
қолданылады.  Элементтер  жиынын  байланыстырудың  ең  қарапайым  тәсілі  –  әр 
элементтің  келесі  элементке  сілтеме  жасауы.  Мұндай  тізім  бір  бағытты  деп  аталады. 
Егер    әр  элементке  екінші  сілтемені  (алдыңғы  элементке)  қоссақ,  онда  ол  екі  бағытты 
болып  шығады.  Ал  егер  соңғы  элементті  нұсқауыш  арқылы    алғашқы  элементпен 
байланыстыр-сақ, онда ол сақиналы тізім деп аталады. 


жүктеу 5,39 Kb.

Достарыңызбен бөлісу:
1   ...   9   10   11   12   13   14   15   16   ...   28




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

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