Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Современные технологии программирования. Язык С#. Том 1. Для начинающих пользователей

В двух томах
Покупка
Основная коллекция
Артикул: 742703.01.01
Доступ онлайн
от 376 ₽
В корзину
Том 1 учебника адресован начинающим пользователям, желающим изучить популярный объектно-ориентированный язык программирования С#. В учебнике приведены полные сведения о языке C# и платформе .NET. Рассмотрены базовые типы данных, переменные, функции и массивы. Показана работа с датами и перечислениями. Описаны элементы и конструкции языка: классы, интерфейсы, сборки, манифесты, пространства имен, коллекции, обобщения, делегаты, события и др. Указаны сведения о процессах и потоках Windows, а также примеры организации работы в многопоточном режиме. Изложены вопросы создания консольных приложений, приложений типа Windows Forms и приложений для работы с базами данных, а также вопросы глубокого и продвинутого освоения материала. В качестве среды разработки рассматривается среда Visual Studio.NET. Все примеры программ даны на языке C#. Соответствует требованиям федеральных государственных образовательных стандартов высшего образования последнего поколения. Предназначен студентам, обучающимся по направлению подготовки 09.03.03 «Прикладная информатика», студентам бакалавриата и магистратуры всех специальностей, а также аспирантам и слушателям ИПК.
97
Дадян, Э. Г. Современные технологии программирования. Язык С# : учебник : в 2 томах. Том 1. Для начинающих пользователей / Э.Г. Дадян. — Москва : ИНФРА-М, 2021. — 312 с. — (Высшее образование: Бакалавриат). — DOI 10.12737/1196552. - ISBN 978-5-16-016613-1. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1196552 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Москва
ИНФРА-М
2021

Э.Г. ДАДЯН

УЧЕБНИК

Рекомендовано Межрегиональным учебно-методическим 
советом профессионального образования в качестве учебника
для студентов высших учебных заведений, обучающихся
по направлению подготовки 09.03.03 «Прикладная информатика»
(квалификация (степень) «бакалавр»)
(протокол № 2 от 17.02.2021)

СОВРЕМЕННЫЕ 
ТЕХНОЛОГИИ 
ПРОГРАММИРОВАНИЯ

ЯЗЫК C#

В двух томах
Том 1. ДЛЯ НАЧИНАЮЩИХ ПОЛЬЗОВАТЕЛЕЙ

УДК 004.43(075.8)
ББК 32.973-018.1я73
 
Д14

Дадян Э.Г.
Д14  
Современные технологии программирования. Язык С# : учебник : в 2 т. Т. 1. Для начинающих пользователей / Э.Г. Дадян. — 
Москва : ИНФРА-М, 2021. — 312 с. — (Высшее образо вание: Бакалавриат). — DOI 10.12737/1196552.

ISBN 978-5-16-016949-1 (общ.)
ISBN 978-5-16-016613-1 (т. 1, print)
ISBN 978-5-16-109195-1 (т. 1, online)
Том 1 учебника адресован начинающим пользователям, желающим 
изучить популярный объектно-ориентированный язык программирования С#. В учебнике приведены полные сведения о языке C# и платформе .NET. Рассмотрены базовые типы данных, переменные, функции и массивы. Показана работа с датами и перечислениями. Описаны 
элементы и конструкции языка: классы, интерфейсы, сборки, манифесты, 
пространства имен, коллекции, обобщения, делегаты, события и др. Указаны сведения о процессах и потоках Windows, а также примеры организации работы в многопоточном режиме. Изложены вопросы создания 
консольных приложений, приложений типа Windows Forms и приложений 
для работы с базами данных, а также вопросы глубокого и продвинутого 
освоения материала. В качестве среды разработки рассматривается среда 
Visual Studio .NET. Все примеры программ даны на языке C#.
Соответствует требованиям федеральных государственных образовательных стандартов высшего образования последнего поколения.
Предназначен студентам, обучающимся по направлению подготовки 
09.03.03 «Прикладная информатика», студентам бакалавриата и магистратуры всех специальностей, а также аспирантам и слушателям ИПК.

