Описание процедур и функций программы
Procedure title () – выводит титульную страницу на экран монитора; Procedure graphica () – инициализирует графику. Procedure pro () – содержит в себе переменную р, которая отвечает за номер выделяемой кнопки, передаётся как параметр в procedure key (p) и в procedure eat (p, bool), а также содержит в себе переменную bool, отвечающую за цикл в рамках procedure pro, передаётся как параметр в procedure eat (p2, bool); Procedure eat (p2: byte; var bool: boolean) – в зависимости от параметра p2 выполняет один из пяти вариантов дальнейших действий программы. Переменная bool передаётся как параметр обратно в procedure pro; Procedure key (p1: byte) – выстраивает графическую картинку меню в зависимости от параметра р1; Procedure equation_1 () – решение уравнения вида y(x) =a×ln(b×x). Переменная Е (погрешность) принимается как параметр из procedure load_file_3 (E), передаёт переменную Е как параметр в procedure save_file (E); Procedure equation_2 () – решение уравнения вида y(x) =a×x2+b×x+c. Переменная Е (погрешность) принимается как параметр из procedure load_file_3 (E), переменная Е передаётся как параметр в procedure save_file (E); Procedure load_file_1 () – загружает переменные m и n (промежутки функции) из файла, либо обеспечивает их ввод с клавиатуры, в зависимости от желания пользователя. m, n – глобальные переменные в рамках программы; Procedure load_file_2 () – загружает переменные a и b либо a, b, c (в зависимости от вида функции) (коэффициенты уравнения) из файла, либо обеспечивает их ввод с клавиатуры, в зависимости от желания пользователя. a, b, c – глобальные переменные в рамках программы; Procedure load_file_3 (var E: real) – загружает переменную Е (погрешность функции) из файла, либо обеспечивает их ввод с клавиатуры, в зависимости от желания пользователя. Е передаётся как параметр и принимается как переменная в procedure equation_1 и equation_2;
Procedure save_file (E: real) – сохраняет переменные a, b, (c,) m, n – глобальные в рамках программы в файлы либо не сохраняет, сохраняет переменную Е в виде параметра в файл, либо не сохраняет; Procedure groffunc () – выстраивает график по значениям глобальных в рамках программы переменных a, b, (c,) m, n, с отмеченными на оси х приближениями и корнем уравнения. Содержит в себе function f (x: real): real, высчитывающую значение одной из функций в зависимости от аргумента х. Переменные у0 (масштаб) и у2 (максимальное значение функции) передаются в виде параметров в procedure setka (y0, y2); Procedure setka (yn: integer; y2: real) – выстраивает координатную сетку и оцифровку осей x и y в зависимости от глобальных в рамках программы переменных m, n и параметров yn и y2; Procedure help () – предоставляет пользователю непосредственную методологическую помощь. Схема взаимодействия процедур программы
Для наглядности работы подпрограмм программы необходимо изобразить в виде схемы их взаимодействие между собой. Взаимодействие подпрограмм изображено на рисунке 5.3.
Рисунок 5.3 – Взаимодействие процедур программы
Условные обозначения: – запуск процедуры на которую указывает стрелка, из процедуры из которой она исходит. Перечень обозначений
Обозначения вводимых данных m, n – промежутки функции; a, b, c – коэффициенты уравнения, представленные в виде параметров; E – погрешность, аналог ε в разделе "Описании математической модели" и в разделе "Описание (и обоснование выбора) метода решения". 5.5.2 Обозначения выводимых данных y(x) =a*ln(b*x), y(x) =a*x^2+b*x+c – уравнения используемые в программе; x – неизвестная, корень уравнения; ln – логарифм; x^2 – неизвестная x в степени 2. 5.6 Входные и выходные данные 5.6.1 Входные данные y(x) =a*ln(b*x), y(x) =a*x^2+b*x+c – функция; m, n: real – левый и правый промежутки функции соответственно; a, b, c: real – параметры, коэффициенты уравнения;
E: real – погрешность; "Помощь и справочная информация". 5.6.2 Выходные данные x1: real – значение корня уравнения; st: string – текстовые сообщения, возникающие в процессе выполнения программы (ошибки и варианты дальнейшего продолжения). 5.6.3 Промежуточные данные Bool_of: Boolean – определяет цикл выполнения алгоритма решения; mass: real – массив [1.. 20]; number: byte – глобальная переменная, номер функции; code_of: byte – переменная, отвечающая за необходимость поиска корня уравнения; root: real – разность приближений. Алгоритм решения задачи
5.7.1. Алгоритм нахождения корня уравнения y(x) =a×ln(b×x) Алгоритм решения уравнения вида y(x) =a×ln(b×x) приводится на рисунке 5.4. выполнять
выполнять
если (a = 0) то вывод
number: =0; иначе выполнять
i: =1; если (a*ln(b*m) *(-a/sqr(m))) > 0 то mass [i]: =m; code_of: =1;
иначе
Рисунок 5.4 – Алгоритм решения уравнения вида y(x) =a×ln(b×x) если (a*ln(b*n) *(-a/sqr(n))) > 0 то mass [i]: =n; code_of: =1; иначе вывод
number: =0; code_of: =0;
если (code_of = 1) то выполнять x1: =mass [i] -a*ln(b*mass [i]) / (a/mass [i]); root: =Abs (x1-mass [i]); i: =i+1; mass [i]: =x1; пока (root < E); если (x1 < m) или (x1 > n) то вывод
number: =0; code_of: =0; вывод
Рисунок 5.4 – Алгоритм решения уравнения вида y(x) =a×ln(b×x) (продолжение) 5.7.2. Алгоритм нахождения корня уравнения y(x) =a×x2+b×x+c Алгоритм решения уравнения вида y(x) =a×x2+b×x+c приводится на рисунке 5.5. выполнять
ввод
если (a = 0) и (b = 0) и (c = 0) то вывод
number: =0; иначе выполнять
i: =1; если (a*sqr(m) +b*m+c) *(2*a) >= 0 то mass [i]: =m; code_of: =1; иначе
Рисунок 5.5 – Алгоритм решения уравнения вида y(x) =a×x2+b×x+c
если (a*sqr(n) +b*n+c) *(2*a) >= 0 то mass [i]: =n; code_of: =1;
иначе вывод
number: =0; code_of: =0;
если (code_of = 1) то выполнять
x1: =mass [i] -((a*sqr(mass [i]) + b*mass [i] +c) /(2*a*mass [i] +b)); root: =Abs (x1-mass [i]); i: =i+1; mass [i]: =x1; пока (root < E); если (x1 < m) или (x1 > n) то вывод
number: =0; code_of: =0; вывод
Рисунок 5.5 – Алгоритм решения уравнения вида y(x) =a×x2+b×x+c (продолжение) Алгоритмы решения уравнений рис.5.4 и рис.5.5 соответствуют procedure equation_1 и procedure equation_2 в программе соответственно.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|