Главная страница
Контакты

    Басты бет


Программа бұл компьютерді басқаруға қажетті командалардың логикалық реттелген тізбегі

жүктеу 1.18 Mb.



жүктеу 1.18 Mb.
бет5/8
Дата05.04.2017
өлшемі1.18 Mb.

Программа бұл компьютерді басқаруға қажетті командалардың логикалық реттелген тізбегі


1   2   3   4   5   6   7   8

Егер өрістердің келесі н енгізсек:

№ - n

Атауы - name

Саны - k

Бағасы - c

Шығарылған жылы - g
Сипаттау келесідей болады:
struct s {

int n;


char name[];

int k;


float c;

int g;


};
struct s x;
және x айнымалысы жоғарыда көрсетілген кесте жолындағы берілгендерді өңдеуге арналған.
Кесте (таблица; table) - мәліметтерді жолдар мен бағаналар қиылысында орналастыру арқылы ұсыну тәсілі. Әдетте, кестенің бірінші жолы бағаналардың тақырыптарымен толтырылады. Бағаналардағы мәлімет типтері әр түрлі болуы мүмкін, бірақ бір бағанада орналасатын мәліметтер бір типті болуы қажет.

Мысал

Құрылым(обьект) мен құрылымдық типті бірге сипаттау мысалыstruct student {

char name [15]; /* Аты */

char surname [20] ; /* Фамилиясы */

int year; /* Курсы */

} student_l, student_2, student_3;

Мұнда student атты құрылымдық тип және student_l, student_2, student_3 үш ныұты құрылым сипатталған. Осы үш құрылымның әрқайсысына студенттің атын (name), фамилиясын (surname),студенттің оқитын курсын(year) жарииялайтын құрылым кіреді.

Келтірілген сипаттамадан кейін сол программада кез келген құрылым санын сипаттауға болады, ол үшін келесі student құрылымдық типін қолдануға болады:

struct student laader, freshman ,
Құрылымды инициализациялау және меншіктеу. Құрылымды инициализациялау массивтерді инициялазациялауға ұқсас. Нақты құрылымды сипаттауда оның атынан және '=' белгісінен кейін фигуралы жақшаның ішінде бастапқы элементтердің тізімі жазылады. Мысалы:

struct goods coat={"қара пиджак ", 400000, 7.5, 220, "12.01.97"};


Си тілінің стандарты құрылымды меншіктеуге рұқсат береді. struct goods (tea, coat) құрылымдық типтегі жоғарыда көрсетілген құрылымға келесі меншіктеуге рұқсат етілген:

tea=coat;

Құрылымдар үшін теңсіздік операциялары, тіпті, теңдік те қолданылмайды. Егер құрылымды салыстыру керек болса, тек қана элементтері арқылы ғана.



Құрылым элементеріне рұқсат алу. Құрылым элементтеріне рұқсат алу нақты атау бойынша қамтамасыз луға болады.

құрылым_аты.элемент_аты

конструкциясы құрылымдық тип сипаттамасын ойнайды.

Біздің struct goods құрылымдық типін инициализациялау мысалымызда:

coat.name - char[] типті массиві "қара пиджак ";

coat.price - long типті мәні 400000 айнымалы;

coat.percent - float типті мәні 7.5айнымалы;

coat.vol - int типті мәні 220 айнымалы;

coat.date -"12.01.97" тұратын char [9] типті массиві.

Нүктенің алдында құрылымдық типтің аты емес, оның сипатталуына жды бөлінген нақты құрылымның аты тұрғанына назар аударыңыз.



Нақыланған ат – бұл екі операндамен және олардың арасындағы "нүктеден" тұратын өрнек. "Нүкте" оперциясы құрылым элементіне рұқсат алу операциясы деп талады.

Егер құрылымды сипаттауда ол инициализцияланған болса, онда оның элементтері сәйкес бастапқы мәндерін алады. Нақталанған аттың көмегімен бұл мәндер , мысалы, экранға шығады.

Құрылым элементінің нақтылы аты сәйкес типтегі обьектілердің брлық ережелерінен тұрады. Оларды өрнектерде қолдануға болады, олардың мәндерін пернетқтадан енгізуге болады.

Құрылымдар массиві. Құрылымдық типтің массивтері басқа типтегі массивтер сияяқты сипатталады. Анық айырмашылығы – құрылымдық тип атауындағы struct қызметші сөзінде. Жоғарыда енгізілген құрылымдық типтерді анықтау келесідей:

struct goods list [5];

Бұл сөйлем list-ті goods құрылымдық типтегі, 5 элементтен тұратын массив ретінде анықтайды. List аты құрылымның аты болып табылмайды, ол элементтері құрылым болатын массив аты. list[0] - goods типінің құрылымы, list[1] - list[ ] массивінің goods типті екінші құрылымы жіне т.б.

Құрылым массиві құрамына кіретін құрылым компонентеріне рұқсат алу үшін, бірінші аты индекстелген нақтыланған атау қолданылады . Мысалы:

list[0].price - list[ ] құрылым массивіне бірінші элемент ретінде (нөлдік индекспен) кіретін, goods типті құрылымның long типті екінші компоненті (price атты).



1 суретте list[ ] массивін шартты түрде жадыға орналастыу сызбасы берілген.
Сурет, бөлмедегі сурет. Сурет әртүрлі бояулармен: акварельмен (қағазға немесе картон), майлы бояумен (холстқа, картонға, ағашқа), пастельмен (ерекше түрлі-түсті қарындаштармен қағазға немесе картонға) салынады.
Оның элементтері (басқа массив элементтері сияқты) негізгі жадта индексінің өсуі бойынша ретпен орналасады.




Рис. 1. Құрылым массиві (100 элементтен құралған)
Массивке сәйкес құрылым компонентеріне рұқст алудағы нақтылы атаудың индекстелуіне тағы бір назар аударыңызда. Индекс құрылым массивінің атауынан кейін жазылады. Сөйтіп, массивтен қажетті құрылым бөлінеді, ал нүкте мен онан кейінгі атау көмегімен құрылымның сәйкес компоненті идентифицирленеді. Мысалы,

list.percent[8] /* Қате ! */ -жазылымы қате атау; percent – массив емес, float типті айнымалы.

Құрылым массивін сипаттау:

struct goods list [5];


Баса типтегі массивтер сияқты, құрылымдық массив сипатталуында инициализациялана алады. Құрылымдық массив инициализаторы фигуралық жақша ішіндегі массивтің бастапқы элементтерінің тізімінен тұруы мүмкін. Өз кезегінде, құрылым үшін әр бастапқы мән – бұл оның комонентерінің мәндерінің тізімі(фигуралы жақша ішінде).
Мысал

Төменде кестеде көрсетілген берілгендерді сипаттау



Фамилия

Туған жылы

Телефоны


Үй адресі

Иванов

1980

33-22-11

ул. Чехова, 1

Петров

1981

44-55-66

пр. Шакарима, 126

Сидоров

1980

34-22-11

ул. Ленина, 50
1   2   3   4   5   6   7   8

  • Құрылымды инициализациялау және меншіктеу.
  • Құрылым элементеріне рұқсат алу.
  • Құрылымдар массиві.
  • Фамилия Туған жылы Телефоны Үй адресі

  • жүктеу 1.18 Mb.