Пример
int a[100];
b[100][100];
Описан массив а, состоящий из 100 чисел целого типа и двумерный массив b, состоящий из 100 строк и 100 столбцов.
В С++ для ввода и вывода массивов используется компонент StringGrid, поэтому работа с массивами в С++ сильно отличается от работы в Pascal и Basic [2].
1) В двумерных массивах первый индекс обозначает номер столбца, второй – номер строки.
2) В С++ принято, что нумерация элементов начинается с нуля. Например, А(0,1) – первый столбец, вторая строка.
В компоненте StringGrid все элементы хранятся в свойстве cells. Свойство cells имеет тип String, поэтому при вводе элементов массива необходимо использовать команды StrToInt, FloatToInt, а при выводе - IntToStr, FloatToStr, FloatToStrF.
В компоненте StringGrid есть свойства FixedCols и FixedRows – фиксированные столбцы и строки. По умолчанию значение этих свойств =1. При работе с массивами их необходимо обнулять.
Примечание.
1) Количество строк и столбцов в StringGrid задаются в свойствах RowCount и ColCount.
2) Использование фиксированных строк и столбцов при работе не рекомендуется, т.к. в них нельзя вводить данные во время работы программы.
3) По умолчанию в компоненте StringGrid данные вводить нельзя. Чтобы снять запрет, выбирается свойство Options -> GoEditing -> True.
Пример 1. Заполнить двумерный массив а(размерности n*n) случайным образом. Вывести его на экран. Получит сумму диагональных элементов.
1. Поместите на форму объекты: Edit1, Label1, Label2, Button1, Button2, StringGrid.
2. Присвойте объектам свойства согласно таблице:
Свойства | Объект | Значение |
Text | Edit1 | |
Caption | Label1 | N= |
Caption | Label2 | S= |
Option | StringGrid1 | GoEditing |
Caption | Button1 | Выполнить |
Caption | Button2 | Выход |
3. Дважды щёлкнув по кнопке “Выход”, впишите в место, где мигает курсор Close();
4. Дважды щёлкнув по кнопке “Выход”, впишите следующий код:
5. Сохраните проект в папке и выполните его при N=3.
Пример 2. Упорядочить по возрастанию массив целых чисел а1,…,аn, используя алгоритм сортировки выбором [3].
1. Поместите на форму объекты: Edit1, Edit2, Edit3 Label1, Label2, Label3, Button1, Button2.
2. Присвойте объектам свойства согласно таблице:
Объект | Свойства | Значение |
Edit1 | Text | |
Edit2 | Text | |
Edit3 | Text | |
Label1 | Caption | Введите количество элементов массива |
Label2 | Caption | Случайные целые числа |
Label3 | Caption | Сортировка по убыванию |
Button1 | Caption | Выполнить |
Button2 | Caption | Выход |
3. Дважды щёлкнув по кнопке “Выход”, впишите в место, где мигает курсор Close();
4. Дважды щёлкнув по кнопке “Выход”, впишите следующий код:
5. Сохраните проект в папке и выполните его.
Результат выполнения программы:
Контрольные вопросы
1. Что такое массив данных?
2. Как и где описываются массивы?
3. Как осуществляется доступ к элементам массива?
4. Какие компоненты удобно применять при работе с одномерными, двумерными массивами?
5. Как в С++ осуществляется ввод и вывод элементов массива?
6. Что следует сделать, чтобы было можно вводить данные StringGrid?
7. Как используется свойство cells компонента StringGrid?