Введение в программирование на языке Visual C#
Покупка
Основная коллекция
Тематика:
Программирование на C и C++
Издательство:
Издательство ФОРУМ
Автор:
Гуриков Сергей Ростиславович
Год издания: 2020
Кол-во страниц: 447
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-00091-458-8
ISBN-онлайн: 978-5-16-105882-4
Артикул: 433050.06.01
Книга является руководством по программированию на языке Visual C# для начинающих. В ней содержится описание такого традиционного материала, как работа линейных, разветвляющихся и циклических структур, обработка одномерных и двумерных массивов. Кроме того, рассмотрены методы работы с символами и строками, файлами, даны основные понятия работы с классами. Обсуждаются типы данных, используемые в Visual C#, большое внимание уделено методам ввода и вывода данных, сделан обзор основных элементов управления среды программирования. Имеются примеры консольных приложений, однако большинство программ написаны как Windows-приложения.
В конце каждой главы имеется набор контрольных вопросов и упражнений, задач для самостоятельного решения.
В книге содержится свыше 230 листингов программ, набор которых на компьютере приведет к эффективному усвоению теоретического материала, поможет выполнить практические или лабораторные работы в среде программирования. В приложениях содержится лабораторный практикум, состоящий из 22 работ, а также приведено описание 18 заставок к проектам, выполненных на основе использования интерфейса GDI+.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.02: Прикладная математика и информатика
- 02.03.02: Фундаментальная информатика и информационные технологии
- 03.03.02: Прикладная математика и информатика
- 09.03.02: Информационные системы и технологии
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
С.Р. Гуриков ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ VISUAL C# УЧЕБНОЕ ПОСОБИЕ Рекомендовано в качестве учебного пособия для студентов образовательных учреждений высшего образования, обучающихся по направлению подготовки 11.03.02 «Инфокоммуникационные технологии и системы связи» (квалификация (степень) «бакалавр») Москва 2020 ИНФРА-М
УДК 004.2 ББК 32.973-018 Г95 Р е ц е н з е н т ы: кандидат технических наук, доцент, заведующий кафедрой «Вычислительная математика и программирование», декан Общетехнического факультета (ОТФ–2) Московского технического университета связи и информатики В.Н. Шакин; кандидат технических наук, доцент, начальник аналитического сектора ФГНУ «Г осметодцентр» Ю.А. Сытняк Гуриков С.Р. Г95 Введение в программирование на языке Visual C# : учебное пособие / С.Р. Гуриков. — Москва : ФОРУМ : ИНФРА-М, 2020. — 447 с. — (Высшее образование: Бакалавриат). ISBN 978-5-00091-458-8 (ФОРУМ) ISBN 978-5-16-013100-9 (ИНФРА-М, print) ISBN 978-5-16-105882-4 (ИНФРА-М, online) Книга является руководством по программированию на языке Visual C# для начинающих. В ней содержится описание такого традиционного материала, как работа линейных, разветвляющихся и циклических структур, обработка одномерных и двумерных массивов. Кроме того, рассмотрены методы работы с символами и строками, файлами, даны основные понятия работы с классами. Обсуждаются типы данных, используемые в Visual C#, большое внимание уделено методам ввода и вывода данных, сделан обзор основных элементов управления среды программирования. Имеются примеры консольных приложений, однако большинство программ написаны как Windows-приложения. В конце каждой главы имеется набор контрольных вопросов и упражнений, задач для самостоятельного решения. В книге содержится свыше 230 листингов программ, набор которых на компьютере приведет к эффективному усвоению теоретического материала, поможет выполнить практические или лабораторные работы в среде программирования. В приложениях содержится лабораторный практикум, состоящий из 22 работ, а также приведено описание 18 заставок к проектам, выполненных на основе использования интерфейса GDI+. УДК 004.2 ББК 32.973-018 ISBN 978-5-00091-458-8 (ФОРУМ) ISBN 978-5-16-013100-9 (ИНФРА-М, print) ISBN 978-5-16-105882-4 (ИНФРА-М, online) © Гуриков С.Р., 2013 © ФОРУМ, 2013
ОГЛАВЛЕНИЕ Введение...............................................................................................................................................7 1. Теоретические основы алгоритмизации и программирования .........................................10 1.1 Алгоритм. Свойства алгоритма. Способы описания алгоритма ....................................10 1.2 Назначение функциональных блоков ...............................................................................11 1.3 Основные этапы решения задач на ЭВМ .........................................................................11 1.4 Введение в объектно-ориентированное программирование ..........................................12 1.5 Алфавит языка Visual C#....................................................................................................16 1.6 Идентификаторы и общие правила их написания...........................................................16 1.7 Оператор присваивания......................................................................................................16 1.8 Типы данных .......................................................................................................................17 1.9 Запись математических функций......................................................................................25 1.10 Операции отношения..........................................................................................................26 2. Введение в Visual C#..................................................................................................................28 2.1 Организация проекта в Visual C#......................................................................................28 2.2 Процесс создания проекта..................................................................................................31 2.3 Методы ввода и вывода данных........................................................................................33 2.4 Использование проверки корректности ввода данных ...................................................39 2.5 Обработка исключений ......................................................................................................40 2.6 Обработка последовательностей данных .........................................................................43 2.7 Окончательная настройка приложения ............................................................................44 2.8 Организация взаимодействия форм ..................................................................................44 2.9 Работа с компонентами ......................................................................................................45 3. Линейный алгоритм..................................................................................................................74 3.1 Упражнения к главе............................................................................................................74 3.2 Примеры решения задач.....................................................................................................76 4. Разветвляющийся алгоритм....................................................................................................82 4.1 Простой условный оператор..............................................................................................82 4.2 Сокращенный условный оператор ....................................................................................83 4.3 Составной условный оператор ..........................................................................................83 4.4 Многозначные ветвления...................................................................................................85 4.5 Алгоритмы поиска максимального и минимального элементов ...................................87 4.6 Упражнения к главе............................................................................................................91 4.7 Примеры решения задач.....................................................................................................95 5. Оператор выбора switch............................................................................................................99 5.1 Упражнения к главе..........................................................................................................101 5.2 Примеры решения задач...................................................................................................103 6. Циклический алгоритм ..........................................................................................................106 3
6.1 Оператор цикла for............................................................................................................106 6.2 Оператор цикла do…while ...............................................................................................128 6.3 Оператор цикла while .......................................................................................................141 7. Работа с одномерными массивами .......................................................................................157 7.1 Базовые алгоритмы обработки одномерных массивов .................................................163 7.2 Упорядочивание одномерных массивов.........................................................................175 7.3 Примеры решения задач...................................................................................................185 8. Работа с двумерными массивами .........................................................................................194 8.1 Основные свойства матриц..............................................................................................197 8.2 Базовые алгоритмы обработки двумерных массивов....................................................198 8.3 Примеры решения задач...................................................................................................211 9. Создание классов. Работа с методами..................................................................................223 9.1 Создание методов .............................................................................................................224 9.2 Передача параметров: по ссылке или по значению.......................................................226 9.3 Передача массива в качестве параметров.......................................................................230 9.4 Примеры решения задач...................................................................................................231 10. Работа с символами и строками............................................................................................239 10.1 Методы работы с символами...........................................................................................239 10.2 Методы работы со строками............................................................................................240 10.3 Базовые алгоритмы обработки строк..............................................................................244 10.4 Примеры решения задач...................................................................................................251 11. Работа с файлами.....................................................................................................................257 11.1 Процессы и потоки ...........................................................................................................257 11.2 Запись информации в текстовый файл ...........................................................................259 11.3 Чтение информации из текстового файла ......................................................................260 11.4 Работа с файлами и каталогами.......................................................................................261 11.5 Примеры решения задач...................................................................................................266 Приложение 1. Примеры выполнения лабораторных работ ................................................272 Лабораторная работа №1 «Запись арифметических выражений» ........................................272 Лабораторная работа №2 «Многозначные ветвления в программах. Использование проверки корректности ввода данных и элемента управления ErrorProvider»....................279 Лабораторная работа №3 «Использование элементов управления RadioButton, ListBox, Timer, GroupBox в программах. Использование обработчика событий для нескольких компонентов»..................................................................................................289 Лабораторная работа №4 «Программирование алгоритмов разветвляющихся структур с использованием поиска максимального и минимального значений»................................295 4
Лабораторная работа №5 «Использование элементов управления MenuStrip, OpenFileDialog, SaveFileDialog, FontDialog, ToolStrip, StatusStrip. Разработка текстового редактора» ..........................................................................................302 Лабораторная работа №6 «Табулирование функций» ...........................................................305 Лабораторная работа №7 «Использование элементов управления CheckedListBox, CheckBox, ComboBox, RadioButton, ListBox. Разработка тестовой программы»................310 Лабораторная работа №8 «Программирование алгоритмов регулярных циклических структур» ....................................................................................................................................314 Лабораторная работа №9 «Табулирование функции с использованием циклов с неизвестным количеством повторений»...............................................................................322 Лабораторная работа №10 «Программирование алгоритмов итеративных циклических структур» ....................................................................................................................................333 Лабораторная работа №11 «Комплексное применение элементов управления»................348 Лабораторная работа №12 «Классические способы обработки одномерных массивов»...353 Лабораторная работа №13 Программирование алгоритмов формирования и обработки одномерных массивов» .............................................................................................................359 Лабораторная работа №14 «Классические способы обработки двумерных массивов» .....366 Лабораторная работа №15 «Программирование алгоритмов формирования и обработки двумерных массивов»................................................................................................................372 Лабораторная работа №16 «Организация многодокументного интерфейса» .....................381 Лабораторная работа №17 «Разработка графического редактора» ......................................385 Лабораторная работа №18 «Работа с методами»....................................................................394 Лабораторная работа №19 «Классические способы обработки строк» ...............................402 Лабораторная работа №20 «Обработка строковых данных».................................................406 Лабораторная работа №21 «Работа с текстовыми файлами»................................................412 Лабораторная работа №22 «Работа с файлами и каталогами»..............................................417 Приложение 2. Создание заставок к проектам ........................................................................420 Заставка 1. Создание текста и изображения на форме графическими методами................423 Заставка 2. Вывод центрированного текста, закрашенного с помощью градиентной заливки. Форма окаймлена овалом, покрытым изображениями...........................................424 Заставка 3. Вывод текста на графическую поверхность и выравнивание его по центру. ..426 Заставка 4. Создание сплэш-форм............................................................................................427 Заставка 5. Проявление и исчезновение формы. ....................................................................428 Заставка 6. Ввод пароля с заданным числом попыток...........................................................430 Заставка 7. Постепенное развертывание формы.....................................................................431 Заставка 8. Работа с объектом Bitmap......................................................................................432 5
Заставка 9. Повернутая надпись...............................................................................................433 Заставка 10. Создание нестандартной формы.........................................................................434 Заставка 11. Создание нестандартной формы (форма с окружностями)..............................436 Заставка 12. Поворот изображения и его зеркальное отображение.....................................437 Заставка 13. Рисование с помощью мыши. .............................................................................438 Заставка 14. Вывод бегущей строки.........................................................................................439 Заставка 15. Форма произвольной конфигурации..................................................................440 Заставка 16. Вывод векторного изображения. ........................................................................441 Заставка 17. Использование текстового окна для ввода пароля. Использование элемента управления ErrorProvider...........................................................................................................443 Заставка 18. Вывод текста из файла в область, нарисованную на форме. ...........................444 Список литературы .......................................................................................................................446 6
ВВЕДЕНИЕ В условиях глобальных информационных процессов, решения социальноэкономических проблем актуализируется важность информатизации образования. Повышение качества, эффективности и результативности образовательного процесса осуществляется путем внедрения современных педагогических и информационных технологий обучения, увеличения объемов обрабатываемой учебной информации за счет широкого практического использования компьютеров, локальных и глобальных компьютерных сетей, насыщения учебного заведения техническими и программными средствами. Дальнейшее развитие информатизации требует не только компьютерной грамотности, но и информационной культуры личности, основанной на понимании закономерностей развития информационного общества. При этом в первую очередь должно измениться понимание сути информатизации и информатики. В связи с этим надо отметить, что компьютер стал массовым средством профессиональной деятельности, причем не только в инженерной и естественнонаучной области, но и в гуманитарной сфере, бизнесе, экономике, образовании, системе коммуникаций. Наряду с профессиональной компетентностью основными качествами, обеспечивающими конкурентоспособность на рынке труда, стали мобильность, способность к адаптации, критическое мышление, ориентация в информационном пространстве, умение работать с информацией, коммуникабельность, компьютерная грамотность. Большинство из указанных качеств формируется в процессе изучения курса информатики в учебных заведениях, что приводит к значительному повышению ее роли. Новое понимание задач информатики, а также ее первостепенная роль в системе образования, безусловно, должны найти свое адекватное отражение в программах, методиках и учебных планах перспективной системы профессионального образования. Материал предлагаемого учебного пособия был подготовлен автором на основе многолетнего опыта преподавания курса алгоритмизации и программирования школьникам и студентам, разработки электронных учебников и чтения лекций по дисциплине «Информатика». Проведенный анализ учебной литературы показал, что несмотря на наличие книг по разработке приложений на языке программирования Visual C#, их содержание редко отвечает совместной практической работе преподавателя и студента в конкретном учебном заведении и на конкретном занятии. Использование различных самоучителей, руководств для профессиональной работы в среде программирования действительно возможно в учебном процессе, но только при соответствующей их детальной переработке. Вчерашний школьник, а сегодня студент не готов с первых дней обучения осваивать программирование на основе создания собственных функций и процедур языка программирования, однако такой подход часто предлагается с первых страниц иных изданий. Слабая мотивация, сложность решаемых задач (часто сразу из области численных методов), отсутствие навыков в среде программирования порою формируют стойкое неприятие к основам алгоритмизации и программирования. 7
Главная цель создания пособия — обеспечить прочное и сознательное освоение основ алгоритмизации и программирования, формирование практических умений — профессиональных, учебных, интеллектуальных, необходимых будущему специалисту. Помимо приобретения чисто практических умений, ценных с точки зрения освоения компьютерной грамотности, студенты получают наглядное представление о возможностях, предоставляемых компьютером человеку, вырабатывают такие профессионально значимые качества, как самостоятельность, ответственность, точность, творческая инициатива при решении поставленных задач. Пособие построено так, что непосредственно к программированию студент приступает с самого начала — первая программа описывается во втором разделе (в первом разделе приводятся теоретические основы алгоритмизации и программирования). Во втором разделе описаны различные способы ввода и вывода данных, приводятся примеры организации взаимодействия нескольких форм, что актуально при выполнении студентами лабораторных работ, подробно описана окончательная настройка приложения, а также рассказано о том, как осуществлять проверку корректности ввода данных, разрабатывать главное и контекстное меню. Здесь же приводятся примеры работы с различными (основными) компонентами среды программирования. Четкое понимание работы каждого компонента — залог успешного программирования приложений. В третьем, четвертом, пятом и шестом разделах подробно рассматриваются операторы, относящиеся к трем «китам» программирования — линейному, разветвляющемуся и циклическому алгоритмам. В седьмом и восьмом разделах объясняется работа с одномерными и двумерными массивами, рассматриваются «классические» способы их обработки. В девятом разделе речь пойдет о создании классов и работе с методами. В десятом разделе изложены основы обработки символьной и строковой информации, рассматриваются «классические» приемы обработки строк. В одиннадцатом разделе приведено описание работы с файлами и директориями. Приложение 1 содержит практикум по выполнению лабораторных работ, часть из которых (с вариантами) может выполняться студентами в домашних условиях, другие (без вариантов) — использоваться в стенах учебного заведения при проведении практических занятий. В приложении 2 даны описания 18 заставок к проектам, которые помогут разнообразить проведение лабораторного практикума, по сути это еще один раздел пособия, посвященный основам работы с графикой. Учебное пособие содержит свыше 230 листингов программ, а также более 260 рисунков, которые дают наглядное представление о результатах работы и ходе создания приложений. Материал, изложенный в пособии, особенно будет полезен студентам, обучающимся на технических специальностях техникумов, колледжей, вузов в учебных планах которых предусмотрены дисциплины «Информатика», «Основы алгоритмизации и программирования», «Визуальное программирование», «Программирование на языке высокого уровня» и т.д. Апробация учебного пособия показала, что 8
студенты, не имеющие подготовки в области программирования, не только успешно осваивают представленные в пособии приложения, но и вносят в них свои, очень интересные изменения, направленные на улучшение их работы. Преподаватели могут оценить учебное пособие с точки зрения методики преподавания. Многие листинги программ специально написаны таким образом, чтобы учащиеся имели возможность доработать или оптимизировать их код, что поможет педагогу создать творческую атмосферу на занятиях. К каждому из разделов приведены примеры решения задач, упражнения, задачи для самостоятельного решения, контрольные вопросы, позволяющие оценить уровень подготовки студента. Описание лабораторных работ с вариантами заданий поможет организовать и провести занятия по соответствующим темам. Для каждой работы приведены примеры ее выполнения, задания для самостоятельной подготовки, объясняется, какой объем работы студент должен выполнить в лаборатории, приводятся содержание отчета по конкретной лабораторной работе, контрольные вопросы. Получить бесплатный инструментарий для работы с языком программирования Visual C#, можно загрузив различные версии среды Microsoft Visual Studio с сайта компании Microsoft по адресу www.microsoft.com/ru-ru. В пособие умышленно не включалось описание среды программирования, излишние подробности использования тех или иных функций языка, создание больших приложений, которые не могут быть рассмотрены в рамках «классического» занятия. Следует отметить, что учебное пособие не может претендовать на функциональную полноту или на полную оригинальность приведенных методов, алгоритмов и программ. Автор преследовал иную цель: не отпугнуть студента с низким уровнем базовой подготовки от основ изучения языка программирования, а помочь ему путем доступного изложения теоретических и практических основ алгоритмизации. 9
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ 1.1. Алгоритм. Свойства алгоритма. Способы описания алгоритма Если мы хотим написать программу на каком-нибудь языке программирования, то сначала мы должны составить алгоритм решения задачи. Алгоритм — это точное и простое описание последовательности действий для решения данной задачи. Алгоритм содержит несколько шагов, которые должны выполняться в определенной последовательности. Каждый шаг алгоритма может состоять из одной или нескольких простых операций. Каждый из нас ежедневно использует различные алгоритмы: инструкции, правила, рецепты и т.д. Обычно мы это делаем не задумываясь. Например, открывая дверь ключом, никто не размышляет над тем, в какой последовательности выполнять действия. Однако чтобы кого-нибудь научить открывать дверь, придется четко указать и сами действия, и порядок их выполнения. Например: 1. Достать ключ. 2. Вставить ключ в замочную скважину. 3. Повернуть ключ два раза против часовой стрелки. 4. Вынуть ключ. Представим, что мы поменяли местами второе и третье действия. Мы сможем выполнить и этот алгоритм, но дверь не откроется, т.е. алгоритм станет невыполнимым. Для алгоритма важен не только набор действий, но и то, в каком порядке они выполняются. Понятие алгоритма в информатике является фундаментальным. Таким же, какими являются понятия точки, прямой и плоскости в геометрии, вещества в химии, пространства и времени в физике и т.д. Свойства алгоритма: x Дискретность (прерывность, раздельность) — алгоритм должен представлять процесс решения задачи как последовательное выполнение простых шагов (этапов). x Определенность — каждый шаг алгоритма должен быть четким и однозначным. Выполнение алгоритма носит механический характер и не требует никаких дополнительных сведений о решаемой задаче. x Результативность — алгоритм должен приводить к решению задачи за конечное число шагов. x Массовость — алгоритм решения разрабатывается в общем виде, т.е. он должен быть применим для решения некоторого класса задач, различающихся лишь исходными данными. Способы описания алгоритмов: x словесный; x графический; x табличный; x формульный. 10