Масиви в C#. Частина 1. Одновимірні масиви. Приклади розв’язку задач з одновимірними масивами
Зміст
- Питання/відповідь
- 1. Що називається масивом?
- 2. Які види масивів можуть бути представлені в C#?
- 3. Які переваги використання масивів у програмах?
- 4. Яким чином в мові C# організоване представлення масивів?
- 5. Яка загальна форма оголошення одновимірного масиву?
- 6. Приклади оголошення одновимірних масивів різних типів та розмірностей
- 7. Яким чином здійснюється доступ до елементів одновимірного масиву? Приклад
- 8. Приклад занулення одновимірного масиву зі 100 дійсних чисел
- 9. Приклад пошуку заданого елементу в одновимірному масиві
- 10. Приклад підрахунку кількості входжень заданого елементу в одновимірному масиві цілих чисел
- 11. Приклад сортування елементів одновимірного масиву методом вставки
- 12. Яка загальна форма ініціалізації одновимірного масиву?
- 13. Приклад ініціалізації одновимірних масивів при їх оголошенні
- 14. Приклад оголошення та використання одновимірного масиву структур
- 15. Що відбувається, якщо у програмі не дотримуватись меж масиву?
- 16. Приклад оголошення та використання одновимірного масиву класів
- Зв’язані теми
Пошук на інших ресурсах:
1. Що називається масивом?
Масив – це об’єднана в єдине ціле група змінних одного типу до яких можна звертатись за одним іменем. Використання масивів у програмі дозволяє зручно організовувати набори даних та здійснювати спрощений доступ до цих даних з допомогою імені масиву та індексу.
⇑
2. Які види масивів можуть бути представлені в C#?
Мова програмування C# дозволяє представляти такі види масивів:
- одновимірні масиви;
- багатовимірні масиви.
В багатовимірних масивах розрізняються двовимірні та багатовимірні прямокутні масиви.
Крім того, мова програмування C# має засоби для організації роботи з так званими ступінчатими (ступінчастими) масивами.
⇑
3. Які переваги використання масивів у програмах?
Використання масивів у програмах має такі основні переваги:
- зручність та простота організації однотипних наборів даних;
- зручність обробки даних (сортування, пошук, проведення обчислень) з допомогою операторів циклу мови C#.
⇑
4. Яким чином в мові C# організоване представлення масивів?
У мові C# масиви організовані у вигляді об’єктів. Це означає, що для масиву обов’язково має бути виділена пам’ять з допомогою оператора new.
⇑
5. Яка загальна форма оголошення одновимірного масиву?
Загальна форма оголошення одновимірного масиву наступна
тип ім’я_масиву = new тип[розмір];
де
- тип – тип елементів масиву;
- ім’я_масиву – безпосередньо ім’я масиву, що оголошується;
- розмір – кількість елементів масиву. Нумерація елементів масиву починається з нуля.
⇑
6. Приклади оголошення одновимірних масивів різних типів та розмірностей
Приклад 1. Оголошення одновимірного масиву зі 100 цілих чисел (тип int).
// приклад оголошення масиву зі 100 цілих чисел - спосіб 1 int[] A; // оголосити змінну типу "масив цілих чисел" A = new int[100]; // виділити пам'ять для змінної A
Приклад 2. Оголошення одновимірного масиву з 50 дійсних чисел (тип double).
// оголошення масиву з 50 дійсних чисел - спосіб 2 float[] B = new float[50];
⇑
7. Яким чином здійснюється доступ до елементів одновимірного масиву? Приклад
Доступ до елементів одновимірного масиву здійснюється з допомогою індексу. Індекс визначає положення елементу в масиві. Першим індексом масиву є індекс, що має значення 0. Щоб отримати доступ до елементу масиву з допомогою індексу, потрібно взяти індекс елементу у квадратні дужки.
Приклад 1. Доступ до елементів масиву цілих чисел (тип long).
// оголошення масиву цілих чисел, які мають тип long long[] M = new long[20]; // у масиві 20 елементів // записати в елементи масиву довільні значення M[2] = 23990; // в елемент з індексом 2 записати число 23990 M[0] = 10000; // в елемент з індексом 0 записати число 10000 M[19] = -2039; // Помилка! // M[20] = 1000; // помилка! Індекс виходить за межі діапазону
Приклад 2. Оголошення та заповнення довільними значеннями масиву з 10 дійсних чисел типу float.
// оголошення масиву з 10 дійсних чисел float[] B = new float[10]; // заповнення довільними значеннями int i; for (i = 0; i < 10; i++) B[i] = i + 2 * i; // B[i] - елемент в позиції i масиву B // виведення елементів масиву в елемент управління типу ListBox listBox1.Items.Clear(); for (i = 0; i < 10; i++) listBox1.Items.Add(B[i].ToString());
⇑
8. Приклад занулення одновимірного масиву зі 100 дійсних чисел
// Занулення одновимірного масиву зі 100 дійсних чисел // оголосити масив double[] D = new double[100]; // занулити масив for (int i = 0; i < D.Length; i++) // D.Length - кількість елементів у масиві D[i] = 0;
⇑
9. Приклад пошуку заданого елементу в одновимірному масиві
// пошук заданого елементу в одновимірному масиві int[] A = new int[10]; bool f_is; // результат: якщо f_is=true, то елемент є в масиві // заповнення масиву довільними значеннями for (int i = 0; i < 10; i++) A[i] = i + i * i; int num; // num - шуканий елемент num = 42; // пошук f_is = false; for (int i = 0; i < 10; i++) if (num == A[i]) f_is = true;
⇑
10. Приклад підрахунку кількості входжень заданого елементу в одновимірному масиві цілих чисел
У прикладі здійснюється підрахунок кількості входжень заданого значення (змінна n) у масиві M. Результат записується в змінній k.
// підрахунок кількості входжень заданого елементу в одновимірному масиві int[] M; M = new int[20]; // заповнення масиву довільними значеннями for (int i = 0; i < 20; i++) M[i] = i * 2 - i * i; int n; // заданий елемент int k; // результат - кількість входжень n = 0; k = 0; for (int i = 0; i < 20; i++) if (n == M[i]) k++; // k = 2
⇑
11. Приклад сортування елементів одновимірного масиву методом вставки
// сортування методом вставки за зростанням // оголошення масиву з 10 дійсних чисел float[] A = new float[10]; // заповнення елементів масиву довільними значеннями // ... // сортування for (int i=0; i<9; i++) for (int j=i; j>=0; j--) if (A[j] > A[j + 1]) { float t = A[j]; A[j] = A[j + 1]; A[j + 1] = t; }
⇑
12. Яка загальна форма ініціалізації одновимірного масиву?
У мові C# масив може бути ініціалізований значеннями при його створенні (оголошенні). Загальна форма ініціалізації масиву:
тип[] ім’я_масиву = { значення1, значення2, ..., значенняN };
де
- тип – тип елементів масиву;
- ім’я_масиву – безпосередньо ім’я масиву;
- значення1, значення2, значенняN – значення, якими ініціалізуються елементи масиву в порядку індексування. Значення1 буде присвоєне комірці масиву з індексом 0. Значення2 буде присвоєне комірці масиву з індексом 1 і т.д. ЗначенняN буде присвоєне комірці масиву з індексом N-1.
У випадку ініціалізації масиву відпадає необхідність використовувати оператор new. Система автоматично виділить необхідний об’єм пам’яті для масиву.
⇑
13. Приклад ініціалізації одновимірних масивів при їх оголошенні
// ініціалізація масиву з 6 елементів типу uint uint[] UI = { 5, 2, 100, 50, 35, 64 }; // ініціалізація масиву з 5 елементів типу bool bool[] B = { true, false, false, false, true }; // ініціалізація масиву з 10 елементів типу float float[] F = { 0.2f, 1.03f, -3.2f, -4.3f, 2.88f, 0.001f, 1.1f, 2.34f, 0.2f, 0f }; // ініціалізація масиву з 5 елементів типу char char[] C = { '0', 'A', ';', '\\', 'z' };
⇑
14. Приклад оголошення та використання одновимірного масиву структур
Додаткову інформацію про роботу з масивами структур можна отримати в темі:
Нехай задано тип структури BOOK, що описує інформацію про книгу
// структура, що описує книгу struct BOOK { public string title; // назва книги public string author; // назва автора книги public int year; // рік видання public float price; // ціна }
Тоді код, що оголошує масив структур типу BOOK буде мати приблизно такий вигляд
// оголошення та використання одновимірного масиву структур BOOK[] B; // оголошення змінної типу "масив структур BOOK B = new BOOK[5]; // виділення пам'яті для 5 структур типу BOOK // заповнення значеннями масиву B B[0].title = "Beginning. Microsoft. Visual C# 2008."; B[0].author = "Karli Watson, Christian Nagel, Jacob Hammer Pedersen, Jon D.Reid"; B[0].year = 2008; B[0].price = 9.99f; B[1].title = "Pro C# 2010 and the .Net Planform. Fifth edition"; B[1].author = "Andrew Troelsen"; B[1].year = 2010; B[1].price = 9.99f;
⇑
15. Що відбувається, якщо у програмі не дотримуватись меж масиву?
Мова програмування C# строго дотримується допустимих меж масиву, які задаються при його оголошенні. Якщо при доступі до елементів масиву, значення індексу виходить за межі масиву, то виникає виключна ситуація типу IndexOutOfRangeException. У цьому випадку програма передчасно завершиться.
⇑
16. Приклад оголошення та використання одновимірного масиву класів
Нехай в окремому модулі задається опис класу MyPoint, що описує точку на координатній площині
// клас, що описує точку на координатній площині class MyPoint { // координати точки int x; int y; // властивості public int X { get { return x; } set { x = value; } } public int Y { get { return y; } set { y = value; } } }
Тоді, оголошення та використання масиву з 5 об’єктів типу MyPoint буде мати приблизно такий вигляд
// оголошення масиву з 5 об'єктів типу клас "MyPoint" // виділення пам'яті для масиву MyPoint[] MP = new MyPoint[5]; // виділення пам'яті для кожного об'єкту - обов'язково! for (int i = 0; i < 5; i++) MP[i] = new MyPoint(); // використання масиву об'єктів у програмі // заповнення масиву довільними значеннями for (int i = 0; i < 5; i++) { MP[i].X = i * 3; MP[i].Y = i * i - 2; }
⇑
Зв’язані теми
- Багатовимірні масиви. Ступінчаті масиви
- Посилання на масиви. Властивість Length. Присвоювання масивів
- Неявно типізовані масиви. Ключове слово var
- Структури. Використання масивів у структурах. Масиви структур. Вкладені структури. Копіювання структур