РАЗВЕТВЛЯЮЩИЙСЯ ВЫЧИСЛИТЕЛЬНЫЙ ПРОЦЕССIf x > 0 Then z = Sin(x): s = "(если Х>0 Z=SIN(X))" Else If x < 0 Then z = Exp(x): s = "(если Х <0 Z= EXP(X))" Else z = 1: s = "(если Х =0 Z=1)" End If End If ‘ Программирование флажка If CheckBox1.Value = True Then Label3.Caption = Str(z) & s ‘Вывод результата с текстом условия Else Label3.Caption = Str(z) ‘Вывод результата без текста условия End If End Sub
‘Фрагмент программы ‘ Выбора формулы решения с помощью оператора Case Select Case x Case Is > 0 z = Sin(x): s = "(при Х >0 Z=SIN(X))" Case 0 z = 1: s = "(при Х =0 Z=1)"
Case Is < 0 z = Exp(x): s = "(при Х <0 Z= EXP(X))" End Select ‘ Программирование кнопки «Отмена» Private Sub CommandButton2_Click() UserForm1.Hide End Sub
Варианты заданий
РАЗВЕТВЛЯЮЩИЙСЯ ВЫЧИСЛИТЕЛЬНЫЙ ПРОЦЕСС Разветвляющимся называется такой вычислительный процесс, в котором, в зависимости от выполнения некоторого условия, вычисления происходят по одной из нескольких заранее предусмотренных ветвей. Разветвление процесса обозначается в блок-схемах алгоритма условным блоком. Пример: По введенному значению вывести значение релейной функции , где Формализуем условие задачи. Дано: Найти: – значение релейной функции. Приведем таблицу имен объектов решаемой задачи.
Блок схема алгоритма решения задачи приведена на рис. 2.3. В разветвляющихся вычислительных процессах трассировку необходимо выполнять для каждой из возможных ветвей блок-схемы. Блок-схема рассмотренного примера содержит три ветви: · Для выполняются блоки 1, 2, 6, 5, 8 · для выполняются блоки 1, 2, 3, 7, 5, 8 · для выполняются блоки 1, 2, 3, 4, 5, 8 Для каждой ветви нужно подобрать соответствующее значение исходных данных и заполнить таблицу трассировки.
Рис. 2.3 Блок-схема разветвляющегося вычислительного процесса Таблица трассировки для , .
Таблица трассировки для ; .
Таблица трассировки для , .
Поясним процесс программирования разветвляющегося вычислительного процесса. Блоку начала ставим в соответствие предложение PROGRAM – заголовок программы. Блоку описания – рубрику VAR декларативной части для описания используемых величин. Далее следует описания действия, объединенные в составной оператор, заключенный в операторные скобки BEGIN¼END и представляющий собой исполняемую часть. Блоку ввода ставим в соответствие оператор вызова процедуры вывода информации на экран дисплея WRITELN для вывода приглашения ко вводу и вызов процедуры ввода информации от клавиатуры READLN для ввода значения . Далее программируем ветвление. В условном операторе конструкции THEN соответствует ветка "да", а конструкции ELSE ветка "нет". В первом ветвлении конструкция ELSE (ветка "нет") представляет собой тоже ветвление. Блоку вывода ставим в соответствие вызов оператора вывода информации на экран дисплея WRITELN для вывода результата – y. В результате получается следующая программа. PROGRAM RAZV; VAR X,Y:REAL; BEGIN WRITELN('ВВЕДИ X'); READLN(X); IF X<=-1 THEN Y:=-1 ELSE IF X<=1 THEN Y:=X ELSE Y:=1; WRITELN('Y=', Y:10:4); END. Для программирования задач этого раздела необходимо использовать операторы IF … THEN … ELSE или CASE … OF. Оператор GOTO использовать запрещается! Для всех заданий этого раздела следует разработать алгоритм и программу.
|