Добавил:
Negorov1337@gmail.com inst:vech.no_17 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб 6 циклы / Лабораторный_практикум_по_программированию_Ч.3.doc
Скачиваний:
9
Добавлен:
11.10.2020
Размер:
1.02 Mб
Скачать

Методические указания к выполнению задания а Табулирование функций

Классическим примером использования структуры «ЦИКЛ» является задача табулирования функции. Задача табулирования (получение таблицы) некоторой функции y=f(x) сводится к вычислению значений этой функции при параметре цикла х, изменяющемся с постоянным шагом – Dx в заданном диапазоне от начального значения аргумента – Xn до конечного значения Xk. На экран выводится ](Xk – X n)/Dx[+ 1 пар значений аргумента X с помощью оператора вывода, расположенного внутри тела цикла. Скобки ][ означают, что берется целая часть от деления.

Пример выполнения задания a лабораторной работы

Задание A

Вычислить значение функции Y(x)=x2+ 1,5 при изменении аргумента x в диапазоне Xn ≤ X ≤ Xk с шагом Dx. Вывести таблицу значений X и Y.

Базовая управляющая структура «ЦИКЛ» и её разновидности представлены в приложении А. Для визуального представления алгоритма используем блоки, представленные в работе [10], в приложении Б, в котором указаны обозначение и функциональное назначение некоторых блочных символов графического описания алгоритмов (визуальных алгоритмов).

Визуальное представление алгоритма решения задачи в виде цикла-ПОКА с предусловием дано на рисунке 1.

Это цикл с заданным числом повторений ](Xk – Xn)/Dx[ + 1. Перед первым выполнением цикла необходимо задать начальное значение аргумента X, равное Xn, а затем ](Xk – Xn)/Dx[ + 1 раз выполнить вычисление и вывод значений функции Y. При каждом новом выполнении цикла необходимо изменять аргумент на величину шага, равного Dx. Чтобы процесс не был бесконечным, необходимо задать условие повторения или окончания цикла.

В схеме циклического алгоритма присутствуют обязательные блоки в этих структурах: установка начального значения параметра (блок 4), проверка условия достижения конечного значения параметра (блок 5), изменение параметра (блок 8).

Телом данного циклического процесса являются блоки: 5, 6, 7 и 8. Параметром данного цикла является переменная x.

Представим данную схему циклического алгоритма с помощью цикла типа «ДЛЯ» или цикла с параметром, который является модификацией цикла «ПОКА» для ситуации, когда заранее известно количество повторений некоторых действий (рис. 2). Все три необходимых блока – блок 4, блок 5 и блок 8 собираются в один – блок 4, в котором указывается начальное, конечное значение параметра и шаг изменения.

Рис. 1. Визуальное представление алгоритма табулирования функции

в виде цикла типа «ПОКА»

На рисунке 2 блок 4 для большей наглядности изображен в «развернутом» виде. Общепринятым является компактное изображение такого блока (рис. 3). Именно такое представление мы будем использовать в даль-нейшем.

Рис. 2. Визуальное представление алгоритма табулирования функции

в виде цикла типа «ДЛЯ» или цикла с параметром

Рис. 3. Компактное представление цикла с параметром

Программа на языке QBasic

REM ЦИКЛ С ИЗВЕСТНЫМ ЧИСЛОМ ПОВТОРЕНИЙ В ЦИКЛЕ

INPUT “введите начальное, конечное знач. X и шаг”; XN, XK, DX

PRINT “XN =”; XN ; XK=”; XK ;”DX=”; DX

PRINT “ ФУHКЦИЯ Y(X) »

PRINT “-------------------------------“

PRINT “: X : Y :”

PRINT “-------------------------------“

FOR X=XN TO XK STEP DX

Y=X^2+1.5

PRINT USING “: ##.## : ##.## :”; X, Y

NEXT X

PRINT “-------------------------------“

END

Описание среды программирования QBasic приведено в работе [10], в приложении B. Операторы, реализующие структуру «ЦИКЛ», подробно описаны в приложении Б.

Результаты выполнения программы при xn=0, xk=4, Dx=0.5:

введите начальное, конечное знач. X и шаг? 0,4,0.5

XN= 0 XK= 4 DX=.5

ФУHКЦИЯ Y(X)

-----------------------

: X : Y :

-----------------------

: 0.00 : 1.50 :

: 0.50 : 1.75 :

: 1.00 : 2.50 :

: 1.50 : 3.75 :

: 2.00 : 5.50 :

: 2.50 : 7.75 :

: 3.00 : 10.50 :

: 3.50 : 13.75 :

: 4.00 : 17.50 :

-----------------------

Теперь рассмотрим пример разработки программного кода того же примера, используя объектно ориентированное программирование, реализуемое средствами языка VBA, используя экранные формы.

Создадим графический интерфейс приложения. Чтобы спроектировать наше приложение, нужно взять некоторые стандартные элементы управления, поместить их на форму, затем установить начальные свойства этих элементов и создать код обработки событий, связанных с этими элементами. Последовательность всех этих действий рассмотрена в работах [10] и [11].

Разместим на экранной форме (рис. 4), используя метод «drag-and-drop», следующие стандартные элементы управления: пять элементов типа Label (Label1, Label2, Label3, Label4 и Label5), в которых потом расположим надписи XN, XK, DX, X, Y, изменив свойства элементов Caption; три элемента типа TextBox (TextBox1, TextBox2 и TextBox3) для размещения исходных данных Xn, Xk, Dx; для запуска программы поместим командную кнопку CommandButton1 , в которой расположим надпись «Пуск»; для хранения списка значений аргумента X и функции Y используем два элемента управления ListBox (Список) .

Рис. 4. Форма и расположение на ней элементов управления

Зададим новые значения свойств элементам управления, размещенным на форме (рис. 4) согласно общепринятым соглашениям. Форма и расположение на ней элементов управления после задания новых свойств этим элементам представлена на рисунке 5.

Рис. 5. Форма и её элементы управления после переименования

и изменения свойств

Сгенерируйте процедуру обработки события Click (кликанье левой кнопки мыши) для командной кнопки Cmd. Для этого достаточно быстро кликнуть на этой кнопке два раза левой кнопкой мыши. В результате будет создана нужная нам процедура, в которую надо ввести следующий код.

Программный код

Private Sub Cmd_Click()

Dim x As Single

Dim y As Single

Dim strX As String

Dim strY As String

XN = Val(TxtXN.Value)

XK = Val(TxtXK.Value)

DX = Val(TxtDX.Value)

For x = XN To XK Step DX

y = x ^ 2 + 1.5

strX = Str(x)

strY = Str(y)

LbxX.AddItem strX

LbxY.AddItem strY

Next x

End Sub

Пояснение. Для хранения списка значений аргумента X и функции Y использовано два элемента управления (объекта) ListBox (Список). Для того чтобы объект выполнил какую-либо операцию, необходимо применить метод, которым он обладает. Одним из наиболее часто используемых методов элемента управления элемента ListBox (Список) является метод AddItem, который добавляет в список новый элемент. Обратиться к методу объекта можно точно так же, как и к свойству объекта, с использованием точечной нотации.

Отметим использование функции Str(), которая позволяет производить преобразование десятичного числа в десятичное число в строковой форме. Аргументом функции является десятичное число, а значением – строка.

Запустите ваше приложение, выбрав команду RunRun Sub/UserForm или нажав функциональную клавишу F5. В текстовые окна введите исходные данные Xn, Xk, Dx и нажмите командную кнопку «Пуск».

Результаты выполнения программного кода при значениях Xn = 0, Xk = 4 и Dx =0.5 представлены на рисунке 6.

Рис. 6. Диалоговое окно для решения задания А при значениях

Xn = 0, Xk = 4 и Dx =0.5

В VBA при программировании циклических процессов для отображения результатов при каждом выполнении цикла можно использовать объект Debug, т.е. Immediate – окно немедленного выполнения. Метод Print объекта Debug выводит значение параметров в окно Immediate. Это окно отображается на экране выбором команды ViewImmediate Window, либо клавиатурным сочетанием Ctrl+G. Рассмотрим этот вариант программы. Окно немедленного выполнения Immediate применяется, в основном, при отладке программы.

Экранная форма и её элементы управления после переименования и изменения свойств представлена на рисунке 7.

Рис. 7. Форма и её элементы управления после переименования

и изменения свойств

Программный код при использовании метода Debug

Private Sub Cmd1_Click()

Dim x As Single

Dim y As Single

Dim strX As String

Dim strY As String

xn = Val(TxtXN.Value)

xk = Val(TxtXK.Value)

dx = Val(TxtDX.Value)

Debug.Print " X" & " | " & " Y"

For x = xn To xk Step dx

y = x ^ 2 + 1.5

strX = Str(x)

strY = Str(y)

Debug.Print strX & " | " & strY

Next X

Рис. 8. Диалоговое окно для решения задания А при значениях

Xn = 0, Xk = 4 и Dx =0.5

Результаты выполнения кода программы в окне немедленного выполнения Immediate представлены на рисунке 9.

Рис. 9. Результаты выполнения кода программы в окне немедленного выполнения Immediate

Соседние файлы в папке лаб 6 циклы