Курсовая работа: Разработка программного обеспечения для решения уравнений с одной переменной методом Ньютона касательных

--PAGE_BREAK--
5.4. Схема взаимодействия процедур программы Для наглядности работы подпрограмм программы необходимо изобразить в виде схемы их взаимодействие между собой. Взаимодействие подпрограмм изображено на рисунке 5.3.
<img width=«594» height=«498» src=«dopb244641.zip» v:shapes="_x0000_s1167 _x0000_s1168 _x0000_s1169 _x0000_s1170 _x0000_s1171 _x0000_s1172 _x0000_s1173 _x0000_s1174 _x0000_s1175 _x0000_s1176 _x0000_s1177 _x0000_s1178 _x0000_s1179 _x0000_s1180 _x0000_s1181 _x0000_s1182 _x0000_s1183 _x0000_s1184 _x0000_s1185 _x0000_s1186 _x0000_s1187 _x0000_s1188 _x0000_s1189 _x0000_s1190 _x0000_s1191 _x0000_s1192 _x0000_s1193 _x0000_s1194 _x0000_s1195 _x0000_s1196 _x0000_s1197 _x0000_s1198 _x0000_s1199">

Рисунок 5.3 – Взаимодействие процедур программы
Условные обозначения:
– запуск процедуры на которую указывает стрелка, из процедуры из которой она исходит.

5.5. Перечень обозначений 5.5.1 Обозначения вводимых данных 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. Алгоритм решения задачи 5.7.1. Алгоритм нахождения корня уравнения y(x) =aЧln(bЧx) Алгоритм решения уравнения вида y(x) =aЧln(bЧx) приводится на рисунке 5.4.
выполнять
<shapetype id="_x0000_t16" coordsize=«21600,21600» o:spt=«16» adj=«5400» path=«m@0,l0@0,,21600@1,21600,21600@2,21600,xem0@0nfl@1@0,21600,em@1@0nfl@1,21600e»><path o:extrusionok=«f» gradientshapeok=«t» limo=«10800,10800» o:connecttype=«custom» o:connectlocs="@6,0;@4,@0;0,@3;@4,21600;@1,@3;21600,@5" o:connectangles=«270,270,180,90,0,0» textboxrect=«0,@0,@1,21600»><complex v:ext=«view»><img width=«508» height=«148» src=«dopb244642.zip» v:shapes="_x0000_s1200 _x0000_s1201 _x0000_s1202 _x0000_s1203 _x0000_s1204 _x0000_s1205 _x0000_s1206">  

<img width=«174» height=«114» src=«dopb244643.zip» v:shapes="_x0000_s1207 _x0000_s1208 _x0000_s1209 _x0000_s1210 _x0000_s1211">выполнять
если (a = 0) то
<shapetype id="_x0000_t114" coordsize=«21600,21600» o:spt=«114» path=«m,20172v945,400,1887,628,2795,913c3587,21312,4342,21370,5060,21597v2037,,2567,-227,3095,-285c8722,21197,9325,20970,9855,20800v490,-228,945,-400,1472,-740c11817,19887,12347,19660,12875,19375v567,-228,1095,-513,1700,-740c15177,18462,15782,18122,16537,17950v718,-113,1398,-398,2228,-513c19635,17437,20577,17322,21597,17322l21597,,,xe»><path o:connecttype=«custom» o:connectlocs=«10800,0;0,10800;10800,20400;21600,10800» textboxrect=«0,0,21600,17322»><img width=«494» height=«347» src=«dopb244644.zip» v:shapes="_x0000_s1212 _x0000_s1213 _x0000_s1214 _x0000_s1215 _x0000_s1216 _x0000_s1217 _x0000_s1218 _x0000_s1219 _x0000_s1220 _x0000_s1221 _x0000_s1222 _x0000_s1223 _x0000_s1224 _x0000_s1225 _x0000_s1226 _x0000_s1227 _x0000_s1228 _x0000_s1229 _x0000_s1230 _x0000_s1231 _x0000_s1232 _x0000_s1233">вывод
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)
<img width=«460» height=«808» src=«dopb244645.zip» v:shapes="_x0000_s1234 _x0000_s1235 _x0000_s1236 _x0000_s1237 _x0000_s1238 _x0000_s1239 _x0000_s1240 _x0000_s1241 _x0000_s1242 _x0000_s1243 _x0000_s1244 _x0000_s1245 _x0000_s1246 _x0000_s1247 _x0000_s1248 _x0000_s1249 _x0000_s1250 _x0000_s1251 _x0000_s1252 _x0000_s1253 _x0000_s1254 _x0000_s1255 _x0000_s1256 _x0000_s1257 _x0000_s1258 _x0000_s1259 _x0000_s1260 _x0000_s1261 _x0000_s1262 _x0000_s1263 _x0000_s1264"> 

