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


printf("circle.area    %f\n", circle.area)



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

 
148 
printf("circle.area    %f\n", circle.area); 
change_struct (&circle ); /* функцияны шақыру */ 
/* функцияға мән бергеннен кейін */ 
printf("After\n") ; 
printf("circle.type  %d\n", circle.type); 
printf("circle.color  %c\n", circle.color); 
printf("circle.radius  %f\n", circle.radius) ; 
printf("circle.area    %f\n", circle.area); 

/* функцияны сипаттау */ 
void change_struct (Shape *shape) 

shape -> type  = 0; 
shape -> color = 'r'; 
shape -> radius =5.0; 
shape -> area = PI * shape -> radius * shape -> radius; 

Программа жҧмысы нәтижесі 
(9.2-сурет): 
Before 
circle.type 1 
circle.color b 
circle.radius  2.000000 
circle.area    4.000000 
After 
circle.type   0 
circle.color  r 
circle.radius  5.000000 
circle.area    78.500000 
Press any key to continue 
Қҧрылымдардың ӛрістерінің ӛздері де қҧрылым бола алады. Енді соған бір 
мысал келтірейік. 
5 мысал. Қызметкерлер туралы  мәліметтерді қҧрылым тҥрінде жазу 
struct Employee {  /* "Қызметкер" құрылымы */ 
char name[64]; 
  //  фамилиясы 
int age; 
  //  жасы 
unsigned employee_number; //  реттік нөмірі 
struct Date {   // датасы 
int day; 
  // күні 
int month; 
  // айы 
int year; 
  // жылы 
} hiredate; 
  // жұмысқа алынған мерзімі 
  float salary; 
  // жалақысы 
} new_employee; 
  // жаңа қызметкер 
9.2-сурет 


 
149 
Ішкі  қҧрылым  элементін  пайдалану  ҥшін  .  (нҥкте)  операциясы  қолданылады. 
Алдымен сыртқы қҧрылым элементі, сонан соң ішкі қҧрылым элементі кӛрсе-
тіледі. Мысалы: 
new_employee.hire_date.month = 12; 
Қҧрылымдар жиымын қҧруға да бір мысал келтірейік. 
6 мысал. Қҧрылымдар жиымы 
/*  struct_6    Құрылымдар жиымын құру */ 
#include  
#define STR15 16  
#define MAX 50 
struct boat   // "қайық" құрылымы 

char model[STR15]; 
int year; 
float price;  
}; 
void main ()  
{ int i, k; 
boat Boats[MAX]; 
/* Қанша қайық бар? */ 
printf("How many boats? ");  
scanf("%d", &k); 
for (i = 0; i < k; i++)  

 flushall() ; /* буферді тазалау алдыңғы scanf() 
функциясын орындаудан қалған кіріс ағынындағы жаңа жолға көшу 
символын алып тастау үшін керек */ 
/* қайық моделін енгізу */ 
printf("\n Input a model of the boat: ");  
gets(Boats[i].model); 
/* қайықтың шыққан жылын енгізу */ 
printf("\n Input the year of the creation of the boat: "); 
scanf("%d",&Boats[i].year); 
/* қайықтың бағасын енгізу */ 
printf("\n Input the price of the boat: "); 
scanf("%f",&Boats[i].price); 

printf("\n\n"); 
/* циклде барлық қайықтар туралы мәлімет шығару */ 
for (i = 0; i < k; i++) 
 { 
 printf("The boat %s, the year of the creation %d\n",   
        Boats[i].model, Boats[i].year); 
 printf("This boat was sold for %8.2f $.\n",  
        Boats[i].price); 
 } 



 
150 
Программаны орындау нәтижелері: 
How many boats? 3 
Input a model of the boat: Guldyz 
Input the year of the creation of the boat: 2006 
Input the price of the boat: 142200 
Input a model of the boat: Tulpar 
Input the year of the creation of the boat: 2009 
Input the price of the boat: 162000 
Input a model of the boat: Superi 
Input the year of the creation of the boat: 2011 
Input the price of the boat: 284000 
The boat Guldyz, the year of the creation 2006 
This boat was sold for 142200.00 tenge. 
The boat Tulpar, the year of the creation 2009 
This boat was sold for 162000.00 tenge. 
The boat Superi, the year of the creation 2011 
This boat was sold for 284000.00 tenge. 
9.7 Құрылым жиымдарын функция аргументі ретінде пайдалану 
Егер
 
қҧрылымдар орнына оларға арналған нҧсқауышты жазатын бол-
сақ, онда қҧрылымдар функцияларға мәні бойынша беріледі де, програм-
маның  орындалуы  жылдамдайды,  ӛйткені  мҧндайда  бастапқы  мәлімет-
тердің  кӛшірмелері  жасалмайды.  Келесі  мысалда  қҧрылымдар  орнына 
нҧсқауышты пайдалану кӛрсетілген. 
//  struct_5 
құрылымдар орнына оған арналған нұсқауышты қолдану мысалы 
#include  
#define STR15 16  
#define MAX 50 
int k; 
struct boat  
{ char model[STR15]; 
int year; 
float price; 
}; 
void print_data(boat *); 
void main()  
{ int i; 
  boat Boats[MAX], *pastBoats; 
pastBoats = &Boats[0];  
cout << "How many boats? ";  
cin  >> k;  
for (i = 0; i < k; i++) 



жүктеу 2,9 Mb.

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




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

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