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

Основы алгоритмизации и объектно-ориентированного программирования

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

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

 

 
 
 

 

 

 

 
 

 

№ 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. 

Значения и объектные ссылки 

Значение – это двоичное представление данных. Тип данных предоставляет способ представления значения переменной в памяти.  
Значения переменных целых типов представляются в памяти как 
двоичные числа, полученные непосредственно переводом из десятичной системы счисления в двоичную систему счисления (это представление полностью справедливо лишь для положительных чисел). 
Целые числа в памяти представляются точно, и при выполнении операций с целыми числами никаких ошибок не возникает. 
Идея представления в памяти вещественных чисел (конкретные 
способы могут варьироваться) заключается в следующем. Сначала 
число приводится к нормализованному виду, когда целая часть числа 
равна 0, первая цифра после запятой является значащей, а положение 
запятой в числе определяется значением показателя степени 10. Например, число 0,086 в нормализованной форме имеет вид 0,86⋅10–1, 
число 123,45 – 0.12345⋅10–3. При этом цифры, расположенные в нормализованной записи после точки, называются мантиссой, а показатель степени 10 − это порядок. В памяти отдельно представляется 
мантисса и отдельно – порядок. При этом количество бит, предназначенных для мантиссы, определяет точность представления, а количество бит, предназначенных для порядка, определяет диапазон 
представляемых чисел. Если количество цифр в двоичном представлении мантиссы превышает количество отведенных под нее разрядов, то последние двоичные цифры теряются, и число оказывается 
представленным в памяти приближенно. Кроме того, при выполнении арифметических операций ошибки могут накапливаться. Таким 
образом, в общем случае вещественные числа в памяти представляются приближенно и их сравнение на точное равенство невозможно. 
Например, равенство 0,2 + 0,2 + 0,2 + 0,2 + 0,2 = 1 может не выполняться, если левая часть его вычисляется на компьютере (гл. 2, пример 2.6). Обычно вещественные переменные используются для обозначения величин, полученных в результате измерений, которые всегда имеют некоторую погрешность, либо в результате вычислений.  
Символы всегда представлены 16-разрядными кодами Unicode 
(Юникод). Подробнее о символьных данных и операциях с ними см. 
гл. 6. 
Логические переменные могут иметь значение true или false.  

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