Лабораторно упражнение 9 Работа с масиви и използване на клас Array

Подобни документи
Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр

Структура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор

Маисви

Виртуални функции

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 1

Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве

C++

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г ноември 2018 г. Трифон Трифонов (УП 18/19) Ма

Класове в C++ (Rev: 742) Любомир Чорбаджиев 1 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1

Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София

Mathematica CalcCenter

Slide 1

Lush Green

Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Re

Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София

Lush Green

doll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката н

Homework 3

Лабораторно упражнение 6 Тема: Оператори за цикли в езика C++. Реализиране на циклични алгоритми I. Цел на лабораторното упражнение Да се затвърдят зн

Проект 1: Форма за решаване на тест Създайте приложение, което тества знанията на ученика по Информатика. Върху формата да се разположат въпроси с по

MSDOS1

3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението

Инструкция за работа с Декларации 1 и 6 Инструкция за изготвяне на Декларация образец 1 и Декларация образец 6 в ПП Омекс 2000, съгласно изискванията

Black and White

Microsoft PowerPoint - DBoyadzhieva

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА

Проф

4

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет

Рекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. 4 януари

При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) и

Структура на програма в C - Част 2 - типове, функции

В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операц

СОФИЙСКА МАТЕМАТИЧЕСКА ГИМНАЗИЯ ТУРНИР ПО МАТЕМАТИКА И ИНФОРМАТИКА "ЗА ТОРТАТА НА ДИРЕКТОРА" ТЕМА ПО ИНФОРМАТИКА Група X (10-12 клас) Задача Рязане на

Microsoft Word - nbb2.docx

ИНТЕРНЕТ ПРОГРАМИРАНЕ - JAVA JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври

Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23

Kontrolno 5, variant 1

Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5

Препис:

I. Теоретична част Лабораторно упражнение 9 Работа с масиви и използване на клас Array 1. Дефиниране на масиви. Достъп до елементи на масив Масивът е несортирана последователност от елементи от един и същи тип, заразлика от класовете, при които полетата са от различен тип. Елементите намасива се съхраняват в последователен блок от паметта и са достъпни чрез индекс, който е цяло число и показва мястото на елемента в масива. 1.1. Деклариране на масиви и създаване на инстанции от тип масив. Променлива от тип масив се декларира като се посочи името й, типа на елементите и квадратни скоби. Общият вид на декларацията на едномерен масив е следния: тип [] имемасив; int[] array; Необходимо е да се отбележи, че броя на елементите не е част от декларацията и че синтаксисът на език C# изисква скобите да са преди името на масива. Декларирането на двумерен масив има следният общ вид: тип [,] имедрумеренмасив; Аналогично, тримерен масив ще бъде деклариран като: тип [,,] иметримеренмасив; Масивите са адресни типове, независимо от типа на техните елементи. Това означава, че името на масива се съхранява в стека, а в динамичната памет се създава инстанция от тип масив, в която се съхраняват стойностите на самите елементи т.е. самият масив. Поради тази причина, в декларацията на масива не се посочва броя на елементите. Създаването (дефиниране) на масив е едва след като се създаде инстанция (екземпляр) чрез ключова дума new. Общият вид на дефиниране на едномерен масив е: имемасив = new тип [брой елементи]; int[] array; array = new int[4]; С първия програмен ред се декларира името array в стека. Първоначално, както всяка променлива от референтен тип, array е инициализирана със стойност null. С вторият програмен ред в динамичната памет се заделя място, необходимо

да всичките елементи и адресът в стека се инициализира така че да сочи паметта, където е съхранен масивът. Дефинирането на масив може да е и с един програмен ред: int[] array = new int[4]; В език C# масивите са от динамичен тип и броя на елементите може да се определи и по време на изпълнение на програмния код. Например: int n = Int32.Parse(Console.ReadLine()); double[] ma = new double[n]; Синтаксисът на дефиниране на двумерни и тримерни масиви е следния: имедвумеренмасив = new тип [бройредове, бройстълбове]; иметримеренмасив = new тип [граница1, граница2, граница3]; Примери за създаване на многомерни масиви са: int[,] matrix = new int[5, 4]; double [,] twodimentionalarray = new double [3,2]; double [,,] threedimentionalarray = new double [2,3,2]; 1.2. Инициализиране на масиви Когато се създаде обект (инстанция) от тип масив всички елементи на масива се инициализират със стойности по подразбиране в зависимост от техния тип. Възможно е още при дефинирането на масив, неговите елементи да бъдат инициализирани съа зададени стойности. Общият вид на инициализацията е: имемасив = new тип [бройелементи] списък стойности; int[] mb = new int[5] 1,2,3,4,5; Не е необходимо стойностите във фигурните скоби непременно да бъдат константи, те могат да се изчислят и по време на изпълнение. Random r = new Random(); int[] array = new int[4] r.next() % 10, r.next() % 10, r.next() % 10, r.next() % 10 ; В случая се използва генератор на случайни числа, с които да се инициализират елементите на масива. Броят на стойностите между фигурните скоби задължително трябва да съответства на размера на масива. Например, посочените по-долу програмни редове ще предизвикат грешка по време на компилиране: int[] array = new int[4] 1, 2, 3 ; int[] array = new int[3] 1, 2, 3, 4 ; При инициализиране на масиви изразът new и размерът на масива могат да бъдат пропуснати. Компилаторът изчислява размера на масива според броя на стойностите.

