Программа вычисления функции для заданных значений аргументов с использованием рядов, страница 4

F=F*(A[I]*SIN(W*T+F1)+B[I]*COS(W*T+F2))

                                                           23

                                                                   Вывод

Знач ф-ции F

 


КОНЕЦ

Процедура ввода коэффициентов

Вход (М)

                                                                  1

Блок опис. перем.

                                                                  2

J=1(1)4

 


                                                                 3

Ввод  М[j]

                                                                5

Выход (M)

Программа решения задачи

PROGRAM KURS;

USES CRT;

TYPE

MAS=ARRAY[1..4] OF REAL;

VAR

I,N:BYTE;

A,B:MAS;

W,T,E,U,F,F1,F2,S:REAL;

{Пpоцедуpа ввода коэффициентов}

PROCEDURE VVOD(VAR M:MAS);

VAR

J:BYTE;

BEGIN

FOR J:=1 TO 4 DO

BEGIN

WRITE('Введите ',J,'-й коэффициент ');

READLN(M[J])

END

END;

{Основная пpогpамма}

BEGIN

CLRSCR;

WRITELN('Введите коэффициенты A');

VVOD(A);

WRITELN('Введите коэффициенты B');

VVOD(B);

WRITE('Введите значение W ');

READLN(W);

WRITE('Введите значение T ');

READLN(T);

WRITE('Введите погpешность E ');

READLN(E);

{Вычисление функции F1}

U:=1;

F1:=1;

N:=1;

REPEAT

U:=U*(-T*T/(2*N*(2*N+1)));

F1:=F1+U;

N:=N+1;

UNTIL (ABS(U)<=E) OR (N=100);

IF N=100

THEN WRITELN('За 100 итераций значение погрешности не достигнуто')

ELSE BEGIN

WRITELN('Значение функции, вычисленное с помощью ряда: ',F1);

WRITELN('Достигнуто за ',N,' итераций');

WRITELN('Точное значение функции ',COS(T));

END;

{Вычисление функции F2}

F2:=T*COS(PI/3);

U:=T;

N:=1;

REPEAT

N:=N+1;

U:=U*T*(N-1)/N;

S:=U*COS(N*PI/3);

F2:=F2+S;

UNTIL (ABS(S)<=E) OR (N=100);

IF N=100

THEN WRITELN('За 100 итераций значение погрешности не достигнуто')

ELSE BEGIN

WRITELN('Значение функции, вычисленное с помощью ряда: ',F2);

WRITELN('Достигнуто за ',N,' итераций');

WRITELN('Точное значение функции ',-1/2*LN(1-2*T*COS(PI/3)+T*T));

END;

{Вычислени функции-произведения}

F:=1;

FOR I:=1 TO 4 DO

F:=F*(A[I]*SIN(W*T+F1)+B[I]*COS(W*T+F2));

WRITELN('Значение фунции: ',F)

END.

Результаты вычисления по программе

Введите коэффициенты A

Введите 1-й коэффициент -1.1

Введите 2-й коэффициент 1.1

Введите 3-й коэффициент 1.5

Введите 4-й коэффициент 2.0

Введите коэффициенты B

Введите 1-й коэффициент 1.5

Введите 2-й коэффициент 1.8

Введите 3-й коэффициент 2.1

Введите 4-й коэффициент 2.4

Введите значение W 0.5

Введите значение T 0.4

Введите погpешность E 10E-3

Значение функции, вычисленное с помощью ряда:  9.7354666667E-01

Достигнуто за 3 итераций

Точное значение функции  9.2106099400E-01

Значение функции, вычисленное с помощью ряда:  1.3546666667E-01

Достигнуто за 4 итераций

Точное значение функции  1.3721842285E-01

Значение фунции:  1.5097559498E+01

Краткие выводы по решению задачи

В данной курсовой работе используется подпрограмма, это позволяет сократить размер программы. Такой способ значительно упрощает ввод исходных значений коэффициентов. Программа построенная по данному алгоритму наиболее оптимально использует возможности ПЭВМ. Рабочий интерфейс разработан в соответсвии с заданием на курсовую работу, что облегчает просмотр результатов выполнения программы. Вся практическая работа была выполнена в соответствии с рекомендациями изложенными в теоретической части курсовой работы.

Список используемой литературы

1.  Новичков В. С., Парфилова Н. И. “Алгоритмические языки в техникуме. Паскаль”, Москва, Высшая школа, 1994 год.

2.  Киселёв А. В. Коротаев А. Т. “Практическая работа на персональном компьютере”, Москва, 1995 год.

3.  Фигурнов В. Э.” IBM PC для пользователя ”, Москва, Финансы и статистика, 1991 год.

4.  Фаронов В. В. “ Програмирование на персоональных ЭВМ в среде Турбо-Паскаль “, Москва,  Изд-во МГТУ, 1991 год.