УДК 004.43(075.8)
ББК 32.973-018.1я73

Р е ц е н з е н т:
Барабаш Д.А., кандидат экономических наук, доцент, доцент Департамента анализа данных и машинного обучения Финансового 
университета при Правительстве Российской Федерации

ISBN 978-5-16-016949-1 (общ.)
ISBN 978-5-16-016613-1 (т. 1, print)
ISBN 978-5-16-109195-1 (т. 1, online)
© Дадян Э.Г., 2021

Данная книга доступна в цветном  исполнении  
в электронно-библиотечной системе Znanium.com

Предисловие

Задача этого учебника — подробно, доступно и строго изложить 
основы языка С#, одного из самых перспективных современных 
объектно-ориентированных языков программирования. Курс предназначен для изучающих данный язык с нуля, но будет полезен 
и опытным программистам, желающим вспомнить и повторить его 
основы, не тратя время на изучение переводных фолиантов.
Том 1 учебника содержит полные сведения о языке C# и платформе .NET. Здесь рассмотрены базовые типы данных, переменные, 
функции и массивы; показана работа с датами и перечислениями; 
описаны элементы и конструкции языка: классы, интерфейсы, 
сборки, манифесты, пространства имен, коллекции, обобщения, 
делегаты, события и др.; указаны сведения о процессах и потоках 
Windows; приведены примеры организации работы в многопоточном режиме; изложены вопросы создания консольных приложений, приложений типа Windows Forms и приложений для работы с базами данных, а также вопросы глубокого и продвинутого 
освоения материала. В качестве среды разработки рассматривается 
среда Visual Studio .NET. Все примеры программ даны на языке C#.
Структура планируемых результатов освоения материалов, изложенных в учебнике, позволит выработать следующие компетенции:
1) способность разрабатывать, внедрять и адаптировать прикладное программное обеспечение;
2) способность программировать приложения и создавать программные прототипы решения прикладных задач на языке C#.
В результате изучения учебника студенты будут:
 
• знать основные свойства алгоритмов и базовых элементов, 
 алгоритмических конструкций языка высокого уровня, класса 
биб лиотеки FCL, элементов управления графического интерфейса;
 
• уметь разрабатывать консольные приложения и приложения 
с графическим интерфейсом, создавать программные прототипы 
решения прикладных задач, разрабатывать алгоритмы решения 
прикладных задач, программировать приложения и создавать 
программные прототипы; 
 
• владеть навыками работы и отладки приложений в интегрированной визуальной среде программирования, а также навыками 
использования новых технологий программирования.

Глава 1 
АЛГОРИТМ. СВОйСТВА АЛГОРИТМА. 
СПОСОБЫ ОПИСАНИЯ АЛГОРИТМА

Если мы хотим написать программу на каком-либо языке программирования, то сначала должны составить алгоритм решения 
задачи.
Алгоритм — это точное и простое описание последовательности 
действий для решения определенной задачи. Алгоритм содержит 
несколько шагов, которые должны выполняться в определенной 
последовательности. Каждый шаг алгоритма может состоять 
из одной или нескольких простых операций.
Каждый из нас ежедневно использует различные алгоритмы: инструкции, правила, рецепты и т.д. Обычно мы это делаем не задумываясь. Например, открывая дверь ключом, никто не размышляет 
над тем, в какой последовательности выполнять действия. Однако 
чтобы кого-нибудь научить открывать дверь, придется четко указать и сами действия, и порядок их выполнения, например:
1) достать ключ;
2) вставить ключ в замочную скважину;
3) повернуть ключ два раза против часовой стрелки;
4) вынуть ключ.
Представим, что мы поменяли местами второе и третье действия. Мы сможем выполнить и этот алгоритм, но дверь не откроется, т.е. алгоритм станет невыполнимым. Для алгоритма важен 
не только набор действий, но и то, в каком порядке они выполняются. Понятие алгоритма в информатике является фундаментальным, таким же, какими являются понятия точки, прямой и плоскости в геометрии, вещества в химии, пространства и времени в физике и т.д.
Ниже указаны свойства алгоритма.
 
