Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по языкам.doc
Скачиваний:
9
Добавлен:
15.08.2019
Размер:
678.91 Кб
Скачать

0

Министерство образования и науки российской федерации брянская государственная инженерно-технологическая академия

А. В. ЯКОВЛЕВ

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

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

ЧЕРНОВИК

Брянск 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.

Лабораторные работы, содержащиеся в практикуме, строго структурированы. Все они содержат цель, теоретические сведения, варианты заданий, порядок выполнения лабораторной работы и кон­трольные вопросы. Варианты заданий имеют различный уровень сложности, который выбирается в соответствии с уровнем подготов­ки студента.

Символ г? используется для выделения информации, на кото­рую необходимо обратить внимание.

Перед выполнением заданий обязательно ознакомьтесь с тео­ретическими сведениями.

Ни одна лабораторная работа не может быть зачтена, если отсутствуют доказательства её полной работоспособности.

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

Большое внимание уделяется комментариям. Идеальным вари­антом программы является автодокументируемый код - код, в кото­ром названия переменных и функций обладают именами, раскры­вающими их смысл, а сам код прост и понятен. Не всегда удается реализовать эффективный код тривиальным образом. Именно в таких случаях необходимо добавлять комментарии, позволяющие понять логику реализованного кода. О качестве комментариев можно судить по тому, понятна ли логика программы и её назначение без обраще­ния к дополнительной документации.

Требования к созданию и оформлению

программных продуктов.

  1. Все программы необходимо писать в среде Visual Studio 2008 на языке C#.

  2. Имя проекта обязательно должно отражать суть решаемой задачи, а имена методов - соответствовать выполняемым действиям.

  3. Кириллические символы в названиях проектов и переменных использоваться не должны.

  4. Для улучшения читаемости программы должны использо­ваться пустые строки и отступы.

  5. При оформлении программного кода необходимо придержи­ваться одного стиля - расположение скобок, отступов и пра­вил именования переменных и функций.

  6. Программы снабжаются достаточным количеством поясни­тельных комментариев, необходимых для понимания сути ал­горитма (в среднем один комментарий на 10 строк программ­ного кода).

  7. Каждая программа снабжается вводными комментариями, поясняющими ее назначение и содержащими сведения об ав­торе. Эти комментарии располагаются в самом начале про­граммного кода. Пример подобной документации:

////////////////////////////////////////////////////////

//

Лабораторная работа №1.

//

Тема: "Консольное

приложение".

//

Вариант №4.

//

Студент Иванов С.

М.

//

Группа ИСТ-101.

////////////////////////////////////////////////////////

ч , Комментарии должны присутствовать только в отчете и отсут­ствовать в электронной версии программного продукта пред­ставляемого к защите.

Не все примеры программ, представленные в практикуме, удовлетворяют требованиям к оформлению лабораторных работ. В первую очередь это объясняется ограничениями, накладываемыми на объем издания.

Требования к содержанию и оформлению отчета

Отчеты о лабораторных работах выполняются на листах форма­та A4. С левой стороны листа должно быть оставлено поле шириной 25 мм, с правой - 15 мм, вверху - 20 мм, внизу - 25 мм. Страницы от­чета нумеруются вверху в правой части листа. Текст отчета набирает­ся шрифтом Times New Roman Cyr размером 12 пт. Выравнивание строк - по ширине страницы. Межстрочный интервал - одинарный. Абзацный отступ - пять печатных знаков (1,27 см.). Для текста про­грамм используется моноширинный шрифт Courier New размером 10 пт, для заголовков - специальные стили («Заголовок 1», «Заголо­вок 2» и т. д.).

Отчет о лабораторной работе должен быть сброшюрован и сшит степлером. Образец титульного листа отчета приводится в прил. 2.

Для сдачи зачета студент должен иметь:

  1. отчет о лабораторной работе, содержащей введение, алгоритм программы, программный код, снабженный достаточным ко­личеством комментариев, и тестовые расчеты;

  2. готовую к запуску программу, с удаленными комментариями.

Лабораторный практикум предназначен для студентов, обучаю­щихся по направлению бакалавров 230400 «Информационные систе­мы и технологии» профиль «Информационные системы и техноло­гии» (очное обучение), а также может быть полезен и студентам дру­гих специальностей, изучающим программирование.

Часть I. ЯЗЫК C# .NET

  1. ЛАБОРАТОРНАЯ РАБОТА №1 Создание консольного приложения на языке C#. Программирование ввода-вывода

    1. Цель работы

