Разработка Паскаль-программы для решения сложной функции
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
p>
7-10:
Блок№8 - вычисление массива С[i]
Блок№9 - вывод этого массива почленно:
for i:=1 to n do
begin
c[i]:=2/sin(i);(c[i]:5:2, );:=s+c[i];
end;
-19:
Цикл 11-18 описывает вычисление сложной функции yj и заполнение соответствующего массива. В тело этого цикла входят два условных оператора, осуществляющих вычисление сложной функции по заданным условиям, идущим по трём веткам программы:
Блоки№13,15: блоки условного оператора if
Блоки№14,16,17 вычисление сложной функции
for j:=1 to m do:=b0+j*h;x[j]=(1.1*b) then[j]:=x[j]+(sin(x[j])/cos(x[j]));(y[j]:5:2, );;
19-22;
В этих блоках идет вычисление среднего квадратичного значения функции:
:=0;j:=1 to m doj mod 5 = 0 then :=srk+y[j]*y[j];:=sqrt(srk/m);
:
В этом цикле идет построение графика сложной математической функции:
line(10, 480-20, 10, 480-400) и line(10, 480-20, 600, 480-20) - построение координатных осей.
outtextXY(10,40,Yj) и outtextXY(590,465,j) - обозначение осей Y(j) и j соответственно.
Moveto(10+trunc(j*mas),460-trunc(y[j]*mas)) - построение соответствующих точек. Где trunc(j*mas) и trunc(y[j]*mas) - округление дробных чисел до целого числа.
Lineto(10+trunc(j*mas),460-trunc(y[j]*mas)) - (10+trunc(j*mas),460-trunc(y[j]*mas),9) -
:=detect;(gm,gd,c:\BP\BGI);(10, 480-20, 10, 480-400);(10, 480-20, 600, 480-20);:=1;(10,40,Yj);(590,465,j);(10+trunc(j*mas),460-trunc(y[j]*mas));j:=1 to m-1(10+trunc(j*mas),460-trunc(y[j]*mas));(10+trunc(j*mas),460-trunc(y[j]*mas),9);
end;
. Полная программа в соответствии с алгоритмом
Полная рабочая программа написанная по блок схеме алгоритма представленного на рисунке 1.1 будет иметь следующий вид:
Kyrs1;crt,graph;=26;=0.15;=2.25;=20;,c,x:array[1..40] of real;,gm,n,m,i,j:integer;,b,srk,min,max,y1:real;;(vvedite kol-vo chlenov c,x);(n,m);(x massiv);j:=1 to m do:=b0+j*h;[j]:=(exp(2/5*ln(b))+a)/(2*j);(x[j]:5:2, );;;(ci massiv);i:=1 to n do[i]:=2/sin(i);(c[i]:5:2, );:=s+c[i];;;(y massiv);j:=1 to m do:=b0+j*h;x[j]y[j] then max:=y[j];min<y[j] then min:=y[j];;:=0;j:=1 to m doj mod 5 = 0 then:=srk+y[j]*y[j];;:=sqrt(srk/m);;(sredkvadr,srk:5:2);;:=detect;(gm,gd,c:\BP\BGI);(10, 480-20, 10, 480-400);(10, 480-20, 600, 480-20);:=1;(10,40,Yj);(590,465,j);(10+trunc(j*mas),460-trunc(y[j]*mas));j:=1 to m-1 do(10+trunc(j*mas),460-trunc(y[j]*mas));(10+trunc(j*mas),460-trunc(y[j]*mas),9);;
readln;
end.
4 Результаты расчётов на ПК
График функции Y(j) представлен на рисунке 4.1
Рисунок 4.1-График функции Y(j).
Заключение
Данная курсовая работа была написана в среде программирования Турбо Паскаль. В процессе выполнения работы усвоены основные принципы написания программы на языке Паскаль, закреплены знания по программированию алгоритмов с использованием функций пользователя и созданию алгоритмов в целом. Результатом проделанной работы стала программа по вычислению сложной функции y. Программа сделана универсальной, то есть с помощью её можно найти значения при любом числе элементов массива и других параметров.
С целью проверки правильности полученных результатов произведем ручной расчет сложной математической функции Y(j) для значения j=1.
=bнач+j*h=0,15+1*2,25=2,4
X(1)=
Очевидно, что x>>b, и значит Y(j) будет считаться по следующей формуле:
(1)=X(1)+tg(X(1))=13,71+tg(13,71)=13,71+2,2=15,91?15,90
Правильность результатов полученных в программе подтвердила ручная проверка.
Литература
1.Изучаем Turbo Pascal / Под ред. С. Немнюгин, Л. Перколаб - С.-Пб.:Питер.- 2004г.-780с.
2.Конспект лекций по курсу Информационные технологии. - 2007г.
. Самоучитель по Паскалю/ Под ред. В.И. Попова, - С.-Пб.:Питер.-2004г.-325с.
.Практикум по основам программирования на языке Turbo Pascal / Под ред. Н.Д. Васюкова, В.В. Тюляева - М.: Высшая школа.- 1991г.-479с.
.Программирование на языке Turbo Pascal / Под ред. О.Н. Перминов - М.: Высшая школа.-1989г.- 295с.