Программалау тілдері жоғары оқу орындарына арналған оқулық



жүктеу 2,9 Mb.
Pdf просмотр
бет52/82
Дата19.11.2018
өлшемі2,9 Mb.
#20460
түріПрограмма
1   ...   48   49   50   51   52   53   54   55   ...   82

 
142 
int age; 
 
 
 // жасы 
float salary; 
 
 
 // жалақысы 
unsigned employee_number; // қызметкердің реттік нөмірі 
} staff[50], *ps; /* бұл құрылымды жариялаудан кейінгі  
айнымалыларды анықтау */ 
Қҧрылымдар типіндегі айнымалыларды сипаттау екі жолмен жҥзеге 
асырылады. Алғашқы тәсіл: 
struct Shape {  /* фигуралар */ 
int type;    
// 0 - шеңбер, 1 - квадрат, 2 - үшбұрыш 
int color;    
// түсі 
float radius; 
// радиусы 
float area;   
// ауданы 
float perimeter; // периметрі 
}; 
Shape new_shape, old_shape; 
Екінші тәсіл: 
struct Shape { 
/* құрылым аты – фигуралар */ 
int type;     
// 0 - шеңбер, 1 - квадрат, 2 - үшбұрыш 
int color;     
// түсі  
float radius; 
// радиусы 
float area;    
// ауданы  
float perimeter; // периметрі 
} new_shape, old_shape; 
немесе мынадай тҥрде де беруге болады: 
struct gr    
/* құрылым аты – топ */ 
{char fio[30];   /* құрылым элементі – аты-жөні */ 
 char fak[25];   /* құрылым элементі */                                           
 int nomer;      /* құрылым элементі */ 

gruppa1;           /* құрылымдық айнымалы аты */ 
struct gr gruppa2; /* құрылымдық айнымалыны хабарлау */ 
Қҧрылымға компьютер жадынан орын бӛлу ҥшін қҧрылымдық айнымалыны 
сипаттау керек: 
struct құрылым_аты айнымалы_аты; 
Мҧндайда қҧрылым жарияланған соң оның атын бірден пайдалануға болады 
(анықтауды  кейінірек  беруге  болады),  бірақ  мҧндай  тәсіл  компиляторға 
қҧрылым мӛлшерін білу қажет етілмейтін кездерде қолданылады:  
struct First;  
struct Second { 
First *p; 
Second *prev, *suc;  
}; struct First { /* First құрылымын анықтау */ }; 
Бҧл қҧрылымның байланысқан тізімдерін қҧру мҥмкіндігін береді. 


 
143 
Қҧрылымды инициалдаудың (қҧрылым ӛрістеріне мән берудің) бір жолы – 
оның элементтерін сипатталу реттілігімен жҥйелі жақша ішінде біртіндеп беру 
болып табылады:  
struct Employee { 
char name[64]; 
     
 //  фамилиясы 
int age; 
     
 //  жасы 
float salary; 
     
 //  жалақысы 
unsigned employee_number; //  реттік нөмірі 
}  new_employee = {"Kadуrov", 32, 300.5, 1122}; 
Қҧрылымдағы жиымдарды инициалдау кезінде олардың элементтерін жҥйелі 
жақшалар арқылы бӛліп, қҧрылым ӛрістеріне мән беруге болады, мысалы: 
struct complex{ 
unsigned code; 
float salary; 
} comp [2][3]={ {{1021, 301}, {1031, 289}, {1041, 250}}, 
 
{{1121, 300}, {1131, 222}, {1141, 220}} 
              }; 
немесе тӛмендегідей тҥрде де инициалдау мҥмкіндіктері бар: 
struct date { int day, month, year; }; 
d[5]={ {1,3,1980}, 
       {5,1,1990}, 
       {1,1,2002} }; 
Қҧрылымдарды  анықтау  барысында  олардың  элементтеріне  бастапқы  мән-
дерді  пернелерден  енгізіп  те  меншіктеуге  болады.  Қҧрылым  элементтерінің 
мәндерін енгізу ҥшін ағымдық енгізу операторы  cin >> (С++ стилінде) немесе 
форматпен енгізу операторы – scanf  қолданылады.  
Егер  қҧрылымды  сипаттау  жолы  программадағы  барлық  функциялардың 
алдында орналасса, онда ол қҧрылымды осы  программадағы барлық функция-
лар пайдалана алады.  
9.5 Құрылым ӛрістерін пайдалану 
Қҧрылымның  элементін,  яғни  ӛрістерін  пайдалану  ҥшін  нҥкте  (.)  қою 
жолымен  (тікелей  ену)  немесе  ->  таңбалары  арқылы  нҧсқауыш  бойынша  ену 
амалы қолданылады, мысалы: 
struct  fruit {  
char name[15] ;  
int calories; 
};  
struct vegetable {  
char name[15];  
int calories;  
}; 
fruit a;  
vegetable b; 


 
144 
Қҧрылымды осылай жариялап алған соң оның ӛрістерін a.calories және 
b.calories деп, келесісін а.name и b.name деп пайдалана береміз. 
Енді бір программаны толығырақ қарастырайық. 
1 мысал. new_employee атты қҧрылым ӛрістерін пайдалану
 
#include  
struct Employee { 
char name[64]; 
int age; 
float salary; 
unsigned employee_number; 
}  new_employee = {"Kadyrov", 32, 300.5, 1122}; 
void main() 

cout << new_employee.name << endl << 
 new_employee.age    << endl << 
 new_employee.salary << endl << 
 new_employee.employee_number << endl;  

 
Программа жҧмысы нәтижесі: 
Kadyrov  
32 
300.5  
1122  
Тағы бір мысал: 
/* ойын карталарын сипаттайтын құрылымды анықтау */ 
enum suit {clubs, diamonds, hearts, spades};  
           /* шыбын, қиық, табан, қарға */  
typedef int pips;/* pips (ұпайлар) int синонимі ретінде */ 
struct card {   
    suit s;  
    pips p; /* 1-ден 13-ке дейін сандар реттілігі 
Тұз,2,3,...,10,Валет,Дама,Корольдерге сәйкес келеді */ 
}; 
Келесі анықтаулар card типіндегі m1m2 идентификаторларына орын бӛледі: 
card m1,m2; 
Қҧрылымның m1 және m2 ӛрістерін пайдалану ҥшін нҥкте арқылы жазылатын 
таңдау жолын қолданамыз,  m1 ӛрісіне екілік қиық, ал m2 ӛрісіне қарғаның да-
масын тағайындағымыз келеді делік: 
m1.s = diamonds; 


жүктеу 2,9 Mb.

Достарыңызбен бөлісу:
1   ...   48   49   50   51   52   53   54   55   ...   82




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

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