Целью лабораторной работы является:

  1. Ознакомление со средой программирования MS Visual Studio C# 2008 (далее - VSC#).

  2. Создание решения, содержащего один проект простейшего консольного приложения.

  3. Выполнение программирование консольного ввода-вывода.

    1. Теоретическая часть

На первоначальном этапе обучения программированию нет не­обходимости в программировании сложных графических элементов интерфейса, таких как меню и диалоговых окон. Поэтому мы будем программировать так называемые консольные приложения Windows. Консольным приложением называется программа, разработанная для Windows и имеющая только текстовый интерфейс. Такой интерфейс еще называют интерфейсом командной строки. Консольных прило­жений существует достаточно много, обычно это программы кото­рым не требуется сложный графический интерфейс.

Для создания консольного приложения выполните следующие шаги.

  1. Запустите VS.

  2. Выполните команду меню File| New Project.

  1. В появившемся диалоговом окне New Project (рис. 1.1) в списке Project types выберите тип проекта Visual C# для Windows, а в списке Templates выберите Console Ap­plication.

  2. Снимите флажок Create directory for solution.

  3. В строчном редакторе Name введите имя нашего первого проек­та, например, Ex001.

  4. Нажмите на кнопку Browse... и выберите место расположения решения. В нашем случае это диск E: \.

  5. Нажмите на кнопку OK.

New Project

£roject types:

Templates:

•NET Framework 3.5

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

Cancel

Рис. 1.1. Создание проекта программы

После нажатия на кнопку OK запустится среда VSC# (рис. 1.2) состоящая из меню, панели инструментов, вкладки решения Solu­tion Explorer и окна текстового редактора с вкладкой Program.cs содержащей текст первой программы на языке C#. Большую роль при программировании в среде Visual Studio играет вкладка Solu­tion 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

3 using System;

using System.Collections.Generic; using System.Linq; using System.Text;

LZJ

I

E) namespace ExOOl {

class Program {

static void Main(string[] args) {

}

Окно текстового редактора

>

^|Reso... Class... Output

Show output from:

ISoluti..

•г

Д X

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

Служит для увеличения производительности отладчика


Теперь можно приступать к программированию. Оно может на­чинается с выполнения некоторых необязательных этапов.

  1. Отредактируйте имя файла Program.cs. Редактирование удобнее всего выполнить во вкладке Solution Explorer. Для этого щелкните правой кнопкой мыши по имени файла Program.cs находящегося во вкладке Solution Explorer и в появившемся контекстном меню выдерите Rename. Введите новое имя файла Ex001.cs, которое совпадает с именем проек­та. Одновременно с изменением имени файла, «автоматически» изменится и имя класса Program, содержащего нашу первую программу. Имя класса также получит имя Ex001. Такое редак­тирование делает проект более наглядным.

  2. Удалите описание пространства имен 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 предназначен для вывода строки символов, завершая её вывод выводом символа новой строки.

    1. Варианты задании

С помощью VSC# создайте проект консольного приложения и выполните программирование ввода-вывода пяти данных различных типов (прил. 1), изучите содержание папки консольного проекта и ра­боту функций ввода-вывода.

    1. Порядок выполнения работы

  1. С помощью VSC# создайте простейшее консольное приложе­ние.

  2. Изучите содержание папки проекта.

  3. Выполните программирование консольного ввода-вывода.

  4. Изучите работу функций консольного ввода-вывода.

    1. Требования к содержанию отчета

Отчет о лабораторной работе должен содержать:

  1. формулировку задания;

  2. краткие теоретические сведения;

  3. структуру папки, проект;

  4. листинг программы, содержащий ввод-вывод данных;

    1. Контрольные вопросы

  1. Какой интерфейс носит название интерфейса командной стро­ки?

  2. Перечислите этапы создания простейшего консольного прило­жения с помощью VSC#.

  3. Перечислите папки и файлы, входящие в проект консольного приложения C#.

  4. Перечислите файлы, входящие в проект консольного приложе­ния и укажите их назначение.

  5. Укажите назначение exe-файла.

  6. Укажите назначение cs-файла.

  7. Укажите назначение csproj-файла.

  8. Укажите назначение sln-файла.

  9. Какие стандартные функции языка C# используются для осу­ществления консольного ввода-вывода?

  10. Какой файл носит название исполняемого файла?

  11. Какой файл содержит исходный текст программы?