- •5. Обзор встроенных типов данных в с#. Применение встроенной функциональности типов данных.
- •6. Пространство имён System. Класс System.Math
- •7.Операции ввода-вывода. Формат вывода.
- •8. Арифметические операции. Операции отношений и логические операции. Операторы и выражения в c# .
- •Операторы
- •9.Массивы в с#. Одномерные массивы.
- •10.Класс System.Random, применение его методов для создания массива случайных чисел. Класс System.Array, использование его методов и свойства Length.
- •11. Двумерныемассивы в c#. Виды двумерных массивов и способы их определения. Способы создания двумерных массивов. Вывод матриц на экран по строкам.
- •12. Структуры в c#. Создание структур. Массивы структур.
- •13.Объект и его свойства. Характеристики ооп.
- •14.Определение классов в c#. Члены класса. Форма определения класса.
- •15.Конструкторы. Параметризованные конструкторы. Создание экземпляра класса. Использование оператора new.
- •16. Типы значений и ссылочные типы. Динамическое использование памяти: стеки и кучи. Упаковка и распаковка.
- •18. Определение методов класса. Модификаторы доступа к методам класса. Параметры методов класса, передача аргументов.
- •19. Модификаторы ref, out, params параметров методов.
- •20.Возвращение методами объектов класса. Возвращение методами массивов Возвращение методами объектов класса
- •Возвращение методами массивов
- •21. Общие (статические) члены класса. Доступ к общим членам. Ограничения на static-методы.
- •22.Цикл «Жизни». Область видимости и время существования переменных.
- •23. Преобразование и приведение типов данных.
Операторы
-
Формат: Один оператор может занимать одну или более строк. Два или большее количество операторов могут быть расположены на одной строке.
-
Вложенность: Операторы, управляющие порядком выполнения (if , if-else, switch, while, do-while, for) могут быть вложены друг в друга.
-
Метка оператора: Метка может стоять перед любым оператором, чтобы на этот оператор можно было перейти с пом. оператора goto. Метка состоит из идентификатора, за кот. стоит двоеточие (:). Областью определения метки явл. данная ф-ции. Пример: ABC2: x=3;
-
Составной оператор: (блок) сост. из одного или большего числа операторов любого типа, заключ. в фигурные скобки ({}). После закрывающей фигурной скобки не должно быть точки с запятой (;).
-
Оператор-выражение: Любое выражение, заканчивающееся точкой с запятой (;), является оператором.
Пустой оператор: Состоит из точки с запятой (;). Используется для обозначения пустого тела управляющего оператора.
-
Оператор завершения break:
break;
Прекращает выполнение ближайшего вложенного внешнего оператора switch, while,do или for.
Управление передается оператору, следующему за заканчиваемым. Одно из назначений этого оператора- закончить выполнение цикла при присваивании некоторой переменной определенного значения.
-
Оператор возврата return:
return;
Прекращает выполнение текущей функции и возвращает управление вызвавшей программе.
return выражение;Прекращает выполнение текущей функции и возвращает управление вызвавшей программе с передачей ей значения выражения.
Условный оператор if-else:if(логическое выражение) <оператор>;
Если выражение истинно, то выполняется <оператор>.Если выражение ложно, то ничего не делается.if (выражение) <оператор1>else<оператор2>;
-
Оператор-переключатель или оператор выбора switch:
switch (выражение) { case константа1 : <операторы;>break;
case константа2 : <операторы;>break;
… default: <операторы;>break; }
Селекторное выражение может принимать не только числовое значение, а и строковое.
-
Оператор цикла while:while (логическое выражение) { <операторы;> }
13, Оператор цикла do … while:Do<оператор>while (логическое выражение);
-
Оператор цикла for:for (выражение1; выражение2; выражение3) { <операторы;> }
-
Примечание: Оператор «Запятая».Позволяет объединить два выражения в одно там, где синтаксис С# допускает только одно выражение.
9.Массивы в с#. Одномерные массивы.
В отличие от других языков программирования массивы в С# реализованы как объекты. Тип массив определён в системном типе System. Array. Массив – это набор элементов данных одного типа, сохранённых в непрерывной области памяти. Массив содержит список ссылок на ячейки памяти, в которых сохранены элементы массива. Массив может быть объявлен с указанием любого типа данных.
Типы массивов. В зависимости от числа данных измерений массивы делятся на:
-
одномерные;
-
многомерные (самый простой из них – двумерный);
-
ступенчатые (ломаные, изрезанные).
В С# размер массива не нужно указывать при его объявлении. Этим достигается большая гибкость, так как размер определяется в тот момент, когда массив будет использоваться.
Объявление одномерного массива:
Тип_элементов [ ] Имя_массива = new Тип_элементов [размер];
Так как массивы определяются как объекты, их создание представляет собой двухступенчатый процесс. Сначала объявляется ссылочная переменная на массив, а затем для него выделяется память, и переменной массива присваивается ссылка (адрес) на эту область памяти.
Пример создания массива:
int [ ] mas1 = new int [15];
Так как массивы представляют собой ссылки, для создания объекта массива типа int обязательно ключевое слово new.
Можно сначала объявить массив, а затем выделить ему память:
short [] mas2;
// программный код
mas2=new short [n]; //n (размер) должен быть уже установлен
Способы задания значений элементам массива
Способ №1. Инициализация элементов массива константами в момент его создания
а) Без использования оператора new (сокращенный метод инициализации массива):
string [] mas3={“Ольга”, “Дмитрий”, “Анна”, “Петр”};
б) Инициализация элементов массива с использованием оператора new:
int [] mas4=new int {-81,13,79,-110};
В этом случае имеет место некоторая избыточность. Полезно применять, когда уже объявлен массив, а ссылочной переменной позже присваивается ссылка на его первый элемент (отложенная инициализация):
double [] mas5;
// программный код
mas5=new double [] {-5.14, 78.1, 100.56};
в) Указание размера массива при его инициализации:
decimal [] mas6=new decimal [5] {10, 10000, 100000, 1000000};
В этом случае размер массива должен соответствовать количеству инициализаторов.
Способ №2. Ввод элементов массива с клавиатуры
Для управления циклом при работе с массивом можно воспользоваться свойством Length класса System.Array, которое возвращает текущий размер массива.
class UseАrray
{
static void Main()
{
int i,n;
Console. WriteLine(“Введите размер массива”) ;
n = Int32. Parse(Console.ReadLine());
int [ ] mas = new int [n];
for (i = 0; i < mas. Length; i + +)
{
Console. WriteLine(“Enter mas [” + i + “]”);
mas [i] = Int32.Parse(Console.ReadLine());
}
Console. WriteLine(“Содержимое массива:”);
for (i = 0; i < n; i + +)
{
Console. Write(“{0:#.#}”,mas[i]);
}
Console. WriteLine();
}
}
Выход за границы массива проверяется. Может генерироваться исключение IndexOut of Range Exception.
Способ №3. Генерация элементов массива случайным образом
Иногда в приложениях требуется генерировать случайные числа. Для этого используется класс System.Random. В отличие от класса Math, где математические функции реализованы в виде статических методов, которые не требуют для их вызова создания экземпляра класса, методы класса Random – это обычные методы. Значит, для вызова методов генерации случайных чисел необходимо создать экземпляр класса Random:
Random Ob=new Random();
В классе Random имеются следующие перегруженные методы, которые возвращают случайное число:
1) public int Next() – возвращает целое положительное число во всем положительном диапазоне типа int;
2) public int Next(int max) – возвращает целое положительное число в диапазоне [0, max];
3) public int Next(int min, int max) – возвращает целое положительное число в диапазоне [min, max];
4) public double NextDouble() – возвращает целое действительное число в диапазоне [0,1].
Пример:
double [] mas = new double [n];
for (int i = 0; i < mas. Length; i + +)
mas[i]=Ob.Next(10,50) + Ob.NextDouble();
Альтернативный способ доступа к элементам массива – цикл foreach
Пример использования foreach для вывода элементов массива:
Console. WriteLine(“Содержимое массива:”);
foreach(double z in mas)
Console. WriteLine(“Это число {0:#.##}”, z);