- •1. Цели и задачи дисциплины «Программирование».
- •2. Особенности решения задач с использованием эвм.
- •3. Алгоритм и его свойства. Способы описания алгоритмов.
- •4. Схемы алгоритмов. Правила оформления схем алгоритмов.
- •12. Встроенный отладчик. Пошаговое выполнение программы. Использование точек останова. Просмотр значений.
- •15. Характеристики качества программного обеспечения. Жизненный цикл программы.
- •16. Свойства языков программирования, определяющие качество программ: простота, надежность, быстрота трансляции, эффективность, удобочитаемость, блочность.
- •17. Состав языка программирования c#. Алфавит и лексемы. Идентификаторы.
- •18. Состав языка программирования c#. Алфавит и лексемы. Идентификаторы.
- •19. Разделители в c#. Литералы в c#.
- •20. Типы данных в языке c#. Классификация типов. Встроенные типы.
- •21. Типы-значения и ссылочные типы.
- •22. Преобразования встроенных арифметических типов-значений. Примеры использования.
- •23. Переменные. Именованные константы. Операции и выражения. Примеры использования.
- •24. Основные операции c#. Инкремент и декремент. Операция new. Примеры использования.
- •25. Явное преобразование типа. Примеры использования.
- •26. Умножение, деление и остаток от деления. Сложение и вычитание. Примеры использования.
- •27. Условная операция. Операции присваивания. Примеры использования.
- •28. Операции отношения и проверки на равенство. Операция отрицания. Примеры использования.
- •29. Простейший ввод-вывод. Примеры использования.
- •30. Математические функции – класс Math. Примеры использования.
- •33. Условные оператор if. Примеры использования. Алгоритмы разветвленной структуры
- •34. Оператор выбора switch. Примеры использования.
- •35. Понятие цикла. Цикл с предусловием while. Примеры использования.
- •36. Понятие цикла. Цикл с постусловием do. Примеры использования.
- •37. Понятие цикла. Цикл с параметром for. Примеры использования.
- •38. Понятие цикла. Цикл перебора foreach. Примеры использования.
- •39. Оператор break. Оператор continue. Оператор return. Примеры использования.
- •40.Обработка исключительных ситуаций. Оператор try. Примеры использования.
- •41. Оператор throw. Класс Exception. Примеры использования.
- •48. Массивы. Одномерные массивы. Примеры использования.
- •51. Класс System.Array. Основные элементы класса Array. Примеры использования.
- •52. Организация вывода массивов. Вывод одномерных массивов. Примеры использования.
- •Объявления и инициализация
- •Ступенчатые массивы
- •Объявления и инициализация
- •54. Символы. Массивы символов. Примеры использования.
- •55. Строки типа String. Основные элементы класса System.String. Примеры использования.
- •56. Форматирование строк. Примеры использования.
- •57. Класс StringBuilder. Основные элементы класс StringBuilder. Примеры использования.
- •58. Класс Random. Основные элементы класс Random. Примеры использования.
22. Преобразования встроенных арифметических типов-значений. Примеры использования.
Присвоение переменной одного типа значения другого типа
При этом будет выполнено автоматическое неявное преобразование типа переменной, стоящей справа от знака присваивания, в тип переменной, стоящей слева от знака присваивания, если тип левой части имеет больший диапазон значений, чем тип правой части. Такое преобразование, называемое расширяющим неявным преобразованием, осуществляет приведение более коротких типов к более длинным типам без потери значимости и точности. Для расширяющих преобразований числовые типы (целые типы, типы с плавающей точкой) совместимы друг с другом.
Например: long h; double z; …..z=h;…. // допустимое преобразование, но может вызвать потерю точности, но не потерю значимости.
Обратное же автоматическое преобразование из double в long недопустимо, потому что оно не является расширяющим.
Невозможны также автоматические преобразования:
между decimal и float или double;
числовых типов в char или bool;
между char и bool.
Преобразование из типов int, uint и long в тип float также может вызвать потерю точности, но не потерю значимости. В процессе других вариантов неявного преобразования никакая информация не теряется.
23. Переменные. Именованные константы. Операции и выражения. Примеры использования.
Выражение — это правило вычисления значения. В выражении участвуют операнды, объединенные знаками операций. Операндами простейшего выражения могут быть константы, переменные и вызовы функций.
Например, у + 9 — это выражение, в котором + является знаком операции, а у и 9 — операндами. Пробелы внутри знака операции, состоящей из нескольких символов, не допускаются. По количеству участвующих в одной операции операндов операции делятся на унарные, бинарные и тернарную.
C# допускает введение в программу объектов, внешне похожих на переменные, но которые, в отличие от них, не могут изменять свое значение во время выполнения программы. Такие объекты называются константами. Имя константы – это синоним некоторого определенного значения, которое сопоставляется с этим идентификатором при описании.
Описание константы начинается со служебного слова Const, вслед за которым располагается тип, имя и значение константы:
Const int ALFA=35; const string OMEGA=”STROKA”;
Если константа определяется в программе, то ее идентификатор может входить во все конструкции, в которых должны присутствовать связанные с ним значения. Но попытка изменения значения константы в программе является недопустимой.
Пусть описана константа:
Const double spred=27.561;
double r;
{
r=spred+7.5;
spred=r+2.5
}
Последний оператор присваивания spred=r+2.5 пытается осуществить запрещенное преобразование – изменить значение константы spred.
Использование в программе идентификаторов констант вместо записи конкретных значений считается хорошим стилем программирования, который делает программу более читабельной, более понятной. Кроме того, в такую программу легче внести изменения, связанные с изменением константы, так как в этом случае изменения вносятся в область определения констант и не требуют просмотра всей программы.
C# расширяет возможности определения констант, допуская в правой части константные выражения, строящиеся по тем же правилам, что и обычные выражения, но они должны быть вычислимыми в рассматриваемой точке программы:
Пример.
const string slovo=”error”;
const string result=slovo+”__”;
const int l=5;
const int v=25;
const int lv=(l+v);
Особенность константных выражений состоит в том, что они вычисляются на стадии компиляции, т. е. для их вычисления не требуется выполнение самой программы.
Категория |
Знак операции |
Название |
Первичные
|
. х() х[] Х++ Х-- new typeof checked unchecked |
Доступ к элементу Вызов метода или делегата Доступ к элементу Постфиксный инкремент Постфиксный декремент Выделение памяти Получение типа Проверяемый код Непроверяемый код |
Унарные
|
+ - ! ~ ++X --X (тип) x |
Унарный плюс Унарный минус (арифметическое отрицание) Логическое отрицание Поразрядное отрицание Префиксный инкремент Префиксный декремент Преобразование типа |
Мультипликативные (типа умножения) |
* / % |
Умножение Деление Остаток от деления |
Аддитивные (типа сложения) |
+ - |
Сложение Вычитание |
Сдвига |
<< >> |
Сдвиг влево Сдвиг вправо |
Отношения и проверки типа
|
< > <= >= is as |
Меньше Больше Меньше или равно Больше или равно Проверка принадлежности типу Приведение типа |
Проверки на равенство |
= = ! = |
Равно Не равно |
Поразрядные логические |
& ^ | |
Поразрядная конъюнкция (И) Поразрядное исключающее ИЛИ Поразрядная дизъюнкция (ИЛИ) |
Условные логические |
&& | | |
Логическое И Логическое ИЛИ |
Условная |
? : |
Условная операция |
Присваивания |
= *= /= %= += -= <<= >>= &= ^=
| = |
Присваивание Умножение с присваиванием Деление с присваиванием Остаток отделения с присваиванием Сложение с присваиванием Вычитание с присваиванием Сдвиг влево с присваиванием Сдвиг вправо с присваиванием Поразрядное И с присваиванием Поразрядное исключающее ИЛИ с присваиванием Поразрядное ИЛИ с присваиванием |