Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_3_C#.doc
Скачиваний:
2
Добавлен:
18.04.2019
Размер:
436.74 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”

Програми з використанням масивів та індексаторів

ІНСТРУКЦІЯ ДО ЛАБОРАТОРНОЇ РОБОТИ № 7

З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ”

для студентів базових напрямків 6.170101, 6.170102, 6.170103

Львів – 2011

Програми з використанням масивів та індексаторів: інструкція до лабораторної роботи №7 з курсу “Алгоритмічні мови і програмування” для студентів базових напрямків 6.170101, 6.170102, 6.170103.

.

/ Укл.: В.І. Отенко, А.І. Партика - Львів: НУЛП, 2011.- с.

Укладачі: В.І. Отенко, к.т.н., доцент,

А.І. Партика, асистент.

Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів та властивостей. Навчитися складати та відлагоджувати програми з використанням індексаторів при роботі з масивами.

1. Основні теоретичні відомості

1.1. Масиви

До сьогодні ми використовували в програмах прості змінні. При цьому кожній області пам'яті, виділеної для зберігання однієї величини, відповідає своє ім'я. Якщо змінних багато, програма, призначена для їхньої обробки, виходить довгою й одноманітною. Тому в будь-якій процедурній мові є поняття масиву – обмеженої сукупності однотипних величин. Елементи масиву мають те саме ім'я, а розрізняються порядковим номером (індексом). Це дозволяє компактно записувати безліч операцій за допомогою циклів.

Масив відноситься до посилальних типів даних, тобто розташовується в динамічній області пам'яті, тому створення масиву починається з виділення пам'яті під його елементи. Елементами масиву можуть бути величини як значимих, так і посилальних типів (у тому числі масиви). Масив значимих типів зберігає значення, масив посилальних типів - посилання на елементи. Всім елементам при створенні масиву привласнюються значення за замовчуванням: нулі для значимих типів й null - для посилальних.

От, наприклад, як виглядають оператори створення масиву з 10 цілих чисел і масиву з 100 рядків:

int [ ] w = new int [10] ;

string[] z = new string[100];

У першому операторі описаний масив w типу int[]. Операція new виділяє пам'ять під 10 цілих елементів, і вони заповнюються нулями. У другому операторі описаний масив z типу string[]. Операція new виділяє пам'ять під 100 посилань на рядки, і ці посилання заповнюються значенням null. Пам'ять під самі рядки, що становлять масив, не виділяється – це буде необхідно зробити перед заповненням масиву.

Кількість елементів у масиві (розмірність) не є частиною його типу, ця кількість задається при виділенні пам'яті й не може бути змінене згодом. Розмірність може задаватися не тільки константою, але й виразом.

Результат обчислення цього виразу повинен бути не від’ємним, а його тип повинен мати неявне перетворення до int, uint, long або ulong.

Приклад розмірності масиву, заданої виразом:

short [] = . . . ;

string [] z = new string[n + 1];

Елементи масиву нумеруються з нуля, тому максимальний номер елемента завжди на одиницю менше розмірності (наприклад, в описаному вище масиві w елементи мають індекси від 0 до 9). Для звертання до елемента масиву після імені масиву вказується номер елемента у квадратних дужках.

З елементом масиву можна робити все, що припустимо для змінних того ж типу. При роботі з масивом автоматично виконується контроль виходу за його границі: якщо значення індексу виходить за межі масиву, генерується виключення IndexOutOfRangeException.

Масиви одного типу можна привласнювати один одному. При цьому відбувається присвоювання посилань, а не елементів, як і для будь-якого іншого об'єкта посилального типу, наприклад:

int[ ] а = new int[10];

int[ ] b = а; // b й а вказують на той самий масив

Всі масиви в С# мають загальний базовий клас Array, визначений у просторі імен System. У ньому є кілька корисних методів, що спрощують роботу з масивами, наприклад методи одержання розмірності, сортування й пошуку.

Масиви, що є полями класу, можуть мати ті ж специфікатори, що й поля, що представляють собою прості змінні. У С# існують три різновиди масивів: одномірні, прямокутні й східчасті.

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