Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка - Основи Програмування C_.doc
Скачиваний:
58
Добавлен:
18.12.2018
Размер:
1.44 Mб
Скачать

2. Цикл foreach

Цикл foreach використовується для опитування елементів колекцій або масивів. Під колекцією в мові С# розуміють набір об’єктів, який задовольняє певним вимогам. Одним із видів колекцій є масив. Цикл foreach має наступний синтаксис.

foreach (<тип> <змінна> in <колекція>) <інструкція>;

В результаті виконання даного циклу <змінна> пробігає значення всіх елементів колекції, при цьому щоразу виконується <інструкція>. Очевидно, що в разі, коли цей цикл використовується для масивів, <тип> у циклі foreach має збігатись із типом елементів масиву. Ітераційна <змінна> циклу не може бути змінена, вона доступна лише для читання.

У наступному прикладі масив із SIZE цілих iArray заповнюється випадковими значеннями (використовуємо об’єкт класу Random , який ініціалізуємо значенням 1 – це значення, яке встановлює базу для псевдовипадкової послідовності чисел; далі використовується метод Next цього класу, він визначає чергове ціле невід’ємне псевдовипадкове число). Далі у циклі foreach обчислюється сума всіх елементів цього масиву та знаходиться мінімальне та максимальне значення.

using System;

namespace Array_foreach

{

class Program

{

static void Main(string[] args)

{

const int SIZE = 5;

int[] iArray = new int [SIZE]; // Декларуємо масив

// Заповнюємо масив випадковими значеннями

Random r = new Random(1); // Декларація об'єкту

// класу Random

for (int i = 0; i < SIZE; i++)

{ // Одержуємо випадкове число від 0 до 100

iArray[i] = r.Next(100);

Console.WriteLine(

"Елемент масиву [{0}] = {1}", i, iArray[i]);

}

// Підсумовуємо елементи масиву та шукаємо мінімальний та

// масксимальний елементи

int sum = 0;

int min = iArray[0];

int max = iArray[0];

// Переглядаються всі елементи масиву

foreach (int elem in iArray)

{

sum += elem;

if (elem < min) min = elem;

if (elem > max) max = elem;

}

Console.WriteLine("Сума = {0}", sum);

Console.WriteLine("Min = {0} Max = {1}", min, max);

}

}

}

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

Крім одновимірних масивів можна використовувати також масиви більшої вимірності. Елементи двовимірного масиву індексуються двома індексами, трьовимірного – трьома, і т. д. Для того, щоб продекларувати та створити двовимірний масив, необхідно записати:

<тип_елементів> [,] <ідентифікатор_масиву>;

<ідентифікатор_масиву> = new <тип_елементів> [кількість_1, кількість_2];

В результаті буде створено масив, який можна уявляти у вигляді таблиці із кількістю_1 рядків та кількістю_2 стовпчиків. Розглянемо приклад використання двовимірних масивів.

using System;

namespace Array_two_dimensional_1

{

class Program

{

static void Main(string[] args)

{

float[,] f_arr1; // Декларація двовимірного масиву

// Ініціалізація двовимірного масиву розміру 2*3

f_arr1 = new float[,] {

{ 1, 2, 3 },

{ 4, 5, 6 }

};

foreach (float elem in f_arr1) // Вивід першого масиву

{

Console.WriteLine(elem);

}

Random r = new Random(); // Створюємо обєкт Random

// Створюємо інший двовимірний масив

float[,] f_arr2 = new float[3, 4];

for (int i = 0; i < f_arr2.GetLength(0); i++)

for (int j = 0; j < f_arr2.GetLength(1); j++)

// Елементи-випадкові числа

f_arr2[i, j] = (float)r.NextDouble();

// Вивід першого масиву у вигляді таблиці

Console.WriteLine("Перший масив");

for (int i = 0; i < f_arr1.GetLength(0); i++)

{

for (int j = 0; j < f_arr1.GetLength(1); j++)

{

Console.Write(f_arr1[i, j]);

Console.Write("\t");

}

Console.WriteLine();

}

// Вивід другого масиву у вигляді таблиці

Console.WriteLine("Другий масив");

for (int i = 0; i < f_arr2.GetLength(0); i++)

{ // Цикл по стовпчиках

for (int j = 0; j < f_arr2.GetLength(1); j++)

{

Console.Write(f_arr2[i, j]);

Console.Write("\t"); // Табуляція між елементами

}

Console.WriteLine();

}

}

}

}

Зауваження.

  1. Масив f_arr1 ініціалізується двома наборами значень – для першого та другого рядків. Кожен з них розміщується у окремих фігурних дужках і відповідає окремому рядку масиву.

  2. Зверніть увагу, як оформлюється вивід масивів у табличному вигляді – використовується метод GetLength(dim), який повертає кількість елементів масиву по вказаній вимірності dim. Тобто при dim = 0 одержуємо кількість рядків, при dim = 1 одержуємо кількість стовпчиків і т. д.