Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КПиЯП.doc
Скачиваний:
0
Добавлен:
26.09.2019
Размер:
264.7 Кб
Скачать

43) Перечислите классы библиотеки .Net

Метод

Описание

GetUnicodeCat

Возвращает категорию Unicode-символа

IsControl

Возвращает true, если символ является управляющим

IsDigit

Возвращает true, если символ является десятичной цифрой

IsLetter

Возвращает true, если символ является буквой

IsLetterOrDigit

Возвращает true, если символ является буквой или цифрой

IsLower

Возвращает true, если символ задан в нижнем регистре

IsNumber

Возвращает true,

IsPunctuation

Возвращает true, если символ является знаком препинания

IsSeparator

Возвращает true, если символ является разделителем

Is Upper

Возвращает true, если символ записан в верхнем регистре

IsWhiteSpace

Возвращает true,

Parse

Преобразует строку в

ToLower

Преобразует символ в нижний регистр

ToUpper

Преобразует символ в верхний регистр

Мax, Min Value

Возвращают символы с максимальным и минимальным

class Class1

{static void Main()

{const int n=20;

int [] a= new int[n] {3,12,5,-9,8,-4};

Console.WriteLine(“Исходный массив: ”);

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

Console.Write(“\t” +a[i]);

Console.WriteLine();

int s=0;

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

if (a[i]>0)

{s*=a[i];}

Console.WriteLine(“Сумма ”+s);}}}

44) Назовите класс, позволяющий работать со

Массив символов, как и массив любого иного типа, построен на основе базового класса Array. Создать строку можно несколькими способами:

string s; // объявление строки, без выделения памяти

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

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

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

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

class Class1

{static void Main()

{const int n=20;

int [] a= new int[n] {3,12,5,-9,8,-4};

Console.WriteLine(“Исходный массив: ”);

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

Console.Write(“\t” +a[i]);

Console.WriteLine();

int s=0;

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

if (a[i]>0)

{s+=a[i];;}Console.WriteLine(“Сумма ”+s);}}}

45) Перечислите операции, допустимые со строками присваивание (=);

  • проверка на равенство (= =);

  • проверка на неравенство (!=);

  • обращение по индексу ([ ]);

  • сцепление (конкатенация) строк (+).

class Class1

{static void Main()

{const int n=20;

int [] a= new int[n] {3,12,5,-9,8,-4};

Console.WriteLine(“Исходный массив: ”);

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

Console.Write(“\t” +a[i]);

Console.WriteLine();

int s=0;

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

if (a[i]>0)

{s*=a[i];:}Console.WriteLine(“Сумма ”+s);}}}

46) Назовите отличия работы с классом System.String

Тип string, предназначенный для работы со строками символов в кодировке Unicode, является встроенным типом С#. Ему соответствует базовый класс System.String библиотеки .NET.Строки типа StringBuilderВозможности, предоставляемые классом string, широки, однако требование не­изменности его объектов может оказаться неудобным. В этом случае для работы со строками применяется класс StringBuilder, определенный в пространстве имен System. Text и позволяющий изменять значение своих экземпляров.

class Class1

{static void Main()

{const int n=6;

int [] a= new int[n] {3,12,5,-9,8,-4};

Console.WriteLine(“Исходный массив: ”);

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

Console.Write(“\t” +a[i]);

Console.WriteLine();

int s=0;

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

if (a[i]<0)

{s*=a[i];}Console.WriteLine(“Сумма отрицательных ”+s);}}}

47) Перечислите основные методы класса

При создании экземпляра обязательно использовать операцию new и конструктор, например:StringBuilder a = new StringBuilder();

Char[] b = a.ToCharArray();

int z = 0;

int f = 0;

for (int i = 0; i < b.Length; ++i)

{if (b[i] == 'первая буква') { z = 0; }

if (b[i] != 'последняя буква ') { ++z; }

if (z == 0) { ++f; }

if (z > 9)

{f -= 1;

z = 0;}}

48) Для чего используется класс Random?.

В библиотеке C# класс Random используется для получения псевдослучайной последовательности чисел необходимо сначала создать экземпляр класса с помощью конструктора, например Random a = new Random(); Есть два вида конструктора: конструктор без параметров (оператор 1), который использует начальное значение генератора, вычисленное на основе текущего времени. В этом случае каждый раз создается уникальная последовательность. Конструктор с параметром типа int (оператор 2) задает начальное значение генератора, что обеспечивает возможность получения одинаковых последовательностей чисел.