если (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.
выполнять
<img width=«494» height=«740» src=«dopb244646.zip» v:shapes="_x0000_s1265 _x0000_s1266 _x0000_s1267 _x0000_s1268 _x0000_s1269 _x0000_s1270 _x0000_s1271 _x0000_s1272 _x0000_s1273 _x0000_s1274 _x0000_s1275 _x0000_s1276 _x0000_s1277 _x0000_s1278 _x0000_s1279 _x0000_s1280 _x0000_s1281 _x0000_s1282 _x0000_s1283 _x0000_s1284 _x0000_s1285 _x0000_s1286 _x0000_s1287 _x0000_s1288 _x0000_s1289 _x0000_s1290 _x0000_s1291 _x0000_s1292 _x0000_s1293"> 

ввод
если (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
<img width=«460» height=«820» src=«dopb244647.zip» v:shapes="_x0000_s1294 _x0000_s1295 _x0000_s1296 _x0000_s1297 _x0000_s1298 _x0000_s1299 _x0000_s1300 _x0000_s1301 _x0000_s1302 _x0000_s1303 _x0000_s1304 _x0000_s1305 _x0000_s1306 _x0000_s1307 _x0000_s1308 _x0000_s1309 _x0000_s1310 _x0000_s1311 _x0000_s1312 _x0000_s1313 _x0000_s1314 _x0000_s1315 _x0000_s1316 _x0000_s1317 _x0000_s1318 _x0000_s1319 _x0000_s1320 _x0000_s1321 _x0000_s1322 _x0000_s1323 _x0000_s1324"> 

если (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 в программе соответственно.

6. КОМПЛЕКТАЦИЯ И ЗАГРУЗКА ПРОГРАММЫ 6.1. Комплектация Папка my_stuff, в которой содержится:
– RUOP. exe – основной файл программы;
– help. asc – файл с методологической информацией;
– m_n. txt – файл, содержащий значения промежутков m и n;
– a_b_c. txt – файл, содержащий значения параметров a, b, c;
– E. txt – файл, содержащий значение погрешности E;
– egavga. bgi – файл для работы с графикой;
– keyrus. com – файл для работы с русским языком;
– trip. chr – файл, содержащий русский шрифт.
6.2. Порядок инсталляции и запуск программы Требуется скопировать папку my_stuff с содержащимися в ней файлами в папку “c: \temp\”. Для запуска программы необходимо запустить файл RUOP. exe, расположенный в папке my_stuff.
При копировании программы в иную папку, невозможными становятся работа «Справки» загрузка и автоматическое сохранение информации в файлы.

7. ТЕСТОВЫЕ ПРИМЕРЫ Тестовые примеры необходимы пользователю для того, чтобы узнать возможности, которые предоставляет данный программный продукт или протестировать его на правильность решения уравнений.
Тестовые примеры для решения уравнения вида y(x) =a*ln(b*x) приводятся в таблице 6.1.
Таблица 7.1. Тестовые примеры для уравнения вида y(x) =a*ln(b*x)
m
n
a
b
E
Результат
1
10
1
0.5
0.01
2
-20
-0.01
9
-2
0.01
-0.2
9
14
100
1
0.01
Уравнение не имеет корней
Тестовые примеры для решения уравнения вида y(x) =a*x^2+b*x+c приводятся в таблице 6.2.
Таблица 7.2. Тестовые примеры для уравнения вида y(x) =a*x^2+b*x+c
m
n
a
b
c
E
Результат
-10
10
5
29
3
0.01
-0.1054
-10
10
0
4
10
0.01
-2.5
5
20
5
29
4
0.01
Уравнение не имеет
При введении в программу данных, не отвечающих требованиям типу, будет появляться сообщение «Ошибка ввода», пока не будут введены правильные данные, соответствующие требованиям программы.
Если уравнение не имеет корней, то построение графика и сохранение данных, результатов становиться невозможным.
При введении в программу данных, отвечающих требованиям, будут появляться сопроводительные сообщения (советы) по дальнейшим вариантам продолжения.
Если уравнение имеет корень, то построение графика и сохранение данных, результатов становится возможным.

ВЫВОДЫ В процессе создания была написана программа, осуществляющая решение уравнения с одной переменной методом Ньютона (касательных). Программа способна решать два вида уравнений, а также выстраивать график по вводимым данным.
В программе реализована работа с графикой и с файлами, имеет интуитивно понятный интерфейс, реализована возможность справки.
Корректная работа программы обеспечивается строгим следованием методическим указаниям, а также надёжной системой проверки промежуточных результатов в ходе выполнения самой программы.
Однако ощутимыми недостатками являются расчёт результатов всего для двух функций и отсутствие касательных к графику при построении графика функции, устранение которых планируется в ближайшее время.
В целом получившийся программный продукт является отличным пособием для студентов высших учебных заведений и для учащихся математических классов среднеобразовательных школ.

ПЕРЕЧЕНЬ ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 1. Фаронов В.В. «Turbo Pascal 7.0. Начальный курс»: учебное пособие. – М.: Кнорус, 2006. – 576 с.
2. Сухарёв М. Turbo Pascal 7.0. Теория и практика программирования. – СПб: «Наука и техника», 2003. – 576 с.
3. Методические указания по оформлению студенческих работ для студентов специальностей 080403 «Программное обеспечение автоматизированных систем», 080404 «Интеллектуальные системы принятия решений», 050103 «Экономическая кибернетика»; Утверждено на заседании учёного совета ДонГИИИ протокол № 7 от 23.02. 2004 г. – Донецк: ДонГИИИ, 2004, 46 с.

Приложение А ТЕХНИЧЕСКОЕ ЗАДАНИЕ
А.1 Общие сведения
Полное название программного продукта: «Численные методы. Решение уравнений с одной переменной методом Ньютона (касательных)». Её условное обозначение РУОП. Работа выполняется студентом 1-го курса Донецкого государственного института искусственного интеллекта (ДонГИИИ), факультета СКИТ, группы СУА-05, Николаевым Алексеем Сергеевичем.
Основанием для разработки РУОП является задание, выданное кафедрой Программного обеспечения интеллектуальных систем (ПОИС).
Плановый срок начала работы: 17 февраля 2006 года.
Дата защиты работы: 22 мая 2006 года.
А.2 Назначения и цели создания программы
Данная программа создана как учебное пособие для студентов высших учебных заведений и для учащихся математических классов среднеобразовательных школ. Позволяет решать уравнения вида y(x) =aЧln(bЧx) и y(x) =ax2+bx+c методом Ньютона (касательных).
А.3 Требования к программному продукту
А.3.1. Общие требования
Программа должна выполнять следующие требования:
1) решать два вида уравнений: y(x) =aЧln(bЧx) и y(x) =ax2+bx+c методом Ньютона (касательных);
2) поддержку графического меню, состоящего из пяти пунктов:
– помощь и справочная информация;
– y(x) =aЧln(bЧx);
– y(x) =aЧx^2+bЧx+c;
– построение графика;
– выход;
3) по вводимым значениям промежутков уравнения и по вводимым значениям коэффициентов уравнения:
– вычислять корень уравнения в зависимости от вводимых данных;
– выстраивать график уравнения, отмечая, на оси абсцисс, промежуточные корни уравнения, выводить значение корня уравнения.
А.3.2. Функциональные требования
Для реализации программного продукта необходимо разработать:
1) поддержку файлов, предоставление возможности решать пользователю самому, вводить начальные данные из файла или с клавиатуры, необходимость сохранения данных и полученных результатов в файлы;
2) систему справочной информации по реализуемому в РУОП методу Ньютона.
А.3.2. Требования к техническому обеспечению
Рекомендуемые характеристики аппаратных средств:
– КПУ: i486;
– ОЗУ: 4 мб;
– видеоадаптер VGA, EGA;
– монитор: VGA, EGA;
– клавиатура;
– свободное дисковое пространство – около 100 килобайт.
А.3.3. Требования к программному обеспечению
Для успешной загрузки программы требуется наличие операционной системы MS DOS 6.0.
А.3.5. Требования к организационному обеспечению
Организационное обеспечение включает в себя пояснительную записку с приложениями: техническое задание, руководство пользователя, экранные формы, тексты программы.

