Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB4_M~1.DOC
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
970.75 Кб
Скачать

Лабораторна робота №4

Тема: МАСИВИ І ФАЙЛИ В МОВІ ПРОГРАМУВАННЯ С

1. МЕТА РОБОТИ

Мета роботи - навчитися використовувати масиви та користуватися файлами при розв’язанні задач векторного типу.

2. ТЕОРЕТИЧНІ ВІДОМОСТІ

2.1. Масиви

Масив - це послідовно розміщені у пам’яті елементи одного типу. Кожен масив має ім’я. Доступ до окремих елементів масиву відбувається по імені масиву та індексу (порядковому номеру) елемента. Основні властивості масивів:

  1. всі елементи масиву мають однаковий тип;

  2. всі елементи масиву розміщені у пам’яті послідовно - один за одним; індекс першого елемента рівний нулю;

  3. ім’я масиву є вказівником-константою, рівною адресі першого елемента масиву.

Ознакою масиву при описі є наявність парних квадратних дужок [ ]. Константа або константний вираз у квадратних дужках задає число елементів масиву.

Одномірний масив

Загальний вигляд стрічки оголошення одномірного масиву наступний:

тип ім’я_масиву[розмірність];

Наприклад:

int x[10];

float y[20];

char name[18];

Загальний розмір масиву в байтах можна обчислити за формулою:

загальний розмір = розмір базового типу * кількість елементів

Для наведеного прикладу розмірність першого масиву 2 * 10 = 20,

другого - 4 * 20 = 80, третього - 1 * 18 = 18 байт.

Схематично одномірний масив можна зобразити так:

Приклад використання:

main()

{

int x[10];

int t;

for(t = 0; t < 10; t++)

x[t] = t;

}

Двомірні масиви

С дозволяє використовувати багатомірні масиви. Найпростіший варіант - двомірний масив. Для оголошення двомірного масиву типу integer twodim розмірністю 10 на 20 потрібно описати його наступним чином:

int twodim[10][20];

Будьте уважні, на відміну від інших мов програмування розмірності масиву відокремлені одна від одної квадратними дужками.

Отже, для доступу до елемента з індексами 3, 5 масиву twodim служить наступний запис twodim[3][5]. Наступний приклад демонструє роботу з двомірним масивом, а саме, присвоєння кожному елементу цього масиву суму відповідних індексів:

main()

{

int t, i, num[3][4];

for(t = 0; t < 3; t++)

for(i = 0; i < 4; i++)

num[t][i] = i + t;

}

Двомірні масиви зберігаються у вигляді матриць, тобто колонок та рядків. Схематично це можна зобразити так:

Масив М[4][8]

Багатомірні масиви

Загальний вигляд оголошення багатомірного масиву наступний:

тип ім’я[розмірність1][розмірність2]...[розмірність N]

Для прикладу покажемо, як оголосити масив цілого типу розмірністю 4 х 10 х 5 :

int three[4][10][5];

А створення чотирьохмірного масиву 4 х 10 х 5 х 7:

int four[4][10][5][7];

Багатомірні масиви використовуються рідко, оскільки це потребує значного обсягу пам’яті, який резервується компілятором. Так для масиву four необхідно 2*4*10*5*7=2800 байт. А якщо подібний масив буде мати тип double (кожний елемент довжиною 8 байт), то для зберігання такого масиву необхідно 11200 байт.

Ініціалізація масиву

С дозволяє ініціалізувати масиви при описі. Загальна форма такої ініціалізації подібна до ініціалізації інших змінних:

тип ім’я[розмірність1]...[розмірністьN] = {список значень};

Cписок значень - це розділений комами список констант. Наприклад:

int i[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

Це означає, що i[0] = 1, i[1] = 2, ... , i[9] = 10.

Багатомірні масиви ініціалізуються так само, як і одномірні:

int s[5][2] = {

1, 1,

2, 4,

3, 9,

4, 16,

5, 25

};

Для такої попередньої ініціалізації необхідно знати точну кількість елементів. Щоб не задавати фіксовану розмірність масиву, ініціалізацію можна провести наступним чином:

int i[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

а для багатомірного масиву:

int s[][2] = {

1, 1,

2, 4,

3, 9,

4, 16,

5, 25

};

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]