Автор работы: Пользователь скрыл имя, 28 Марта 2012 в 11:49, курс лекций
Лекции по дисциплине "Программирование"
Лекция 1. Состав языка Типы данных Переменные и операции
Лекция 2. Линейные программы
Лекция 3. Простейшие операторы. Операторы ветвления
Лекция 4. Операторы цикла и передачи управления
Лекция 5. Обработка исключительных ситуаций
Лекция 6. Классы: основные понятия Описание класса
Лекция 7. Параметры методов
Лекция 8. Конструкторы и свойства
Лекция 9. . Массивы
Лекция 10. Символы и строки
Лекция 11 Дополнительные возможности методов. Индексаторы
Лекция 12. Операции класса. Деструкторы
Лекция 13. Наследование классов
Лекция 14. Интерфейсы
Лекция 15. Стандартные интерфейсы .NET
Лекция 16. Структуры и перечисления
Лекция 17. Делегаты
Лекция 18. События
Лекции по Программированию на С#
Содержание
Лекция 1. Состав языка Типы данных Переменные и операции
Лекция 2. Линейные программы
Лекция 3. Простейшие операторы. Операторы ветвления
Лекция 4. Операторы цикла и передачи управления
Лекция 5. Обработка исключительных ситуаций
Лекция 6. Классы: основные понятия Описание класса
Лекция 7. Параметры методов
Лекция 8. Конструкторы и свойства
Лекция 9. . Массивы
Лекция 10. Символы и строки
Лекция 11 Дополнительные возможности методов. Индексаторы
Лекция 12. Операции класса. Деструкторы
Лекция 13. Наследование классов
Лекция 14. Интерфейсы
Лекция 15. Стандартные интерфейсы .NET
Лекция 16. Структуры и перечисления
Лекция 17. Делегаты
Лекция 18. События
Лекция 1. Состав языка Типы данных Переменные и операции
Алфавит и лексемы
Все тексты на языке пишутся с помощью его алфавита.
Алфавит C# включает:
буквы (латинские и национальных алфавитов) и символ подчеркивания (_), который употребляется наряду с буквами;
цифры;
специальные символы, например +, *, { и &;
пробельные символы (пробел и символы табуляции);
символы перевода строки.
Из символов составляются более крупные строительные блоки: лексемы, директивы препроцессора и комментарии.
Лексема (token) — это минимальная единица языка, имеющая самостоятельный смысл. Существуют следующие виды лексем:
имена (идентификаторы);
ключевые слова;
знаки операций;
разделители;
литералы (константы).
Лексемы языка программирования аналогичны словам естественного языка. Например, лексемами являются число 128 (но не его часть 12), имя Vasia, ключевое слово goto и знак операции сложения +. Далее мы рассмотрим лексемы подробнее.
Директивы препроцессора пришли в C# из его предшественника - языка С++. Препроцессором называется предварительная стадия компиляции, на которой формируется окончательный вид исходного текста программы. Например, с помощью директив (инструкций, команд) препроцессора можно включить или выключить из процесса компиляции фрагменты кода. Директивы препроцессора не играют в C# такой важной роли, как в С++.
Комментарии предназначены для записи пояснений к программе и формирования документации. Правила записи комментариев мы рассмотрим чуть позже.
Из лексем составляются выражения и операторы. Выражение задает правило вычисления некоторого значения. Например, выражение a + b задает правило вычисления суммы двух величин.
Оператор задает законченное описание некоторого действия, данных или элемента программы. Например:
int a;
Это — оператор описания целочисленной переменной a.
Имена, или идентификаторы, служат для того чтобы обращаться к программным объектам и различать их, то есть идентифицировать. В идентификаторе могут использоваться буквы, цифры и символ подчеркивания. Прописные и строчные буквы различаются, например, sysop, SySoP и SYSOP — три разных имени.
Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра. Длина идентификатора не ограничена. Пробелы внутри имен не допускаются.
В идентификаторах C# разрешается использовать, помимо латинских букв, буквы национальных алфавитов. Например, Пёсик или çç являются правильными идентификаторами. Более того, в идентификаторах можно применять даже так называемые escape-последовательности Unicode, то есть представлять символ с помощью его кода в шестнадцатеричном виде с префиксом \u, например, \u00F2.
Имена даются элементам программы, к которым требуется обращаться: переменным, типам, константам, методам, меткам и т. д. Идентификатор создается на этапе объявления переменной (метода, типа и т. п.), после этого его можно использовать в последующих операторах программы. При выборе идентификатора необходимо следить, чтобы он не совпадал с ключевыми словами.
Ключевые слова — это зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. Список ключевых слов C# приведен в таблице 1.1.
Таблица 1.1.
Ключевые слова C# abstract | as | base | bool | break |
byte | case | catch | char | checked |
class | const | continue | decimal | default |
delegate | do | double | else | enum |
event | explicit | extern | false | finally |
fixed | float | for | foreach | goto |
if | implicit | in | int | interface |
internal | is | lock | long | namespace |
new | null | object | operator | out |
override | params | private | protected | public |
readonly | ref | return | sbyte | sealed |
short | sizeof | stackalloc | static | string |
struct | switch | this | throw | true |
try | typeof | uint | ulong | unchecked |
unsafe | ushort | using | virtual | void |
volatile | while |
|
|
|
Знак операции — это один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. Например, в выражении a += b знак += является знаком операции, а a и b — операндами. Символы, составляющие знак операций, могут быть как специальными, например, &&, | и <, так и буквенными, такими как as или new.
Константа | Описание | Примеры |
Логическая | true (истина) или false (ложь) | true false |
Целая | Десятичная: последовательность десятичных цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), за которой может следовать суффикс (U, u, L, l, UL, Ul, uL, ul, LU, Lu, lU, lu) | 8 0 199226 8u0Lu199226L |
| Шестнадцатеричная: символы 0х или 0Х, за которыми следуют шестнадцатеричные цифры (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F), а за цифрами, в свою очередь, может следовать суффикс (U, u, L, l, UL, Ul, uL, ul, LU, Lu, lU, lu) | 0xA 0x1B8 0X00FF 0xAU0x1B8LU 0X00FFl |
Вещественная | С фиксированной точкой: [цифры][.][цифры][суффикс] Суффикс — один из символов F, f, D, d, M, m | 5.7 .001 35. 5.7F.001d35. 5F.001f35m |
| С порядком: [цифры][.][цифры]{E|e}[+|–][ Суффикс — один из символов F, f, D, d, M, m | 0.2E6 .11e+3 5E-10 0.2E6D.11e–3 5E10 |
Символьная | Символ, заключенный в апострофы | 'A' 'ю' '*' '\0' '\n' '\xF''\x74' '\uA81B' |
Строковая | Последовательность символов, заключенная в кавычки | "Здесь был Vasia" "\tЗначение r = \0xF5 \n" "Здесь был \u0056\u0061" "C:\\temp\\file1.txt" @"C:\temp\file1.txt" |
Константа null | Ссылка, которая не указывает ни на какой объект | null |
Операции делятся на унарные, бинарные и тернарную по количеству участвующих в них операндов. Один и тот же знак может интерпретироваться по-разному в зависимости от контекста.
Разделители используются для разделения или, наоборот, группирования элементов. Примеры разделителей: скобки, точка, запятая. Ниже перечислены все знаки операций и разделители, использующиеся в C#:
{ } [ ] ( ) . , : ; + - * / % & | ^ ! ~ =
< > ? ++ -- && || << >> == != <= >= += -= *= /= %=
&= |= ^= <<= >>= ->
Литералами, или константами, называют неизменяемые величины. В C# есть логические, целые, вещественные, символьные и строковые константы, а также константа null. Компилятор, выделив константу в качестве лексемы, относит ее к одному из типов данных по ее внешнему виду. Программист может задать тип константы и самостоятельно.
Описание и примеры констант каждого типа приведены в таблице 1.2. Примеры, иллюстрирующие наиболее часто употребляемые формы констант, выделены полужирным шрифтом.
Таблица 1.2. Константы в C#
Логических литералов всего два. Они широко используются в качестве признаков наличия или отсутствия чего-либо.
Целые литералы могут быть представлены либо в десятичной, либо в шестнадцатеричной системе счисления, а вещественные — только в десятичной системе, но в двух формах: с фиксированной точкой и с порядком. Вещественная константа с порядком представляется в виде мантиссы и порядка. Мантисса записывается слева от знака экспоненты (E или e), порядок — справа от знака. Значение константы определяется как произведение мантиссы и возведенного в указанную в порядке степень числа 10 (например, 1.3e2 = 1,3 102 = 130). Пробелы внутри константы не допускаются.
Если требуется сформировать отрицательную целую или вещественную константу, то перед ней ставится знак унарной операции изменения знака (–), например, –218.
Символьная константа представляет собой любой символ в кодировке Unicode. Символьные константы записываются в одной из четырех форм:
«обычный» символ, имеющий графическое представление (кроме апострофа и символа перевода строки) — 'A', 'ю', '*';
управляющая последовательность — '\0', '\n';
символ в виде шестнадцатеричного кода — '\xF', '\x74';
символ в виде escape-последовательности Unicode — '\uA81B'.
Управляющей последовательностью, или простой escape-последовательностью, называют определенный символ, предваряемый обратной косой чертой. Управляющая последовательность интерпретируется как одиночный символ и используется для представления:
кодов, не имеющих графического изображения (например, \n — переход в начало следующей строки);
символов, имеющих специальное значение в строковых и символьных литералах, например, апострофа ( ' ).
Допустимые значения последовательностей приведены в таблице 1.3.
Таблица 1.3. Управляющие последовательности в С#
Вид | Наименование |
\a | Звуковой сигнал |
\b | Возврат на шаг |
\f | Перевод страницы (формата) |
\n | Перевод строки |
\r | Возврат каретки |
\t | Горизонтальная табуляция |
\v | Вертикальная табуляция |
\\ | Обратная косая черта |
\' | Апостроф |
\" | Кавычка |
\0 | Нуль-символ |