Массивы
Структуры. Классы
Структура это объединенное в единое целое множество поименованных элементов в общем случае разных типов. Структуры обычно описываются в интерфейсной части модуля программы
Линейная динамическая структура представляет собой изменяемую последовательность элементов. Частными случаями таких структур являются:
стеки, в которых разрешено добавлять элементы только в конец и удалять только последние элементы;
очереди, в которых добавление элементов осуществляется в конец, а удаление - из начала;
деки, которые допускают добавление и удаление элементов и с начала, и с конца.
В древовидной структуре, каждый элемент (вершина) ссылается на один или более элементов следующего уровня.
В сетевой структуре никаких ограничений на связи элементов не накладывается.
Линейные динамические структуры, такие как стеки, очереди и деки, при известном максимальном количестве элементов в них можно реализовать в виде динамических или статических одномерных массивов. В против ном случае, а также для представления остальных структур (древовидной и сетевой) используют списки.
Списком называют структуру, в которой помимо данных хранятся также адреса элементов. Элемент списка состоит из двух частей: информационной, содержащей данные, и адресной, где хранятся указатели на следующие элементы.
Класс — разновидность абстрактного типа данных в объектно-ориентированном программировании (ООП), характеризуемый способом своего построения. Другие абстрактные типы данных — метаклассы, интерфейсы, структуры, перечисления, — характеризуются какими-то своими, другими особенностями. Наряду с понятием «объекта» класс является ключевым понятием в ООП (хотя существуют и бесклассовые объектно-ориентированные языки, например, Self, Lua; подробнее смотрите Прототипное программирование). Суть отличия классов от других абстрактных типов данных состоит в том, что при задании типа данных класс определяет одновременно и интерфейс, и реализацию для всех своих экземпляров, а вызов метода-конструктора обязателен. Точный смысл этой фразы будет раскрыт ниже.
На практике объектно-ориентированное программирование сводится к созданию некоторого количества классов, включая интерфейс и реализацию, и последующему их использованию. Графическое представление некоторого количества классов и связей между ними называется диаграммой классов. Объектно-ориентированный подход за время своего развития накопил множество рекомендаций (паттернов) по созданию классов и иерархий классов.
Идея классов пришла из работ по базам знаний, имеющих отношение к исследованиям по искусственному интеллекту. Используемые человеком классификации в зоологии, ботанике, химии, деталях машин, несут в себе основную идею, что любую вещь всегда можно представить частным случаем некоторого более общего понятия. Конкретное яблоко — это в целом некоторое яблоко, вообще яблоко, а любое вообще яблоко — фрукт. Именно поэтому примеры классов в учебных пособиях по объектно-ориентированному программированию так часто упоминают яблоки и груши.
public class MyCustomClass { public int Number { get; set; } public int Multiply(int num) { return num * Number; } public MyCustomClass() { Number = 0; } }
Массив - это упорядоченная совокупность однотипных данных. Каждому элементу массива соответствует один или несколько индексов, определяющих положение элемента в массиве. Индексы образуют упорядоченные последовательности.
В зависимости от количества типов индексов различают: одномерные, двумерные, трехмерные и n-мерные массивы.
Значения элементов массива в программе можно определить тремя способами. Во-первых, массив может быть инициализирован с использованием типизированных констант или просто присваиванием значений элементам. Во-вторых, элементы массива могут быть введены с клавиатуры или из файла. В-третьих, элементы массива могут быть определены в программе:
а) с использованием датчика случайных чисел;
б) заданным образом, в том числе, и скопированы из другого массива.
Операции над массивами. Над массивом в целом определена единственная операция - операция присваивания.
Присваивание массивов заключается в копировании элементов одного массива в другой. Эту операцию можно выполнять только над массивами одного типа.
Массивы считаются совпадающими по типу, если они объявлены через запятую в одной строке.
Ввод-вывод массивов выполняют поэлементно, используя циклы с заданным числом повторений.
При выполнении операций ввода-вывода матриц и массивов большой размерности целесообразно вводить и выводить значения построчно.
Символьные массивы. Символьными называют массивы, элементами которых являются символы.
Переформирование массива. Переформирование массива предполагает изменение порядка элементов посредством их перемещения, удаления или вставки. При переформировании массива его размер может изменяться, а может оставаться без изменений.
Одновременная обработка нескольких массивов или подмассивов. К этому классу относятся задачи слияния массивов, переписи элементов одного массива, отвечающих определенному условию, в другой, формирования нового массива из элементов исходного, в соответствии с заданным законом преобразования и т. п.
Поиск элементов массива по заданным критериям. Примерами подобного рода задач могут служить поиск первого отрицательного, первого положительного и любого первого элемента, отвечающего некоторому условию, а также поиск единственного или определенного количества элементов, равных некоторому конкретному значению
Пример:int[] array = new int[] { 1, 3, 5, 7, 9 };