Сделай Сам Свою Работу на 5

Методика и порядок выполнения работы

1. Работа с массивами.

Следующие две программы демонстрируют, каким образом выполняется инициализация и работа с прямоугольными и ломаными массивами в C#.

Прямоугольный массив:

using System;

using System.Collections.Generic;

using System.Text;

namespace HelloWorldDemo

{

class Program

{

static void Main(string[] args)

{

// Прямоугольный многомерный массив

int[,]multMatr;

ultMatr = 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();

}

}

}

}

2. Свойства и методы класса 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");

}

}

}

}

3. Использование класса 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);

}

}

}

4. Использование класса 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);

}

}

}

Аппаратура и материалы. Для выполнения лабораторной работы необходим персональный компьютер со следующими характеристиками: процессор Intel с тактовой частотой 2000 МГц и выше; оперативная память – не менее 1024 Мбайт; свободное дисковое пространство – не менее 1,2 Гбайт; устройство для чтения компакт-дисков; монитор типа Super VGA (число цветов – 256) с диагональю не менее 17 ². Программное обеспечение – операционная система WINDOWS XP и выше, программы для просмотра Web-страниц, среда программирования Visual Studia .Net.

Указания по технике безопасности. Техника безопасности при выполнении лабораторной работы сопадает с общепринятой для работы с персональным компютером. Самостоятельно не производить ремонт персонального компьютера, установку и удаление программного обеспечения. В случае неисправности персонального компьютера сообщить об этом обслуживающему персоналу лаборатории (оператору, администратору). Соблюдать правила техники безопасности при работе с электрооборудованием. Не касаться электрических розеток металлическими предметами. Рабочее место пользователя персонального компьютера должно содержаться в чистоте. Не разрешается возле персонального компьютера принимать пищу, напитки.

Задание к лабораторной работе

Задание. Разработать консольное приложение для ввода с клавиатуры массива строк и поиска среди них строк, содержащих заданный строковый фрагмент.

Для поиска потребуется использование метода IndexOf (string findThisString) для строковых элементов массива. Метод возвращает позицию начала искомой подстроки от начала строки, либо значение «-1» при отсутствии соответствия.

Содержание отчета и его форма

Отчет по лабораторной работе должен состоять из:

1) названия лабораторной работы;

2) ответов на контрольные вопросы;

3) формулировки индивидуальных заданий и порядка их выполнения.

Контрольные вопросы

1. Массивы каких трех видов могут использоваться в C#?

2. Каким образом можно описать массив в С#?

3. Перечислите основные свойства класса System.Array. Дайте их характеристику.

4. Охарактеризуйте методы класса System.Array.

5. Какой тип используется для описания строки постоянной длины в C#?

6. Каким образом объявляются объекты класса String?

7. Назначение метода String.

8. Какие операции выполняются в классе String?

9. Что представляет собой интерфейс в C#?

10. Перечислите основные интерфейсы, входящие в библиотеку базовых классов .Net. Дайте их характеристику



©2015- 2019 stydopedia.ru Все материалы защищены законодательством РФ.