Char[] b = a.ToString();

string z = 0;

string f = 0;

for (string i = 0; i < b.Length; ++i)

{if (b[i] == 'первая буква') { z = 0; }

if (b[i] != 'последняя буква ') { ++z; }

if (z == 0) { ++f; }

if (z > 9)

{f -= 1;z = 0;}}

49) Что такое методы языке С#?

Метод - это элемент (член) класса, который реализует любые действия, выполняемые классом.Синтаксис заголовка метода: [спецификаторы] тип возвращаемого значения имя_метода ([параметры])В качестве спецификаторов могут выступать спецификаторы void, virtual, extern, public,static и множество других, рассмотренных в следующих лекциях. Тело метода задает последовательность действий (последовательность операторов), выполняемых методом. Тип возвращаемого значения определяет – значение какого типа будет вычислено с помощью данного метода. Параметры метода представляют собой локальные переменные, которые при вызове метода принимают значение соответствующего аргумента. Область действия параметра – весь метод.

50) Что такое тело метода, параметры метода?

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

public double Func1(int x,double y) //заголовок метода

{//тело метода

double z=x*y;

return z;

}//конец тела метода

/*public –спецификатор

double – тип возвращаемого значения

Func1 - имя метода

int x,double y – параметры метода.

51)Перечислите способы передачи параметров в

При вызове метода выполняются следующие действия:

  1. Вычисляются выражения, стоящие на месте аргументов

  2. Выделяется память под параметры метода в соответствии с их типом

  3. Каждому из параметров сопоставляется соответствующий аргумент

  4. Выполняется тело метода

  5. Если метод возвращает значение, оно передается в точку вызова. Если метод имеет тип void управление передается на оператор, следующий после вызова.

Существует два способа передачи параметров:

  1. по значению

  2. по ссылке

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

54) Что называется небезопасным кодом? Опишите

Небезопасным называется код, выполнение которого среда CLR не контролирует.

Указатель типа void означает, что он ссылается на переменную неизвестного типа. Указатель на тип void применяется в тех случаях, когда конкретный тип объекта, адрес которого требуется хранить, не определён (например, если в одной и той же переменной в разные моменты времени требуется хранить адреса объектов различных типов).

Указателю на тип void можно присвоить значение указателя любого типа, а также сравнить его с любыми указателями, но перед выполнением каких-либо действий с областью памяти, на которую он ссылается, требуется преобразовать его к конкретному типу явным образом.

55) Перечислите все возможные операции с

Основными операциями с указателями являются * и &.

Обе эти операции являются унарными, т. е. имеют один операнд, перед которыми они ставятся. Операция & соответствует операции "взять адрес". Операция * соответствует словам "значение, расположенное по указанному адресу".

Операция * называется разадресацией или разыменованием. Она предназначена для доступа к величине, адрес которой хранится в указателе. Эту операцию можно использовать как для получения, так и для изменения значения величины.

Инициализация указателей может быть осуществлена различными способами.

1 способ. Присваивание указателю адреса существующего объекта:

  • С помощью операции получения адреса:

int a=5; //целая переменная

int*p=&a; //в указатель записывается адрес a

  • С помощью значения другого инициализированного указателя:

int*p1=p;// указатель p уже инициализирован

  • С помощью имени массива, которое трактуется как адрес:

int[]b= new int[]{10,20,30,40}; //массив

fixed (int*p2=b) {...}; //присваивание указателю р2 адреса начала массива

fixed (int*р2=&b[0]){...}; //то же самое

2 способ. Присваивание указателю адреса области памяти в явном виде:

сhar*p3=(char*)0x12F69E;

здесь 0x12F69E – шестнадцатеричная константа, (Char*) – операция явного приведения типа: константа преобразуется к типу указателя на char.

56) Что такое статические методы класса? Опишите Статическим называется метод, который существует в классе как в таковом, а не в отдельных его экземплярах. Как и в случае других статических членов, главное преимущество статических методов в том, что они расположены вне конкретных экземпляров класса, не засоряя глобальное пространство приложения. ключевое слово static.

57) Что такое статические данные класса? Опишите Статическим называется метод, который существует в классе как в таковом, а не в отдельных его экземплярах. Как и в случае других статических членов, главное преимущество статических методов в том, что они расположены вне конкретных экземпляров класса, не засоряя глобальное пространство приложения. ключевое слово static.

58) Что такое указатель this? Опишите особенности Каждый объект содержит свой экземпляр полей класса.

Особенности указателя this

  1. Каждому экземпляру соответствует this указатель

  2. Он используется только для нестатических методов.

  3. Его не надо дополнительно объявлять.

  4. Скрытый, он передается во все методы своего экземпляра.

  5. this – локальная переменная, поэтому она не доступна за пределами экземпляра.

  6. Использовать указатель this можно явно.

59) Что такое процедурное программирование?

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

60) Что такое объектно-ориентированное

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

Основными свойствами ООП являются инкапсуляция(позволяющее объединить и защитить данные), наследование и полиморфизм.( взаимозаменяемость объектов с одинаковым интерфейсом)

61) Дайте определение понятиям “класс” и “объект”. Объект — это строительный блок ООП-приложения. Класс — разновидность абстрактного типа данных в объектно-ориентированном программировании

62) Что такое UML? Опишите UML - представление Обычно описывают классы и объекты с использованием синтаксиса UML.UML — это язык, разработанный для моделирования приложений с использованием тех объектов, из которых они строятся, тех операций, которые они выполняют, и тех вариантов их применения, для которых они предназначаются.

64) Перечислите режимы доступа к членам класса.

Прототипы функций и объявления элементов данных включаются в объявлении класса в разделы public (открытый) или private (закрытый). Ключевые слова public и private говорят компилятору о доступности элементов-функций и данных. Например, функция SetRadius() определена в разделе public, и это означает, что любая функция программы может вызвать функцию SetRadius(). Функция CalculateArea() определена в разделе private, и эту функцию можно вызвать только в коде функций-элементов класса Circle.

66) Что такое конструктор? Опишите особенности.

Конструктор -метод предназначен для инициализации объекта.

Особенности

  1. Имеет то же самое имя, что и класс

  2. Не может иметь тип возвращаемого значения, даже void.

  3. Вызывается конструктор автоматически в тот момент, когда создается экземпляр класса.

  4. Нельзя вызвать конструктор в явном виде.

  5. Конструктор, как и другие функции, может иметь параметры. Такой конструктор (с параметрами) называется конструктором инициализации.

  6. Класс может иметь несколько конструкторов. Например, конструктор инициализации и конструктор по умолчанию(без параметров). Такой случай называется перегрузкой конструкторов.

  7. Если в классе не объявлен ни один конструктор, компилятор сам создает функцию - конструктор класса.

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

67) Что такое конструктор по умолчанию? Опишите.

Конструктор -который может быть вызван без аргументов(параметров). вызываются до вызова функции main. А реализуютсь в классе.

68) Что такое конструктор инициализации? Опишите

//список инициализации

: x(x), y(y)

//Тело конструктора

{ }

69) Что такое деструктор? Опишите особенности.

Еще одна специальная функция класса - деструктор – высвобождает памть

Особенности:

  1. Имеет то же самое имя, что и класс, но перед ним ставится знак тильды (~).

  2. Не может иметь тип возвращаемого значения.

  3. В отличие от конструктора не может иметь параметров.

  4. Вызывается деструктор автоматически в тот момент, когда завершается работа с объектом класса.

  5. Нельзя вызвать деструктор в явном виде.

70) Для чего обычно используется деструктор?

Во многих случаях требуется, чтобы были произведены какие-либо действия при окончании работы объекта. Это может быть освобождение памяти, восстановление экрана, закрытие файлов и т.д. • Имя функции деструктора должно совпадать с именем класса и ему должен предшествовать символ ~. Если, например, вы объявляете класс с именем Rectangle, именем функции деструктора должно быть ~Rectangle. Следовательно, объявление класса Rectangle должно выглядеть следующим образом • Не указывайте никакого возвращаемого значения для функции деструктора. (Функция деструктора должна иметь тип void, но не нужно это указывать.) • Функция деструктора не имеет никаких параметров.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]