Опрацювати теоретичний матеріал
Навчальні презентації он-лайн (Перейти на статтю)
Загальні відомості про масиви
Масив має такі властивості:
- Масив може бути одновимірним, багатовимірним або масивом масивів.
- Кількість вимірювань і довжина кожного з вимірів задаються, коли створюється екземпляр масиву. Ці значення не можна змінити під час існування елементу.
- Використовувані за умовчанням значення числових елементів масиву дорівнюють нулю, і елементам присвоєно значення NULL.
- У масиві масивів елементи є посилальними типами і не започатковано значенням null.
- Масиви індексуються від нуля: масив з n елементами індексується від 0 до n-1.
- Елементи масиву можуть мати будь-який тип, в тому числі тип масиву.
- Типи масивів - це посилальні типи, похідні від абстрактного базового типу Array. Можна переглядати в циклі foreach будь-який масив C #.
Одномірні масиви
Можна оголосити одновимірний масив, що містить п'ять цілих чисел, як показано в наступному прикладі: int[] array = new int[5];
Цей масив містить елементи з array [0] по array [4]. За допомогою оператора new можна створити масив і форматувати його елементи, використовуючи значення за замовчуванням. У цьому прикладі при ініціалізації всіх елементів масиву привласнюються нульові значення.
Таким же чином можна оголосити масив, в якому зберігаються рядкові елементи. Приклад: string[] stringArray = new string[6];
Масив можна форматувати при оголошенні. В цьому випадку не потрібно специфікатор рангу, оскільки він вже задається по числу елементів в списку ініціалізації. Приклад: int[] array1 = new int[] { 1, 3, 5, 7, 9 };
Масив рядків можна форматувати таким же чином. Наведу оголошення масиву рядків, де кожен елемент масиву ініціалізується з використанням назви дня: string[] Days = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
Змінну масиву можна оголосити без ініціалізації, однак при присвоєнні масиву цієї змінної необхідно використовувати оператор new. Приклад: int[] array3; array3 = new int[] { 1, 3, 5, 7, 9 };
Багатовимірні масиви
Масиви можуть мати кілька вимірів. Наприклад, наступне оголошення створює двомірний масив з чотирьох рядків і двох стовпців. int[,] array = new int[4, 2];
Наступне оголошення створює масив з трьох вимірів: 4, 2 і 3. int[, ,] array1 = new int[4, 2, 3];
Масив можна форматувати при оголошенні:
int[,] array2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
int[,] array2Da = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
string[,] array2Db = new string[3, 2] { { "one", "two" }, { "three", "four" }, { "five", "six" } };
int[, ,] array3D = new int[,,] { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } };
int[, ,] array3Da = new int[2, 2, 3] { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } };
Також можна форматувати масив без вказівки рангу.
int[,] array4 = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
Щоб оголосити змінну масиву без ініціалізації, використовуйте оператор new для присвоєння масиву змінної. Використання оператора new показано в наступному прикладі.
int[,] array5;
array5 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
У наступному прикладі присвоюється значення конкретного елементу масиву.
array5[2, 1] = 25;
Опорні задачі
1. Приклад генерування елементів масиву А із 8 цілих чисел
int[] a = new int[8];
Random rand = new Random();
Console.WriteLine("Дано масив A: ");
for (int i = 0; i < 8; i++)
{
a[i] = rand.Next(2, 25);
Console.Write("{0} ", a[i]);
}
2. Приклад знаходження елементів за даними властивостями: виведення на екран тих елементів масиву, які більші 5.
int[] a = new int[10];
Random rand = new Random();
Console.WriteLine("Дано масив A: ");
for (int i = 0; i < 10; i++)
{
a[i] = rand.Next(2, 25);
Console.Write("{0} ", a[i]);
}
Console.WriteLine();
Console.WriteLine("Елементи масиву, якi бiльшi 5:");
for (int i = 0; i < 10; i++)
if (a[i]>5)
Console.Write("{0} ", a[i]);
3. Приклад введення масиву із клавіатури та виведення його на екран
int[] a = new int[5];
Console.WriteLine("Ввести елементи масиву : ");
for (int i = 0; i < 5; i++)
{
a[i]=int.Parse(Console.ReadLine());
}
Console.WriteLine();
Console.WriteLine("Ви сформували масив:");
for (int i = 0; i < 5; i++)
Console.Write("{0} ", a[i]);
4. Приклад оголошення масиву, виведення його на екран та обчислення суми усіх елементів масиву
int[] a = new int[] { 1, 3, 5, 7, 9 };
int s = 0;
Console.WriteLine("Дано масив:");
for (int i = 0; i < 5; i++)
{
Console.Write("{0} ", a[i]);
s += a[i];
}
Console.WriteLine();
Console.WriteLine("s={0}", s);
5. Приклад оголошення масиву 15 дійсних чисел та знаходження кількості елементів, які менші 0.
double[] a = new double[] { -1, 0.5, 3, 1.8, 5, -2.4, 7, 24, 3.1, 0.9, 9, 10, 5.5, 4,-1.9};
int k = 0;
Console.WriteLine("Дано масив:");
for (int i = 0; i < 15; i++)
{
Console.Write("{0:f1} ", a[i]);
if (a[i]<0)
k ++;
}
Console.WriteLine();
Console.WriteLine("k={0}", k);
або
double[] a = new double[] { -1, 0.5, 3, 1.8, 5, -2.4, 7, 24, 3.1, 0.9, 9, 10, 5.5, 4,-1.9};
int k = 0;
for (int i = 0; i < 15; i++)
if (a[i]<0)
k ++;
Console.WriteLine("k={0}", k);
6. Обнулення елементів масиву, індекси яких є парними числами (не забувайте, що число 0 не є ні парним, ні непарним)
int[] a = new int[] { -1, 3, 5, 7, 24, 9, 10, 4, -1};
Console.WriteLine("Даний масив");
for (int i = 0; i < 9; i++)
Console.Write("{0} ", a[i]);
Console.WriteLine();
Console.WriteLine("Змiнений масив");
for (int i = 0; i < 9; i++)
{
if (i % 2 == 0 && i!=0)
a[i] = 0;
Console.Write("{0} ", a[i]);
}
7. Заміна елементів другої половини масиву числом 100.
int[] a = new int[] { 12, 33, 54, 17, 20, 19, 15, 42};
Console.WriteLine("Даний масив");
for (int i = 0; i < 8; i++)
Console.Write("{0} ", a[i]);
Console.WriteLine();
Console.WriteLine("Змiнений масив");
for (int i = 0; i < 8; i++)
{
if (i>3)
a[i] = 100;
Console.Write("{0} ", a[i]);
}
8. В даному масиві a[10] цілих чисел замінити від'ємні елементи їх модулями.
int[] a = new int[] { -1, 12, -33, 54, -7, -20, 24, 15, 40, -55};
Console.WriteLine("Даний масив");
for (int i = 0; i < 10; i++)
Console.Write("{0} ", a[i]);
Console.WriteLine();
Console.WriteLine("Змiнений масив");
for (int i = 0; i < 10; i++)
{
if (a[i]<0)
a[i] = Math.Abs(a[i]);
Console.Write("{0} ", a[i]);
}
9. В масиві з трьох слів вивести перші букви цих слів
string[] a = new string[] { "Ket", "Nik","Mari"};
Console.WriteLine("В даному масивi iмена починаються з букв:");
for (int i = 0; i < 3; i++)
Console.Write("{0} ", a[i].Substring(0,1));
Лабораторна робота "Обробіток масивів"
Перейти до завдань обробітку масивів
Перейти до завдань обробітку масивів
Задана дійсна матриця A розміру m×n. Створити лінійний масив В, k-тий елемент якого b[k] це: абсолютні величини елементів k-го рядка даної матриці A:
int i,j;
Console.WriteLine("Дано масив A: ");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++) Console.Write("{0} ",a[i, j]);
Console.WriteLine();
}
Console.WriteLine("введи номер рядка k ");
int k = int.Parse(Console.ReadLine());
//сума абсолютних величин елементів k-го рядка даної матриці
// заносимо в новий лінійний масив В
// масив В має стільки ж елементів, скільки їх в рядку масиву А, тобто 4
int[] B = new int[4];
for (i = 0; i < 4; i++) B[i] = Math.Abs(a[k-1, i]);
// виводимо створений масив В
Console.WriteLine("Створений масив B: ");
for (i = 0; i < 4; i++) Console.Write("{0} ", B[i]);
Console.WriteLine();
Перейти до завдань обробітку лінійних масивів
Перейти до завдань обробітку двовимірних масивів