1 ©Павловская Т.А. Язык С# Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.

Презентация:



Advertisements
Похожие презентации
©ρŧą Базовые конструкции языка.
Advertisements

©Павловская Т.А. Язык С++ Курс «С++. Программирование на языке высокого уровня» Павловская Т.А.
Введение в C++ Урок 1-2.
Язык программирования Си Приведение типов, операции Потоковый ввод-вывод Югов Иван Олегович МОУ Гимназия 10, г. Тверь.
Информационные технологии Операция присваивания 2 year=2012; i=i+1;
Переменная l. Определение Переменная - именованное место в памяти, в котором можно хранить некоторое значение.
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
Практическое занятие 6. Функции. Большинство языков программирования используют понятия функции и процедуры. C++ формально не поддерживает понятие процедуры,
12. Константы в Pascal Простые Именованные Типизированные.
Лекция 30. Преобразования типов в C++ Красс Александр СПбГУ ИТМО, 2009.
МАССИВЫ 4 Определение 4 Описание 4 Обращение к элементам массива 4 Связь массивов с указателями 4 Примеры программ.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Лекция 8 Область видимости Время жизни. Область видимости Область видимости – характеристика именованного объекта Область видимости - часть текста программы,
УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Лекция 1 по дисциплине «Программные средства математических расчетов» тема: «Основы языка С++» гр. 8Е31 Мамонова Татьяна Егоровна
Урок 6 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
Переменная - это величина, которая имеет имя, тип и значение. Значение переменной может меняться во время выполнения программы. В компьютерах каждая переменная.
Начала программирования Занятие 3. Вещественный тип данных. Вычисления по формулам. Арифметические операции. Деление целочисленное и с остатком.
Элементы языка СИ Средства для написания простейших программ.
Транксрипт:

1 ©Павловская Т.А. Язык С# Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.

2 ©Павловская Т.А. Язык С# Лекция 3. Переменные, операции, выражения Правила описания переменных и именованных констант, основные операции языка и их приоритеты, правила записи выражений, введение в обработку исключительных ситуаций.

