
- •Основы алгоритмизации и объектно-ориентированного программирования
- •Оглавление
- •Предисловие
- •1. Основы языка c#
- •1.1 Переменные. Типы данных
- •1.2 Литералы
- •1.3. Операторы объявления. Инициализация переменных
- •1.4. Математические операторы. Выражения
- •Приведение и преобразование типов в с#
- •1.5. Логические операторы. Выражения
- •1.6. Перечисление
- •1.7. Основные операторы
- •1.8. Ввод-вывод
- •2. Реализация простейших алгоритмов на языке c#.
- •2.1. Организация циклов
- •2.2. Организация разветвлений. Разветвления в цикле
- •2.3. Составление программ для обработки потока данных
- •3. Массивы. Типовые алгоритмы обработки массивов
- •3.1. Одномерные массивы и алгоритмы их обработки
- •Поиск заданного элемента в упорядоченном массиве (бинарный поиск).
- •12. Объединение двух массивов с чередованием элементов
- •Объединение двух упорядоченных массивов в один с сохранением упорядоченности.
- •14. Инвертирование массива
- •15. Циклический сдвиг
- •3.2. Работа с массивами как с объектами
- •3.3. Работа с матрицами
- •Типовые алгоритмы работы с матрицами
- •4. Структуры и классы
- •4.1. Использование структур
- •4.2. Использование Конструктора экземпляра и других методов при работе со структурами
- •4.3. Использование классов
- •5. Методы
- •5.1 Общие положения. Способы передачи параметров
- •5.2. Использование массивов в качестве параметров
- •5.3. Использование делегата для передачи метода в качестве параметра в другой метод
- •Использование массивов в качестве параметров.
- •6. Работа с текстовыми строками
- •Файлы данных (Пространство имен System.Io). Файлы и потоки
- •8. Разработка приложений с графическим интерфейсом пользователя Windows. Экранные формы
- •Работа с элементом управления TextBox.
- •Работа с элементом управления Button
- •Работа с элементом управления RichTextBox
- •Создание объекта Graphics пространства имен System.Drawing для рисования
- •9. Среда разработки
- •9.1. Создание нового проекта
- •9.2. Сохранение проекта
- •9.3. Открытие существующего проекта
- •9.4. Использование интегрированной среды разработки Visual c#
- •Обозреватель решений
- •Компилятор c# для преобразования исходного кода c# в исполняемую программу
- •Ошибки построения
- •Отладчик Visual Studio для тестирования программы
- •Обозреватель объектов для просмотра методов и классов, доступных в библиотеках.
- •Значки обозревателя объектов
- •Приложение 1. Платформа Microsoft .Net Framework
- •Приложение 2.
- •Приложение 3. Региональные стандарты
- •2. Библиотека msdn (по-русски) http://msdn.Microsoft.Com/ru-ru/library/default.Aspx
Приведение и преобразование типов в с#
В C# можно выполнять следующие виды преобразований:
Неявные преобразования. Не требуют специального синтаксиса, поскольку преобразование безопасно для типов и данные не теряются.
Преобразования от меньшего к большему целому типу.
Неявное преобразование можно применить для встроенных числовых типов в случае если сохраняемое значение может уместиться в переменной без обрезания или округления до ближайшего. Пример. Допустимое преобразование:
int i = 9;
double t = 1.0;
t = i;
Преобразование допустимо, так как переменная типа double (64-разрядное значение с плавающей запятой) может хранить любое значение, которое может хранить переменная типа int (32-разрядное целое число со знаком). Пример. Недопустимое преобразование:
int i = 9;
double t = 1.0;
i = t;
Явные преобразования (приведения). Для явных преобразований необходим оператор преобразования. Для выполнения приведения необходимо заключить тип, в который производится приведение, в скобки перед преобразуемым значением или переменной. Пример.
int i = 9;
double t = 1.1;
i = (int)t;
Возможна потеря данных и переполнение.
Преобразования с помощью вспомогательных классов.
Использование статических методов класса Convert пространства имен System. Пример
int xInt = 2;
double xDouble = 5.0;
xInt = Convert.ToInt32(xDouble);
Console.WriteLine("Double: {0}", xInt);
1.5. Логические операторы. Выражения
Логические данные имеют тип bool. Например,
bool L1, L2;
К логическим данным могут применяться логические операторы. Результатом выполнения логического оператора всегда является логическое значение true или false. Логические операторы и результат их применения приведены в Таблице. Константы и переменные логического типа могут входить в состав логического выражения. Кроме этого, в логическом выражении могут использоваться в качестве операндов отношения (например, x>0 имеет значение true при x положительном и значение false при x отрицательном или равном 0; sqr(a)+sqr(b) <= sqr (c) имеет значение true,если условие удовлетворяется для конкретных значений a, b, c, и false в противоположном случае). Отношение — это два арифметических выражения, соединенных знаком операции отношения <, <=, >, >=, = = (равно), != (не равно).
Таблица логических операторов
Название |
Обозначение |
A |
|||
T |
T |
F |
F |
||
B |
|||||
T |
F |
T |
F |
||
Отрицание |
!A |
F |
F |
T |
T |
Логическое “и” |
A && B |
T |
F |
F |
F |
Логическое “или” |
A ׀׀ B |
T |
T |
T |
F |
(T – true, F – false).
Например, после выполнении оператора присваивания
L3=(x<=5.5) && (x>=–3.5);
L3 будет иметь значение true, если выполняются оба условия, т.е. x принадлежит отрезку [–3.5, 5.5].
Заключать отношения в скобки необязательно, т. к. они имеют более высокий приоритет (см. ниже), но в таком виде выражение имеет более ясный смысл.
После выполнения оператора
L2=(i>10) ׀׀ (a<0.0001);
L2 получит значение true, если выполняется хотя бы одно из условий, т.е. либо i>10, либо a<0.0001.
В логическом выражении могут присутствовать, как мы видим, операции трех типов: арифметические (в левой или правой частях отношения, выполняются в первую очередь), операции отношения и логические. Логические операции имеют самый низкий приоритет. Из них в первую очередь выполняется операция отрицания (!), далее операция «Логическое «и» (&&) и в последнюю очередь – «логическое «или» ( ׀׀). Например,
bool a = true;
bool b = 1 < 0 && a;
Console.WriteLine(b);
Console.ReadLine();
В результате программа распечатает на экране
false
Логические выражения обычно используются в условном операторе if (п. 1.7.1).