|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Задание A. Вычислить значение функции:
Вычислить значение функции: для x =0,1, x =2,5, x =16, a=1
Визуальное представление алгоритма решения задачи в виде блок-схемы представлено на рисунке 2. Если сравнить схему на рисунке 2 со схемой на рисунке А.1 приложения А, то видно, что S2 (по ветви NO) представляет собой структуру «ВЕТВЛЕНИЕ». То есть здесь одна структура «ВЕТВЛЕНИЕ» вложена внутрь другой. Такой процесс называют сложным ветвящимся. При x < 1 блоки выполняются в следующей последовательности: 1, 2, 3, 7, 8, 9. При 1 ≤ x ≤ 3 последовательность выполнения блоков: 1, 2, 3, 4, 6, 8, 9. Если x > 3, блоки выполняются в следующей последовательности: 1, 2, 3, 4, 5, 8, 9. Рис. 2. Визуальное представление алгоритма решения задания А в виде блок-схемы
Программа на языке QBasic 1. При использовании блочного оператора IF INPUT "введите x,a";x,a IF x<1 THEN y=a*x ELSEIF x<=3 THEN y=x^2 ELSE y=sqr(x) END IF PRINT USING "x=##.## a=##.## y=##.## ";x,a,y END 2. При использовании оператора SELECT CASE INPUT "введите x,a";x,a SELECT CASE x CASE IS<1 y=a*x CASE 1 TO 3 y=x^2 CASE ELSE y=sqr(x) END SELECT PRINT USING "x=##.## a=##.## y=##.## ";x,a,y END В качестве тестовых значений исходных данных возьмем следующие значения: 1) x=0.5 a=1 Y(x)=a*x=0.5 2) x=1 a=1 Y(x)=x2=12=1 3) x=2.5 a=1 Y(x)=x2=2.52=6.25 4) x=3 a=1 Y(x)=x2=32=9 5) x=9 a=1 Y(x)= = =3 Число тестовых значений равно числу ветвей плюс количество граничных точек. Получим результаты работы каждой ветви при реальных значениях переменных x и a. Результат выполнения программы введите x,a? 0.1,1 x= 0.10 a= 1.00 y= 0.10 введите x,а? 2.5,1 x= 2.50 a= 1.00 y= 6.25 введите x,а? 16,1 x= 16.00 a= 1.00 y= 4.00 Результаты выполнения второй программы выглядят так же.
Рассмотрим этот же пример разработки ветвящейся программы, основанный на методике компьютерного решения задач (процедурное программирование), реализуемый средствами языка VBA. Для ввода значений x и a с помощью клавиатуры используем функцию InputBox(). Для вывода значения y используем функцию MsgBox().
Программный код Public Sub Ветвление_А() Dim x As Single Dim a As Single Dim y As Single x = Val(InputBox("Введите x")) a = Val(InputBox("Введите a")) If x < 1 Then y = a * x ElseIf x <= 3 Then y = x ^ 2 Else y = Sqr(x) End If MsgBox "X=" & x & " " & "A=" & a & " " & "Y=" & y Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |