Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Пример программы. Формулировка задания:



Формулировка задания:

Вычислить ax = e x*ln(a) = 1 + x * ln(a) / 1! + (x * ln(a))2 / 2! + (x * ln(a))3 / 3!… для заданного диапазона изменения аргумента x. Значение а и точность вычисления вводятся с клавиатуры. Результаты представить в виде таблицы:

аргумент, сумма, количество слагаемых, контрольное значение.

Program SummaRiada;

{Вычислить a^x=e^(x*ln(a))=1+x*ln(a)/1!+(x*ln(a))^2/2!+...

Результаты представить в виде таблицы:

аргумент, сумма, кол. слагаемых, контрольное значение.}

USES Crt; {подключение модуля}

{Процедура вывода пользовательского окна на экран}

PROCEDURE Okno(xv,yv,xn,yn,colfona,colbukv:BYTE;zag:STRING);

VAR

i:INTEGER;

BEGIN

Window(xv,yv,xn,yn); {Установка размеров окна}

TextColor(colbukv); {Установка цвета шрифта}

TextBackGround(colfona); {Установка цвета фона}

ClrScr; {переводит курсор в левый верхний угол окна и

очищает окно, заливая его цветом установленного фона}

GoToXY((xn-xv) DIV 2 - Length(zag) DIV 2,1);

Write(zag);

Window(xv+1,yv+1,xn-1,yn);

END;

Var

eps:Real; {точность вычисления}

a:Real; {значение основания}

x,xn,xk:Real; {текущее, начальное и конечное значение степени}

h:Real; {шаг изменения степени}

rez:Real; {результат вычисления}

pr:Real; {значение текущего слагаемого}

n:Longint; {текущий номер слагаемого}

Begin

TextBackGround(BLACK);

TextColor(15);

clrscr;

{Окно формулировки задания. Белый текст на синем фоне.}

Okno(8,20,72,25,BLUE,15,'Формулировка задания');

WriteLn('Вычисление предела произведения (1+1/a(1))*..*(1+1/a(n))');

WriteLn('с заданной точностью 0 <eps<= 0.1');

WriteLn('Значение a(1)=0.5; a(n)=n*(a(n-1)+0.5)');

Write('Вычисления закончить при (1/a(n))<eps');

{Окно ввода. Белый текст на зеленом фоне.}

Okno(9,2,71,8,2,15,'Ввод');

Write('Введите значение точности вычисления: ');

ReadLn(eps);

If (eps>0.1)Or(eps<=0)

Then Begin

{Окно вывода сообщения об ошибке. Красный текст на зеленом фоне.}

Okno(10,11,70,13,GREEN,RED,'Сообщение об ошибке');

Write('Ошибка ввода! Значение eps должно быть <=0.1 и >0');

ReadLn;

Exit;

End;

Write('Введите значение числа a: ');

ReadLn(a);

Write('Введите начальное значение степени: ');

ReadLn(xn);

Write('Введите конечное значение степени: ');

ReadLn(xk);

If xk<xn

Then Begin

{Окно вывода сообщения об ошибке. Красный текст на зеленом фоне.}

Okno(10,11,70,13,GREEN,RED,'Сообщение об ошибке');

Write('Ошибка ввода! xk д.б. >=xn');

ReadLn;

Exit;

End;

Write('Введите значение шага изменения степени: ');

ReadLn(h);

If (h<=0)

Then Begin

{Окно вывода сообщения об ошибке. Красный текст на зеленом фоне.}

Okno(10,11,70,13,GREEN,RED,'Сообщение об ошибке');

Write('Ошибка ввода! Значение должно быть >0.');

ReadLn;

Exit;

End;

{Окно вывода результата. Белый текст на краснном фоне.}

Okno(10,10,70,18,4,15,'Вывод');

WriteLn('Степень | Сумма |Кол.слаг.|Контрольное значение');

x:=xn;

Repeat

rez:=0;

n:=0;

pr:=1;

While abs(pr)>eps Do

Begin

rez:=rez+pr;

Inc(n);

pr:=pr*x*ln(a)/n;

End;

WriteLn(x:6:2,rez:15:4,n:6,exp(x*ln(a)):17:4);

x:=x+h;

Until x>xk;

End.





Дата публикования: 2014-11-03; Прочитано: 223 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...