Автор работы: Пользователь скрыл имя, 26 Сентября 2011 в 13:31, реферат
Бір типте бекітілген сан компоненттерінен тұратын құрылымды массив дейміз.
Массивті сипаттау кезінде біз массивтің типін массив атын және массив бөлшегін көрсетеміз. Массив өлшемі конпилоторлар элементтердің қанша саны массивке орын алатынын көрсетеді.
1. Массив
Бір типте бекітілген сан компоненттерінен тұратын құрылымды массив дейміз.
Массивті сипаттау кезінде біз массивтің типін массив атын және массив бөлшегін көрсетеміз. Массив өлшемі конпилоторлар элементтердің қанша саны массивке орын алатынын көрсетеді.
Мысал: int Arrdy [n]
Жадыда бүтін [n]-элемент орналасатындай орындайды. Массив элементтерден қатынау екі әдіспен жүруі мүмкін.
1)
Массивтегі элемент нөмірі
2) Көрсеткіш арқылы индекс арқылы қатынаукезінде массив атынан кейін [] –ішінде қатынау қажет элементің нөмірін көрсетіледі. С++ тілінде массив элементтері 0-ден бастап нөмірленеді.
Х= mas [13];
Y= mas [19];
X айнымалысына 14 У- айнымалысына 20 элемент жүктеледі. Индекс бойынша массив элементіне қатынау көбінесе цикл көмегімен жүргізледі.
М: Массив элементтеріне сандарды меншіктеу.
# include < stdio.h >
Main ()
{int mas[5], i;
For (i=0; i<5; i++)
{printf (“%d %d \ n ”, i mas [i]);
Scanf (”%d\n”,& mas [i]);
}
}
Массивтің мәндерін массивті сипаттау кезінде анықтауға болады.
М: int Temp [5]={6,7,4,3,1};
Бір өлшемді массив
Құрлымдық типті
массив
Есептерді шығару барысында құрылымдық типті масситер жиі пайдаланылады, яғни құрылымдық айнымалы массивтің элементі болып табылады. Құрылымдық типті массивтер келесі түрде баяндалады:
Struct sved inf[10];
Sved типті құрылымы inf[10] массивтің элементі болып табылады.
Құрылымдық типті массивтің элементтерін анықтау жеке алынған құрылымға ұқсас құрылымның аты, нүкте «.» (элементті анықтау операциясы) құылым элементі көрсетіледі.
1-Мысал:
Inf[0].fam-массив бірінші элементі
Inf[1].fam- массив екінші элементі
……………………..
Inf[9].fam- массив боныншы элементі
(inf[1]- құрылымдық
айнымалы аты)
2-Мысал
# include <stdio.h>
#define num 10
Sruct sved
{ char fram [25];
char adr [20];
int gr; };
main ()
{ struct sved inf [num];
inf 1=0,i:
while (1<num)
{ print (`` Фамилиянызды енгіз \n``);
gets (inf[1].fam);
print (``Адресің:\n``);
gets (inf[1].adr);
print (`` Туған жылың \n``);
1++;}
Print (`` Группа студенттері жайлы ақпарат \n``);
for (i=0; i<1; i++)
print (``%s, %s, %d\n, in[i].fam, inf[i].adr, inf[i].gr;}
Кірістірілген құрылымдарды қарастырайық.
3-Мысал:
# include <stdio.h>
#define num 5
#define len 15
3define is ``Ғылым``
Sruct isd
{
Char
Int godisd;
}
Sruct king
{
Char author [len];
Char title [len]
Struct isd isdat;
Main()
{ static struct king masking [num]={{ ``Ерлан ұлы Б.``,
````
{`` Ақпараттану``,1998}},
{`` Муса Е.``,
``Физика``,
{``Ғылым``,1958}}};
inf i;
for (masking [i].isdat.namisd==IS
print (``%s %s \n``, masking [i].author, masking[i].title); }
Құрылымдға
көрсеткішті қолдану
struct king *ptrst;
king типті құрылымға сілтеуші ptrst көрсеткіші қарастырылады.
Онда:
ptrst==&vasking[0];
*ptrst==masking[0];
рtrst-> author-ал бұл masking[0].author-ға экивалентті.
Егер ptrst masking [0] құрылымына көрсеткіш болса, онда келесі белгілеулер экивалентті:
Masking [0].author==(*ptrst).author==
рtrst+1 көрсеткіштері
masking [1]-ut cілтеме жасайды.