Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
билеты ПиОА v1.1.doc
Скачиваний:
6
Добавлен:
28.04.2019
Размер:
409.09 Кб
Скачать

Вопрос 15: «Массивы. Примеры записей, задающих массивы»

Массив – ограниченная совокупность однотипных величин. Чтобы программа не была длиной и однообразной используют массивы. Номер элемента в массиве – индекс. Массив относится к ссылочным типам данных – располагается в динамической области памяти. Создание массива начинается с выделения памяти под его элементы. Элементы массива могут быть как значимого так и ссылочного типов. Всем элементам при создании массива присваиваются значения по умолчанию – нули для значимых, null для ссылочных.

w- массив типа int [], операция new выделяет память под десять целых элементов.

z- массив типа string[], операция new выделяет память под 100 сслок на строки.

Размерность массива может задаваться выражением

Для обращения к элементу массива после имени массива указывается номер элемента в массиве, например w[4]

Массивы одного типа можно присваивать друг другу.

Массивы: одномерные, прямоугольные и ступенчатые.

Одномерный

Прямоугольный(чаще всего 2*2)

Ступенчатый(количество элементов в разных строках может отличаться)

Вопрос 16: «Методы класса. Метод Main»

Метод – функциональный элемент класса, который реализует вычисления или другие действия, выполняемые классом или экземпляром.Методы определяют поведение класса.

Метод(функция) – законченный фрагмент кода, к которому обращаются по имени. Описывается один раз, а вызывают сколько необходимо. Один метод может обрабатывать различные данные.

Синтаксис метода: [атрибуты(заголовок метода)][спецификаторы] тип имя_метода [(параметры)] тело_метода

Тип определяет значение какого типа вычисляется с помощью метода. Если метод не возвращает значения, то задаётся тип void, а оператор return отсутствует. Параметры используются для обмена информацией с методом. Параметр – локальная переменная, которая принимает значения соответствующего аргумента. Область действия параметра – весь метод. В классе не может быть методов с одинаковыми сигнатурами. Методы класса имеют доступ к его закрытым полям. Метод со спецификатором static должен обращаться только к статическим полям класса.

Пример:

double x=0.1

double y=Math.sin(x) //sin(x)-метод

Console.WriteLine(x) // WriteLine(x)-метод

Метод Main-статический метод, которому передаётся управление после запуска программы. Он может принимать параметры из внешнего окружения и возвращать значения в вызывающую среду.

Вопрос 17: «Классы в ооп. Что содержит класс? Описание класса. Спецификаторы. Поля. Методы. Константы»

Класс в ООП — тип данных, создаваемый программистом. Класс – обобщённое понятие, определяющее характеристики и поведение некоторого множества объектов этого класса(экземпляров). Класс содержит данные, задающие свойства объектов класса и методы, определяющие их поведение.

Спецификаторы. Поля. Методы. Константы. – взять из предыдущих

Вопрос 18: «Класс System.Array. Оператор foreach. Массив объектов. Примеры»

Все массивы в С# построены на основе базового класса Array, который содержит полезные для программист свойства и методы:

Элемент

Вид

Описание

Length

Свойство

Количество элементов массива (по всем размерностям)

Rank

Свойство

Количество размерностей массива

BinarySearch

Статический метод

Двоичный поиск в отсортированном массиве

Clear

Статический метод

Присваивание элементам массива значений по умолчанию

Copy

Статический метод

Копирование заданного диапазона элементов одного массива в другой массив

CopyTo

Метод

Копирование всех элементов текущего одномерного массива в другой одномерный массив

GetValue

Метод

Получение значения элемента массива

IndexOf

Статический метод

Поиск первого вхождения элемента в одномерный массив

LastIndexOf

Статический метод

Поиск последнего вхождения элемента в одномерный массив

Reverse

Статический метод

Изменение порядка следования элементов на обратный

SetValue

Метод

Установка значения элемента массива

Sort

Статический метод

Упорядочивание элементов одномерного массива

Свойство Length позволяет реализовывать алгоритмы, которые будут работать с массивами различной длины или, например, со ступенчатым массивом. Использование этого свойства вместо явного задания размерности исключает возможность выхода индекса за границы массива.

Оператор foreach применяется для перебора элементов в специальным образом организованной группе данных. Массив является именно такой группой. Удобство этого вида цикла заключается в том, что нам не требуется определять количество элементов в группе и выполнять их перебор по индексу: мы просто указываем на необходимость перебрать все элементы группы. Синтаксис оператора: foreach (тип имя in выражение) тело_цикла

Имя задает локальную по отношению к циклу переменную, которая будет по очереди принимать все значения из массива выражение. В простом или составном операторе, представляющем собой тело цикла, выполняются действия с переменной цикла. Тип переменной должен соответствовать типу элемента массива.

Пример: Пусть задан массив int[] a = {24, 50, 18, 3, 16, -7, 9, -1}; Вывод этого массива на экран выглядит следующим образом: foreach (int x in a) Console.WriteLine (x);

Массивы объектов. При создании массива, состоящего из элементов ссылочного типа, память выделяется только под ссылки на элементы, а сами элементы необходимо разместить в хипе явным образом. В качестве примера создадим массив из объектов класса Monster:

using System;

namespase ConsoleApp1

{

class Monster { ... }

class Class1

{

static void Main ()

{

Random rnd = new Random();

const int n = 5;

Monster[] stado = new Monster[n]; //1

for (int i=0; i<n; ++i) //2

{

stado[i] = new Monster (rnd.Next (1,100),

rnd.Next (1,200),

"Crazy" + i.ToString() );

}

foreach (Monster x in stado) x.Passport(); //3

}

}

}

В программе для получение случайных значений использован стандартный класс Random. В операторе 1 выделяется пять ячеек памяти под ссылки на экземпляры класса Monster, и эти ссылки заполняются значением null. В цикле 2 создаются 5 объектов: операция new выделяте память в хипе необходимого для хранения полей объекта объема, а конструктор объекта заносит в эти поля соответствующие значения (выполняется версия конструктора с тремя параметрами). Цикл 3 демонстрирует удобство применения оператора foreach для работы с массивом.