Методика и порядок выполнения работы




Лабораторная работа № 22

VISUAL BASIC: ПРОГРАММИРОВАНИЕ ВЕТВЛЕНИЙ

Цель и содержание: освоение навыков составления и отладки программ для решения задач с разветвлениями с использованием условного оператора IF и оператора выбора вариантов.

Теоретическое обоснование

Различают два типа операторов принятия решений: условные операторы и операторы выбора.

Условные операторы используются, когда необходимо, чтобы группа операторов выполнялась при соблюдении определенных условий. Условные операторы бывают двух видов:

1) полная форма:

IF выражение THEN оператор1 ELSE оператор2

2) сокращенная форма:

IF выражение THEN оператор1

Где выражение – логическое условие, принимающее значение истина или ложь;

оператор1, оператор2 – один или несколько операторов, разделенных двоеточием.

Выражение состоит из констант, переменных, операций отношения и логических операций.

Операции отношения. Операции отношения производят сравнение двух величин. Результат сравнения может быть истиной (TRUE, обозначается 1) или ложью (FALSE обозначается 0 ). Например:

Знак операции Проверяемое отношение Пример выражения
= равно а = b
< > не равно а <> b
< меньше а < b
> больше а > b
<= меньше или равно а <= b
>= больше или равно а >= b

Логические операции. К логическим операциям относятся:

- логическое умножение AND;

- логическое сложение OR;

- логическое отрицание NOT.

Например:

Математическое выражение Запись на Qbasic

ax < b x > = a AND x < b

a < xb или cxd x >a AND x <= b OR x >= c AND x<= d

 

Работа операторов: совокупность операторов THEN выполняется, если выражение истинно. Если выражение ложно, выполняется совокупность операторов ELSE. Если слово ЕLSE отсутствует, то управление передается следующему оператору программы.

Такая запись условных операторов называется однострочной.

Можно использовать многострочную форму (блочную) записи оператора IF.

Общий вид:

IF выражение 1 THEN

Операторы 1

ELSEIF выражение 2 THEN

Операторы 2

ELSE

Операторы 3

End IF

При выполнении условного блокового оператора проверяется первое выражение и при его истинности выполняется первый блок операторов. Иначе проверяются все логические условия, следующие за словом ELSEIF до тех пор, пока не будет найдено условие, принимающие значение "истина". В этом случае выполняется блок операторов за словом THEN, иначе выполняется блок операторов за словом ELSE. Блоки ELSEIF и ELSE необязательны.

Пример 1. Даны два числа А и В. Определить максимальное среди них.

Можно применять любой из двух вариантов использования IF:

1. Краткий

max=a

If b>max Then max=b

2. Полный

If a>b Then max=a Else max=b

Пример 2. Вычислить значения функции y = .

If x<0 Then MsgBox “Решения нет “,, “ Ф-ция у ” Else MsgBox Sqr (x),,“y= “

Пример 3. Даны два числа А и В. Найти сумму и количество положительных среди них чисел.

Sum=0: Kol=0

If A>0 Then Sum=Sum+A: Kol=Kol+1

If B>0 Then Sum=Sum+B: Kol=Kol+1

Пример 4. Даны два числа А и В. Есть ли среди них положительные?

If А>0 and B>0 Then MsgBox “Оба положительные “,, “ Числа А и В ”

If А>0 or B>0 Then MsgBox “Одно положительное”,, “Среди чисел А и В “

Else MsgBox “Нет положительных”,, “Среди чисел А и В “

Пример 5. Дано число X. Определить, является ли оно положительным, отрицательным или нулем.

strZ=”Значение Х-“

If X > 0 Then

MsgBox ” положительное”,, strZ

Else If X < 0 Then

MsgBox “ отрицательное”,, strZ

Else

MsgBox “ это 0",, strZ

End If

 

Оператор выбора вариантов позволяет на основании анализа значения заданного выражения для проверки выполнять те или иные действия. Общий вид:

SELECT CASE выражение для проверки

CASE список 1

блок 1

………

CASE ELSE

блок n

ЕND SELECT

Где выражение для проверки – любое числовое или символьное выражение, в зависимости от значения которого производится выполнение одного из блоков операторов: блок 1, блок 2,...,блок n;

блок 1, блок 2... – любое количество операторов;

список 1, список 2... – списки выражений, записанных в следующих формах:

– перечень значений, например, CASE 1,3,5;

