- •Лабораторна робота №5
- •5.1 Теоретична частина
- •5.2. Створення віконного застосування Компонент StringGrid
- •5.3. Приклад виконання завдання
- •5.3.1. Приклад створення віконного застосування
- •Налаштування компоненту StringGrid
- •5.3.2. Приклад створення консольного застосування
- •5.4. Індивідуальні завдання
Лабораторна робота №5
Тема: Обробка одновимірних масивів.
Мета: вивчити складений тип даних - масив, основні властивості компоненти StringGrid. Написати і відлагодити програму з використанням одновимірних масивів
5.1 Теоретична частина
Масив - кінцева послідовність даних одного типу.
Масив - об'єкт складного типу, кожен елемент якого визначається ім'ям (ID) і цілочисельним значенням індексу (номери), по якому до елементу масиву проводиться доступ. Розглянемо одновимірні масиви.
Увага! Індекси масивів в мові С/С++ починаються з 0.
У програмі одновимірний масив декларується таким чином:
тип ID масиву [розмір];
де розмір - вказує кількість елементів в масиві. Розмір масиву може задаватися константою або константним вираженням. Для використання масивів змінного розміру існує окремий механізм - динамічне виділення пам'яті.
Приклади декларації масивів :
int a[5];
double b[4] = 1.5, 2.5, 3.75;
у цілочисельному масиві а перший елемент а[0], другий - а[1], ., п'ятий - а[4]. Для масиву b, що складається з дійсних чисел, виконана ініціалізація, причому елементи масиву отримають наступні значення: b[0]=1.5, b[1]=2.5, b[2]=3.75, b[3]=0.
У мові C/C++ не перевіряється вихід індексу за межі масиву. Коректність використання індексів елементів масиву повинен контролювати програміст.
Приклади опису масивів :
const Nmax=10; - завдання максимального значення;
typedef double mas1[Nmax*2]; - опис типу одновимірного масиву;
mas1 a; - декларація масиву а типу mas1;
int ss[10]; - масив з десяти цілих чисел.
Елементи масивів можуть використовуватися у виразах так само, як і звичайні змінні, наприклад:
f = 2*a[3] + a[Ss[i] + 1]*3;
a[n] = 1 + sqrt(fabs(a[n - 1]));
5.2. Створення віконного застосування Компонент StringGrid
При роботі з масивами введення і виведення значень зазвичай організовується з використанням компоненти StringGrid, призначеної для відображення інформації у вигляді двомірної таблиці, кожен осередок якої є вікном однорядкового редактора (аналогічно вікну Edit). Доступ до інформації здійснюється за допомогою елементу Cells[ACol][ARow] типу AnsiString, де цілочисельні значення ACol, ARow вказують позицію елементу.
Увага! Перший індекс ACol визначає номер стовпця, а другий ARow - номер рядка на відміну від індексів масиву.
У інспекторові об'єктів значення ColCount і RowCount встановлюють початкові значення кількості стовпців і рядків в таблиці, а FixedCols і FixedRows задають кількість стовпців і рядків фіксованої зони. Фіксована зона виділена іншим кольором і зазвичай використовується для написів.
5.3. Приклад виконання завдання
Видалити з масиву А розміром N, що складається з цілих чисел (позитивних і негативних), усі негативні числа. Новий масив не створювати. Для заповнення масиву використовувати фунцию random(kod) - генератор випадкових рівномірно розподілених цілих чисел від 0 до (int) kod.
5.3.1. Приклад створення віконного застосування
Значення N вводити з Edit, значення масиву А - з компоненти StringGrid. Результат вивести в компоненту StringGrid.
Панель діалогу і результати виконання програми приведена на мал. 1.
Мал. 1