Добрый день. Я сейчас прохожу курс повышения квалификации - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?
|
Разработка серверных web-приложений на С#
Задание 2. Работа с массивами.
Следующие две программы демонстрируют, каким образом выполняется инициализация и работа с прямоугольными и ломаными массивами в C#.
-
Прямоугольный массив.
using System; using System.Collections.Generic; using System.Text; namespace HelloWorldDemo { class Program { static void Main(string[] args) { // Прямоугольный многомерный массив int[,]multMatr; multMatr = new int[10,10]; // Заполнение массива 9 на 9: for (int i = 1; i <= 9; i++) for (int j = 1; j < 9; j++) multMatr[i, j] = i * j; // Вывод элементов многомерного массива for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) { Console.Write(multMatr [i, j] + "\t"); } Console.WriteLine(); } } }
В результат выполнения программы получим таблицу умножения следующего вида:
- Ломаный массив.
using System; using System.Collections.Generic; using System.Text; namespace HelloWorldDemo { class Program { static void Main(string[] args) { // Ломаный многомерный массив из пяти внутренних массивов разного размера int[][] JagArr = new int[10][]; // Инициализация генератора случайных чисел Random rand = new Random(); // Динамическое создание ломаного массив for (int i = 0; i < JagArr.Length; i++) { JagArr[i] = new int[i + rand.Next(10)]; } // Вывод строк на консоль // Каждый элемент по умолчанию имеет значение, равное for (int i = 0; i < 10; i++) { // Свойство Length массива возвращает его размер Console.Write("Length of row {0} is {1}:\t", i, JagArr[i].Length); for (int j = 0; j < JagArr[i].Length; j++) { Console.Write(JagArr[i][j] + " "); } Console.WriteLine(); } } } }
В результате выполнения программы получим следующую таблицу:
Свойства и методы класса Array.
Следующий пример демонстрирует использование некоторых из свойств и методов класса Array:
using System; using System.Collections.Generic; using System.Text; namespace HelloWorldDemo { class Program { static void Main(string[] args) { // Массив символьных строк string[] Brands = new string[] {"Audi", "BMW", "Buick", "Chevrolet", "Citroen", "Dodge", "Ferrari", "Fiat", "Ford", "Honda", "Hyundai", "Cherokee", "Cherry", "Lada", "Lamborghini", "Lincoln", "Mazda", "Mercedes", "Mitsubishi", "Nissan", "Opel", "Peugeot", "Plymoth", "Pontiac", "Renault", "Rover", "Saab", "Subaru", "Suzuki", "Toyota", "Volkswagen", "Volvo"}; // Вывод марок автомобилей в соответствии с порядком элементов в массиве Console.WriteLine("Here is the array of car brands:"); for (int i = 0; i < Brands.Length; i++) Console.Write(Brands[i] + "\t"); Console.Write("\n\n"); // Сортировка элементов в обратном порядке Array.Reverse(Brands); // Вывод автомарок Console.WriteLine("Here is the list once reversed:"); for (int i = 0; i < Brands.Length; i++) Console.Write(Brands[i] + "\t"); Console.Write("\n\n"); // Остаются только первый и последний Console.WriteLine("Only two remain: "); Array.Clear(Brands, 2, Brands.Length-2); for (int i = 0; i < Brands.Length; i++) { Console.Write(Brands[i] + "\t\n"); } } } }
Результат работы программы:
Использование класса StringBuilder
using System; using System.Collections.Generic; using System.Text; namespace HelloWorldDemo { class Program { static void Main(string[] args) { StringBuilder WordList = new StringBuilder("Каждый Охотник "); WordList.Append("Желает Знать Где "); Console.WriteLine(WordList); WordList.Append("Сидит Фазан"); Console.WriteLine(WordList); // Сделать все буквы прописными string Spectrum = WordList.ToString().ToUpper(); Console.WriteLine(Spectrum); } } }
Результат работы программы:
Использование класса ArrayList
Использование класса ArrayList из пространства имен System.Collections позволяет эффективно реализовать работу с массивами объектов, поскольку многие возможности, необходимые для этого реализованы изначально, в частности методы вставки, удаления и нумерации элементов.
Для использования возможностей ArrayList используется не обычное наследование, а модель включения в виде делегирования вызовов на выполнение различных действий классу производному от ArrayList:
public class NBooks : IEnumerable { // nbList - внутренний класс, который будет делать всю работу private ArrayList nbList; // Создаем объект класса nbList при помощи конструктора NBooks public NBooks() {nbList = new ArrayList();} // Реализуем нужные нам методы для приема вызовов извне и передачи их nbList // Метод для вставки объекта NBook public void AddNBook(NBook nb) { nbList.Add(nb); } // Метод для удаления объекта NBook public void RemoveNBook(int nbToRemove) { nbList.RemoveAt(nbToRemove); } // Свойство, возвращающее количество объектов NBook public int NBookCount { get { return nbList.Count; } } // Метод для очистки объекта - удаления всех объектов NBook public void ClearAllNBooks() { nbList.Clear(); } // Метод, который отвечает на вопрос - есть ли уже в наборе такой объект NBook public bool NBookIsPresent(NBook c) { return nbList.Contains(c); } // Все, что связано с реализацией IEnumerator, перенаправляется в nbList public IEnumerator GetEnumerator() { return nbList.GetEnumerator(); } }
Реализация класса NBook и код программы, использующей класс NBooks представлены ниже.
using System; using System.Collections.Generic; using System.Collections; using System.Text; namespace NBooks { public class NBook { // Конструктор класса NBook public string Model; public string CPU_model; public int CPU_clock; public int RAM_size; public NBook(string mname, string CPU, int Clock, int RAM) { Model = mname; CPU_model = CPU; CPU_clock = Clock; RAM_size = RAM; } } class Program { static void Main(string[] args) { NBooks nbLot = new NBooks(); // Создание списка объектов NBook nbLot.AddNBook( new NBook("ASUS A7Sn","Intel Core 2 Duo T8300", 2400, 2048)); nbLot.AddNBook( new NBook("Acer Aspire 5530G-803G25Mi","AMD Turion X2 Ultra ZM80", 2100, 3072)); nbLot.AddNBook( new NBook("Fujitsu Amilo Si 2636", "Intel Core 2 Duo T8300", 2400, 2048)); nbLot.AddNBook( new NBook("HP Pavilion tx2650er", "AMD Turion X2 Ultra ZM82", 2200, 4096)); // Выводим информацию о каждом объекте при помощи конструкции foreach Console.WriteLine("You have {0} in the lot: \n", nbLot.NBookCount); foreach (NBook nb in nbLot) { Console.WriteLine("Model: {0}", nb.Model); Console.Write("CPU: {0}", nb.CPU_model); Console.WriteLine(" {0} GHz", nb.CPU_clock); Console.WriteLine("RAM: {0} GB\n", nb.RAM_size); } // Удаляем один из ноутбуков nbLot.RemoveNBook(3); Console.WriteLine("You have {0} in the lot.\n", nbLot.NBookCount); // Добавляем еще один ноутбук и проверяем его наличие в наборе NBook temp = new NBook("ASUS M51Ta", "AMD Turion™ X2 Ultra ZM84", 2300, 4096); nbLot.AddNBook(temp); if(nbLot.NBookIsPresent(temp)) Console.WriteLine(temp.Model + " is already in the lot."); // Удалить все nbLot.ClearAllNBooks(); Console.WriteLine("You have {0} in the lot.\n", nbLot.NBookCount); } } }
Результат выполнения программы: