Основы алгоритмизации и объектно-ориентированного программирования
Учебное пособие. № 2056
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
Издательский Дом НИТУ «МИСиС»
Год издания: 2011
Кол-во страниц: 197
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-87623-466-7
Артикул: 408283.02.99
Рассматриваются вопросы программирования на базе платформы Microsoft .NET Framework. Дается описание современного языка объектно-ориентированного программирования C# в объеме, необходимом для иллюстрации основных понятий объектно-ориентированного программирования. Рассматриваются базовые структуры алгоритмов, типовые алгоритмы работы с массивами, основные приемы программирования, базирующиеся на объектном подходе. Предназначено для изучения основ алгоритмизации и начального знакомства с объектно-ориентированным программированием на языке C# студентами всех направлений бакалавриата, а также для самостоятельного изучения.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС» № 2056 Кафедра инженерной кибернетики Т.В. Куренкова Г.И. Светозарова Основы алгоритмизации и объектно-ориентированного программирования Учебное пособие Допущено УМО по образованию в области прикладной математики и управления качеством в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки 230400 – «Прикладная математика» Москва 2011
УДК 004.45 К93 Р е ц е н з е н т ы д-р техн. наук, проф. В.А. Поляков (РГУ нефти и газа им. И.М. Губкина) канд. техн. наук, проф. В.Б. Глаголев (МЭИ) Куренкова, Т.В. Основы алгоритмизации и объектно-ориентированного К93 программирования : учеб. пособие / Т.В. Куренкова, Г.И. Све- тозарова. – М. : Изд. Дом МИСиС, 2011. – 197 с. ISBN 978-5-87623-466-7 Рассматриваются вопросы программирования на базе платформы Microsoft .NET Framework. Дается описание современного языка объектноориентированного программирования C# в объеме, необходимом для иллюстрации основных понятий объектно-ориентированного программирования. Рассматриваются базовые структуры алгоритмов, типовые алгоритмы работы с массивами, основные приемы программирования, базирующиеся на объектном подходе. Предназначено для изучения основ алгоритмизации и начального знакомства с объектно-ориентированным программированием на языке C# студентами всех направлений бакалавриата, а также для самостоятельного изучения. УДК 004.45 ISBN 978-5-87623-466-7 © Куренкова Т.В., Светозарова Г.И., 2011
ОГЛАВЛЕНИЕ Предисловие ...................................................................................................4 Введение .........................................................................................................5 1. Основы языка C#......................................................................................10 1.1. Переменные. Типы данных..............................................................10 1.2. Литералы............................................................................................12 1.3. Операторы объявления. Инициализация переменных ..................12 1.4. Математические операторы. Выражения .......................................13 1.5. Логические операторы. Выражения................................................17 1.6. Перечисление ....................................................................................18 1.7. Основные операторы........................................................................19 1.8. Ввод-вывод........................................................................................28 2. Реализация простейших алгоритмов на языке C#.................................33 2.1. Организация циклов .........................................................................33 2.2. Организация разветвлений. Разветвления в цикле .......................48 2.3. Составление программ для обработки потока данных.................56 3. Массивы. Типовые алгоритмы обработки массивов ............................60 3.1. Одномерные массивы и алгоритмы их обработки.........................60 3.2. Работа с массивами как с объектами ..............................................77 3.3. Работа с матрицами ..........................................................................86 4. Структуры и классы...............................................................................107 4.1. Использование структур ................................................................107 4.2. Использование конструктора экземпляра и других методов при работе со структурами ...................................................................114 4.3. Использование классов ..................................................................122 5. Методы....................................................................................................127 5.1. Общие положения. Способы передачи параметров ...................127 5.2. Использование массивов в качестве параметров.........................137 5.3. Использование делегата для передачи метода в качестве параметра в другой метод .....................................................................141 6. Работа с текстовыми строками .............................................................149 7. Файлы данных (пространство имен System.IO). Файлы и потоки ....157 8. Разработка приложений с графическим интерфейсом пользователя Windows. Экранные формы..............................................164 9. Среда разработки ...................................................................................181 9.1. Создание нового проекта ...............................................................181 9.2. Сохранение проекта........................................................................182 9.3. Открытие существующего проекта...............................................182 9.4. Использование интегрированной среды разработки Visual C#......183 Библиографический список ......................................................................189 Приложения................................................................................................190
ПРЕДИСЛОВИЕ Современное развитие общества предполагает широкое использование компьютерных технологий в различных сферах деятельности. Умение использовать разнообразные возможности, предоставляемые компьютером, обеспечивают конкурентоспособность специалиста. Настоящее пособие предназначено для приобретения компетенций в области алгоритмизации задач и разработки приложений на базе объектно-ориентированного подхода с использованием современного языка C#. C# – объектно-ориентированный язык, предназначенный для разработки приложений, выполняемых в среде .NET Framework. Приобретаемые при изучении данного пособия навыки являются необходимым этапом для дальнейшего овладения возможностями, предоставляемыми платформой Microsoft .NET Framework. Пособие содержит большое количество примеров, облегчающих восприятие и освоение материала, и заданий для самостоятельного выполнения различной степени сложности, что позволит оценивать уровень освоения указанных умений и навыков как минимальный, средний или повышенный.
ВВЕДЕНИЕ Язык C# (произносится Си шарп) – современный язык объектноориентированного программирования, предназначенный для разработки программ и систем программ на базе платформы Microsoft .NET Framework. Этот язык ориентирован как на создание обычных автономных приложений Microsoft Windows, допускающих в том числе взаимодействие со стандартными приложениями Windows, так и на разработку Web-приложений. Важнейшим компонентом платформы .NET Framework является обширная библиотека классов, существенно облегчающая разработку программ. В прил. 1 приводятся подробные сведения о составе платформы .NET Framework и предоставляемых ею возможностях. Объектно-ориентированное программирование базируется на понятиях: объект, класс, структура, поля, методы, свойства, события, которые будут вводиться, использоваться и углубляться при решении все более сложных задач. По сравнению с традиционными алгоритмическими языками объектно-ориентированное программирование существенно расширяет возможности и облегчает разработку сложных программных систем благодаря наличию упомянутой выше библиотеке классов, при использовании которой отпадает необходимость в написании кодов многих типовых алгоритмов. При решении научно-технических задач алгоритмическая составляющая является весьма существенной. В настоящем пособии вопросам алгоритмизации и изучению базовых приемов программирования уделяется значительное внимание. Начальные сведения по алгоритмизации (понятие алгоритма, свойства алгоритма, типовые структуры алгоритма) см., например, в учебном пособии «Информатика. Информационные технологии». Авторы: Светозарова Г.И., Андреева О.В., Крынецкая Г.С. и др. Изд. Дом МИСиС, 2009. Параллельно рассматриваются и используются и объектные свойства языка и на наглядных примерах демонстрируются предоставляемые ими новые возможности. Для разработки программ на языке C# на компьютере должно быть установлено средство разработки, в котором содержатся необходимые инструменты разработки, такие как, редактор кода, компиляторы и др. (см. прил. 1). В данном пособии для выполнения приме
ров используется средство разработки Microsoft Visual C# 2008 Express Edition (Microsoft Visual C# 2008, экспресс-выпуск). Для выполнения программ, написанных на языке C#, на компьютере должен быть установлен пакет .NET Framework (см. прил. 1). Прежде чем перейти к систематическому изложению средств языка, рассмотрим простейший пример программы, написанной на языке C#. Пример. Переменной r присвоить значение 3 и вывести значение r на экран (консоль, Console). using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int r = 3; Console.WriteLine(r); Console.ReadKey(); } } } Создание и реализация даже самой простой программы (кода) осуществляется в рамках проекта (Project). Поэтому вначале необходимо создать проект. Для создания нового проекта необходимо войти в Visual C#, экспресс-выпуск и в меню «Файл» выбрать «Создать проект». Появится диалоговое окно «Создать проект». В рамках проекта создадим консольное приложение. Консолью называется окно операционной системы, в котором отображаются вводимые с клавиатуры данные и появляются выводимые результаты. Консоль – это средство взаимодействия пользователя с консольным приложением, содержащим код (программу). Для создания консольного приложения необходимо в появившемся окне «Создать проект» выбрать шаблон «Консольное приложение» и нажать OK.
Приложению автоматически присваивается имя ConsoleApplication1 (при желании это имя можно заменить на любое другое). Появляется окно «Редактор кода», в котором отобразится вкладка Program.cs с панелью кода – областью для ввода или редактирования кода. В этой области автоматически создается шаблон программы – код класса Program. З а м е ч а н и е . Чтение последнего абзаца нужно совмещать с выполнением описанных действий на компьютере, что позволит снять возникающие при чтении вопросы. Во внутренних фигурных скобках остается вписать операторы, которые должны быть выполнены этой программой. Каждый оператор заканчивается точкой с запятой: int r = 3; Console.WriteLine(r); Console.ReadKey(); При наборе одной или нескольких первых букв выпадает список, из которого предлагается выбрать возможный в данном контексте нужный элемент кода, например, имя переменной. Далее нужно щелкнуть по нему 2 раза или нажать клавишу Enter. Элемент кода появится в заданном месте программы. Первый оператор (присваивания) задает тип (в данном примере int – целый) и значение переменной r. Второй – выводит на
экран (консоль) значение r. В соответствии с этим оператором на экране появляется окно и в него выводится значение (в данном примере 3). Третий оператор помещен здесь, чтобы задержать результат на экране, пока не будет нажата какая-либо клавиша. В противном случае результат очень быстро исчезнет с экрана. Убедитесь в этом сами. Выполнить программу можно, нажав клавишу F5 (или Ctrl/F5, см. гл. 9). В написанном консольном приложении из предлагаемого шаблона кода необходимыми являются только следующие строки: using System; class Program static void Main(string[] args) Первая строка – директива using – разрешает использование типов, которые содержатся в пространстве имен System библиотеки классов .NET Framework. Пространство имен System содержит фундаментальные и базовые классы. В данном примере директива using обеспечивает доступ к структуре int и классу Console. Вторая строка объявляет класс с именем Program с помощью ключевого слова class (классу может быть задано любое имя). Содержимое класса – метод (методы) класса – задается в фигурных скобках. В последней строке объявляется метод Main. Стандартное содержимое скобок может быть опущено, т.е. эта строка может иметь вид static void Main() Таким образом, программа для нашего примера может выглядеть так: using System; class Program { static void Main() { int r = 3;//инициализация переменной Console.WriteLine(r); Console.ReadKey(); } }
З а м е ч а н и е . Текст, расположенный в строке после //, является комментарием и при выполнении программы игнорируется. Здесь в классе Program определен один метод static void Main (смысл терминов static и void см. в гл. 5). Метод Main должен быть обязательно в любой программе. Именно методу Main передается управление при запуске приложения. Метод – это оформленная специальным образом последовательность инструкций (операторов) для выполнения каких-либо действий над объектами (переменными). (Более строгое и развернутое определение дается в гл. 5.) Выполнение этих инструкций начинается после вызова метода из другого метода указанием его имени и необходимых аргументов (последнее не относится к методу Main). Метод является некоторым аналогом процедур (функций) в алгоритмических языках. Метод Main имеет особый статус. Он является точкой входа каждого приложения C# и вызывается при запуске программы. Остальные методы вызываются из метода Main или других методов. Если метод описан в классе, к которому принадлежит и Main, то для его вызова можно указать только имя и аргументы в круглых скобках или пустые круглые скобки, если аргументов нет. Если метод принадлежит другому классу, то для его вызова нужно указать имя класса (или имя экземпляра класса) и после точки имя метода, далее круглые скобки. В скобках указать аргументы метода, если они есть, или пустые скобки, если аргументов у метода нет (примером является вызов методов Console.WriteLine(r) и Console.ReadKey() класса Console в предыдущем примере). В библиотеке имеется большое число готовых методов, сгруппированных в классы по своему назначению. Например, класс Math предоставляет константы и статические методы (термин статические поясним позже) для вычисления тригонометрических, логарифмических и других общих математических функций. Так, для вычисления cos(x) необходимо указать класс и после точки метод: Math.сos(x), см. примеры программ в гл. 1.
1. ОСНОВЫ ЯЗЫКА C# 1.1. Переменные. Типы данных C# имеет две разновидности типов: типы значений и ссылочные типы. Переменные, основанные на типах значений, содержат непосредственно значения. Переменные ссылочных типов сохраняют ссылки (адреса в специально выделенной памяти) на фактические данные. Таким образом, в переменной может храниться или значение, или объектная ссылка. Для обозначения переменных используются идентификаторы: сочетание букв, цифр и знака подчеркивания, начинающееся с буквы. В C# переменные объявляются с определенным типом данных. Тип данных определяет место для хранения переменной, расположение, в котором будет выделена память для переменной во время выполнения программы, способ представления значения переменной в памяти, множество допустимых значений, а также набор операций, которые можно выполнять с этими данными. Так как все переменные в C# являются объектами тех или иных классов или структур, то к сведениям, хранимым в типе, также относится базовый тип, которому он наследует, и содержащиеся в нем члены (методы, поля, события и т.д.). В программах настоящего пособия будем использовать только переменные типа int (принимающие целые значения), double (вещественные значения), string (строка символов), char (отдельный символ) и bool (принимающие значения true (истина) или false (ложь)). Переменные типа int, double, char, и bool являются экземплярами структур и относятся к типам значений. Переменная типа string является экземпляром класса и относится к ссылочным типам, т.е. переменная содержит адрес ячейки памяти, где размещается строка. К ссылочным типам относятся также массивы (см. гл. 3). Более полное перечисление элементарных (встроенных) типов, к которым относятся и упомянутые выше типы, и характеристики типов см. в прил. 2.