• Дискретность (прерывность, раздельность) — алгоритм должен 
представлять процесс решения задачи как последовательное выполнение простых шагов (этапов).
 
• Определенность — каждый шаг алгоритма должен быть четким 
и однозначным. Выполнение алгоритма носит механический характер и не требует никаких дополнительных сведений о решаемой задаче.
 
• Результативность — алгоритм должен приводить к решению 
задачи за конечное число шагов.

• Массовость — алгоритм решения разрабатывается в общем виде, 
т.е. он должен быть применим для решения некоторого класса 
задач, различающихся лишь исходными данными.
Способы описания алгоритмов:
1) словесный;
2) графический;
3) табличный;
4) формульный.
1. Словесный способ каждый из нас использует ежедневно, пересказывая собеседнику, например, различные инструкции, правила, кулинарные рецепты, т.е. какую-то последовательность действий, приводящую к конечному результату.
2. Графический способ представления алгоритмов является 
более компактным и наглядным по сравнению со словесным. Как 
часто для лучшего понимания той или иной ситуации нам проще 
начертить какую-то схему, план, согласно которому мы будем действовать. В программировании данный способ предпочтительнее 
других, поскольку позволяет с помощью последовательности функциональных блоков, каждый из которых соответствует выполнению 
одного или нескольких действий, представить ход решения той или 
иной задачи. Такое представление алгоритма называется структурной схемой алгоритма или блок-схемой.
3. Табличный способ используется, например, в бухгалтерском 
учете при составлении ежегодных отчетов, сводок и т.д.
4. Формульный способ находит применение при решении задач 
из области математики, физики и т.д. Например, при решении квадратного уравнения сначала следует найти дискриминанту уравнения, а затем в зависимости от полученного результата корни 
уравнения по известным всем формулам.
Назначение функциональных блоков. Процесс решения задачи 
на ПК состоит из нескольких этапов (рис. 1.1), часть из которых 
выполняет пользователь, а часть — компьютер.
1-й этап. Общая постановка задачи. Описывается содержание 
задачи, составляется перечень исходных данных.
2-й этап. Разработка математической модели. Установление 
формализованных связей между исходными данными и искомыми 
результатами. Этап заключается в записи расчетных формул или 
функциональных зависимостей.
3-й этап. Разработка алгоритма. Описание последовательности 
действий, в результате которых может быть получено решение задачи.

Начало и конец алгоритма

Ввод/вывод данных

Начало циклического алгоритма

Начало процедуры

Комментарий

Вычислительная операция

Проверка условия 
(логического выражения)

Разрыв соединительных линий

на странице

Линии потоков

Вывод на печать

Рис. 1.1

4-й этап. Разработка программы. Программа составляется 
в полном соответствии с разработанным алгоритмом решения задачи.
5-й этап. Отладка программы. Поиск ошибок в программе и их 
устранение.
6-й этап. Анализ результатов. Принятие решения о необходимости внесения изменений в программу, проведении дополнительных расчетов или их окончании.

Глава 2 
ВВЕДЕНИЕ В ЯЗЫК C#.  
ЯЗЫК C# И ПЛАТфОРМА .NET CorE

