Задание №8.
Описание элементов синтаксиса языка, используемых в задаче:
List<Word1> rbkList = new List< Word1> - создаем список заполненный экземплярами класса.
StaticWord1.PrintList(rbkList) − вывод списка на экран с помощью статического класса.
propList.Reverse() - записывает список в обратном порядке
propList.Add() – вставляет новый элемент в список. В конец списка
propList.Insert() – вставляет новый элемент в указанную позицию
propList.RemoveAt() – удаляет элемент из выбранной позиции
propList.FindIndex – выполняет поиск в списке элементов с указанными параметрами
propList.OrderBy() – выполняет сортировку по одному из параметров
propList.Clear() – очищает список
Воспользоваться условием в задании №6. В ходе работы выполнялись задачи:
1) Определить класс с двумя/тремя закрытыми полями.
2) Организовать доступ к закрытым членам класса через свойства.
3) Определить и заполнить список экземпляров класса (не менее 5 элементов).
4) Отсортировать список по одному из параметров (выбрать самостоятельно).
5) Добавить новый элемент в конец списка, добавить новый элемент в произвольную позицию списка (выбрать самостоятельно).
6) Удалить оба ранее вставленных элемента.
7) Найти элемент списка по определенному значению одного из его членов (значение задать самостоятельно).
8) Очистить список.
Блок-схема алгоритма:
Листинг класса «Word1»:
class Word1
{
private string _word;
private int _maxlen;
private int _numdifflett;
public Word1(string word)
{
if (word.Length > 0)
{
_word = word;
}
else
_word = "NoWord";
}
static Word1()
{
}
public void Print()
{
Console.WriteLine(" Слово : {0}, Длинна слова : {1}, Количество
различных букв : {2}", _word, _maxlen, _numdifflett);
}
public string Word
{
set { _word = Convert.ToString(value); }
get { return _word; }
}
public int Maxlen
{
set { _maxlen = Math.Abs(value); }
get { return _maxlen; }
}
public int NumDiffLett
{
set { _numdifflett = Math.Abs(value); }
get { return _numdifflett; }
}
~Word1()
{
Console.WriteLine("Объект удален!");
}
}
Вспомогательный класс «StaticWord1»:
class StaticWord1
{
public static void PrintList(List<Word1> Words)
{
foreach (Word1 rbk in Words)
rbk.Print();
}
}
Листинг программы:
List<Word1> rbkList = new List<Word1>
{
new Word1("палка") { Maxlen = 5, NumDiffLett = 4 },
new Word1("кружка") { Maxlen = 6, NumDiffLett = 5 },
new Word1("рот") { Maxlen = 3, NumDiffLett =3 },
new Word1("арматура") { Maxlen = 8, NumDiffLett = 5},
new Word1("ты") { Maxlen = 2, NumDiffLett = 2}
};
Console.WriteLine("Список ");
StaticWord1.PrintList(rbkList);
Console.WriteLine("\nСписок по возрастанию длины слова ");
StaticWord1.PrintList(rbkList.OrderBy(w => w.Maxlen).ToList());
rbkList.Add(new Word1("черепаха") { Maxlen = 8, NumDiffLett = 5
});
Console.WriteLine("\nСписок с новым элементом в конце ");
StaticWord1.PrintList(rbkList);
rbkList.Insert(3, new Word1("анальгин") { Maxlen = 8,
NumDiffLett=6
});
Console.WriteLine("\nСписок со вставленным элементом ");
StaticWord1.PrintList(rbkList);
rbkList.RemoveAt(3);
rbkList.RemoveAt(5);
Console.WriteLine("\nСписок с удаленнымы вставленнымы
элементами");
StaticWord1.PrintList(rbkList);
int num = rbkList.FindIndex(w => w.Word == ("палка"));
Console.WriteLine("\nНайденный элемент списка");
rbkList[num].Print();
rbkList.Clear();
Console.WriteLine("\nПустой список");
StaticWord1.PrintList(rbkList);
Console.ReadKey();
Контрольный пример:
Рисунок 21 – Контрольный пример №1