Приложение Б РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
Главное меню появляется после титульного листа. Меню состоит из пяти пунктов. Скроллинг осуществляется клавишами «z» и «x». Вход в подменю осуществляется клавишей «Enter».
В пункте «Справка» содержится методологическая информация по методу Ньютона.
В пункте «y(x) =a*ln(b*x)» осуществляется решение уравнения y(x) =a*ln(b*x) по вводимым параметрам, промежуткам и погрешности. В пункте осуществляется загрузка данных из файлов и сохранение данных в файлы по желанию пользователя.
В пункте «y(x) =a*x^2+b*x+c» осуществляется решение уравнения y(x) =a*x^2+b*x+c по вводимым параметрам, промежуткам и погрешности. В пункте осуществляется загрузка данных из файлов и сохранение данных в файлы по желанию пользователя.
В пункте «Построение графика» осуществляется построение графика по вводимым в уравнение данным.
В пункте «Выход» осуществляет выход из программы.

Приложение В ЭКРАННЫЕ ФОРМЫ
<imagedata src=«53940.files/image050.png» o:><img width=«378» height=«254» src=«dopb244648.zip» v:shapes="_x0000_i1042">
Рисунок В.1 – Заставка, титульная страница
<imagedata src=«53940.files/image052.png» o:><img width=«378» height=«254» src=«dopb244649.zip» v:shapes="_x0000_i1043">
Рисунок В.2 – Меню
<imagedata src=«53940.files/image054.png» o:><img width=«366» height=«264» src=«dopb244650.zip» v:shapes="_x0000_i1044">
Рисунок В.3 – Общий вид окна «y(x) =a*ln(b*x)»
<imagedata src=«53940.files/image056.png» o:><img width=«424» height=«310» src=«dopb244651.zip» v:shapes="_x0000_i1045">
Рисунок В.4 – Общий вид окна «y(x) =a*x^2+b*x+c»
<imagedata src=«53940.files/image058.png» o:><img width=«410» height=«298» src=«dopb244652.zip» v:shapes="_x0000_i1046">
Рисунок В.5 – График функции y(x) =1*ln(0.5*x) на промежутке [1; 10]
<imagedata src=«53940.files/image060.png» o:><img width=«442» height=«326» src=«dopb244653.zip» v:shapes="_x0000_i1047">
Рисунок В.6 – График функции y(x) =5*sqr(x) +29*x+3 на промежутке [-10; 10]

Приложение Г ЛИСТИНГ ПРОГРАММЫ
program Restorant;
uses CRT, Graph;
var a, b, c, m, n: real;
number, i: byte;
mass: array [1… 20] of real;
{***************************************************************************}
procedure title;
begin
textcolor(2);
writeln (' Министерство образования Украины');
writeln (' Донецкий государственный институт искусственного интеллекта');
writeln;
writeln (' Кафедра ПОИС');
writeln;
writeln;
writeln (' Курсовая работа');
    продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по информатике