8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 138 139 140 141 142 143 144 ... 365

Для хранения информации естественно задействовать массив структур, каждый элемент которого является структурой с одинаковым набором полей, содержащих соответствующее значение. Информация о каждом студенте заключена в структуре со следующими полями:

□фамилия (Family), содержит строку с фамилией;

□имя (нате), содержит строку с именем;

□ГОД рождения (Year), Содержит ЧИСЛО-,

□оценки (Marks), содержит массив из шести элементов с оценками.

Схема, демонстрирующая организацию данных табл. 8.1 в виде массива структур, приведена на рис. 8.3.

Массив структур GR2 01 с информацией о студентах

Первый элемент GR201<1) массива структур

Family Алексеев Name Иван Year 1980 Marks 544554

Второй элемент GR201(2) массива структур

Family Васильев Name Сергей Year 1981 Marks 3443 54

Пятый элемент GR201(5) массива структур

Family Терехова Name Ольга Year 1980 Marks 555545

Рис. 8.3. Организация таблицы в виде массива структур

При работе с массивами структур необходимо придерживаться двух правил.

1.Доступ к структурам, входящим в массив, осуществляется при помощи индексации.

2.Поле отделяется от имени элемента массива структур при помощи точки.

Поскольку каждый элемент массива структур является структурой, то допускаются два способа создания и заполнения массива структур — операторами присваивания для всех полей каждой структуры массива или функцией struct, позволяющей занести значения сразу во все поля структуры. Операторы присваивания, последовательно заполняющие массив структур данными из табл. 8.1, приведены в листинге 8.8. Альтернативный вариант занесения информации в поля структур массива состоит в последовательном


применении функции struct для заполнения каждой структуры, входящей в массив, например, для первой структуры:

GR201(1) = struct)Family1, Алексеев, Name, Иван, ... Year, 1980, Marks, [544554]);

; Листинг 8.8. Заполнение массива структур при помощи операторов ; присваивания

% Заполнение первой структуры массива

GR2 01(1),Fami1у - Алексеев;

GR201(1).Name = Иван;

GR20K1) .Year = 1980;

GR201(1).Marks = [544554];

% Заполнение второй структуры массива

GR201(2) .Family = Васильев;

GR201(2).Name = Сергей;

GR20K2) .Year = 1981;

GR201(2).Marks =[344354];

% Заполнение третьей структуры масси1 а

GR20K3) .Family = Кашин";

GR20K3) .Name = Павел;

GR201(3).Year = 1979;

GR201(3).Marks =[434454];

% Заполнение четвертой структуры массива

GR201(4).Family = Серова;

GR201(4).Name = Наталья;

GR201(4).Year = 1981;

GR20K4) .Marks =[433545];

% Заполнение пятой структуры массива

GR201(5).Family = Терехова;

GR20H5) .Name = "Ольга" ;

GR20K5) .Year = 1980;

GR201(5).Marks =(555545];

Заполните массив структур GR201, создав файл-программу GR201FH1 в соответствии с листингом 8.8. Посмотрите значение переменной GR201 из командной строки:

» GR201 GR201 =


1x5 struct array with fields: Family Name Year Marks

В отличие от переменных, содержащих числа, массивы, строки или простые структуры, задание имени массива структур не приводит к отображению в командном окне значений полей. Выводится только информация о размере структуры и названиях полей. Просмотр содержимого полей какой-либо структуры массива требует задания ее индекса:

» GR201(3) ans =

Family:Кашин

Name:Павел1

Year:1979

Marks:[434454]

[jfif

-lol

*l

«йадрг-»..i Г

Fife Edit

View Graphics Debug Desktop Window Help

11

• File Edit View Slept** Debug Desktop Window HeSp -и

Sal &

ЪВб[ {

- j Щ \\oas J

Fl... L.

VaiM

Fl,. i

Value

Family

Алексеев

Farriy

Васильев

Name

"Иван

Name

Сергей

Year

1980

Year

1981

Merits

[5 4 i 5 5 4]

Marks

(344354)

ij Aiiay Editor -

GR201

Fie Ed*

View

Debus Desktop Window Help

-» f X

! * j Щ i Stack) S»* 2.

ш m в sin

J

г J

" 3 j 4

5

7 1 E •

j[) <Mstra..

<fjrf sto. .1 <ftrf slru.

<firf StfW ..

A

Ц

1

51

!

i \ \ A

1

Рис. 8.4. Просмотр элементов массива структур с помощью Array Editor



0 ... 138 139 140 141 142 143 144 ... 365