Операторы условного и безусловного перехода
Программирование структуры ветвления
1. Определение разветвляющейся программы
Разветвляющейся называется программа, которая является записью разветвляющегося алгоритма, то есть выбирается один из нескольких возможных вариантов вычислительного процесса.
В разветвляющихся программах часто требуется обеспечить иной порядок выполнения операторов в отличие от линейных программ. Для этой цели служат операторы передачи управления.
Рассмотрим 2 из них.
2. Виды операторов передачи управления
Оператор безусловного перехода– служит для перехода из одной строки программы к другой.
Общий вид оператора:
GOTO n
Где GOTO – имя оператора («перейти к…»)
n – метка
В качестве метки используются натуральные числа с двоеточием после них. Метка указывается только в начале строки. Если в строке программы несколько операторов, то нельзя ставить метку перед вторым.
Например: программа, рисующая на экране 3 символа звездочки по диагонали.
CLS
1: PRINT “*”
PRINT “ *”
PRINT “ *”
GOTO 1Ctrl+Break – прерывание выполнения программы
Оператор условного перехода– обеспечивает в программе проверку условий и организацию ветвления.
При рассмотрении условного оператора потребуются понятия «отношение» и «логическое выражение».
Условные выражения – символьная запись, составленная из переменных, чисел, функций, строк символов.
Знаками отношения в условных выражениях служат: =, , , =,
Логические выражения – условные выражения, которые соединяются между собой знаками логических операций: AND(«и», конъюнкция) OR(«или», дизъюнкция) NOT(отрицание).
Общий вид оператора:
Полная форма записи
IF условие THEN P1 ELSE P2
Сокращенная форма записи
IF THEN P1
Где IF – имя оператора («если…»)
THEN– имя оператора («то…»)
ELSE– имя оператора («иначе…»)
условие – логическое выражение
P1, P2– группа операторов
Например:
IF xTHEN a=x ELSE a=y
IF (2AND (xTHEN y=SIN(x)
Работа условного оператора: работа каждого варианта оператора определяется соответствующей схемой.
С | С |
Для каждого логического блока и соответствующего ему ветви алгоритма существует еще один вид записи:
IF THEN P1: GOTO n
3. Решение задач
Задача №1. Описать алгоритм решения задачи и составить программу. Найти наименьшее (наибольшее) из двух заданных чисел.
Решение задачи:
Алгоритм решения задачи
| Программа REM Определение наименьшего числа INPUT «Введите a, b»; a, b IF a THEN PRINT “a– наименьшее” ELSE PRINT “a– наименьшее” END
|
Задача №2. Описать алгоритм решения задачи и составить программу. Утроить большее из двух чисел.
Решение задачи:
А
| Программа REM Утроить большее INPUT «Введите a, b»; a, b IF ab THEN c=a*3 ELSE c=b*3 PRINT “c=”; c END |
Задача №3. Описать алгоритм решения задачи и составить программу.
Вычислить значение функции Y по одной из формул где
.
Решение задачи:
Алгоритм решения задачи:
Программа
REM Значение функции
INPUT «Введите a, c, b1, b2»; a, c, b1, b2
x=SQR(ABS(a)+b1^2)
IF x THEN y=x+a ELSE goto 1
1: IF 10x THEN y=x-b1 ELSE y=c+b1
PRINT “y=”; y
END
Задача №4. Описать алгоритм решения задачи и составить программу. Найти сумму квадрата меньшего из двух чисел и куба большего.
Задача №5. Описать алгоритм решения задачи и составить программу. Найти значение функции .
Задача №6. Описать алгоритм решения задачи и составить программу.
Найти значение функции .
Задача №7. Описать алгоритм решения задачи и составить программу.
Найти сумму двух чисел, если они оба положительные, и их произведение, если они оба отрицательные.
Задача №8. Описать алгоритм решения задачи и составить программу.
Найти значение функции .
Задача №9. Описать алгоритм решения задачи и составить программу. Определить, является ли четным или нечетным целое число, введенное с клавиатуры.
Задача №10. Описать алгоритм решения задачи и составить программу. Заданы длины сторон треугольника– a, b, c. Определить, является ли треугольник равнобедренным.
Задача №11. Описать алгоритм решения задачи и составить программу. Выяснить, превышает ли 50 сумма двух двузначных чисел a и b.
Задача №12. Описать алгоритм решения задачи и составить программу. Определить, является ли треугольник со сторонами a, b, c равносторонним.
Задача №13. Описать алгоритм решения задачи и составить программу. Определить, делится ли целое число, введенное с клавиатуры, на 3 с остатком 2.
6