На сегодняшний день язык программирования C# один из самых 
мощных, быстро развивающихся и востребованных в ИТ-отрасли; 
на нем пишутся различные приложения: от небольших десктопных 
программок до крупных веб-порталов и веб-сервисов, обслуживающих ежедневно миллионы пользователей.
По сравнению с другими языками C# достаточно молодой, 
но довольно востребованный. Первая версия языка вышла вместе 
с релизом Microsoft Visual Studio .NET в феврале 2002 г. Текущей 
является версия C# 8.0, которая появилась в сентябре 2019 г. вместе 
с релизом .NET Core 3.
C# является языком с Си-подобным синтаксисом и близок 
в этом отношении к C++ и Java. Поэтому, если вы знакомы с одним 
из этих языков, то овладеть C# будет легче.
C# является объектно-ориентированным языком, и в этом плане 
он много перенял у Java и С++, например, поддерживает полиморфизм, наследование, перегрузку операторов, статическую типизацию; позволяет решить задачи по построению крупных, но достаточно гибких, масштабируемых и расширяемых приложений. 
C# продолжает активно развиваться, а с каждой новой версией 
появляется все больше интересных функциональностей, например, 
лямбды, динамическое связывание, асинхронные методы и т.д.
Роль платформы .NET. Когда говорят C#, нередко имеют в виду 
технологии платформы .NET (Windows Forms, WPF, ASP.NET, 
Xamarin). И наоборот, когда говорят .NET, нередко имеют в виду 
C#. Однако, хотя эти понятия связаны, отождествлять их неверно. 
Язык C# был создан специально для работы с фреймворком .NET, 
однако само понятие .NET несколько шире.
Как-то Билл Гейтс сказал, что платформа .NET — это лучшее, 
что создала компания Microsoft. Возможно, он был прав. Фреймворк .NET является мощной платформой для создания приложений. Можно выделить его следующие основные черты.
 
• Поддержка нескольких языков. Основой платформы является 
 общеязыковая среда исполнения Common Language Runtime 
(CLR), благодаря чему .NET поддерживает несколько языков: 
наряду с C# это VB.NET, C++, F#, а также различные диалекты 
других языков, привязанные к .NET, например Delphi.NET. 

При компиляции код на любом из этих языков компилируется 
в сборку на общем языке CIL (Common Intermediate Language) — 
своего рода ассемблере платформы .NET. Поэтому мы можем 
сделать отдельные модули одного приложения на отдельных 
языках.
 
• Кроссплатформенность. .NET является переносимой платформой (с некоторыми ограничениями). Например, последняя 
версия платформы .NET Core поддерживается на большинстве 
современных ОС Windows, MacOS, Linux. Используя различные технологии на платформе .NET, можно разрабатывать приложения на языке C# для платформ Windows, MacOS, Linux, 
Android, iOS, Tizen.
 
• Мощная библиотека классов. .NET представляет единую для 
всех поддерживаемых языков библиотеку классов. И какое бы 
приложение мы ни собирались писать на C# — текстовый редактор, чат или сложный веб-сайт, так или иначе мы задействуем библиотеку классов .NET.
 
• Разнообразие технологий. Общеязыковая среда исполнения 
CLR и базовая библиотека классов являются основой для стека 
технологий, которые разработчики могут задействовать при 
построении тех или иных приложений. Например, для работы 
с базами данных в этом стеке технологий предназначены технологии ADO.NET и Entity Framework Core; для построения 
графических приложений с богатым насыщенным интерфейсом — WPF и UWP; для создания более простых графических приложений — Windows Forms; для разработки мобильных 
приложений — Xamarin; для создания веб-сайтов — ASP.NET 
и т.д.
Также следует отметить такую особенность языка C# и фреймворка .NET, как автоматическая сборка мусора. А это значит, что 
нам в большинстве случаев, в отличие от С++, не придется заботиться об освобождении памяти. Вышеупомянутая общеязыковая 
среда CLR сама вызовет сборщик мусора и очистит память.
.NET Framework и .NET Core. Стоит отметить, что .NET долгое 
время развивался преимущественно как платформа для Windows 
и назывался .NET Framework. В 2019 г. вышла последняя версия 
этой платформы — .NET Framework 4.8. Однако она больше не развивается.
С 2014 г. Microsoft развивает альтернативную платформу — 
.NET Core, которая предназначалась для разных платформ, должна 
была вобрать все возможности устаревшего .NET Framework и добавить новую функциональность. Поэтому следует различать .NET 