В случая е създаден масив от 6 елемента от тип int. Инициализацията на многомерните масиви е подобна на едномерните. Примери: int[,] matrix = new int[2, 3] 1, 3, 5, 2, 4, 6 ; int[,,] array3d = new int[,,] 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ; 1.3. Достъп до елементите на масив За да се получи достъп до елемент на масив е необходимо да се зададе индексът, посочващ елемента. int a; a = array[3]; В случая, на променливата a се присвоява стойността на елемент от масива с индекс 3. Индексите на масивите в език С# започват от 0, както е и в програмни езици С и С++. При всяко индексиране (адресиране на елемент на масив) се проверява дали индексът попада в границите на масива. Ако се използва индекс по-малък от 0, равен или по-голям от дължината на масива, компилаторът генерира изключение IndexOutOf RangeException. try int[] pins = 9, 3, 7, 2 ; Console.WriteLine(pins[4]); catch (IndexOutOfRangeException e) 2. Клас Array Console.WriteLine(e.Message); В платформата.net e предвидено за масивите да отговаря клас Array. Всеки дефиниран масив се явява обект от този клас. Клас Array разполага с редица свойства и методи, които могат да се използват от програмистите. Най-често използваните свойства на класа са: Length свойство за четене, което връща броя на елементите на масива Rank свойство за четене, което връща размерността на масива Console.WriteLine("Размерността на мaсива е " + array.rank); for(int i=0;i<array.length; i++)

int a = array[i]; Console.Write(a); За дублиране на масиви могат да бъдат използвани методите на клас Array: Copy, CopyTo и Clone. Метод Copy е статичен и се извиква чрез името на класа. Изисква 3 параметъра: стар масив, нов масив, брой елементи, които се копират в новия масив. int[] array1 = new int[array.length]; Array.Copy(array, array1, array.length); Метод CopyTo изисква два параметъра новия масив и началния индекс, от който ще се копират елементите в новия масив. Масивът, от който ще се копират елементи (източникът) е текущият обект, с който се извиква методът. int[] array1 = new int[array.length]; array.copyto(array1, 0); Метод Clone се използва за дублиране на цял масив. int[] array1 = (int[])array.clone(); Други методи на клас Array са: Sum намира сумата от елементите на масива; Min намира най-малка стойност Max намира най-голяма стойност Average намира средноаритметична стойност от елементите на масива Посочените методи са методи на екземплярите. Извикват се чрез обект масив и връщат като резултат съответно: сумата на елементите, най-голямата, най-малката стойност, средноаритметична стойност. Методи на клас Array, които са статични са: Sort(Array) сортира масив, предаден като параметър. IndexOf(Array, Object) връща индекса на посочения обект Reverse(Array, index, length) обръща стойностите на определен брой елементи в масива Array от този с посочения индекс. Броят елементи се определя от параметъра length.

II. Задачи за изпълнение 1. Да се дефинира едномерен масив от n целочислени елемента. Да се въведат стойности на елементите и да се формират следните масиви: Масив, който съдържа първите m елемента (m<n) Масив, който е два пъти по-голям от въведения и последователно съдържа елементите от 1 до n и повторно от 1 до n. Изведете съдържанието на резултантните масиви Упътване: Да се използват методи Copy и CopyTo за прехвърляне на елемрнтите на масивите. Да се използва и свойството Length, чрез което се определя броя на елементите в масива. 2. Да се дефинира едномерен масив от n целочислени стойности. Да се въведат стойности за елементите на масива (или да се използва генератор на случайни числа). Да се намери сумата, средноаритметично, най-голямата и най-малката стойност от елементите на масива. С помощта на метод Clone да се дублира масивa. Да се сортира новия масив и да се изведат двата масива на екрана. Упътване: Използвайте методите на клас Array: Min, Max, Sum, Average, Sort. 3. Да се дефинира едномерен масив от n реални (дробно-десетични) стойности, като n e четно число. Да се сортира масивът и да се обърнат стойностите на елементите във втората половина от масива. Упътване: Използвайте методите на клас Array: Sort и Reverse. Относно въпроси по темата на адрес: ln_zh_st@yahoo.com