
- •Оглавление
- •Предисловие
- •Введение
- •1. Основы языка c#
- •1.1. Переменные. Типы данных
- •Значения и объектные ссылки
- •1.2. Литералы
- •1.3. Операторы объявления. Инициализация переменных
- •1.4. Математические операторы. Выражения
- •Порядок вычисления выражения в программе
- •Приведение и преобразование типов в с#
- •1.5. Логические операторы. Выражения
- •Логические операторы
- •1.6. Перечисление
- •1.7. Основные операторы
- •1.7.1. Условный оператор if
- •1.7.2. Оператор цикла for
- •1.7.3. Оператор while
- •1.7.4. Операторы цикла do-while
- •1.7.5. Оператор выбора switch
- •1.7.6. Оператор безусловного перехода goto
- •1.7.7. Составной оператор (блок)
- •1.8. Ввод-вывод
- •1.8.1. Ввод данных
- •1.8.2. Вывод данных
- •2. Реализация простейших алгоритмов на языке c#
- •2.1. Организация циклов
- •2.1.1. Циклы по счетчику
- •2.1.2. Циклы по условию
- •2.1.3. Вложенные циклы
- •2.2. Организация разветвлений. Разветвления в цикле
- •2.3. Составление программ для обработки потока данных
- •3. Массивы. Типовые алгоритмы обработки массивов
- •3.1. Одномерные массивы и алгоритмы их обработки
- •3.2. Работа с массивами как с объектами
- •3.3. Работа с матрицами
- •Типовые алгоритмы работы с матрицами
- •Вопросы для самопроверки
- •Задание для самостоятельного выполнения
- •4. Структуры и классы
- •4.1. Использование структур
- •Вопросы для самопроверки
- •Задание для самостоятельного выполнения
- •4.2. Использование конструктора экземпляра и других методов при работе со структурами
- •Вопросы для самопроверки
- •Задания для самостоятельного выполнения
- •4.3. Использование классов
- •Вопросы для самопроверки
- •Задания для самостоятельного выполнения
- •5. Методы
- •5.1. Общие положения. Способы передачи параметров
- •5.2. Использование массивов в качестве параметров
- •5.3. Использование делегата для передачи метода в качестве параметра в другой метод
- •Вопросы для самопроверки
- •6. Использование массивов в качестве параметров.
- •Задание для самостоятельного выполнения
- •6. Работа с текстовыми строками
- •Вопросы для самопроверки
- •Задание для самостоятельного выполнения
- •7. Файлы данных (Пространство имен System.Io). Файлы и потоки
- •Вопросы для самопроверки
- •Задания для самостоятельного выполнения
- •8. Разработка приложений с графическим интерфейсом пользователя Windows. Экранные формы
- •Работа с элементом управления TextBox
- •Работа с элементом управления Button
- •Работа с элементом управления RichTextBox
- •Создание объекта Graphics пространства имен System.Drawing для рисования
- •Вопросы для самопроверки
- •Задания для самостоятельного выполнения
- •9. Среда разработки
- •9.1. Создание нового проекта
- •9.2. Сохранение проекта
- •9.3. Открытие существующего проекта
- •9.4. Использование интегрированной среды разработки Visual c#
- •Обозреватель решений
- •Компилятор c# для преобразования исходного кода c# в исполняемую программу
- •Ошибки построения
- •Отладчик Visual Studio для тестирования программы
- •Обозреватель объектов для просмотра методов и классов, доступных в библиотеках
- •Значки обозревателя объектов
- •Приложение 2
- •Приложение 3 Региональные стандарты
М
№ 2056
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС»
Кафедра
инженерной кибернетики
Т.В.
Куренкова
Г.И.
Светозарова
Основы
алгоритмизации
и объектно-ориентированного
программирования
Учебное
пособие
Допущено
учебно-методическим объединением по
образованию в области прикладной
математики и управления качеством
в
качестве учебного пособия для студентов
высших учебных заведений, обучающихся
по направлению подготовки
230400 –
«Прикладная математика»
Москва
2011
УДК 004.45 К93
Рецензент д-р техн. наук, проф. В.А. Поляков (РГУ нефти и газа им. И.М. Губкина) канд. техн. наук, проф. В.Б. Глаголев (МЭИ)
Куренкова, Т.В.
Основы алгоритмизации и объектно-ориентированного К93 программирования : учеб. пособие / Т.В. Куренкова, Г.И. Све- тозарова. – М. : Изд. Дом МИСиС, 2011. – 197 с.
ISBN 978-5-87623-466-7
Рассматриваются вопросы программирования на базе платформы Microsoft .NET Framework. Дается описание современного языка объектно-ориентированного программирования C# в объеме, необходимом для иллюстрации основных понятий объектно-ориентированного программирования. Рассматриваются базовые структуры алгоритмов, типовые алгоритмы работы с массивами, основные приемы программирования, базирующиеся на объектном подходе.
Предназначено для изучения основ алгоритмизации и начального знакомства с объектно-ориентированным программированием на языке C# студентами 1-го семестра, всех направлений, а также для самостоятельного изучения.
УДК 004.45
I |
|
Куренкова Т.В., Светозарова Г.И., 2011 |
Оглавление
Предисловие 5
Введение 6
1. Основы языка C# 11
1.1. Переменные. Типы данных 11
1.2. Литералы 13
1.3. Операторы объявления. Инициализация переменных 14
1.4. Математические операторы. Выражения 15
1.5. Логические операторы. Выражения 18
1.6. Перечисление 19
1.7. Основные операторы 20
1.8. Ввод-вывод 29
2. Реализация простейших алгоритмов на языке C# 34
2.1. Организация циклов 34
2.2. Организация разветвлений. Разветвления в цикле 50
2.3. Составление программ для обработки потока данных 57
3. Массивы. Типовые алгоритмы обработки массивов 62
3.1. Одномерные массивы и алгоритмы их обработки 62
3.2. Работа с массивами как с объектами 79
3.3. Работа с матрицами 88
4. Структуры и классы 110
4.1. Использование структур 110
4.2. Использование конструктора экземпляра и других методов при работе со структурами 117
4.3. Использование классов 125
5. Методы 131
5.1. Общие положения. Способы передачи параметров 131
5.2. Использование массивов в качестве параметров 141
5.3. Использование делегата для передачи метода в качестве параметра в другой метод 145
6. Работа с текстовыми строками 154
7. Файлы данных (Пространство имен System.IO). Файлы и потоки 162
8. Разработка приложений с графическим интерфейсом пользователя Windows. Экранные формы 169
9. Среда разработки 188
9.1. Создание нового проекта 188
9.2. Сохранение проекта 189
9.3. Открытие существующего проекта 189
9.4. Использование интегрированной среды разработки Visual C# 190
Библиографический список 197
ПРИЛОЖЕНИЯ 198
Приложение 1 198
Платформа Microsoft .NET Framework 198
Приложение 2 201
Таблицы встроенных типов 201
Приложение 3 203
Региональные стандарты 203
Предисловие
Современное развитие общества предполагает широкое использование компьютерных технологий в различных сферах деятельности. Умение использовать разнообразные возможности, предоставляемые компьютером, обеспечивают конкурентоспособность специалиста.
Настоящее пособие предназначено для приобретения компетенций в области алгоритмизации задач и разработки приложений на базе объектно-ориентированного подхода с использованием современного языка 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();
При наборе одной или нескольких первых букв выпадает список, из которого предлагается выбрать возможный в данном контексте нужный элемент кода, например, имя переменной. Далее нужно щелкнуть по нему два раза или нажать клавишу 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.