Framework, который предназначен преимущественно для Windows, 
и кроссплатформенный .NET Core. В данном руководстве речь 
будет идти о C# в связке с .NET Core, поскольку это актуальная 
платформа.
Также стоит упомянуть о платформе Mono, которая была создана в 2004 г. и представляла опенсорс-версию платформы .NET 
Framework для Linux и MacOS. Используя Mono, можно было создавать кроссплатформенные приложения на C#.
Управляемый и неуправляемый код. Нередко приложение, созданное на C#, называют управляемым кодом (managed code). Это 
значит, что данное приложение создано на основе платформы .NET 
и поэтому управляется общеязыковой средой CLR, которая загружает приложение и при необходимости очищает память. Но есть 
также приложения, созданные, например, на языке С++, которые 
компилируются не в общий язык CIL, как C# или VB.NET, 
а в обычный машинный код. В этом случае .NET не управляет приложением.
В то же время платформа .NET предоставляет возможности для 
взаимодействия с неуправляемым кодом.
JIT-компиляция. Как указывалось выше, код на C# компилируется в приложения или сборки с расширениями exe или dll 
на языке CIL. При запуске на выполнение подобного приложения 
происходит JIT-компиляция (Just-In-Time) в машинный код, который затем выполняется. При этом, поскольку наше приложение 
может быть большим и содержать кучу инструкций, в текущий 
 момент времени будет компилироваться лишь та часть приложения, к которой непосредственно идет обращение. Если мы обратимся к другой части кода, то она будет скомпилирована из CIL 
в машинный код. Притом уже скомпилированная часть приложения сохраняется до завершения работы программы. В итоге это 
повышает производительность.
По сути это все, что вкратце надо знать о платформе .NET. А теперь создадим первое приложение.

2.1. НАчАЛО РАБОТЫ С Visual sTudio 

Первая программа. Итак, создадим первое приложение на языке 
C#. Для этого потребуется, во-первых, текстовый редактор, в котором мы могли бы напечатать код программы; во-вторых, компилятор, который бы скомпилировал набранный в текстовом редакторе код в приложение exe; в-третьих, фреймворк .NET, который 
требуется для компиляции и выполнения программы.

Чтобы облегчить написание, тестирование и отладку программного кода, обычно используют специальные среды разработки, в частности Visual Studio.
Для создания приложений на C# будем использовать бесплатную и полнофункциональную среду разработки Visual Studio 
Community 2019, которую можно загрузить по адресу: https://www.
visualstudio.com/en-us/downloads (также можно использовать 
 Visual Studio 2017).
Последовательность действий по загрузке и установке требуемой среды разработки следующая. После размещения в адресной 
строке браузера указанного выше адреса и запуска получим окноприглашение по скачиванию требуемого установщика (рис. 2.1).

Рис. 2.1

После загрузки запустим программу установщика. В открывшемся окне нам будет предложено выбрать компоненты, которые 
мы хотим установить вместе с Visual Studio. Стоит отметить, что 
Visual Studio — очень функциональная среда разработки, которая 
позволяет создавать приложения с помощью множества языков 
и платформ. В нашем случае нас будут интересовать прежде всего 
C# и .NET Core. Поэтому в наборе рабочих нагрузок можно выбрать только пункт Кроссплатформенная разработка .NET Core. 
Можно выбрать больше опций или вообще все опции, однако стоит 
учитывать свободный размер на жестком диске: чем больше опций 
выбрано, тем больше места на диске занято (рис. 2.2).

Доступ онлайн
от 376 ₽
В корзину