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

Вопрос 8: «Рекурсия, итерация. Косвенная и прямая рекурсия. Где используется конструкция:

do {…} while (выражение

Метод рекурсивный – это функция которая вызывает сама себя. Это прямая рекурсия.

Косвенная рекурсия возникает, когда 2 или более функций вызывают друг друга.

При вызове функции себя в стеке создается копия значений ее параметров, как при вызове ее параметров, затем управление передается по первому исполняемому оператору функций.

Итерационные алгоритмы – это алгоритмы, в которых одни и те же операции повторяются многократно, пока не будет выполнено некоторое условие. Примеры: алгоритмы численных методов решений уравнений до определенной точности. При реализации таких алгоритмов необходимо задать подсчет итераций для предотвращения зацикливания. В программировании итерация – один проход цикла. Для программирования итерационных процессов хорошо подходит конструкция с постусловием: do {…} while (выражение). Цикл завершается, когда выражение = false. Внутри цикла должен быть оператор, влияющий на значение выражения.

Вопрос 9: «Символы. Примеры. Строки. Примеры. Строки типа StringBuilder. Примеры»

Символьный тип char предназначен для хранения символов в формате Unicode. Символьная константа представляет собой любой символ в кодировке Unicode. Символьные константы записываются в одной из четырех форм:

  1. Обычный символ, имеющий графическое представление (кроме апострофа и символа перевода строки) – А , ю , *

  2. Управляющая последовательность - \0 , \n

  3. Символ в виде шестнадцатеричного кода - \xF , \x74

  4. Символ в виде escspe-последовательности Unicode - \uA81B

Тип string, предназначенный для работы со строками символов в кодировке Unicode, является встроенным типом C#. Ему соответствует базовый класс System.String библиотеки .NET.

Примеры создания строк:

string s; // инициализация отложена

string t = “qqq”; // инициализация строковым литералом

string u = new string(‘ ‘, 20); // конструктор создает строку из 20 пробелов

char[] a = {‘0’, ‘0’, ‘0’}; // массив для инициализации строки

string v = new string (a); // создание из массива символов

Строки типа StringBuilder. Класс StringBuilder определен в пространстве имен System и позволяет изменять значения своих экземпляров.

Пример создания экземпляра:

StringBuilder a= new StringBuilder(); // создается пустая строка, размера 16 байт

StringBuilder b= new StringBuilder (“qwerty”);

StringBuilder c= new StringBuilder(100);

StringBuilder d= new StringBuilder(“qwerty”, 100);

StringBuilder e=new StringBuilder(“qwerty”, 1,3, 100); // объект инициализируется подстрокой длиной 3 символа, начиная с 1

Вопрос 10: «Конструкторы. Синтаксис. Примеры»

Конструктор предназначен для инициализации объекта. Он вызывается автоматически при создании объекта класса с помощью операции new. Имя конструктора совпадает с именем класса. Свойства конструкторов:

  1. Конструктор не возвращает значение, даже типа void

  2. Класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации.

  3. Если программист не указал ни одного конструктора или какие-то поля не были инициализированы, полям значимых типов присваивается нуль, полям ссылочных типов – значение null.

  4. Конструктор, вызываемый без параметров, называется конструктором по умолчанию.

В следующем примере класс Taxi определяется с помощью простого конструктора. После этого с помощью оператора new создается экземпляр класса.Конструктор Taxi вызывается оператором new сразу после выделения памяти для нового объекта.

public class Taxi

{

public bool isInitialized;

public Taxi()

{

isInitialized = true;

}

}

class TestTaxi

{

static void Main()

{

Taxi t = new Taxi();

Console.WriteLine(t.isInitialized);

}

}