Тема 1. изучение интегрированной среды разработки microsoft visual studio. работа с переменными и арифметическими выражениями на языке visual basic 2012 и .Net framework.
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
К ЛАБОРАТОРНЫМ РАБОТАМ
ПО ДИСЦИПЛИНЕ «Информатика »
Направление подготовки 26.05.06 Эксплуатация судовых энергетических установок
Новороссийск
2015 год
Содержание
ТЕМА 1. ИЗУЧЕНИЕ ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ MICROSOFT VISUAL STUDIO. РАБОТА С ПЕРЕМЕННЫМИ И АРИФМЕТИЧЕСКИМИ ВЫРАЖЕНИЯМИ НА ЯЗЫКЕ VISUAL BASIC 2012 И .NET FRAMEWORK. 2
ЛАБОРАТОРНАЯ РАБОТА №1. 6
ПРИМЕР ВЫПОЛНЕНИЯ ИНДИВИДУАЛЬНОГО ЗАДАНИЯ. 6
ТЕМА 2. РАБОТА С ЭЛЕМЕНТАМИ УПРАВЛЕНИЯ, МЕНЮ И ПАНЕЛЯМИ ИНСТРУМЕНТОВ. ПРОГРАММИРОВАНИЕ ПРОЦЕДУР Sub и Function. 11
ТЕМА 3. ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ЛИНЕЙНОЙ СТРУКТУРЫ. СОЗДАНИЕ КЛАССОВ И ОБЪЕКТОВ. 14
ЛАБОРАТОРНАЯ РАБОТА №3. 19
ПРИМЕР ВЫПОЛНЕНИЯ ИНДИВИДУАЛЬНОГО ЗАДАНИЯ.. 26
ТЕМА 4. ВВЕДЕНИЕ В ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ. СОЗДАНИЕ КЛАССА, ЕГО СВОЙСТВ И МЕТОДОВ. ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩЕЙСЯ СТРУКТУРЫ АЛГОРИТМА. 34
ЛАБОРАТОРНАЯ РАБОТА №4. 40
ТЕМА 5. ЦИКЛИЧЕСКАЯ СТРУКТУРА АЛГОРИТМА. ТАБУЛИРОВАНИЕ. ПОСТРОЕНИЕ ГРАФИКОВ И СПЛАЙНОВ ФУНКЦИЙ. 41
ЛАБОРАТОРНАЯ РАБОТА №5. 40
Option Explicit Off.
На уровне проекта по умолчанию для этой опции установлено On,и поэтому оператор Option Explicit Onнужно задаватьтолько тогда, когда известно, что эта опция была ранее отключена. Однако отключать эту опцию не следует, поскольку объявление типов переменных обеспечивает более надёжную работу программы.
Повысить надёжность программы может и опция Option Strict, которая по умолчанию отключена, т.е. установлена в Off. Для ее включения необходимо в начале программы записать оператор
Option Strict On.
После этого компилятор будет проверять, чтобы все значения, присваиваемые переменным, соответствовали типам, объявленным для этих переменных.
Например, пусть опция Option Strictотключена и имеется программа
Dim a As Integer
a= InputBox (“Введите значение a ”)
Для использования математических и тригонометрических функций необходимо в форме РЕДАКТОРА КОДА ПОМЕСТИТЬ Объявление
Imports System.Math
Метод | Цель |
Abs(n) | Возвращает абсолютное значение n |
Atan(n) | Возвращает арктангенс в радианах |
Cos(n) | Возвращает косинус угла (n). Угол выражается в радианах |
Exp(n) | Возвращает экспоненту |
Sin(n) | Возвращает синус угла n. Угол выражается в радианах |
Sqrt(n) | Возвращает квадратный корень из n |
Tan(n) | Возвращает тангенс угла n. Угол выражается в радианах |
Log(n) | Возвращает натуральный логарифм |
Pow(n,m) | Возвращает |
RND | Возвращает случайное число на отрезке [0,1] |
ЛАБОРАТОРНАЯ РАБОТА №1
Продолжительность 1,5 часа
Целью работы является ознакомление с правилами построения арифметических выражений в интегрированной среде разработки Visual Studio.
Задание
1. Выбрать вариант индивидуального задания.
2. Запустить Visual Studio 2012. Выбрать в меню опцию File и затем New Project.
3. В поле имя (Name) ввести свою фамилию и нажать ОК.
4. Из Панели элементов перетащите на форму требуемые элементы управления (рисунок 2).
5. Двойным щелчком на элементе Button1открыть код «Редактор кода».
6. В процедуре события Button1_Clickввести требуемый код математического выражения. Новая форма отображает в IDE все файлы, необходимые для проекта.
7. В меню Отладка нажать кнопку F5 или щёлкнуть на зелёный треугольник.
8. Получить результаты на компьютере.
9. Проверить правильность полученных результатов.
10. Написать отчёт.
ПРИМЕР ВЫПОЛНЕНИЯ ИНДИВИДУАЛЬНОГО ЗАДАНИЯ.
Задание на разработку проекта. Создать приложение для вычисления следующего математического выражения.
,
и ,
где x, y – исходные данные тип Single и Z – результат выражения.
Решение:
1) Создать новый проект.
2) Создать графический интерфейс пользователя.
3) Установить элементов управления.
4) Написать программный код для вычисления математического выражения.
5) Запустить программу Visual Basic 2012 и получить результаты.
6) Провести проверку результатов.
Блок – схема алгоритма линейной структуры алгоритма для задачи представлена на рисунке 1.
L t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEA/JEPZsMA AADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPwWrDMBBE74H+g9hCL6GRU1JTnCghFAqFnuyYkONi bSxRa2Us1Xb/vgoEehxm5g2zO8yuEyMNwXpWsF5lIIgbry23CurTx/MbiBCRNXaeScEvBTjsHxY7 LLSfuKSxiq1IEA4FKjAx9oWUoTHkMKx8T5y8qx8cxiSHVuoBpwR3nXzJslw6tJwWDPb0bqj5rn6c gqms86/qqNemludXe/IX0y83Sj09zsctiEhz/A/f259awQZuV9INkPs/AAAA//8DAFBLAQItABQA BgAIAAAAIQDw94q7/QAAAOIBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1s UEsBAi0AFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAAAAAAAAAAAAAAAALgEAAF9yZWxzLy5yZWxz UEsBAi0AFAAGAAgAAAAhADMvBZ5BAAAAOQAAABAAAAAAAAAAAAAAAAAAKQIAAGRycy9zaGFwZXht bC54bWxQSwECLQAUAAYACAAAACEA/JEPZsMAAADaAAAADwAAAAAAAAAAAAAAAACYAgAAZHJzL2Rv d25yZXYueG1sUEsFBgAAAAAEAAQA9QAAAIgDAAAAAA== " strokeweight="2pt">
начало |
Ввод x, y |
Вывод z |
exit |
Рисунок 1 – Линейная структура алгоритма
Интерфейс пользователя, созданный в Дизайнере для данной задачи с названиями всех использованных элементов управления, показан на рисунке 2. Кнопки представляют собой прямоугольники, размеры и цвет которых можно изменять. Для этого надо установить их свойства (Properties). Наиболее очевидным является свойство Text, которое определяет текст на экране и отображает его в установленном шрифте или начертании шрифта, определяемом свойством Font.СвойствоBackColorопределяетцвет элемента.
В работе установлены следующие свойства, приведены в таблице №2.
Таблица 2 Элементы управления
Объект | Свойство | Параметр |
Button1 | Text | Start |
Button2 | Text | “Quit” |
Label1 | Text | “Formula” |
Label2 | Text | “x=” |
Label3 | Text | “y=” |
Label4 | Text | “Result” |
TextBox1 | Multiline | False |
TextBox2 | Multiline | False |
TextBox3 | Multiline | True |
PictureBox1 | Image | Image File |
Form1 | Font Text | Microsoft Sans Serif; 14,25 pt Greating Arithmetic Expressions |
Для создания Image Fileнадов редакторе Microsoft Equation 3.0 напечатать формулу и скопировать ее в Paint, оттуда сохранить на диск с расширением .jpg, запомнить имя и затем импортировать файл в PictureBox1 (Choose Image→Local Resource).
Рисунок 2 – Интерфейс пользователя с названиями всех использованных элементов управления
Dim x, y, z As Single
Все переменные имеют один тип Single. Можно объявлять любое количество переменных в одной строке.
Использование функции InputBoxпроизводит ввод входных данных, для этого надо присвоить переменной значение данной функции. При этом текстовое значение InputBoxнеобходимо конвертировать в числовое (Single) при помощи метода CSng( ). Числовые значения x, y, z для пересылки в текстовые окна (TextBox.Text) преобразуются в символьные при помощи метода CStr( ). Преобразование необходимо выполнять, поскольку включена опция Option Strict On.
Рисунок 3 – Программный код
Рисунок 4 – Результат выполнения приложения
СОДЕРЖАНИЕ ОТЧЁТА.
1. Название отчёта.
2. Титульный лист.
3. Индивидуальное задание.
4. Запись математической формулы на языке Visual Basic 2012.
5. Форма проекта с элементами управления.
6. Результаты выполнения приложения.
7. Доказательство правильности работы программы.
Варианты заданий | x | y | Формула |
-2,1 | -5,62 | ||
1,2 | 4,6 | ||
1,81 | 7,3 | ||
21,8 | 23,2 | ||
21,8 | 3,5 | ||
1,7 | -2,1 | ||
12,6 | 3.92 | ||
-4,7 | 0,55 | ||
21,3 | 0,2 | ||
2,5 | 3,6 |
End Class
Кроме ключевого слова Public иногда применяются и другие модификаторы доступа элементам класса, такие как Private, Protected или Friend.
Рассмотрим, например, следующий код класса mClass:
Public Class mClass
Private fox As String
Private fox1 As Integer
End Class
Здесь объявлены две закрытые (Private) переменных Fox и Fox 1, при этом Fox имеет символьный тип, а Fox 1является числовой переменной целого типа.
Можно управлять зоной видимости поля с помощью следующих ключевых слов:
● Private – доступно только для кода внутри класса;
● Friend – доступно только коду в рамках проекта;
● Protected – доступно только классам, наследующим другие классы;
● Public – для кода вне класса и любых проектов, которые ссылаются на сборки.
В большинстве случаев поля объявляются с помощью ключевого слова Propert тогда они доступны только для кода в пределах каждого экземпляра класса. Другую видимость поля надо выбирать очень аккуратно, поскольку она позволяет коду за пределами класса непосредственно взаимодействовать с любыми переменами, а это означает, что значение переменной может измениться, но код класса не будет знать об этих изменениях.
Не следует путать поля со свойствами (Property). В Visual Basic 2010 Property представляет собой метод, направленный на получение и установку значений, тогда как поля– это переменные внутри класса, которые могут содержать значения, объявленные как свойства.
Если необходимо, чтобы значение поля было доступно за пределами объекта, тогда надо использовать свойство,например:
Public Class mClass
Private Fox As String
Private Fox 1 As Integer
Public Property Name ( ) As String
Get
Return fox
End Get
Set (BuVal Value AS String)
Fox=Value
End Set
End Property
End Class ……………….
Внутри тела свойства используются специальные процедура Get..
ЛАБОРАТОРНАЯ РАБОТА №3
Продолжительность 1,5 часа
Цельюработы является освоение техники объектно-ориентированного программирования.
Вопросы, которые должны быть изучены:
1. Что такое класс?
2. Для чего следует использовать закрытые переменные в классе?
3. Что такое свойство класса и как оно создаётся?
4. Что такое метод класса и способ создания нового метода?
5. Как объявить переменную объекта при использовании класса?
6. Как установить свойства для переменного объекта?
7. В чём разница между ключевыми словами Private и Public?
8. Как наилучшим способом сохранить внутреннее значение свойства класса?
Задание
1. Выбрать вариант индивидуального задания из таблицы 3.
2. Написать код программы для этого задания.
3. Запустить Visual Studio 2012. В меню Visual Studio File щёлкнуть New Project.
4. В окне New Project выбрать шаблон Windows Application.
5. В поле Name ввести lab2 и нажать кнопку ОК. Открывается новый проект.
6. Из области элементов (Toolbox) перенести на форму необходимые для выполнения работы кнопки, метки и текстовые поля.
7. Выбрать команду Add New Item (Добавить новый элемент) в меню Project. Откроется диалоговое окно.
8. Выбрать шаблон Class. Имя по умолчанию Class1.vb. Щёлкнуть на кнопке Add. Класс отображается в редакторе кода. Объявить переменные класса, создать свойства и метод.
9. Дважды щёлкнуть Button1, чтобы открыть редактор кода. Создать объект на основе нового класса и, наконец, создать код для индивидуального задания.
10. В меню Debug интегрированной среды разработки Visual Basic 2012 нажать кнопку Start Debugging.
11. Получить результаты на компьютере.
12. Проверить правильность результатов.
13. Составить отчёт о проделанной работе.
Индивидуальное задание
Создать проект для реализации алгоритма с простой линейной структурой. Интерфейс пользователя должен включать форму со следующими элементами:
1) Panel;
2) элементы управления Button;
3) элементы управления Label;
4) Элементы управления TextBox.
Программная часть должна иметь класс и объект на основе класса. Хороший стиль программирования подразумевает объявление переменных в классе как Private, например:
Private p As Single
В этом случае переменная p будет недоступна для изменений вне класса.
Необходимо также создать свойство класса, используя процедуру Property. Объявление процедуры свойства является аналогичным объявлению стандартной процедуры, но с некоторыми различиями. Первое слово в объявлении процедуры свойства просто назначает область видимости свойства (обычно Private или Public). Свойства, объявленные как Public, доступны для кода вне класса.
После создания свойства надо запрограммировать методы и объявить объективные переменные для использования класса.
Таблица 3 Задание
С любой квадратной матрицей порядка 2 , элементы, которой вещественные числа, можно связать вещественное число которое называется определителем матрицы. Создать класс для вычисления определителя порядка 2 и проверить следующее свойство определителей = | |
Пусть точки , , - координаты вершины треугольника. Создать класс для определения его площади по формуле , где в правой части формулы записан определитель порядка 2. | |
С матрицей порядка 3 свяжем вещественное число , которое называется её определителем (разложением матрицы по первой строке). Используя класс для вычисления определителя порядка 2 и данное разложение, найти значение определителя порядка 3. | |
С матрицей порядка 3 свяжем вещественное число , которое называется её определителем (разложением матрицы по второй строке). Используя класс для вычисления определителя порядка 2 и данное разложение, найти значение определителя порядка 3. | |
Для матрицы из задачи 4 можно написать выражение . Оно называется разложением матрицы по второму столбцу. Используя класс для вычисления матрицы порядка 2 и данное разложение, вычислить определитель матрицы порядка 3. | |
Для матриц из задачи 4 можно также написать выражение . Оно называется разложением матрицы по первому столбцу. Используя класс для вычисления матрицы порядка 2 и данное разложение, вычислить определитель матрицы порядка 3. | |
Пусть и корни квадратного уравнения , . Тогда сумма корней , а произведение корней Создать класс для определения суммы и произведения корней. Кроме того, найти корни с помощью формулы . Найти сумму и произведение этих значений и сравнить результаты. | |
Создать класс для определения расстояния d от точки до прямой Ax+By+C=0, где d равно абсолютной величине Отобразить в текстовом окне расстояние от точки (-2;4) до прямой 4х-7у+2=0. | |
Создать класс для определения координат (х; у) точки пересечения двух прямых и при . Для этого необходимо решить систему двух уравнений (приравняв их друг к другу). | |
Создать класс для нахождения площади окружности . Используя этот класс, найти площадь кольца с внутренним и внешним ресурсами . | |
Даны длины сторон треугольника a, b, c. Создать класс для определения его по площади по формуле Герона , где . Найти значение радиуса описанной окружности и значение радиуса вписанной в него окружности . | |
Даны два вектора, определяемые их координатами и . Создать класс для определения их длины найти их скалярное произведение . Длина вектора d выражается через его координаты как . | |
Создать класс для определения скалярного произведения двух векторов , где d длина вектора (см. предыдущую задачу) и угол должен быть введён в текстовое поле. | |
Создать класс, содержащий числитель и знаменатель простой дроби, и найти сумму двух дробей . | |
Создать класс, содержащий числитель и знаменатель простой дроби, и найти разность двух дробей . | |
Создать класс, содержащий числитель и знаменатель простой дроби, и использовать его для определения значения простой дроби . | |
Создать класс для определения алгебраической формы комплексного числа z = a + bi. Использовать этот класс для определения суммы двух комплексных чисел . | |
Создать класс для определения алгебраической формы комплексного числа z = a + bi. Используя его, вычесть из : . Пример. Вычесть (2 + i) из (6 – 5i) Решение: (6 – 5i) – (2 + i) = (6 – 2) + (- 5 – 1) = 4 – 6i или (6 – 5i) – ( 2 + 1) = (6i) – 5 + ( - 2 – i) = (6 – 2) + ( - 5 – 1) i = 4 – 6i. | |
Создать класс для определения алгебраической формы комплексного числа z = a + bi. Используя этот класс для поиска произведения двух комплексных чисел . | |
Создать класс с определение алгебраической формы комплексного числа z = a + bi. Использовать его для деления комплексных чисел . Пример. Разделите 5 – 5i на – 1 +3i Решение: . | |
Выпуклый пятиугольник задан координатами его вершин. Используя класс из задачи 2, найти площадь этого пятиугольника. | |
Трапеция задана координатами её вершин. Используя класс из задачи 2, найти её площадь. |
Содержание отчёта
1. Название отчёта.
2. Титульный лист.
3. Индивидуальное задание.
4. Класс и программы, которые использованы в проекте.
5. Форма проекта с элементами управления.
6. Результаты выполнения приложения.
7. Доказательство правильности работы программы.
ПРИМЕР ВЫПОЛНЕНИЯ ИНДИВИДУАЛЬНОГО ЗАДАНИЯ
Задание на разработку проекта.Создать проект для решения следующей задачи:
Создать класс для определения расстояния между двумя точками плоскости заданными своими координатами. Ввести координаты треугольника и рассчитать его периметр.
РЕШЕНИЕ
1. Создать новый проект.
2. Создать графический интерфейс пользователя.
3. Установить свойства элементов управления.
4. Создать базовый класс.
5. Написать программный код.
6. Запустить Visual Basic 2010 и получить результаты.
7. Выполнить анализ результатов.
Для решения задачи надо найти длины всех сторон треугольника, используя формулу определения расстояния d между двумя точками плоскости и :
Для этого создадим класс distanceClassсо свойством d1,которое будем использовать для передачи длины каждой стороны в программу, и методом length(), реализующим указанную формулу.
Создадим для класса distanceClass объект с именем distance.Чтобы обратиться к свойствам класса, надо указать имя объекта и через точку – имя свойства, т.е. distance.dl.Для обращения к методу класса с именем lengthнадо также указать имя объекта и через точку – имя метода с перечисление всех его параметров, заключённые в круглые скобки: distance.length(x1,y1,x2,y2). Для разработки проекта нужно нажать кнопку File вменю и New Project, а за тем выбрать Windows From Appliсation, и присвоить ему имя tab3.
Нажать за тем команду Project и выбрать Add Class (добавить класс). Диалоговое окно Add New Item (добавление нового элемента) предоставляет возможность изменить имя класса по умолчанию. Пусть это новое имя будет distanceCiass.vb; и его надо напечатать в поле имени и нажать кнопку Add (добавить). Visual Studio откроет пустой класс в Редакторе кода. После этого надо объявлять переменную класса
Private d As Single
Переменная d является закрытой, и чтобы получить ее за пределами класса вводиться свойство d1() для передачи значения расстояния в основную программу:
Public Property d1() As String
Get
Return d
End Get
Set(ByVal value As String)
d=value
End Set
End Property
Затем надо написать код метода, позволяющего находить расстояние между точками X(a, b) и Y(a1, b1):
Public Sub Length(ByRef a As Single, ByRef As Single, ByRef al As single, ByRef bl As Single)
End Sub
Блок схема алгоритма для процедуры Sub Button_Click изображена на рисунке 1.
Создание объектаdistance Для класса distanceClass |
Ввод координат вершин треугольника |
Вывод координат в текстовые окна |
Вызов метода length() |
Определение текста |
Отображение результатов |
exit |
Рисунок 5
При разработке проекта следует использовать графический пользовательский интерфейс, представленный на рисунке 6.
Рисунок 6 – Графический пользовательский интерфейс
В таблице 4 приведены элементы управления, используемые в форме на рисунке 6.
Объект | Свойство | Параметр |
Panel | Dock | Вверх |
Button1 | Text | “Ввод координат вершин треугольника и расчёт его периметра” |
Button2 | Text | “Выход” |
Label1 | Text Dock | “x1” |
Label2 | Text | “y1” |
Label3 | Text | “x2” |
Label4 | Text | “y2” |
Label5 | Text | “x3” |
Label6 | Text | “y3” |
Label7 | Text | “периметр=” |
Label8 | Text | “координаты вершин треугольника” |
TextBox1 | Multiline Dock | True Right |
TextBox2 | Multiline | False |
TextBox3 | Multiline | False |
TextBox4 | Multiline | False |
TextBox5 | Multiline | False |
TextBox6 | Multiline | False |
TextBox7 | Multiline | False |
Form1 | Font Text | Лабораторная работа №2. Создание собственного базового класса. |
Программы на Visual Basic 2012. Класс distanceClass включает в себя закрытую переменную d, свойства d1() b метод length(). В редакторе кода distanceClass выглядит следующим образом (рисунок 7).
Рисунок 7 – Диалоговое окно редактора кода distanceClass
Программа для элементов управления Button1 и Button2 представлены на рисунке 8.
Рисунок 8 – Диалоговое окно редактора кода Button1 и Button2
Результат работы приложения показан на рисунке
Рисунок 9 – Результаты работы
СОДЕРЖАНИЕ ОТЧЁТА.
8. Название отчёта.
9. Титульный лист.
10. Индивидуальное задание.
11. Запись математической формулы на языке Visual Basic 2012.
12. Форма проекта с элементами управления.
13. Результаты выполнения приложения.
Доказательство правильности работы программы.
Class Account
Private AccountNumber As String
Private AccountNumber As Decimal
Public Sub UpdateBalance()
’код изменения баланса счета
End Sub
ReadOnly Property Balance() As Decimal
Get
Return AccountBalance
End Get
End Property
End Class
Одна из причин, по которой нужно создавать классы, состоит в том, что если создан класс для определённого предмета, то в этом случае можно повторно использовать этот класс в любом проекте. Например, если создан класс для контроля посещаемости занятий некоторого факультета, то этот класс можно использовать и для других факультетов. Хотя, программы, где используется данный класс, будут те же самые. Каждый студент имеет фамилию, имя, изучает известные дисциплины, по каждой их которых за ним числится определённое количество пропущенных часов.
Класс может быть создан одним из трёх способов: как код в форме для проекта Windows Application, как код в модуле проекта и как код, созданный в отдельном проекте библиотеки Class Library.
Методами класса являются обычные процедуры Sub или Function. Так, в предыдущем примере процедура Sub с именем UpdateBalance() является методом класса Account, и она предназначена для изменения и обновление остатка на счёте. Большинство методов является открытыми (Public), однако можно создавать методы, которые могут быть, использованы только самим классом: для этого надо объявить процедуру как закрытую (Private), и тогда она не будет видима и не сможет быть вызвана за пределами данного класса. Можно менять код закрытой процедуры, но все остальные методы, которые используют этот код, будут по-прежнему работать.
Рассмотрим далее вопросы создания классов, методы которых используют структуры разветвлений. Линейные структуры в основном реализуются операторами присваивание. Однако такие операторы всегда выполняются последовательно друг за другом в том порядке, как они записаны. В то же время при решении многих задач некоторые операторы должны выполняться, а некоторые ‑ нет (в зависимости от определённых условий). Для реализации подобных действий используются структуры разветвлений.
Технология программирования, использующая структуры, была введена для преодоления трудностей, возникающих по мере усложнения задач, решаемых на компьютере. Основная идея структурного подхода состоит в том, что программа представляет собой комбинацию или вложение стандартных структур и в том, и что каждая структура имеет только один вход и только один выход. Выведем некоторые обозначения. Пусть L и L1— это некоторые отношения (условия), например, a ˃ b или х ˃ 0 и т.п. Пусть S, S1, S2 ‑ некоторые действия, например, y = x, или z = m+n,и т.п.
Структурой разветвления(структурой выбора) называется такая структура, которая обеспечивает выбор из двух направлений реализуемого процесса. Выбор зависит от условия, имеющегося в данной структуре.
Имеется две структуры разветвления. Первая из них структура двойного ветвления,применяется, когда имеются две группы действия и структура обеспечивает выбор одной из них. Второй тип структуры разветвления, упрощённая развилка(или структурой типа «обход») используется, когда имеется только одна группа действий и структура либо выбирает их, либо пропускает: рассмотрим структуру двойного ветвления:
Вход |
L |
S1 |
S |
Нет |
Да |
Выход |
Рисунок 10 – Полная структура алгоритма разветвление
IF L Then
S
Else
S1
End If
Зона действия блочного оператора IF хорошо обозрима, поскольку каждый блочный IFвсегда заканчивается ключевыми словами. После ключевых слов THEN, ELSE и END IF в строке больше ничего нельзя писать. В то же время число операторов в группе S и в группе S1 ничем не ограничено, что значительно расширяет возможности блочного оператора IF и существенно облегчает процесс программирования, особенно когда алгоритм содержит сложные логические условия. На рисунке 11 изображено вложение одной структуры IF в другую такую же структуру IF (пусть вложение необходимо сделать, когда условие L, ложно, т.е. при «нет»)
L t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAQ76zL8EA AADbAAAADwAAAGRycy9kb3ducmV2LnhtbERPz2uDMBS+F/o/hFfYpcw4B6PYpjImg+4wYba7P8yr ysyLJNHa/345DHb8+H4fisUMYibne8sKnpIUBHFjdc+tgsv5/XEHwgdkjYNlUnAnD8VxvTpgru2N v2iuQytiCPscFXQhjLmUvunIoE/sSBy5q3UGQ4SuldrhLYabQWZp+iIN9hwbOhzpraPmp56MAqJ7 kGVdfX6X1ZSdqm32MfSZUg+b5XUPItAS/sV/7pNW8BzXxy/xB8jjLwAAAP//AwBQSwECLQAUAAYA CAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBL AQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVsc1BL AQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4bWwu eG1sUEsBAi0AFAAGAAgAAAAhAEO+sy/BAAAA2wAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9kb3du cmV2LnhtbFBLBQYAAAAABAAEAPUAAACGAwAAAAA= " strokecolor="white">
Вход |
Выход |
L |
S1 |
S |
Нет |
Да |
L1 |
S2 |
Рисунок 11– Полная структура разветвляющегося алгоритма
Программа описывающая разветвляющую структуру алгоритма на рисунке 11:
If L Then |
S |
Else |
If L1 Then |
S1 |
Else |
S2 |
End If |
End If |
ЛАБОРАТОРНАЯ РАБОТА №4
Продолжительность 1,5 часа
Цель работы является изучение структур разветвлённых алгоритмов и освоение методов работы с классами и объектами в среде Visual Studio.
Вопросы, которые должны быть изучены:
1. Типы структур разветвления.
2. Как создаётся объект класса?
3. Почему внутренние переменные класса должны быть закрытыми?
Задание
1. Выбрать вариант индивидуального задания из таблицы.
2. Написать программы методов класса для реализации задания двумя способами: с использованием двойного ветвления и обхода.
3. Запустить Visual Studio 2012. Вменю Visual Studio File щелкнуть New Project.
4. В окне New Project выбрать шаблон Windows Application.
5. В поле name ввести Lab4 и нажать кнопку ОК. Откроется новый проект.
6. Из области элементов перенести на форму необходимые для выполнения работы кнопки, метки и текстовые поля.
7. Выбрать команду Проект Добавить класс.
8. Выбрать шаблон класса. Имя по умолчанию Class1.vb.
9. Создать 4 командные кнопки: Button1 – для вызова метода ввода данных, Button2 – для вызова метода, реализующего алгоритм двойного ветвления, Button3 – для вызова метода, реализующего алгоритм обхода, Button4 – для выхода.
Операторы цикла
Next i
Счетчик (или параметр) цикла предназначен для обеспечения повторений операторов цикла. Он принимает начальное значение, которое затем увеличивается на величину шага, и работает до тех пор, пока не будет достигнуто его окончательное значение. Шаг изменения параметра цикла должен быть указан после слова Step. Если шаг равен 1, то его можно не писать. После ключевого слова Next обычно указывается имя параметра цикла (Next i), например:
For I =1 to n
……..
Next i
Если обозначить начальное значение a, конечное значение bи шаг изменения h,тогда количество повторений цикла, необходимое для вычисления всех значений функции
1. Задача
Дан массив действительных чисел A(n). Найти среднее арифметическое и среднее геометрическое его элементов.
Sub sra()
Dim i As Integer
Dim k As Integer
Dim n As Integer
Dim Sr As Single
Dim Sg As Single
Dim p As Single
Dim S As Single
Dim a() As Single
n = Val(InputBox("n="))
ReDim a(1 To n)
Debug.Print "Ìàññèâ:"
For i = 1 To n Step 1
a(i) = Val(InputBox("Ââåäèòå î÷åðåäíîé ýëåìåíò ìàññèâà"))
Debug.Print a(i)
Next i
Debug.Print
S = 0
k = 0
p = 1
For i = 1 To n Step 1
S = S + a(i)
k = k + 1
p = p * a(i)
Next i
For i = 1 To n Step 1
Sr = S / k
Sg = Sqr(p ^ (1 / k))
Next i
Debug.Print "Sr="; Sr
Debug.Print "Sg="; Sg
End Sub
1. Дан массив целых чисел A(n). Найти сумму и количество тех элементов, которые делятся на 3, не делятся на 5.
Sub qwe()
Dim i As Integer
Dim k As Integer
Dim n As Integer
Dim a() As Single
n = Val(InputBox("n="))
ReDim a(1 To n)
Debug.Print "Массив:"
For i = 1 To n Step 1<