Кратко съдържание


Силно типизирани колекции



страница60/73
Дата21.07.2018
Размер9.03 Mb.
#76887
1   ...   56   57   58   59   60   61   62   63   ...   73

Силно типизирани колекции


.NET Framework поддържа и силно типизирани колекции. Пространството от имена, което съдържа класовете за работа с тях е System.Collections. Specialized. Пример за силно типизирана колекция е StringDictionary. Това е клас, който работи точно като Hashtable, но използва само string за ключове и стойности. При използване на този клас няма нужда от преобразуване на типа към string при извличане на стойност от хеш-таблицата:

StringDictionary addresses = new StringDictionary();

addresses["доктор Иванов"] = "с. Гинци, на площада";

addresses["бат Сали"] = "гр. София, кв. Факултета";

Console.WriteLine("{0} живее в {1}",

"доктор Иванов", addresses["доктор Иванов"]);

Специални колекции


.NET Framework поддържа и някои специални колекции, които приличат на вече разгледаните, но имат малко по-различно предназначение. Пример за специален тип колекция е хеш-таблица от низове, която не различава главни от малки букви в ключа на елементите. В .NET Framework такава колекция можем да получим чрез метода CreateCaseInsensitiveHashtable() на класа CollectionsUtil:

Hashtable addresses =

CollectionsUtil.CreateCaseInsensitiveHashtable();

addresses["бай Иван"] = "с. Мугла";

Console.WriteLine("{0} живее в {1}",



"БАЙ ИВАН", addresses["БАЙ ИВАН"]);

Упражнения


  1. Напишете програма, която прочита от конзолата N цели числа, записва ги в масив и отпечатва тяхната сума и средното им аритметично.

  2. Напишете програма, която прочита от конзолата масив от числа и намира в него най-дългата поредица от числа, такива че всяко след­ващо да е по-голямо от предходното.

  3. Напишете програма, която прочита от конзолата масив от N числа и намира в него поредица от точно K числа (1

  4. Напишете клас Matrix, който съдържа матрица от реални числа, представена чрез двумерен масив. Дефинирайте оператори за съби­ране, изваждане и умножение на матрици, методи за достъп до съдър­жанието и метод за отпечатване.

  5. Напишете програма, която прочита от конзолата масив от N цели числа и цяло число K, сортира масива и чрез метода Array.BinSearch(…) намира най-голямото число от масива ≤ K и най-малкото число от масива ≥ K. Да се отпечата сортирания масив, с отбелязани в него търсените две числа.

  6. Даден е масив от N цели числа, за който знаем, че един от елементите му (т. нар. мажорант) се среща на поне 1 + N/2 различни позиции. Да се напише програма, която с помощта на класа Stack намира мажоранта на масива. Например ако имаме масива {3, 2, 2, 3, 2, 1, 3, 2, 2, 2, 1}, неговият мажорант е 2. Ако се затруднявате, помислете дали не можете да обходите елементите и всеки от тях или да го добавяте в стека, ако съвпада с елемента на върха му, или в противен случай да премахвате елемента от върха на стека.

  7. Даден е масив от символни низове. Да се напише метод, който намира всички низове от масива, които имат четна дължина. Методът трябва да връща масив от символни низове и трябва вътрешно да използва класа StringCollection.

  8. Даден е масив от символни низове. Да се напише програма, която отпечатва всички различни низове от масива и за всеки от тях колко пъти се среща. Низовете в резултата трябва да са подредени по брой срещания в низходящ ред. Препоръчва се използване на хеш-таблица с ключове низовете и стойности брой срещания. За сортирането може да се използва Array.Sort(…).

  9. Даден е речник, който представлява масив от двойки стойности – дума и значение. Да се напише програма, която превежда поредица от думи. Има ли смисъл да се ползва хеш-таблица?

  10. Да се напише клас ComplexNumber, който представлява комплексно число с реална и имагинерна част от тип double. Да се напише метод, който приема като параметър масив от комплексни числа и връща като резултат комплексното число, което се среща най-голям брой пъти в този масив. За целта да се използва хеш-таблица, в която за всяко комплексно число се пази броят на срещанията му. Не забра­вяйте да реализирате предварително по подходящ начин мето­дите Equals(…) и GetHashCode() на класа ComplexNumber.

Използвана литература


  1. Светлин Наков, Масиви и колекции – http://www.nakov.com/dotnet/ lectures/Lecture-7-Arrays-and-Collections-v1.0.ppt

  2. MSDN Training, Programming with the Microsoft® .NET Framework (MOC 2349B), Module 7: Strings, Arrays, and Collections

  3. Jeff Prosise, Programming Microsoft .NET Microsoft Press, 2002, ISBN 0735613761

  4. Jeffrey Richter, Applied Microsoft .NET Framework Programming, Microsoft Press, 2002, ISBN 0735614229

  5. Joel Fugazzotto, C# Complete, Sybex Inc., ISBN 0782142036

  6. MSDN Library – http://msdn.microsoft.com




www.devbg.org

Българска асоциация на разработчиците на софтуер (БАРС) е нестопанска организация, която подпомага про­фе­сионалното развитие на българските софтуерни специ­а­листи чрез образо­вателни и други инициативи.

БАРС работи за насърчаване обмяната на опит между раз­работ­чиците и за усъвършенстване на техните знания и умения в областта на проектирането и разработката на софтуер.

Асоциацията организира специализирани конференции, семи­нари и курсове за обучение по разработка на софту­ер и софту­ерни технологии.

БАРС организира създаването на Национална академия по раз­работка на софтуер – учебен център за професионал­на подго­товка на софтуерни специалисти.




Сподели с приятели:
1   ...   56   57   58   59   60   61   62   63   ...   73




©obuch.info 2024
отнасят до администрацията

    Начална страница