©Павловская Т.А. (СПбГУ ИТМО) 3 using System; namespace A { class Class1 { static void Main() { // описания и операторы, например: Console.Write("Превед медвед "); } // описания } Структура простейшей программы на С#

©Павловская Т.А. (СПбГУ ИТМО) 4 Переменные Переменная это величина, которая во время работы программы может изменять свое значение. Все переменные, используемые в программе, должны быть описаны. Для каждой переменной задается ее имя и тип: intnumber; floatx, y; charoption; Тип переменной выбирается исходя из диапазона и требуемой точности представления данных.

©Павловская Т.А. (СПбГУ ИТМО) 5 Общая структура программы на С# пространство имен Класс А Класс В Метод Main Переменные класса Методы класса: Переменные класса Локальные переменные Методы класса: …

©Павловская Т.А. (СПбГУ ИТМО) 6 Область действия и время жизни переменных Переменные описываются внутри какого-л. блока (класса, метода или блока внутри метода) Блок это код, заключенный в фигурные скобки. Основное назначение блока группировка операторов. Переменные, описанные непосредственно внутри класса, называются полями класса. Переменные, описанные внутри метода класса, называются локальными переменными. Область действия переменной - область программы, где можно использовать переменную. Область действия переменной начинается в точке ее описания и длится до конца блока, внутри которого она описана. Время жизни: переменные создаются при входе в их область действия (блок) и уничтожаются при выходе.

©Павловская Т.А. (СПбГУ ИТМО) 7 Инициализация переменных При объявлении можно присвоить переменной начальное значение (инициализировать). intnumber = 100; floatx = 0.02; charoption = ю; При инициализации можно использовать не только константы, но и выражения главное, чтобы на момент описания они были вычислимыми, например: int b = 1, a = 100; int x = b * a + 25; Поля класса инициализируются «значением по умолчанию» (0 соответствующего типа). Инициализация локальных переменных возлагается на программиста. Рекомендуется всегда инициализировать переменные при описании.

©Павловская Т.А. (СПбГУ ИТМО) 8 Пример описания переменных using System; namespace CA1 { class Class1 { static void Main() { int i = 3; double y = 4.12; decimal d = 600m; string s = "Вася"; }

©Павловская Т.А. (СПбГУ ИТМО) 9 Именованные константы Вместо значений констант можно (и нужно!) использовать в программе их имена. Это облегчает читабельность программы и внесение в нее изменений: constfloat weight = 61.5; constint n = 10; constfloat g = 9.8;

©Павловская Т.А. (СПбГУ ИТМО) 10 Выражения Выражение правило вычисления значения. В выражении участвуют операнды, объединенные знаками операций. Операндами выражения могут быть константы, переменные и вызовы функций. Операции выполняются в соответствии с приоритетами. Для изменения порядка выполнения операций используются круглые скобки. Результатом выражения всегда является значение определенного типа, который определяется типами операндов. Величины, участвующие в выражении, должны быть совместимых типов. t + Math.Sin(x)/2 * x результат имеет вещественный тип a 0 && y < 0 результат имеет логический тип

©Павловская Т.А. (СПбГУ ИТМО) 11 Ассоциативность выражений Слева направо a + b – c + d ( ( ( a + b ) – c ) + d ) a * b / c * d ( ( ( a * b ) / c ) * d ) Справа налево a = b = c = d ( a = ( b = ( c = d ) ) )

©Павловская Т.А. (СПбГУ ИТМО) Первичные (), [], ++, --, new, … 2. Унарные ~, !, ++, --, -, … 3. Типа умножения (мультипликативные) *, /, % 4. Типа сложения (аддитивные) +, - 5. Сдвига > 6. Отношения и проверки типа, is, … 7. Проверки на равенство ==, != 8. Поразрядные логические &, ^, | 9. Условные логические &&, || 10. Условная ?: 11. Присваивания =, *=, /=,… Приоритеты операций C#

©Павловская Т.А. (СПбГУ ИТМО) 13 Тип результата выражения Если операнды, входящие в выражение, одного типа, и операция для этого типа определена, то результат выражения будет иметь тот же тип. Если операнды разного типа и (или) операция для этого типа не определена, перед вычислениями автоматически выполняется преобразование типа по правилам, обеспечивающим приведение более коротких типов к более длинным для сохранения значимости и точности. Автоматическое (неявное) преобразование возможно не всегда, а только если при этом не может случиться потеря значимости. Если неявного преобразования из одного типа в другой не существует, программист может задать явное преобразование типа с помощью операции (тип)x.

©Павловская Т.А. (СПбГУ ИТМО) 14 Неявные арифметические преобразования типов в C# sbyte short int ushort long byte uint float ulong double decimal char

©Павловская Т.А. (СПбГУ ИТМО) 15 Введение в исключения При вычислении выражений могут возникнуть ошибки (переполнение, деление на ноль). В C# есть механизм обработки исключительных ситуаций (исключений), который позволяет избегать аварийного завершения программы. Если в процессе вычислений возникла ошибка, система сигнализирует об этом с помощью выбрасывания (генерирования) исключения. Каждому типу ошибки соответствует свое исключение. Исключения являются классами, которые имеют общего предка класс Exception, определенный в пространстве имен System. Например, при делении на ноль будет выброшено исключение DivideByZeroException, при переполнении исключение OverflowException.

©Павловская Т.А. (СПбГУ ИТМО) 16 Инкремент и декремент using System; namespace CA1 { class C1 { static void Main() { int x = 3, y = 3; Console.Write( "Значение префиксного выражения: " ); Console.WriteLine( ++x ); Console.Write( "Значение х после приращения: " ); Console.WriteLine( x ); Console.Write( "Значение постфиксного выражения: " ); Console.WriteLine( y++ ); Console.Write( "Значение у после приращения: " ); Console.WriteLine( y ); }}} Результат работы программы: Значение префиксного выражения: 4 Значение х после приращения: 4 Значение постфиксного выражения: 3 Значение у после приращения: 4

©Павловская Т.А. (СПбГУ ИТМО) 17 Операция new Операция new служит для создания нового объекта. Формат операции: new тип ( [ аргументы ] ) С помощью этой операции можно создавать объекты как ссылочных, так и значимых типов, например: object z = new object(); int i = new int(); // то же самое, что int i = 0;

©Павловская Т.А. (СПбГУ ИТМО) 18 Операции отрицания using System; namespace ConsoleApplication1 { class Class1 { static void Main() { sbyte a = 3, b = -63, c = 126; bool d = true; Console.WriteLine( -a ); // Результат -3 Console.WriteLine( -c ); // Результат -126 Console.WriteLine( !d ); // Результат false Console.WriteLine( ~a ); // Результат -4 Console.WriteLine( ~b ); // Результат 62 Console.WriteLine( ~c ); // Результат -127 }}}

©Павловская Т.А. (СПбГУ ИТМО) 19 Явное преобразование типа long b = 300; int a = (int) b; // данные не теряются byte d = (byte) a; // данные теряются

©Павловская Т.А. (СПбГУ ИТМО) 20 Умножение Операция умножения (*) возвращает результат перемножения двух операндов. Стандартная операция умножения определена для типов int, uint, long, ulong, float, double и decimal. К величинам других типов ее можно применять, если для них возможно неявное преобразование к этим типам. Тип результата операции равен «наибольшему» из типов операндов, но не менее int. Если оба операнда целочисленные или типа decimal и результат операции слишком велик для представления с помощью заданного типа, генерируется исключение System.OverflowException

©Павловская Т.А. (СПбГУ ИТМО) 21 Результаты вещественного умножения *+y-y NaN +x+z-z+0-0+-NaN -x-z+z-0+0-+NaN NaN NaN

©Павловская Т.А. (СПбГУ ИТМО) 22 Пример using System; namespace ConsoleApplication1 { class Class1 { static void Main() { int x = 11, y = 4; float z = 4; Console.WriteLine( z * y ); // Результат 16 Console.WriteLine( z * 1e308 ); // Рез. "бесконечность" Console.WriteLine( x / y ); // Результат 2 Console.WriteLine( x / z ); // Результат 2,75 Console.WriteLine( x % y ); // Результат 3 Console.WriteLine( 1e-324 / 1e-324 ); // Результат NaN }}}

©Павловская Т.А. (СПбГУ ИТМО) 23 Операции сдвига Операции сдвига ( >) применяются к целочисленным операндам. Они сдвигают двоичное представление первого операнда влево или вправо на количество двоичных разрядов, заданное вторым операндом. При сдвиге влево ( >) освободившиеся биты заполняются нулями, если первый операнд беззнакового типа, и знаковым разрядом в противном случае. Стандартные операции сдвига определены для типов int, uint, long и ulong.

©Павловская Т.А. (СПбГУ ИТМО) 24 Пример using System; namespace ConsoleApplication1 { class Class1 { static void Main() { byte a = 3, b = 9; sbyte c = 9, d = -9; Console.WriteLine( a 1 ); // Результат 4 Console.WriteLine( c >> 1 ); // Результат 4 Console.WriteLine( d >> 1 ); // Результат -5 }

©Павловская Т.А. (СПбГУ ИТМО) 25 Операции отношения и проверки на равенство Операции отношения (, >=, ==, !=) сравнивают первый операнд со вторым. Операнды должны быть арифметического типа. Результат операции логического типа, равен true или false. x == y -- true, если x равно y, иначе false x != y -- true, если x не равно y, иначе false x < y -- true, если x меньше y, иначе false x > y -- true, если x больше y, иначе false x = y -- true, если x больше или равно y, иначе false

©Павловская Т.А. (СПбГУ ИТМО) 26 Условные логические операции using System; namespace ConsoleApplication1 { class Class1 { static void Main() { Console.WriteLine( true && true ); // Результат true Console.WriteLine( true && false ); // Результат false Console.WriteLine( true || true ); // Результат true Console.WriteLine( true || false ); // Результат true }

©Павловская Т.А. (СПбГУ ИТМО) 27 Условная операция операнд_1 ? операнд_2 : операнд_3 Первый операнд выражение, для которого существует неявное преобразование к логическому типу. Если результат вычисления первого операнда равен true, то результатом будет значение второго операнда, иначе третьего операнда. using System; namespace ConsoleApplication1 { class Class1 { static void Main() { int a = 11, b = 4; int max = b > a ? b : a; Console.WriteLine( max ); // Результат 11 }}}

©Павловская Т.А. (СПбГУ ИТМО) 28 Присваивание – это замена старого значения переменной на новое. Старое значение стирается бесследно. Операция может использоваться в программе как законченный оператор. переменная = выражение a = b + c; x = 1; x = x + 0.5; Правый операнд операции присваивания должен иметь неявное преобразование к типу левого операнда, например: вещественная переменная = целое выражение; Операция присваивания 1 x

©Павловская Т.А. (СПбГУ ИТМО) 29 Сложное присваивание в C# x += 0.5; соответствует x = x + 0.5; x *= 0.5; соответствует x = x * 0.5; a %= 3; соответствует a = a % 3; a