Основы алгоритмизации и программирования на языке c#. Учебное пособие для СПО

Е. В. Кудрина М. В. Огнева

Обложка:


Оглавление
Предисловие ........................................................................................ 6
Глава 1. Введение................................................................................10
1.1. Платформа .NET, ее назначение и структура. Обзор технологий
.NET ..........................................................................................................10
1.2. Принцип компиляции и выполнения программы в среде
CLR. Управляемый и неуправляемый код ...............................................12
1.3. Назначение и возможности Visual Studio.NET .......................................13
1.4. Создание первого проекта в среде Visual Studio.....................................16
Самостоятельная работа.............................................................................23
Глава 2. Базовые элементы языка C#............................................... 24
2.1. Состав языка............................................................................................24
2.2. Типы данных............................................................................................25
2.3. Переменные и константы .......................................................................27
2.4. Организация ввода-вывода данных. Форматирование..........................30
2.5. Операции.................................................................................................34
2.6. Выражения и преобразование типов .....................................................40
2.7. Тип object .................................................................................................42
2.8. Различие между типами значений и ссылочными типами данных ......43
2.9. Примеры решения практических задач .................................................44
Практикум.....................................................................................................47
Самостоятельная работа.............................................................................50
Глава 3. Операторы языка C# ........................................................... 51
3.1. Операторы следования............................................................................51
3.2. Операторы ветвления .............................................................................51
3.3. Операторы цикла ....................................................................................58
3.4. Вложенные циклы ...................................................................................60
3.5. Операторы перехода ...............................................................................61
3.6. Примеры решения практических задач .................................................63
Практикум.....................................................................................................75
Самостоятельная работа.............................................................................81
Глава 4. Реализация базовых алгоритмов........................................ 82
4.1. Рекуррентные соотношения ...................................................................82
4.2. Вычисление конечных сумм и произведений ........................................85
4.3. Вычисление бесконечных сумм..............................................................90
4.4. Алгоритм быстрого возведения числа в n-ую степень...........................92
4
4.5. Алгоритм вычисление корня n-ой степени ............................................93
4.6. Алгоритмы поиска делителей натурального числа ...............................94
4.7. Алгоритм разложения натурального числа на цифры...........................98
4.8. Алгоритм разложения натурального числа на простые множители...101
4.9. Алгоритмы нахождения наибольшего общего делителя двух
натуральных чисел ................................................................................102
Практикум...................................................................................................105
Самостоятельная работа...........................................................................111
Глава 5. Методы ............................................................................... 112
5.1. Основные понятия.................................................................................112
5.2. Перегрузка методов...............................................................................117
5.3. Рекурсивные методы.............................................................................120
Практикум...................................................................................................130
Самостоятельная работа...........................................................................139
Глава 6. Анализ алгоритмов............................................................ 140
6.1. Оценка сложности алгоритмов.............................................................140
6.2. Вычисление реального времени выполнения программной
реализации алгоритмов ........................................................................147
Практикум...................................................................................................156
Самостоятельная работа...........................................................................156
Глава 7. Массивы...............................................................................158
7.1. Одномерные массивы............................................................................158
7.2. Двумерные массивы ..............................................................................168
7.3. Ступенчатые массивы ...........................................................................171
7.4. Примеры использования массивов.......................................................174
7.5. Вставка и удаление элементов в массивах ...........................................185
Практикум...................................................................................................194
Самостоятельная работа...........................................................................199
Глава 8. Алгоритмы нахождения простых чисел .......................... 200
8.1. Поиск простых чисел перебором делителей.........................................200
8.2. Решето Эратосфена ...............................................................................203
8.3. Решето Сундарама.................................................................................205
Практикум...................................................................................................207
Самостоятельная работа...........................................................................207
Глава 9. Сортировка......................................................................... 208
9.1. Сортировка методом «пузырька»..........................................................208
9.2. Сортировка вставками..........................................................................211
9.3. Сортировка посредством выбора .........................................................213
9.4. Алгоритм сортировки Шелла................................................................214
9.5. Быстрая сортировка ..............................................................................217
9.6. Сортировка подсчетом..........................................................................221
9.7. Примеры использования алгоритмов сортировок...............................223
Практикум...................................................................................................227
Самостоятельная работа...........................................................................228
Глава 10. Поиск ................................................................................ 229
10.1. Последовательный поиск ....................................................................229
10.2. Двоичный поиск..................................................................................230
10.3. Хеш-таблицы........................................................................................231
10.4. Примеры использования алгоритмов поиска ....................................237
Практикум...................................................................................................243
Самостоятельная работа...........................................................................243
Глава 11. Символы и строки............................................................ 244
11.1. Символы char.......................................................................................244
11.2. Строковый тип string...........................................................................247
11.3. Строковый тип StringBuilder...............................................................258
11.4. Сравнение классов string и StringBuilder............................................264
Практикум...................................................................................................266
Самостоятельная работа...........................................................................268
Глава 12. Алгоритмы на строках..................................................... 269
12.1. Алгоритм прямого поиска подстроки в строке ..................................269
12.2. Алгоритм Рабина — Карпа .................................................................270
12.3. Алгоритм прямого поиска палиндромов в строке .............................273
12.4. Поиск палиндромов в строке с использованием хеш-функций.........275
Практикум...................................................................................................281
Самостоятельная работа...........................................................................282
Глава 13. Организация файлового ввода-вывода в С#.................. 284
13.1. Байтовый поток ...................................................................................285
13.2. Символьный поток..............................................................................288
Практикум...................................................................................................294
Самостоятельная работа...........................................................................296
Глава 14. Структуры......................................................................... 297
Практикум...................................................................................................304
Самостоятельная работа...........................................................................306
Заключение...................................................................................... 307
Практикум...................................................................................................307
Приложение 1. Операции С# ......................................................... 317
Приложение 2. Математические функции языка С#....................319
Список литературы ......................................................................... 320
Новинки по дисциплине «Информатика
и программирование»..................................................................... 322
6
Предисловие
При решении прикладных задач из разных об