Си тіліндегі құрылымдар


Жұмыс түрі: Реферат
Тегін: Антиплагиат
Көлемі: 11 бет
Таңдаулыға:
Жоспар:
Кіріспе . . . 3
1. Бөлім. «Си тіліндегі құрылымдар» . . . 4
1. 1. «Құрылымды анықтау» . . . 4
1. 2. «Құрылымды иницалдау» . . . 5
1. 3. «Құрылымдағы массивтерді құру» . . . 6
2. Бөлім. «Қорытынды» . . . 10
Қолданылған әдебиеттер . . . 11
Кіріспе
Си тіліндегі бағдарламалау- мәліметтер құрылымын анықтау, тұтынушылар құрылымын қамтамасыз етеді. Ол бір атпен жинақталған топпен жұмыс істеуге ыңғайлы және бір немесе бірнеше обьектілердің жиынтығы болып табылады. Құрылым жұмыс бағдарламасының принциптерін түсінуді және жазуды жеңілдетеді, сонымен қатар қандай да бір жалпы түсінікпен біріктірілетін мәліметтерді жинақтауға көмектеседі
( мысалы, мәліметтер: аты/ фамилиясы/ туған жылы/ емтихан бағалары бойынша студент туралы мәліметтер құрылымын орналастыруға болады) . Құрылым бір-бірімен өзара ауыспалы байланысқан көп жеке элементтер, сонымен қатар бір толық қолданылады. Массив тәріді, құрылым өзімен бірге мәліметтер жиынтығын ұсынады, бірақ одан айырмашылығы оның элементтерінің аты бойынша әр типті болуында. Құрылым қай жерде бір обьектіге қатысты түрлі мәліметтерді біріктіру үшін қолдану қажетті болып табылады.
1. Бөлім. «Си тіліндегі құрылымдар»
1. 1. «Құрылымды анықтау»
Әр түрлі мәліметтерді баяндау үшін және жаңа типтерді ұйымдастыру үшін құрылымды пайдаланған ыңғайлы болып табылады. Құрылымды келесі түрде баяндауға болады:
Struct <rname>;
{
<type><fname>;
}
Мұндағы rname - құрылым аты ( құрылым типінің атын көрсетпесе де болады), {} - жүйелік жақшада структура элементтерінің тізбегі және әрбәр элеметтің типі көрсетілген. Құрылым шаблоны анықталғаннан кейін құрылымдық айнымалының анықталуы келесі түрде жазылады:
struct<rname><vnames>;
vnames- құрылымдық айнымалының аты.
Мысалы:
Struct sved
{
Char fam[25] ;
Char adr[20] ;
Int gr;
};
Struct sved inf;
Құрылымды функция денесінде немесе функцияның сыртында баяндауға болады. Функцияның ішінде баяндалған құрылымды тек осы функкцияның ішінде ғана пайдалануға болады. Егер құрылым функцияның сыртында баяндалған болса, онда құрылымды басқа функцияларда да қолдануға болады.
Берілген баяндалудан тұратын функция шаблон анықталғаннан кейін орналасады деп жорамалданады. Егер структураны баяндағанда оның шаблоны программаның бір жерінде анықталған болса, ал осы шаблонды пайдаланылатын құрылымдық айнымалылар программаның басқа бір функциясырда анықталатын болса, онда құрылым типінің атын міндетті түрде көрсету қажет. Құрылымдық айнымалының анықталуының пайдаланып, компилятор құрылымдық шаблон бойынша жадыдан орын бөліп береді (құрылымның әрбір элементінің баяндалуын ескереді) . Мәліметтер құрылымдарын баяндағанда құрылымдық шаблон анықтауын және құрылымдық айнымалыны анықтау процестерін біріктіруге болады. Айнымалыны және шаблонның анықталуын біріктіргенде құрылым типінің атын жазбаса да болады. Мысал:
Struct
{
char fam[25] ;
char adr[20] ;
} inf;
Егер құрылымдық шаблон бір реттен көп қолданылса, онда әдетте құрылым типінің атымен берілетін форманы қолданады.
1. 2 «Құрылымды иницалдау»
Сыртқы және статискалық құрылымды айнымалыларды иницалдауға болады. Құрылымдық айнымалының сыртқы типке жататын шаблонның анаықталған орнына байланысты емес, осы айнымалы програманың қандай жерінде анықталғанына байланысты. Келесі бар деп жорамалдайық:
Static struct sved inf= {“Сериков”, “Рыскулов. 55”, 1987}
Мысал: ( құрылым элементтеріне қатынау )
#include <stdio. h>
main()
{ char fam[25] ;
char adr[20] ;
int gr;
} inf;
printf(“Фамилияңды енгіз : \n”) ;
gets(inf. fam) ; /*fam элементіне қатынау*/
printf(“Адресіңді енгіз: \n”) ;
gets(inf. adr) ;
printf(“туған жылың : \n”) ;
scanf(“%d”, &inf, gr) ;
printf (“%s, %s . %d\n”, inf. fam, inf. adr, inf. gr) ; }
1. 3 «Құрылымдардан құрылған массивтер»
Есептерді шығару барысында құрылымдардан құрылған массивтер пайданылады, яғни құрылымдық айнымалы массивтің элементі болып табылады. Құрылымдардан құрылған массивтер келесі түрде баяндалады:
Struct sved inf[10] ;
sved типті құрылым inf[10] массивтің элементі болып табылады.
Құрылымдардан құрылған массивтердің элементтерін анықтағанда бөлек алынған құрылым жағдайындадағы сияқты құрылымның аты құрылым элементінің атынан нүкте “. ” (элементті алу операциясы ) символ арқылы бөлектенеді. Мысалы:
inf[0] . fam- массивтң бірінші элементі
inf[1] . fam- массивтің екінші элементі
. . .
Құрылымға көрсеткішті қолдану мүмкіндіктерін қарастырайық. Бұған дейін құрылымдарды функция аргументі ретінде қолдануға болмайтынын ескерткенбіз, ал құрылымға көрсеткішті қолдану құрылым элементтеріне көрсеткіш арқылы қол жеткізуге мүмкіндік береді. Көрсеткіш сипаттамасы төменде берілген (бұған дейін қолданған құрылым массивін қарастырайық) ;
struct knig *ptrst;
knig типті кез-келген құрылымға сілтеуіші ptrst көрсеткіші құрастырылады.
Онда:
ptrst==&masking[0] ;
*ptrst==masking[0] ;
ptrst- >author- ал бұл masking[0] . author-ға эквивалентті.
Егер ptrst masking[0] құрылымына көрсеткіш болса, онда келесі белгілеулер эквиваленттә:
masking[0] . author==(*ptrst) . author==->author
ptrst+1 көрсеткіші masking[1] - ге сілтейді.
Айта кету керек, осы мысалда ptrst+1 көрсеткішіне 45-ні қосады, себебі ААА типті кез-келген құрылым 47 байт орын алады.
Құрылым адресі функция аргументі ретінде қолданылатын мысалды қарастырайық.
struct ZP
{ char *name;
Char *MEC;
float NACH;
float PREM; } SOTR={“Зуев П”, ”январь” 1020. 45, 250. 15 };
main()
{ float s, fadd() ;
Printf (“П. Зуевқа қаңтар айында барлығы %6. 2a тенге берілде \n”, fadd(&sort) ) ; }
float fadd (ptrst)
struct zp *ptrst;
{ float s=0;
& операциясы құрылым адресін алу үшін қолданрылып отырғанын ескерте кеткенді жөн көрдік, Массив атынан айырмашылығы, құрылым аты өздігінен өз адресінің синонимы бола алмайды. Құрылымдар массивін қарастырайық. Массив аты оның адресінің синонимы бола алады, сондықтан, оры функцияға бере аламыз.
struct zp
{ char *name;
char *MEC;
float NACH;
float PREM; } sort[6] ={ {“Зуев П. ”, ”қаңтар”, 8020. 45, 1250. 15},
.
Inf[9] . fam-массивтің оныншы элементі
(inf[1] - құрылымдық айнымалы аты)
#include<stdio. h>
#define num 10
Struct sved
{ char fam[25] ;
char adr[20] ;
int gr; };
main()
{ struct sved inf[num] ;
int 1=0, i;
while (1<num)
{ printf(“Фамилияңды енгіз \n”) ;
gets (inf[1] . fam ) ;
printf(“Адресінді енгіз: \n”) ;
gets (inf[1] . adr) ;
printf(“Туған жылың \n”) ;
scanf(“%d”, &inf[1] . gr) ;
1++; }
Printf(“Группа студенттері жайлы ақпарат \n”) ;
For(i=0; i<1; i++)
Printf(“%s, %s, %d\n”, /n”, inf] i] . fam, inf[i] . adr, inf[i] . gr) ; }
Кірістірілген құрылымдарды қарастырайық
#include <stdio. h>
# define num 5
#define len 15
#define is “Ғылым”
Struct isd
{ char namisd[len] ;
int godisd; }
struct knig
{ char author[len] ;
char title[len] ;
struct isd isdat; }
main()
{ static struct knig masking[num] ={{“Петров В. ”, “Ақпараттану”
{“Ғылым”, 1998}},
{“Савельев В. ”, “Физика”,
{“Ғылым”, 1985}}};
int I;
for (i=0; i<num; i++)
if (masking[i] . isdat. nanidd==IS)
printf (“%s %s \n”, masking[i] . author, masking[i] . title) ; }
{“Потапов М. ”, ”қаңтар”, 6000. 50, 1500. 20}};
main()
{ float ITS, fadd () ;
Printf(“қызметкерлер тобына каңтар айы бойынша барлығы %10. 2f тенге берілді\n”, fadd(sort) ) ; }
float fadd (ptrst)
struct zp *ptrst;
{ float ITS;
int I;
for (i=0, ITS=0; I<6; i++; ptrst++)
its+=ptrst->nach+ptrst->prem;
return (ITS) ; }
Қолданылған әдебиеттер:
Е. М. Демидович “Основы алгоритимизаций и програмирования”
В. В. Подбельский “Практикум по програмировию на языке Си”
Есептер
1) . a, b, c, d кескіндері берілген. Осы кескіндерден үш үшбұрыш жаса және аудунын табу керек. Үшбұрыштың ауданы s= √p*(p-x) (p-y) (p-z), және p=x+y+z/2
#include<conio. h>
#include<math. h>
#include<stdio. o>
int jan (int a, int b, int c, int d)
{if (return p=x+y+z/2; s=sqrt(p*(p-x) (p-y) (p-z) ;
}
void main()
{ int a, b, c, d;
puts(“a, b, c, d, -енгіз:”) ;
for(: i<n, i++)
for(: j<n, J++)
scanf(“%d, %d, %d, %d”, &a, &b, &c, &d) ;
print(“%”jan(a, b, c, d) ;
getch () ;
}
2) . Екі өлшемді массив берілген. Осы массивтегі әр бағандағы тақ элементтердің қосырдысын табу керек.
#include<conio. h>
#include<math. h>
#include<stdio. o>
#define n 3
#define m 4
void main()
{ int a[m] [n] ; int i=0, j=0, s;
puts(“massiv elem engiz:”) ;
for( j<n; j++)
{
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz