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

Информатика и программирование : основы алгоритмизации и программирования

Покупка
Артикул: 752991.01.99
Доступ онлайн
2 000 ₽
В корзину
Рассматриваются вопросы программирования на базе платформы Microsoft .NET Framework. Дается описание современного языка объектно-ориентированного программирования C# в объеме, необходимом для иллюстрации основных понятий объектно-ориентированного программирования. Рассматриваются базовые структуры алгоритмов, типовые алгоритмы работы с массивами, основные приемы программирования, базирующиеся на объектном подходе. Предназначен для изучения основ алгоритмизации и начального знакомства с объектно-ориентированным программированием на языке C# студентами 1-го курса всех направлений, а также для самостоятельного изучения.
Андреева, О. В. Информатика и программирование : основы алгоритмизации и программирования : лабораторный практикум / О. В. Андреева. - Москва : Изд. Дом МИСиС, 2014. - 236 с. - ISBN 978-5-87623-779-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/1232261 (дата обращения: 26.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
МИНИСТЕРСТВО ОБРА ЗОВАНИЯ И НАУКИ РФ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ 
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ 
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС»

№ 2100

Кафедра инженерной кибернетики

О.В. Андреева

Информатика 
и программирование

Основы алгоритмизации и программирования

Лабораторный практикум

Допущено УМО по образованию в области прикладной 
математики и управления качеством в качестве учебного 
пособия для студентов высших учебных заведений, обучающихся 
по направлению 231300 – Прикладная математика

Москва  2014 

УДК 004.3
 
А65

Р е ц е н з е н т ы:
д-р техн. наук, проф. Н.Н. Воронин (МИИТ);
канд. техн. наук, доц. С.В. Никифоров (РГГУ)

Андреева О.В.
А65  
Информатика и программирование : основы алгоритмизации 
и программирования : лаб. практикум / О.В. Андреева. – М. : 
Изд. Дом МИСиС, 2014. – 236 с.
ISBN 978-5-87623-779-8

Рассматриваются вопросы программирования на базе платформы Microsoft 
.NET Framework. Дается описание современного языка объектно-ориентированного программирования C# в объеме, необходимом для иллюстрации 
основных понятий объектно-ориентированного программирования. Рассматриваются базовые структуры алгоритмов, типовые алгоритмы работы с массивами, основные приемы программирования, базирующиеся на объектном 
подходе.
Предназначен для изучения основ алгоритмизации и начального знакомства с объектно-ориентированным программированием на языке C# студентами 1-го курса всех направлений, а также для самостоятельного изучения.

УДК 004.3

ISBN 978-5-87623-779-8
 О.В. Андреева, 2014

ОГЛАВЛЕНИЕ

Предисловие ..............................................................................................5
Введение ....................................................................................................7
1. Основы алгоритмизации и программирования ...........................8
Понятие алгоритма ................................................................................... 8
Понятие о структурном подходе к разработке алгоритмов ............ 8
Метод пошаговой детализации .........................................................11
Основные понятия программирования ............................................... 12
Основы языка C# .................................................................................... 15
Переменные. Типы данных............................................................... 15
Литералы ............................................................................................. 16
Операторы объявления. Инициализация переменных .................. 17
Математические операторы. Выражения ........................................ 18
Приведение и преобразование типов в С# ...................................... 18
Логические операторы. Выражения ................................................ 20
Основные операторы C# ................................................................... 21
Ввод–вывод данных ........................................................................... 29
Этапы решения задач ............................................................................. 32
Среда разработки .................................................................................... 35
Создание нового проекта .................................................................. 35
Сохранение проекта ........................................................................... 36
Открытие существующего проекта ................................................. 36
Использование интегрированной среды разработки Visual C# ........ 37
Платформа Microsoft .NET Framework ................................................ 42
Лабораторная работа 1. Организация циклов ......................................44
Лабораторная работа 2. Организация разветвлений. Разветвления
в цикле ......................................................................................................60
Лабораторная работа 3. Массивы. Типовые алгоритмы обработки 
массивов  ..................................................................................................72
Лабораторная работа 4. Матрицы. Типовые алгоритмы 
обработки матриц  ...................................................................................98

2. Основы объектно-ориентированного подхода  ..........................122
Основные понятия ООП ...................................................................... 122
Классы и объекты ................................................................................. 124
Лабораторная работа 5. Методы  .........................................................127
Лабораторная работа 6. Структуры  ....................................................161
Лабораторная работа 7. Классы ...........................................................179

Лабораторная работа 8. Работа с текстовыми строками ...................191
Лабораторная работа 9. Файлы данных ..............................................199
Лабораторная работа 10. Разработка приложений с графическим 
интерфейсом пользователя. Экранные формы ...................................206
Библиографический список .................................................................233
Приложение 1. Таблицы встроенных типов ......................................... 234
Приложение 2. Региональные стандарты.............................................. 235

 

ПРЕДИСЛОВИЕ

Современное развитие общества предполагает широкое использование компьютерных технологий в различных сферах деятельности.
Умение использовать разнообразные возможности, предоставляемые компьютером, обеспечивают конкурентоспособность специалиста.
Настоящий практикум предназначен для приобретения компетенций в области алгоритмизации задач и разработки приложений на 
базе объектно-ориентированного подхода (ООП) с использованием 
современного языка C#, включенного в среду разработки .NET Framework, являющуюся средством очень быстрой разработки приложений. Приобретаемые при изучении навыки являются необходимым 
этапом для дальнейшего овладения возможностями, предоставляемыми платформой .NET Framework, в полном объеме.
В практикуме рассматривается комплекс вопросов, связанных с 
решением задач на компьютере, включая формализацию постановки, 
алгоритмизацию, современные методы разработки, отладки и тестирования программ, выбор структуры данных и пр. В теоретическом 
введении к лабораторным работам выделены и систематизированы 
типовые алгоритмы, в том числе для обработки текстов и решения 
других задач «невычислительного» характера. 
Практикум содержит большое количество примеров, облегчающих 
восприятие и освоение материала, и заданий для самостоятельного 
выполнения различной степени сложности, что позволит оценивать 
уровень освоения указанных умений и навыков как минимальный, 
средний или повышенный.
При этом следует отметить, что в рамках настоящего практикума 
не ставилась цель знакомства со всеми возможностями, предоставляемыми языком C#, а рассматривается лишь ограниченное подмножество средств, необходимых для решения предлагаемых задач в рамках изучаемого курса. Дополнительные сведения можно почерпнуть 
в библиотеке MSDN, которая является основным источником информации для разработчиков, использующих инструментальные 
средства, продукты и технологии Microsoft. Студент может использовать справочную систему на русском языке, доступную по 
ссылке: http://msdn.microsoft.com/ru-ru/library/default.aspx.
Практикум состоит из двух разделов, содержит введение, десять 
лабораторных работ и два приложения. 

Раздел 1 в основном посвящен вопросам алгоритмизации и изучению базовых приемов программирования. Здесь дается представление об алгоритмическом методе, используемом при решении задач на 
компьютере, и современных подходах к разработке алгоритмов и программ; рассматриваются основные аспекты и этапы решения задач 
на компьютере, излагаются приемы и методы разработки и проверки 
правильности программ. Также дается краткое описание основных 
понятий языка C#, начальные сведения об использовании интегрированной среды разработки Visual C# и технологии .NET Framework.
Раздел 2 знакомит с основными понятиями ООП (метод, класс, событие и др.), а также некоторыми дополнительными возможностями 
языка (работой с текстовыми строками, файлами данных, графическим интерфейсом пользователя).
Каждая работа содержит теоретическое введение, в котором приводятся типовые алгоритмы и приемы решения задач соответствующего класса, проиллюстрированные примерами программ, задачи для 
самостоятельного выполнения, а также контрольные вопросы, которые могут использоваться как для самопроверки, так и для контроля 
преподавателем. Каждая работа содержит задания трех уровней:
 
● задание I уровня требует решения простых задач, которые сводятся к типовым алгоритмам, изложенным во введении к работе, и по 
существу представляют собой упражнения, направленные на приобретение навыков использования этих средств;
 
● задание II уровня содержит более сложные задачи, требующие 
использования типовых алгоритмов в сочетании;
 
● задание III уровня содержит, как правило, задачи, близкие к реальным, требуют самостоятельной модификации типовых алгоритмов, а также некоторого творческого подхода, и рекомендуются для 
выполнения более подготовленным студентам.
Наличие заданий трех уровней позволяет в значительной степени 
индивидуализировать выполнение практикума.
Практикум согласован с программой курса «Информатика и программирование» (для студентов института ИТАСУ), а также программами модулей «ИТ и основы алгоритмизации» и «Объектно-ориентированное программирование» дисциплины «Информатика» (для 
студентов остальных направлений). 

ВВЕДЕНИЕ

Язык C# (произносится Си шарп) – современный язык объектно-ориентированного программирования, предназначенный для 
разработки программ и систем программ на базе платформы Microsoft .NET Framework. Этот язык ориентирован на создание обычных автономных приложений. Важнейшим компонентом платформы 
.NET Framework является обширная библиотека классов, существенно облегчающая разработку программ.
Объектно-ориентированное программирование по сравнению с 
традиционными алгоритмическими языками существенно расширяет 
возможности и облегчает разработку сложных программных систем 
в большой степени благодаря наличию упомянутой выше библиотеке классов, при использовании которой отпадает необходимость в 
написании кодов многих типовых алгоритмов. Однако при решении 
научно-технических задач алгоритмическая составляющая является 
весьма существенной. В разделе 1 настоящего практикума вопросам 
алгоритмизации и изучению базовых приемов программирования 
уделяется значительное внимание. В разделе 2 рассматриваются и используются и объектные свойства языка, на наглядных примерах демонстрируются предоставляемые ими новые возможности. 

1. ОСНОВЫ АЛГОРИТМИЗАЦИИ 
И ПРОГРАММИРОВАНИЯ

Понятие алгоритма

Алгоритмом называется четкое описание последовательности действий, которые необходимо выполнить для решения задачи. Практически решение любой задачи требует получения результата по заданным 
исходным данным. То есть можно сказать, что алгоритм описывает последовательный процесс преобразования исходных данных в результат.
Разработать алгоритм решения задачи означает разбить задачу на 
последовательно выполняемые шаги (этапы), причем результаты выполнения предыдущих этапов могут использоваться при выполнении 
последующих. При этом должны быть четко указаны как содержание 
каждого этапа, так и порядок выполнения этапов. Отдельный этап 
(шаг) алгоритма представляет собой либо другую, более простую задачу, алгоритм решения которой разработан ранее, либо должен быть 
достаточно простым и понятным без объяснений.
Четко сформулированная последовательность правил, описывающих этот процесс, и является алгоритмом.

Понятие о структурном подходе к разработке алгоритмов

Основные структуры алгоритмов – это ограниченный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий.
Приводимые ниже структуры рекомендуются при использовании 
так называемого структурного подхода к разработке алгоритмов и 
программ. Структурный подход предполагает использование только 
нескольких основных структур, комбинация которых дает все многообразие алгоритмов и программ.
К основным структурам относятся:
1 .  С л е д о в а н и е  (рис. 1) – последовательное размещение блоков и групп блоков. В программе реализуется последовательным размещением операторов.
2 .  Ц и к л.  Применяется при необходимости выполнить какие-либо вычисления несколько раз до выполнения некоторого условия. Тело 
цикла – та последовательность действий, которая выполняется многократно (в цикле). Начальные присваивания – задание начальных значе
ний тем переменным, которые используются 
в теле цикла Особенность цикла в том, что 
эта структура может реализоваться в двух 
вариантах. В первом случае цикл всегда выполняется хотя бы один раз, так как первая 
проверка условия выхода из цикла происходит после того, как тело цикла выполнено 
(рис. 2, а). Во втором случае проверка условия выхода из цикла производится до выполнения тела цикла, и если при первой проверке условие выполняется, то тело цикла не 
выполняется ни разу (рис. 2, б).
3 .  Р а з в е т в л е н и е  (рис. 3). Применяется, когда в зависимости от условия нужно 
выполнить либо одно, либо другое действие. 
Действие 1 или Действие 2 может в свою 
очередь содержать несколько этапов.
4 .  О б х о д  (рис. 4). Частный случай 
разветвления, когда одна ветвь не содержит 
никаких действий.  

Рис. 1. Типовая структура 
Следование

а 
б 
Рис. 2. Типовая структура Цикл

5 .  М н о ж е с т в е н н ы й  в ы б о р  (рис. 5). Является обобщением разветвления, когда в зависимости от значения переменной (I) выполняется одно из нескольких действий: при I = 1 выполняется действие S1, при I = 2 выполняется действие S2 и т.д.
Особенностью всех приведенных структур является то, что они 
имеют один вход и один выход, и их можно соединять друг с другом в 
любой последовательности. В частности, каждая структура может содержать любую другую структуру в качестве одного из блоков.

Рис. 3. Типовая структура Разветвление

Рис. 4. Типовая структура Обход 

Обычно при составлении схемы алгоритма (программы) блоки 
размещаются друг под другом в порядке их выполнения. Возврат назад осуществляется только на циклах. Это дает простую и наглядную 
схему алгоритма, по которой легко составить программу.

Метод пошаговой детализации

Одним из приемов разработки алгоритма решения более сложных 
задач является метод пошаговой детализации, когда первоначально 
продумывается и фиксируется общая структура алгоритма без детальной проработки отдельных его частей, но при этом используются 
лишь основные структуры алгоритмов. Блоки, требующие дальнейшей детализации, обозначаются пунктирной линией. Далее прорабатываются (детализируются) отдельные блоки, не детализированные 
на предыдущем шаге. То есть на каждом шаге разработки уточняется 
реализация фрагмента алгоритма (программы), и, таким образом, на 
каждом шаге имеем дело с более простой задачей. Полностью закончив детализацию всех блоков, получим решение всей задачи в целом. 
Описанный метод пошаговой детализации называется также программированием сверху вниз.

Рис. 5. Типовая структура Множественный выбор

Однако в некоторых случаях стремление во что бы то ни стало 
остаться в рамках структурного подхода приводит к необоснованному усложнению программы и потере ее наглядности и естественности. Если учесть, что структурное программирование имеет целью не 
подчинить программы каким-то правилам, а сделать их более удобными для восприятия, то в ряде случаев оказывается целесообразным 
отдать предпочтение ясности и естественности программы.  

Основные понятия программирования

Решение любой задачи на компьютере предполагает наличие программы и данных, которые этой программой должны быть обработаны, и в соответствии с этим перед нами встают две задачи: как 
описать порядок действий, необходимых для решения задачи, и как 
представить данные (числа и др.) в памяти компьютера. 
Самой простой структурой данных является переменная (простая переменная). Переменную можно представить себе как ящик 
с биркой, на которой написано имя (рис. 6). (В памяти компьютера 
это – ячейка памяти, имеющая определенный адрес.) Обращение к 
переменной осуществляется по имени. В переменной может одновременно храниться одно значение. При занесении в переменную другого значения старое значение пропадает.
Действия записываются с помощью операторов. Существует три 
основных оператора, с помощью которых (а также их различных сочетаний) можно в принципе описать порядок решения любых задач, 
которые допускают решение на компьютере. Это – оператор присваивания, условный оператор и оператор передачи управления.
Оператор присваивания имеет следующий вид:

Переменная = выражение;

где знак «=» обозначает операцию присваивания, выражение аналогично знакомому из математики алгебраическому выражению (здесь 
речь идет о числовом выражении), задающему 
правило получения значения, а переменная – имя 
переменной, в которую будет помещен результат. 
Оператор присваивания выполняется следующим образом: сначала вычисляется выражение, 
стоящее справа, а затем результат помещается в 
Рис. 6. Схематичное 
представление переменной

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