- •Мови програмування. Представлення даних.
- •1. Вступ. Про обчислювальну техніку.
- •2. Історія мов програмування.
- •3. Поняття про платформу .Net
- •4. Створення мови програмування с#.
- •5. Представлення даних. Необхідність типізації. Двійкова арифметика.
- •6. Основні поняття програмування.
- •Поняття про інтегроване середовище розробки VisualStudio (на прикладі Visual Studio 2005). Структура c#-програми.
- •1. Основні можливості інтегрованого середовища розробки VisualStudio .Net.
- •2. Структура програми мовою с#.
- •Int I; // Визначили цілу змінну
- •Основні елементи мови с#.
- •1. Основні вбудовані типи мови с#
- •2. Визначення та ініціалізація змінних, область їх видимості.
- •3. Приведення типів.
- •Інакше обидва операнди перетворюються до типу int;
- •4. Літерали (константи) мови с#.
- •5. Операції мови с#.
- •5.1. Арифметичні операції.
- •5.2. Операції інкременту та декременту.
- •5.3. Операції відношення (порівняння).
- •5.4. Логічні операції.
- •5.5. Порозрядні (бітові) операції.
- •5.6. Умовна (тернарна) операція.
- •5.7. Операції присвоєння.
- •5.8. Пріоритет операцій.
- •Основні інструкції керування мови с# – розгалуження та цикли.
- •1. Розгалуження у мові с#
- •2. Цикли у мові с#
- •2.1. Цикл for.
- •2.2. Цикл while.
- •2.3. Цикл do-while.
- •3. Керування виходом із циклів с#
- •Масиви в мові с#.
- •1. Визначення та ініціалізація масиву.
- •2. Цикл foreach
- •3. Багатовимірні масиви.
- •4. Використання деяких методів класу System.Array.
- •5. Масиви масивів. Непрямокутні масиви.
- •Структуровані типи даних (колекції) в мові c#
- •1. Основні структури даних та їх призначення
- •2. Використання списку ArrayList та узагальненого списку List
- •3. Використання асоційованого списку Hashtable та узагальненого словника Dictionary
- •Класи в мові с#.
- •1. Визначення класу.
- •2. Методи класу.
- •3. Методи з параметрами.
- •4. Конструктор класу.
- •Методи в мові с#.
- •1. Передача об’єктів методам.
- •2. Використання модифікаторів для параметрів методів.
- •3. Методи, що повертають об’єкти.
- •Перевантаження методів в мові с#.
- •1. Перевантаження методів.
- •2. Перевантаження конструкторів.
- •3. Використання ключового слова this.
- •4. Деструктор класу.
- •5. Метод Main ().
- •Статичні члени класу.
- •1. Статичні дані-члени класу.
- •2. Статичні методи-члени класу.
- •3. Статичний конструктор класу.
- •4. Статичні класи, локалізація та глобалізація
- •Властивості та індексатори.
- •1. Властивості.
- •2. Індексатори.
- •Спадкування в мові с#.
- •1. Поняття про спадкування та ієрархію класів.
- •2. Спадкування та правила доступу до членів класів.
- •3. Конструктори базового та похідних класів.
- •4. Посилання на екземпляри базового та похідних класів.
- •5. Поняття про поліморфізм.
- •6. Віртуальні функції – більш детальний погляд.
- •7. Абстрактні методи та класи.
- •Перевантаження операцій в мові с#.
- •1. Загальні відомості.
- •2. Перевантаження бінарних арифметичних операцій.
- •3. Перевантаження унарних операцій.
- •4. Перевантаження операцій відношення.
- •5. Перевантаження логічних операцій.
- •6. Підсумкові зауваження.
- •Структури та переліки в мові с#.
- •1. Структури.
- •2. Переліки.
- •Делегати, події та обробники подій
- •1. Делегати (delegate).
- •2. Події та їх обробники.
- •Атрибути та їх використання
- •Рекомендована література
4. Використання деяких методів класу System.Array.
Клас System.Array містить низку властивостей та методів, які зручно використовувати при роботі з масивами. До деяких з них ми уже звертались у прикладах. Так властивість Length визначає кількість елементів масиву (для багатовимірних масивів – загальну кількість елементів), метод GetLength()– повертає кількість елементів масиву по вказаному виміру. Серед інших можна відзначити деякі наступні. Властивість Rank дає кількість вимірів даного масиву, Метод Array.Sort() дозволяє відсортувати одновимірний масив (за замовчуванням – у порядку зростання, або обираючи певний ключ з допомогою інтерфейсу IComparable), метод Array.Reverse() переставляє елементи одновимірного масиву у зворотному порядку, метод Array.Clone() створює копію масиву, метод Array.Clear() заповнює нулями вказані елементи масиву. Розглянемо простий приклад використання цих методів.
using System;
namespace Array_4
{
class Program
{
static void Main(string[] args)
{
const int SIZE = 10; // Розмір масивів
int[] iArray = new int[SIZE];
Console.WriteLine("Введiть {0} цiлих чисел", SIZE);
for (int i = 0; i < SIZE; i++)
{
Console.Write ("[{0}] = ", i);
iArray [i] = int.Parse(Console.ReadLine());
}
Console.WriteLine("Створюємо копiю масиву:");
// Копію необхідно привести до відповідного типу масиву
int[] iCloneArray = (int[])iArray.Clone();
Console.WriteLine("Сортуємо цю копiю по зростанню");
Array.Sort(iCloneArray); // Сортування
for (int i = 0; i < SIZE; i++)
Console.WriteLine("iCloneArray [{0}] = {1}", i,
iCloneArray[i]);
Console.WriteLine("Переставляємо елементи");
Array.Reverse(iCloneArray); // Перестановка
for (int i = 0; i < SIZE; i++)
Console.WriteLine("iCloneArray [{0}] = {1}", i,
iCloneArray[i]);
Console.WriteLine("Зануляємо 5 елементiв,
починаючи з iндекса 3");
Array.Clear(iCloneArray, 3, 5); // Занулення елементів
for (int i = 0; i < SIZE; i++)
Console.WriteLine("iCloneArray [{0}] = {1}", i,
iCloneArray[i]);
}
}
}
5. Масиви масивів. Непрямокутні масиви.
Можливо також створити масив, елементами якого є масиви різної довжини – так званий «ламаний» або «рваний» масив (хоча він і не є повністю сумісний з усіма стандартами технології .NET, але використання таких масивів все ж дозволяється). Для ілюстрації використання «ламаних» масивів розглянемо наступний приклад.
using System;
namespace Array_jagged
{
class Program
{
static void Main()
{ // Створюємо вказівник на масив із 3-х масивів
int[][] jagArray = new int[3][];
// Тепер створимо кожний із 3-х масивів
for (int i = 0; i < jagArray.Length; i++)
{
jagArray[i] = new int[3 + i];
}
// Заповнюємо та виводимо масиви на екран трапецією
for (int i = 0; i < jagArray.Length; i++)
{
Console.Write(
"Довжина рядку {0}: ",jagArray[i].Length);
for (int j = 0; j < jagArray[i].Length; j++)
{
jagArray[i][j] = (i+1) * (j+1);
Console.Write(" {0} ", jagArray[i][j]);
}
Console.WriteLine();
}
}
}
}
У даному прикладі jagArray є ідентифікатором масиву із трьох елементів, кожний з яких є в свою чергу масивом відповідно із трьох, чотирьох та п’яти елементів. Вони створюються у циклі. Далі елементи цього масиву масивів заповнюються в залежності від значень індексів елементів та виводяться на екран у вигляді трапеції. Зверніть увагу, як відбувається звертання до елементів цього специфічного масиву. Ми використовуємо дві пари окремих квадратних дужок для кожного індексу jagArray[i][j], а не одну, як у прикладі Array_two_dimensional_1 – f_arr2[i, j].