
- •Министерство образования и науки российской федерации брянская государственная инженерно-технологическая академия
- •Часть I. Язык c# .Net 8
- •2.3. Варианты задании 45
- •3.1. Цель работы 54
- •4.1. Цель работы 63
- •Лабораторная работа №2. Инструкции управления
- •Цель работы
- •Теоретическая часть
- •Варианты задании
- •Порядок выполнения работы
- •Требования к содержанию отчета
- •Контрольные вопросы
- •Лабораторная работа №3. Пользовательские методы
- •Цель работы
- •Теоретическая часть
- •Варианты задании
- •Варианты задании
Министерство образования и науки российской федерации брянская государственная инженерно-технологическая академия
А. В. ЯКОВЛЕВ
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Лабораторный практикум
ЧЕРНОВИК
Брянск 2012
УДК 681.3.06
Яковлев, А. В. Языки программирования: лабораторный практикум / А. В. Яковлев. - Брянск БГИТА, 2011. - 205с.
Излагаются основы языков программирования C# .NET и Visual Basic .NET.
Учебно-методическое пособие предназначено для студентов, обучающихся по направлению бакалавров 230400 «Информационные системы и технологии» профиль «Информационные системы и технологии» (очное обучение).
Ил. 35. Табл. 6. Библиогр. - 10 назв.
Оглавление
ЯЗЫКИ ПРОГРАММИРОВАНИЯ 1
ПРЕДИСЛОВИЕ 5
Часть I. Язык c# .Net 8
1. ЛАБОРАТОРНАЯ РАБОТА №1 Создание консольного приложения на языке C#. Программирование ввода-вывода 8
1.1. Цель работы 8
1.2. Теоретическая часть 8
Листинг 1.1. Файл Ex001.cs 25
Листинг 1.2. Файл Ex001.cs 27
Листинг 1.3. Файл Ex001.cs 27
Листинг 1.4. Файл Ex001.cs 28
1.3. Варианты задании 32
1.4. Порядок выполнения работы 32
1.5. Требования к содержанию отчета 33
1.6. Контрольные вопросы 33
2. ЛАБОРАТОРНАЯ РАБОТА №2. Инструкции управления 34
Логические условия 36
Инструкции выбора 36
Циклы for, while и do-while 36
Листинг 2.3. Файл Ex003.cs 39
2.3. Варианты задании 45
2.4. Порядок выполнения работы 52
2.5. Требования к содержанию отчета 52
2.6. Контрольные вопросы 53
3. ЛАБОРАТОРНАЯ РАБОТА №3. Пользовательские методы 54
3.1. Цель работы 54
3.2. Теоретическая часть 54
Листинг 3.1. Файл Ex004.cs 55
Листинг 3.2. Файл Ex005.cs 56
4. ЛАБОРАТОРНАЯ РАБОТА №24. Массивы и символьные строки 63
4.1. Цель работы 63
4.2. Теоретическая часть 63
Листинг 4.1. Файл Ex006.cs 63
Листинг 4.2. Файл Ex007.cs 65
5. ЛАБОРАТОРНАЯ РАБОТА №5. Классы 69
6. ЛАБОРАТОРНАЯ РАБОТА №26. Графика в C# 70
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ 75
Языки программирования высокого уровня 76
ПРЕДИСЛОВИЕ
В лабораторном практикуме содержатся методические указания к выполнению XX лабораторных работ по дисциплине «Языки программирования».
Целью лабораторного практикума является знакомство с языками программирования C# .NET и Visual Basic .NET. В качестве среды программирования используется MS Visual Studio 2008.
Лабораторные работы, содержащиеся в практикуме, строго структурированы. Все они содержат цель, теоретические сведения, варианты заданий, порядок выполнения лабораторной работы и контрольные вопросы. Варианты заданий имеют различный уровень сложности, который выбирается в соответствии с уровнем подготовки студента.
Символ г? используется для выделения информации, на которую необходимо обратить внимание.
Перед выполнением заданий обязательно ознакомьтесь с теоретическими сведениями.
Ни одна лабораторная работа не может быть зачтена, если отсутствуют доказательства её полной работоспособности.
В лабораторном практикуме содержится большое количество программного кода. Он является примером не только построения программного кода, но и его оформления (назначения имен функций и переменных, применения отступов, пробелов и комментариев, что делает программу легко читаемой).
Большое внимание уделяется комментариям. Идеальным вариантом программы является автодокументируемый код - код, в котором названия переменных и функций обладают именами, раскрывающими их смысл, а сам код прост и понятен. Не всегда удается реализовать эффективный код тривиальным образом. Именно в таких случаях необходимо добавлять комментарии, позволяющие понять логику реализованного кода. О качестве комментариев можно судить по тому, понятна ли логика программы и её назначение без обращения к дополнительной документации.
Требования к созданию и оформлению
программных продуктов.
Все программы необходимо писать в среде Visual Studio 2008 на языке C#.
Имя проекта обязательно должно отражать суть решаемой задачи, а имена методов - соответствовать выполняемым действиям.
Кириллические символы в названиях проектов и переменных использоваться не должны.
Для улучшения читаемости программы должны использоваться пустые строки и отступы.
При оформлении программного кода необходимо придерживаться одного стиля - расположение скобок, отступов и правил именования переменных и функций.
Программы снабжаются достаточным количеством пояснительных комментариев, необходимых для понимания сути алгоритма (в среднем один комментарий на 10 строк программного кода).
Каждая программа снабжается вводными комментариями, поясняющими ее назначение и содержащими сведения об авторе. Эти комментарии располагаются в самом начале программного кода. Пример подобной документации:
////////////////////////////////////////////////////////
//
Лабораторная
работа №1.
//
Тема:
"Консольное
приложение".
//
Вариант
№4.
//
Студент
Иванов С.
М.
//
Группа
ИСТ-101.
////////////////////////////////////////////////////////
ч , Комментарии должны присутствовать только в отчете и отсутствовать в электронной версии программного продукта представляемого к защите.
Не все примеры программ, представленные в практикуме, удовлетворяют требованиям к оформлению лабораторных работ. В первую очередь это объясняется ограничениями, накладываемыми на объем издания.
Требования
к содержанию и оформлению отчета
Отчеты о лабораторных работах выполняются на листах формата A4. С левой стороны листа должно быть оставлено поле шириной 25 мм, с правой - 15 мм, вверху - 20 мм, внизу - 25 мм. Страницы отчета нумеруются вверху в правой части листа. Текст отчета набирается шрифтом Times New Roman Cyr размером 12 пт. Выравнивание строк - по ширине страницы. Межстрочный интервал - одинарный. Абзацный отступ - пять печатных знаков (1,27 см.). Для текста программ используется моноширинный шрифт Courier New размером 10 пт, для заголовков - специальные стили («Заголовок 1», «Заголовок 2» и т. д.).
Отчет о лабораторной работе должен быть сброшюрован и сшит степлером. Образец титульного листа отчета приводится в прил. 2.
Для сдачи зачета студент должен иметь:
отчет о лабораторной работе, содержащей введение, алгоритм программы, программный код, снабженный достаточным количеством комментариев, и тестовые расчеты;
готовую к запуску программу, с удаленными комментариями.
Лабораторный практикум предназначен для студентов, обучающихся по направлению бакалавров 230400 «Информационные системы и технологии» профиль «Информационные системы и технологии» (очное обучение), а также может быть полезен и студентам других специальностей, изучающим программирование.
Часть I. ЯЗЫК C# .NET
ЛАБОРАТОРНАЯ РАБОТА №1 Создание консольного приложения на языке C#. Программирование ввода-вывода
Цель работы
Целью лабораторной работы является:
Ознакомление со средой программирования MS Visual Studio C# 2008 (далее - VSC#).
Создание решения, содержащего один проект простейшего консольного приложения.
Выполнение программирование консольного ввода-вывода.
Теоретическая часть
На первоначальном этапе обучения программированию нет необходимости в программировании сложных графических элементов интерфейса, таких как меню и диалоговых окон. Поэтому мы будем программировать так называемые консольные приложения Windows. Консольным приложением называется программа, разработанная для Windows и имеющая только текстовый интерфейс. Такой интерфейс еще называют интерфейсом командной строки. Консольных приложений существует достаточно много, обычно это программы которым не требуется сложный графический интерфейс.
Для создания консольного приложения выполните следующие шаги.
Запустите VS.
Выполните команду меню File| New Project.
В появившемся диалоговом окне New Project (рис. 1.1) в списке Project types выберите тип проекта Visual C# для Windows, а в списке Templates выберите Console Application.
Снимите флажок Create directory for solution.
В строчном редакторе Name введите имя нашего первого проекта, например, Ex001.
Нажмите на кнопку Browse... и выберите место расположения решения. В нашем случае это диск E: \.
Нажмите на кнопку OK.
New Project
£roject
types:
Templates:
Smart
Device Test Win32 Database Projects Other Languages Visual Basic
Visual C# Windows Web
Smart
Device
Office
Database
Reporting
Test
WCF
Workflow
Visual Studio installed templates Windows Forms Application £j?)WPF Application -ic5 Console Application ip Windows Sen/ice I^JWPF User Control Library My Templates
.jj Search Online Templates...
ijEl Class Library
[jS]WPF 8rowser Application
JE Empty Project
<f3 WPF Custom Control Library
^Windows Forms Control Library
A project for creating a command-line application (.NET Framework 3.5)
ExOOl
E:\Ex001
ExOOl
О
Create
directory for solution
Name:
Location:
Solution
Name:
OK
Рис. 1.1. Создание проекта программы
После нажатия на кнопку OK запустится среда VSC# (рис. 1.2) состоящая из меню, панели инструментов, вкладки решения Solution Explorer и окна текстового редактора с вкладкой Program.cs содержащей текст первой программы на языке C#. Большую роль при программировании в среде Visual Studio играет вкладка Solution Explorer. Эта вкладка содержит контейнер с решением
«Solution ’ExOOl’ (1 project)» имеющим тоже название, что и наш проект, а именно ExOOl. Контейнер содержит единственный проект ExOOl. Если щелкнуть мышью по контейнеру проекта, то будет отображено его содержание - контейнеры Properties, References и файл Program.cs с исходным текстом программы на языке C#. Выполнение всех лабораторных работ будет сводиться к редактированию подобного файла.
: ij] - niil - \3 Ш |
& а |
«) ~ у * Ш - ► Debug - |
|
\ Г {В № Ш Ж - |
|
<✓> ExOOl - Microsoft Visual Studio (Administrator)
File Edit View Refactor Project Build Debug Data Tools Test Analyze Window Help
i Process:
Thread:
Solution Explorer - Solut... Д X
a i £ и i m *
Program.cs Start Page
» X
> ExOOl.Program
▼ ij^Main(string[) args)
r
□
Solution
'ExOOl' (1 project) Ё)
JO
ExOOl
Й-
Й21
Properties
Ш-
S
References
Prog ram.cs
Контейнер
проекта Ex001
Контейнер
решения Ex001
с
проектом Ex001
using System.Collections.Generic; using System.Linq; using System.Text;
LZJ
I
class Program {
static void Main(string[] args) {
}
Окно текстового редактора
>
^|Reso...
Class...
Output
Show
output from:
ISoluti..
•г
HI
Ln8
Col 17
Ch 17
INS
Ready
Рис. 1.2. Окно VSC#
После создания проекта, на жестком диске E: \ появится папка ExOO1 с нашим проектом. В этом стоит убедиться, воспользовавшись любым файловым менеджером. Предварительно сохраните результаты работы, выполнив команду меню Save All, или нажмите на клавиши клавиатуры <Ctrl+Shift+S>. Изучите содержимое папки E:\Ex001. Вы увидите, что кроме файла Program.cs, являющегося исходным текстом нашей программы, папка содержит вложенные
папки и довольно большое количество других файлов, являющихся, в какой-то мере вспомогательными файлами, необходимыми для создания нашей первой программы. Содержание папки Ex001 показано на рис. 1.3, а назначение файлов, составляющих проект, указано в табл. 1.1. В пунктирные рамки на рис. 1.3 заключены файлы, пока отсутствующие в нашем проекте. Эти файлы появятся только после создания исполнимого файла нашей программы.
Рис.
1.3. Содержание папки проекта Ex001
Таблица
1.1
Назначение
файлов проекта
Файл
Назначение
файла
Ex001.cs
Файл
с исходным текстом программы
Ex001.csproj
Текстовый
файл проекта. С содержимым файла
можно ознакомиться, открыв его в
любом текстовом редакторе. Двойной
щелчок левой кнопкой мыши по имени
этого файла приводит к запуску среды
VSC#
и
загрузки решения
Ex001.sln
Текстовый
файл решения.
Ex001.suo
Бинарный
файл, хранящий настройки VSC#,
выпол-
|
ненные пользователем |
AssemblyInfo.cs |
Текстовый файл содержащий информацию о создаваемом приложении |
Ex001.exe |
Исполняемый файл приложения |
Ex0 01.pdb |
Файл базы данных программы, содержащий отладочную информацию |
Ex001.vshost.exe |
Служит для увеличения производительности отладчика |
Теперь можно приступать к программированию. Оно может начинается с выполнения некоторых необязательных этапов.
Отредактируйте имя файла Program.cs. Редактирование удобнее всего выполнить во вкладке Solution Explorer. Для этого щелкните правой кнопкой мыши по имени файла Program.cs находящегося во вкладке Solution Explorer и в появившемся контекстном меню выдерите Rename. Введите новое имя файла Ex001.cs, которое совпадает с именем проекта. Одновременно с изменением имени файла, «автоматически» изменится и имя класса Program, содержащего нашу первую программу. Имя класса также получит имя Ex001. Такое редактирование делает проект более наглядным.
Удалите описание пространства имен namespace Ex0 01, вместе с открывающейся и закрывающейся фигурными скобками, обозначающими его начало и конец, выполните редактирование кода программы в соответствие с листингом 1.1.
Листинг 1.1. Файл Ex001.cs
//using System; class Ex001 {
static void Main()
{
}
}
Минимальная и ничего не делающая программа готова, теперь можно выполнить её построение, в результате которого создается exe-файл программы. Для этого выполните команду меню Build | Build Solution или нажмите функциональную клавишу <F7>.
Если все сделано правильно, то ошибок не будет и на вкладке Output, расположенной в нижней части окна VSC# (рис. 1.2), увидите сообщение:
Compile complete — 0 errors, 0 warnings Ex001 -> E:\Ex001\bin\Debug\Ex001.exe
===== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped =====
Запустить созданную программу на выполнение, можно непосредственно из среды VSC#, нажав клавиши клавиатуры <Ctrl+F5>. В результате увидите окно консольного приложения Ex001 (рис. 1.3).
г
Р51
C:\Windows\system32\cmd.exe
CD
(=)
,
*
•
'
Оля
продолжения
нажмите любую клавишу ...
>
<
t
HI
►
Рис.
1.3. Окно первого приложения Ex001
(первая версия)
Для запуска созданной программы можно использовать также любой файловый менеджер или приложение Про в одник. Файл нашей программы расположен в папке E:\Ex001\bin\Debug\ и имеет имя Ex001.exe. При запуске программы с помощью приложения Про одник, окно консольного приложения появится лишь на очень короткое время. Причину такого поведения программы мы скоро рассмотрим.
Все программы на языке C# состоят из классов, их методов и переменных. Наша первая программа состоит из класса Ex001, не содержащего пока никаких переменных и метода с именем Main:
static void Main()
{
}
Методы, в языке C#, это примерно то - же самое, что процедуры и функции в языке Pascal или функции в языке C++. Обычно программисту приходится программировать большое количество методов выполняющих самую различную работу, начиная от рисования в окне приложения различных объектов до решения систем дифференциальных уравнений. Имена этих методов программист задает сам.
Но метод с именем Main - особый метод: он обязательно должен присутствовать в любой программе на C#.
Программа на языке C# начинает свою работу с метода Main. Метод Main является точкой входа в программу.
Все программы на языке C# принадлежат классам, и метод Main не является исключением - он принадлежит классу Ex001. Имя этого класса можно изменять. Понятие класса является ключевым в объектно-ориентированном программировании. Пока мы будем рассматривать класс как некоторое хранилище, в котором размещаются объекты программы: данные и методы.
Дополним метод Main инструкцией, показанной в листинге 1.2 в рамке.
Листинг 1.2. Файл Ex001.cs
//using System; class Ex001 {
static void Main()
{
System.Console.ReadKey();
}
}
Запустите модифицированное приложение из среды VSC# и из среды Windows. Как видите, теперь, при запуске приложения из среды Windows, окно нашего приложения не исчезает с экрана монитора сразу после запуска. Его можно закрыть двумя способами, или щелкнуть левой кнопкой мыши по кнопке «закрыть» окна приложения, или нажать на любую клавишу клавиатуры. Изменившееся поведение приложения объясняется присутствием в исходном тексте программы, вызова метода ReadKey, ожидающий нажатие пользователем любой клавиши клавиатуры. Метод принадлежит классу Console расположенному в пространстве имен System. Такая иерархия, требует определенного синтаксиса при вызове метода ReadKey, заключающегося в наличии оператора «.» (листинг 1.2). Оператор «.» определяет принадлежность объекта (в нашем случае метода ReadKey) определенному классу (Console) и пространству имен (System). Синтаксис можно упростить, удалив комментарий в строке: //using System;
Теперь вызов функции ReadKey упрощается (листинг 1.3). Изменения в тексте программе показаны в рамках.
Листинг 1.3. Файл Ex001.cs
using System;
class Ex001 {
static void Main()
{
Console.ReadKey();
}
}
Говорят, что инструкция:
using System;
делает видимым пространство имен System и позволяет использовать объекты, заключенные в него, без указания их принадлежности этому пространству.
Теперь, наша первая программа готова к программированию консольного ввода-вывода. При вводе данных, информация поступает с внешнего устройства (HD, клавиатура) и записывается в оперативную память. Для хранения поступающей информации необходимо предварительное выделение требуемого объема памяти, что происходит при объявлении переменных определенного типа. Типы переменных, используемые в языке C#, указаны в прил. 1. В листинге 1.4 приводиться пример ввода-вывода с использованием стандартных методов языка C#. Результаты работы программы показаны на рис. 1.4.
Листинг 1.4. Файл Ex001.cs
////////////////////////////////////////////////////////
// Лабораторная работа №1.
// Тема: "Консольное приложение".
// Студент Иванов С. М.
// Группа ИСТ-101. //////////////////////////////////////////////////////// using System;
class ExOO1 {
static void Main()
{
// Объявление переменных и их начальная инициализация. string s1 = "Это литеральная строка."; int i1 = 12; double d1 = 17.56;
// Объявление переменных.
int i2;
double d2;
string s2;
string buffer;
int[] a = new int[4]; // объявление массива.
// Вывод значениий переменных i1 и d1. Console.WriteLine("Первая программа"); Console.WriteLine("Tекст: " + s1); Console.WriteLine("Целая переменная: {0}", i1); Console.WriteLine("flве переменные: {0} и {1}", i1, d1);
// 1. Ввод-вывод строки символов.
Console.Write("Cтрока> "); s2 = Console.ReadLine();
Console.WriteLine("Bведена строка: " + s2);
// 2. Ввод-вывод целого числа.
Console.Write("Целое число> "); buffer = Console.ReadLine();
// Пере од строки число типа int. i2 = Convert.ToInt32(buffer);
Console.WriteLine("Целая переменная: {0}", i2);
// 3. Ввод-вывод вещественного числа. Console.Write("Bещественное число> "); buffer = Console.ReadLine();
// Перевод строки в число типа double. d2 = Convert.ToDouble(buffer);
Console.WriteLine("Bещественная переменная: {0}", d2);
a[0] = 34; a[1] = -90; a[2] = 78; a[3] = 678;
// 4. Ввод элементов массива.
Console.WriteLine("Mассив: {0}, {1}, {2}, {3}", a[0], a[1], a[2], a[3]);
Console.ReadKey();
}
}
Pffiii C:\Windows\system32\cmd.exe
IhJ
П
T
ц
U
елая переменная: 12 Две переменные: 12 и 17,56 Строка> Мы изучаем информатику Введена строка: Мы изучаем информатику Целое число> 67 Целая переменная: 67 Вещественное число> 456,67е+6 Вещественная переменная: 456670000 Массив: 34, -90, 78, 678 < иг
Рис. 1.4. Результаты работы программы Ex001 (вторая версия)
Метод Read предназначен для считывания из потока одного символа. Этот метод как бы приостанавливает работу программы и ждет нажатия пользователем клавиши клавиатуры с каким-либо символом, а при нажатии клавиши <Enter> возвращает прочитанный символ в вызывающий метод.
Метод ReadLine предназначен для считывания из потока строки символов и возврата ее в вызывающий метод. Метод ReadLine как бы приостанавливает работу программы и считывает символы из потока, вводимые пользователем с помощью клавиш клавиатуры, а при нажатии клавиши <Enter> возвращает прочитанную строку символов в вызывающий метод как тип string.
Метод Write предназначен для вывода строки символов.
Метод WriteLine предназначен для вывода строки символов, завершая её вывод выводом символа новой строки.
Варианты задании
С помощью VSC# создайте проект консольного приложения и выполните программирование ввода-вывода пяти данных различных типов (прил. 1), изучите содержание папки консольного проекта и работу функций ввода-вывода.
Порядок выполнения работы
С помощью VSC# создайте простейшее консольное приложение.
Изучите содержание папки проекта.
Выполните программирование консольного ввода-вывода.
Изучите работу функций консольного ввода-вывода.
Требования к содержанию отчета
Отчет о лабораторной работе должен содержать:
формулировку задания;
краткие теоретические сведения;
структуру папки, проект;
листинг программы, содержащий ввод-вывод данных;
Контрольные вопросы
Какой интерфейс носит название интерфейса командной строки?
Перечислите этапы создания простейшего консольного приложения с помощью VSC#.
Перечислите папки и файлы, входящие в проект консольного приложения C#.
Перечислите файлы, входящие в проект консольного приложения и укажите их назначение.
Укажите назначение exe-файла.
Укажите назначение cs-файла.
Укажите назначение csproj-файла.
Укажите назначение sln-файла.
Какие стандартные функции языка C# используются для осуществления консольного ввода-вывода?
Какой файл носит название исполняемого файла?
Какой файл содержит исходный текст программы?