– выражение TO выражение, например, CASE 5 TO 13– отрезок [5;13];

– IS операция отношения, например, CASE IS < 20 это все числа до 20.

Работа оператора: Если выражение выбора отвечает условиям списка выражений данного блока CASE, то выполняются операторы из этого блока. Если значение выражения не совпадает ни с одним из списка, то выполняется блок операторов, которые написаны после CASE ELSE. После этого управление передается оператору, следующему за END SELECT.

Пример. Вводится целое значение переменной Х. Определить, является оно четным целым из промежутка от 1 до 9 или нечетным целым из этого промежутка, либо вообще не попадает в него.

Dim strZ As String, X As Single

X = Val (InputBox(“Введите значение X”))

StrZ=”Значение Х-“

SELECT CASE X

CASE 1, 3, 5, 7, 9

MsgBox " - целое нечетное ",, StrZ

CASE 2, 4, 6, 8

MsgBox " - целое четное "",, StrZ

CASE ELSE

MsgBox " не в промежутке",, StrZ

END SELECT

В этом примере введенное значение Х сравнивается со списками значений, перечисленных после CASE. Если значения совпадают, то выполняется соответствующий оператор MsgBox. Если значение Х не совпадает ни с одним, то выполняется оператор, написанный после CASE ELSE.

 

Методика и порядок выполнения работы

1. Изучите теоретическое обоснование.

2. Выполните пример1:

Для любых а и t, введенных с клавиатуры, вычислить значение функции .

Для этого:

· войдите в среду Visual Basic;

· с помощью стандартного набора инструментов Toolbox создайте экранную форму с командной кнопкой Command1 и надписью «Пуск», нажатием которой запускается программа;

· создайте программный код:

Private Sub Command1_Click ()

Dim а As Integer, t, Y As Single

а = Val (InputBox(“Введите значение а”)) ‘Преобразование введенных

t = Val (InputBox(“Введите значение t”)) ‘ значений в числа

If t<1 Then Y=a*a*log(t) Else If t<=3 Then Y=1 Else Y=exp(t)*cos(a*t)

MsgBox Y,,” Значение Y=”

End Sub

· запустите программный код и выполните программу с разными исходными данными.

· измените в программном коде однострочный условный оператор на многострочный следующим образом:

If t<1 Then

Y=a* a *log(t)

Else If t<=3 Then

Y=1

Else Y=exp(t)*cos(a*t)

End If

Повторите запуск программного кода и сравните результат с предыдущим при одинаковых исходных данных.

3. Выполните пример 2: определить агрегатное состояние воды по введенному значению температуры в Цельсиях.

Для этого:

· войдите в среду Visual Basic;

· с помощью стандартного набора инструментов Toolbox создайте экранную форму с командной кнопкой Command1 и надписью «Пуск», нажатием которой запускается программа;

· создайте программный код:

Private Sub Command1_Click ()

Dim strZ,strB As String, t As Single

t = Val (InputBox(“Введите значение t”))

strZ = “Вода при температуре”

strB = “ градусов Цельсия – ”

SELECT CASE t

CASE IS < 0

MsgBox Str(t)+ strB + “ лед”,, strZ

CASE 0 TO 100

MsgBox Str(t)+ strB + “жидкость”,, strZ

CASE ELSE

MsgBox Str(t) + strB +“ пар ”,, strZ

END SELECT

END

В этом примере функция Str(t) преобразует значение числовой переменной t в строку символов для вывода в окне MsgBox. Оператор MsgBox значения, указанные через «+», объединяет в общую строку.

4. На основании примеров из теоретической части в соответствии со своим вариантом задания 1 (таблица 1) составьте блок-схему решения задачи. Создайте форму и программный код задачи. Отладьте и выполните программу. Результат запишите в отчет.

Таблица 1 – Варианты задания

