Смекни!
smekni.com

Средства языка программирования Паскаль для решения математических задач (стр. 3 из 4)

2.4 Описание переменных.

Имя переменной Тип переменной Значение

K

integer Номер члена ряда
number integer Порядковый номер
A real Начало интервала
B real Конец интервала
H Шаг интервала
E Точность
X Текущее значение аргумента
у Значение члена ряда
f Значение функции для текущего аргумента

2.5 Схема алгоритма.


Программа предназначена для вычисления

таблицы значений функции,


заданной в виде разложения в ряд.


Введите границы интервала [A,B] ( причем (A<B) );

точность E (E>0)


и шаг изменения аргумента H (H>0)


ДА

НЕТ

НЕТ

ДА


нет


да

нет

да

нет

2.5.1 Схема алгоритма процедуры Table_begin


¦Номер¦ X ¦ f(x) ¦ Номер члена ряда ¦

2.5.2 Схема алгоритма процедуры Table_end


2.6 Текст программы.

Program kkr1_2;

procedure Table_begin;

begin

writeln(' ----------------------------------------------------------------------------------');

writeln(' ¦Номер¦ X ¦ f(x) ¦ Номер члена ряда ¦');

writeln(' ----------------------------------------------------------------------------------');

end;

procedure Table_end;

begin

writeln(' ----------------------------------------------------------------------------------');

end;

var

K,number:integer;

A,B,H,E,X,y,f:real;

begin

Writeln ('Программа предназначена для вычисления таблицы значений функции, ');

writeln ('заданной в виде разложения в ряд.');

Writeln;

{------------------------------------------------------------------------}

{Ввод данных}

writeln('Введите границы интервала [A,B] ( причем (A<B) ); точность E (E>0)');

writeln('и шаг изменения аргумента H (H>0)');

writeln;

repeat

begin

writeln('Начало интервала A: '); readln(A);

writeln('Конец интервала B: '); readln(B);

if not (A<B) then writeln ('A должно быть меньше B !. Повторите ввод.');

end;

until (A<B);

repeat

begin

writeln('Точность E: '); readln(E);

if not (E>0) then writeln ('E должно быть больше 0 !. Повторите ввод.');

end;

until (E>0);

repeat

begin

writeln('Шаг H: ');readln(H);

if not (H>0) then writeln ('H должно быть больше 0 !. Повторите ввод.');

end;

until (H>0);

{------------------------------------------------------------------------}

writeln('Вы ввели: ');

writeln('A=',A:1:5, ' B=',B:1:5,' H=',H:1:5,' E=',E:1:5);

writeln;

{------------------------------------------------------------------------}

X:=A;

number:=0;

Table_begin;

repeat

k:=0;

y:=(cos(2*x))/3;

f:=0;

inc(number);

repeat

inc(k);

y:=y*cos(2*(k+1)*x)*(2*k-1)/((2*k+3)*cos(2*k*x));

f:=f+y;

until (abs(y)<E);

if (number mod 18)=0 then

begin

Table_end;

Table_begin;

end;

writeln(' ¦',number:5,'¦', X:20:13,' ¦ ',(4/Pi)*(0.5-f):16:13, ' ¦ ' ,k:7,' ¦');

X:=X+H;

until not (X<B);

Table_end;

end.

2.7 Инструкция пользователю.

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