Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на C#. Часть 1. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Ми
н
Ф
«
О
у
н
в
о
к
А
е
о
и
о
о
р
е
а
М
В
У
е
и
е
о
ь
н
ш
Б
О
В
ч
т
с
б
а
т
р
б
Б
1
с
о
е
Н
А
с
а
т
е
д
«
в
о
в
Е
т
о
и
♦
и
А
истерст
едеральн
Тамбовс
о образ
е госуда
учрежд
ий госуд
В.
вания и
ственное ние выс рственны
В. ДУ
ауки Ро
бюджетн
его образ
й технич
РОВИ
сийской
ое образо
вания
ский уни
Федерац
ательное
ерситет»
и
для ст
ГР
Утв
дентов,
«Б
М
рждено
в кач бучающ отехнич
Учебн
двух
Ч а с
чёным
стве уче
хся по н
ские сис
е элект
В
астях
ь 1
оветом у
ного по
правлен емы и т
онное из
НИ
ниверси обия ию подг
хнологи
ание
Н
ета
товки 12
»
C#
.03.04
Там
♦
Издател
ство ФГ
20
ов
ОУ ВО
7
ТГТУ»
1
УДК 004.43(075.8) ББК
Á972-018.2я73
Д79
Рецензенты:
Доктор технических наук, профессор,
заведующий кафедрой гуманитарных, естественных и
математических дисциплин ФГБОУ ВО «ТГУ им. Г. Р. Державина»
А. А. Арзамасцев
Доктор технических наук, профессор,
заведующий кафедрой «Прикладная геометрия и компьютерная графика»
ФГБОУ ВО «ТГТУ»
С. И. Лазарев
Д79
Дубровин, В. В.
Программирование на C# [Электронный ресурс
] : учебное посо-
бие : в 2 ч. / В. В. Дубровин. – Тамбов : Изд-во ФГБОУ ВО «ТГТУ»,
2017. ISBN 978-5-8265-1829-8
Ч. 1. – 1 электрон. опт. диск (CD-ROM). – Системные требования :
ПК не ниже класса Pentium II ; CD-ROM-дисковод ; 23,9 Mb ; RAM ;
Windows 95/98/XP ; мышь. – Загл. с экрана.
ISBN 978-5-8265-1830-4
Изложены основы объектно-ориентированного программирования на
языке C#. Приведены основные понятия, алфавит и синтаксис, перемен­ные и константы, типы переменных и операции, операторы и методы. По каждой теме по ходу изложения материала приводится большое коли­чество практических примеров, приведены задания.
Предназначено для студентов, обучающихся по направлению подго-
товки 12.03.04 «Биотехнические системы и технологии».
УДК 004.43(075.8) ББК
Все права на размножение и распространение в любой форме остаются за разработчиком.
Нелегальное копирование и использование данного продукта запрещено.
ISBN 978-5-8265-1829-8 (общ.) ISBN 978-5-8265-1830-4 (ч. 1)
2
© Федеральное государственное бюджетное
образовательное учреждение высшего образования «Тамбовский государственный технический университет» (ФГБОУ ВО «ТГТУ»), 2017
Á972-018.2я73
ВВЕДЕНИЕ
Учебное пособие разработано в соответствии с учебной программой дисциплины «Программирование и основы алгоритмизации в биотехниче­ских системах» для студентов 1, 2 курсов, обучающихся по направлению подготовки 12.03.04 «Биотехнические системы и технологии». Оно включает в себя основы объектно-ориентированного программирования на языке C#.
Учебное пособие поможет студенту проявить индивидуальность в под­ходах к самостоятельному изучению и решению поставленных задач. Содер­жание по
собия способствует формированию у студентов научного мировоз­зрения, а также может помочь им в дальнейшем грамотно выполнять курсо­вые и дипломные ра
боты.
Навыки создания программ позволят студентам обрести такие качества, как упорядоченность мыслей, строгая организация и постановка решения проблем практически любого уровня сложности и характера.
3
1. ОСНОВЫ ЯЗЫКА C#
Язык программирования C# был создан в XXI веке и является полно­стью объектно-ориентированным языком программирования, построенный в соответствии с международными стандартами. C# признан Международным сообществом. Он тесно связан с каркасом Framework.Net, в полной мере учи­тывает его возможности, что даёт программистам получать преимущества работы с виртуальной машиной.
1.1. СРЕДА РАЗРАБОТКИ VISUAL STUDIO
Среда разработки проектов на C# является открытой языковой средой, разрешающей использование различных языков программирования, вклю­чённых в среду фирмой Microsoft. Языки программирования, которые вклю­чаются в среду разработки Visual Studio, используют единый каркас – Framework.Net. Поэтому отдельные части проекта можно разрабатывать на разных языках. Например, программировать класс на одном языке, а потомки класса – на других языках.
Карк
ас Framework.Net состо
ит из статической библиотеки классов – FCL (Framework Class Library) и динамической общеязыковой исполнитель- ной среды – CLR (Common Language Runtime). Библиотека FCL содержит классы, задающие типы, которые встроены в язык программирования.
Имеются возможности построения Web-приложений, создания по­вторно используемых компонентов (Web-служб) и библиотек элементов управления.
Компиляторы языков программирования преобразуют исходный код в промежуточный код языка IL (Intermediate Language). После ко
мпиляции
проекта создаётся переносимый исполняемый файл (Portable Executable или
PE
-файл), который содержит код на IL, и метаданные. PE-файл может иметь разные уточнения – exe, dll, mod или mdl. PE-файл с уточнением exe является не обычным исполняемым Windows-файлом, а исходным фа
йлом
для транс-
лятора JIT (Just In Time Compiler), оптимально преобразующего поступаю-
4
щий код в команды реального процессора, на котором будет выполняться проект. Метаданные содержат всю информацию, необходимую для выполне­ния в среде CLR.
1.2. ОПРЕДЕЛЕНИЕ ОСНОВНЫХ ПОНЯТИЙ
Создаваемый на C# проект имеет стандартные и введённые пользова­телем классы. Стандартные классы хранятся в библиотеке FCL. Класс содер­жит описание данных, называемых полями класса, описание методов класса и описание событий и имеет свой тип. Тип данных (класса) – это семантиче­ская единица, которая описывает свойства и поведение множества объектов, которые называются э
кземплярами класса. Состояния объектов опре
деляют­ся полями, поведение объектов – методами, а состояния, в которых могут на­ходиться объекты, – событиями. Каждый класс сохраняется в отдельном файле с одноименным именем.
Оболочка, содержащая множество классов, объединённых общей тема­тикой, называется пространством имён. Имена классов внутри пространства имён не повторяются. В разных пространствах классы с одинаковыми име­нами не конфликт пространства имё
уют. Обращение к классу состоит из уникального имени
н и собственного имени класса. Пространство имён может
состоять из классов и других пространств.
Одним из основных пространством имен библиотеки FCL является пространство System, которое содержит другие пространства и классы, имеющие широкое употребление в различных проектах.
Единица компиляции называется проектом. Сбо
рка является
результа­том компиляции проекта. Проект включает одно или несколько пространств имён. На начальном этапе создания проекта автоматически строится каркас проекта. Он состоит из классов, являющихся наследниками других классов, входящих в состав библиотеки FCL.
В проекте содержится: информация, необходимая для построения
сборки; файлы с классами, созданные разработчиком проекта и по
строенные
5
автоматически в момент создания проекта; ссылки на все подключаемые к проекту DLL, COM-объекты, другие проекты.
Проект может быть выполняемым, если при построении каркаса в него включается класс, содержащий статическую процедуру с именем Main и не­выполняемым – проекты типа DLL. Невыполняемые проекты присоединяют­ся к выполняемым сборкам, откуда и вызываются методы классов.
Результатом компиляции проекта является сбо
рка, которая
представ­ляет собой коллекцию из одного или нескольких файлов с помеченными но­мерами версий. Она содержит описание требуемых ей ресурсов и права дос­тупа к элементам сборки, что позволяет решать вопросы безопасности. Пол­ное описание сборки называется манифестом. Он позволяет идентифициро­вать сборку. Поэтому описанию CLR не требуется никакой допол информации для развертывания сборки
, трансляции промежуточного кода и
нительной
его выполнения.
Каждый проект помещается в некоторую оболочку, называемую Реше­нием – Solution. Оно может содержать несколько проектов, связанных общей темой.
1.3. АЛФАВИТ И СИНТАКСИС C#
6
Язык программирования С# использует набор символов:
• строчные и прописные буквы латинского алфавита;
• символ подчёркивания «_»;
• цифры от 0 до 9;
• набор специальных символов: " { }, [ ] + - % / \; ' : ? <> = ! & # ~ *.
Набор символов служит для построения слов – лексем.
Различают пять типов лексем:
• идентификаторы;
• ключевые слова;
• знаки (символы) операций;
• литералы;
• разделители.
Все типы лексем, кроме ключевых слов и идентификаторов, имеют собственные правила словообразования.
Для разделения лексем используется множество пробельных символов, к которым относятся пробел, табуляция, символ новой строки и коммента­рии.
Идентификаторы состоят из набора строчных и прописных букв, цифр, символа подчёркивания и строятся по определённым правилам:
• первым символом идентификатора может быть только буква;
• следую
щими символами идентификатора могут быть буквы, цифры
и
нижнее подчёркивание;
• длина идентификатора не ограничена.
Использование идентификаторов, которые начинаются с символа под­черкивания, нежелательно. Имена объектов должны иметь некоторый смысл, позволяющий облегчить восприятие и понимание последовательностей опе­раторов.
Идентификаторы, входящие в фиксированный словарь, называются ключевыми словами. В качестве им
ён объектов их использовать неж
ела-
тельно.
Для пояснения текста программы используются два вида комментари­ев. Комментарий, заключённый в символы /* Комментарий */, пропускается компилятором. Если комментарий начинается с символа //, то он заканчива­ется в конце строки, на которой он появился.
1.4. ТИПЫ ДАННЫХ C#
Язык программирования С# является типизированным языком. Каждый объект характеризуется своим типом, который указывает компилятору раз­мер объекта и его свойства. Например, объект типа double занимает в памяти 8 байтов, объект Label может быть видим или невидим. Различают встроен­ные типы, определённые в языке, и пользовательские типы, которые выбира­ет программист. Типы могут быть размерные и ссылоч
ные. Различие между
7
ними определяет способ, которым их значения сохраняются в памяти. Раз­мерные типы хранят своё фактическое значение в стеке, ссылочные – сохраняют в стеке лишь адрес объекта, а сам объект хранится в куче (основ­ной памяти). Доступ к куче осуществляется намного медленнее, чем к стеку.
Систему типов можно разбить на две категории типов, каждая из кото­рых разделена на подкатегории: типы значений, ссылочн
ые типы и парамет-
ризованные типы (типы-шаблоны). Схема типов приведена на рис. 1.1.
Типы, имя и основные свойства, которые известны компилятору
, назы­ваются простыми. Среди простых типов выделяют: целочисленные, с пла­вающей точкой, decimal, булевские.
Основные характеристики простых типов отражены в табл. 1.1. Классы, интерфейсы, массивы, делегаты относятся к ссылочным типам. Для ссы ных типов существуют
собственные правила объявления.
лоч-
Для обозначения начальных значений в объявлении членов классов, переменных и констант в методах класса используют литералы. Они состоят из последовательности входящих в алфавит языка символов, обеспечиваю­щих явное представление значений.
Система типов .NET
Типы-значения Типы-ссылки
Классы
Структуры
Строки
Перечисления
Массивы
Простые типы
Простые nullable-типы
Рис. 1.1. Схема типов
Типы-шаблоны
Делегаты
Интерфейсы
8
1.1. Характеристики простых типов
Тип в C#
sbyte System.SByte
Соответствует
FCL-типу
Целый. 8-разрядное со знаком. Диапазон значений: –128…127
byte System.Byte
Целый. 8-разрядное без знака. Диапазон значений: 0…255
short System.Int16
Целый. 16-разрядное со знаком. Диапазон значений: –32 768 … 32 767
ushort System.UInt16
Целый. 16-разрядное без знака. Диапазон значений: 0…65 535
int System.Int32
Целый. 32-разрядное со знаком. Диапазон значений: –2 147 483 648…2 147 483 647
uint System.UInt32
Целый. 32-разрядное без знака. Диапазон значений: –0…4 294 967 295
Описание
long System.Int64
Целый. 64-разрядное со знаком. Диапазон значений: –92 233 72 036 854 775 808…
9 223 372 036 854 775 807
ulong System.UInt64
Целый. 64-разрядное без знака. Диапазон значений: 0…18 446 744 073 709 551 615
char System.Char
float System.Single
double System.Double
decimal System.Decimal
16 (!) разрядный символ UNICODE. Плавающий. 32 разряда. Стандарт IEEE Плавающий. 64 разряда. Стандарт IEEE 128-разрядное значение повышенной точно-
сти с плавающей точкой
bool System.Boolean
Значение true или false
Литералы классифицируют на арифметические (разных типов), логиче­ские, символьные (включая Escape-последовательности), строковые.
Целочисленные типы кодируются последовательностью цифр 0, 1, …, 9; плавающего типа точка–разделитель между целой и дробной частью, либо научная или экспоненциальная нотация – 1.2500E + 052; шестнадцатеричное представление целочисленного значения кодируется шестнадцатеричным ли-
9
тералом, состоящим из символов '0',…,'9', а также 'a',…, 'f', либо 'A',…,'F' с суффиксом '0х'. Суффиксы l, L соответствуют типу long; ul, UL – unsigned long; f, F – float; d, D – decimal. Значения типа double кодируются без префикса.
Последовательности символов: true и false относятся к логическим ли­тералам.
Литералы, заключённые в одинарные кавычки, вводимые с клавиатуры, одиночные символы, называют симво
Q', '7'.
'
льными литералами, например, 'X', 'p',
Категория литералов, используемая для создания дополнительных эф­фектов (звонок), простого форматирования выводимой информации и коди­рования символов при выводе и сравнении (в выражениях сравнения) назы­вается Escape-последовательностью (см. табл. 1.2).
1.2. Escape-последовательность
Escape-последовательность Описание
\a Предупреждение (звонок)
\b Возврат на одну позицию
\f Переход на новую страницу
\n Переход на новую строку
\r Возврат каретки
\t Горизонтальная табуляция
\v Вертикальная табуляция
\0 Ноль
\' Одинарная кавычка
\" Двойная кавычка
\\ Обратная косая черта
Последовательности символов и escape-последовательностей, заклю- чённых в двойные кавычки, называются строковыми литералами. Строковые литералы являются литералами типа string.
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]