№ варианта Условие задания 1
  Даны два числа. Большее из этих двух чисел заменить их полусуммой, а меньшее удвоенным произведением.
  Даны величины а 1 и а 2.. Определить, принадлежит ли точка А(а 1, а 2) кругу x2+y2=16.
  Даны три стороны треугольника a, b, c. Определить, является ли такой треугольник равнобедренным, равносторонним или разносторонним.
  Определить и вывести на печать номер четверти, в которой находится точка М с координатами х и у.
  Даны стороны прямоугольника a, b. Если a >b, найти его площадь, если a < b, найти его периметр, если a = b, то найти его периметр и площадь.
  Заданы радиус круга, две смежные стороны прямоугольника. Определить, какая фигура имеет большую площадь, какая меньшую, или они равны?
  Даны три числа. Найти среди них максимальное отрицательное число.
  Заданы радиус круга R и сторона квадрата A. Определить, какая фигура имеет большую площадь.
  Заданы два целых числа. Определить, являются ли они оба четными или оба нечетными, или определить, какое из них четное, а какое нечетное.
  Заданы отрезки a, b, c, d. Проверить, могут ли они служить сторонами прямоугольника.
  Заданы три числа. Определить, есть ли среди них хотя бы одна пара равных по величине.
  Даны три числа. Найти разность между наибольшим и наименьшим среди них.
  Даны три числа. Меньшее среди них заменить на 0.
  Найти минимальное значение из величин, определяемых арифметическими выражениями: а=sin(x), b =cos(x), c =lg(x) при любом, введенном х.
  Заданы три числа А, В, С. Если они все положительны, то найти их корни; если все отрицательны, то возвести каждое из них в квадрат, иначе найти их сумму.
  Даны три разных числа. Найти среди них произведение и количество отрицательных.

 

5. В соответствии с вариантом задания 2 (таблица 2) составьте блок-схему, напишите программу с использованием SELECT CASE.

Таблица 2 – Варианты задания 2

№ варианта Условия задания 2
  Написать программу, которая бы по введенному номеру времени года (1 – зима, 2 – весна и т. д.) вычисляла количество дней в этом сезоне.
  Вводится число D (D<=7). Распечатать соответствующий этому числу следующий день недели (например: если 1 – то завтра вторник).
  С клавиатуры вводится балл, полученные студентом – Вall. Выдать сообщение: «Отлично», если 80<Вall<100; «Хорошо!», если 60<Вall<81; «Удовлетворительно», если 30<Вall<61; «Неудовлетворительно», если Вall<31.
  Вводится число экзаменов N<=20. Напечатать фразу «Мы успешно сдали N экзаменов», согласовав слово «экзамен» с числом N.
  Вводятся числа от 1 по 15. Написать программу, которая выводит соответствующее этому числу значение в 16-й системе.
  Записать программу, которая на ввод знака препинания выдаёт на экран дисплея его название. Например, на ввод точки выдаёт текст «точка».
  Написать программу, которая бы по введенной цифре (1, 5, 10, 50 или 100) выводила ее написание в римской системе счисления
  Вводится число лет (N<=25).Напечатать фразу «Мне N лет», согласовав слово «лет» с числом N.
  Дана масса тела и номер единицы измерения (1 – килограмм, 2 – миллиграмм, 3 – грамм, 4 – тонна, 5 – центнер). Написать программу, которая выводила бы соответствующее значение массы в килограммах.
  Вводится число книг N<=10. Вывести фразу «Я взял в библиотеке N книг», согласовав слово «книга» с числом N.
  Дана емкость винчестера V в мегабайтах. Написать программу, которая бы по введенному номеру единицы измерения информации(1 – бит, 2 – байт, 3 – килобайт, 4 – мегабайт, 5 – гигабайт) переводила V в соответствующую единицу измерения.
  Вводится число программ N<=10. Напечатать фразу «Я разработал N программ», согласовав слово «программа» с числом N.
  Вводится порядковый номер дня в году. Определить, к какому сезону года относится этот день.
  Даны два числа А и В, и знак арифметической операции(+,-,*, /). Написать программу, которая вычисляет А+В, если ввести знак + т. д.
  Вводится порядковый номер дня в году. Определить, какой это день недели, если год начинается с понедельника.
  Вводится целое число -5 ≤c ≤5. Вывести величину числа в словесной форме с учетом знака.

 

Содержание отчета и его форма

Выполните все описанные пункты задания, письменно оформите отчет, который должен содержать:

- тему, цель лабораторной работы;

- общий вид условных операторов;

- условие, блок-схему, программу и результат выполнения индивидуального задания1 и задания 2.

Контрольные вопросы и защита работы

Защита лабораторной работы включает в себя демонстрацию выполненных программ, подготовленный отчет и устный ответ на вопросы:

1. Какие операторы используются для программирования алгоритмов разветвляющейся структуры?

2. Общий вид и принцип работы оператора условного перехода – однострочного.

3. Общий вид оператора выбора вариантов.

4. Как работает оператор выбор вариантов?

5. Cписки выражений записываются в каких форматах?

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: