Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

program TabRgr;

Читайте также:
  1. A Graphical User Interface (GUI) makes computers easier to use. A GUI uses icons. Icons are pictures which represent programs, folders, and files.
  2. ATTRACTIVENESS OF THE UNIVERSITY AND ITS EDUCATIONAL PROGRAMS
  3. Australia Internship Program
  4. B. Listen to the programme.
  5. COMPETITION PROGRAM
  6. Complete the sentences with the types of programmes. Then compare your answers with your partner.
  7. Exercise 6 b. Make similar conversations about these television programmes.

{Студент: Молоцило Я.Е., группа: 4О-110Б, дата: 27.11.11}

{Программа табулирования функции Y=f(A,B,X), где аргумент X принимает N значений, изменяясь от начального значения Xn на шаг Dx, параметр A изменяется от начального An до конечного Ak значения с шагом Da, а параметр B равен численному значению определённого интеграла функции 1/sqrt(exp(2*x)+exp(x)+5) с верхней границей интегрирования, равной -0.04, и нижней - 65, при заданной погрешности Eps}

uses crt;

const Nmax=20;

type Tmy=array [1..Nmax,1..Nmax] of real;

Tmx=array [1..Nmax] of real;

Ter=array [1..Nmax,1..Nmax] of integer;

var A,Mx:Tmx;

My:Tmy;

Er:Ter;

Xn,Dx,An,Ak,Da,B,Eps,Z,C,D:real;

N,M,Err,Km:integer;

 

{Текст подпрограммы-процедуры заполнения массива значений параметра функции A}

Procedure DataIn (An,Ak,Da:real; var A:Tmx);

var i:integer;

At:real;

begin

At:=An;

i:=0;

Repeat

i:=i+1;

If At<Ak Then begin

A[i]:=At;

At:=At+Da;

end

Else A[i]:=Ak;

Until (A[i]=Ak);

end;

 

{Текст подпрограммы-процедуры табулирования функции}

procedure Tab (Xn,Dx,B:real; N,M:integer; A:Tmx; var Mx:Tmx; var My:Tmy; var Er:Ter);

var i,j:integer;

X,Y:real;

begin

For j:=1 to M do begin

X:=Xn;

For i:=1 to N do begin

Mx[i]:=X;

Er[i,j]:=0;

If X>0 Then begin

Y:=A[j]*B*sin(2*Pi*X)*sin(2*Pi*X)/sqrt(X);

My[i,j]:=Y;

end

Else Er[i,j]:=1;

X:=X+Dx;

end;

end;

end;

 

{Текст подпрограммы-функции}

Function F(X:real):real;

begin

F:=1/sqrt(exp(2*x)+exp(x)+5);

end;

 

{Текст подпрограммы-процедуры нахождения численного значения определенного интеграла методом Симпсона}

procedure Integral(C,D,Eps:real; Km:integer; var Z:real; var Err:integer);

var H,W,Z0:real;

i,j,K:integer;

begin

Err:=1;

K:=2;

j:=1;

Z0:=0;

While j<Km do begin

Z:=F(C)+F(D);

H:=(D-C)/K;

For i:=1 to K-1 do If Odd(i) Then Z:=Z+4*F(C+i*H)

Else Z:=Z+2*F(C+i*H);

Z:=Z*H/3;

W:=Abs(Z0-Z);

If w<Eps Then begin

Err:=Err-1;

j:=Km;

end

Else begin

Z0:=Z;

j:=j+1;

K:=K*2;

end;

end;

end;

 

{Текст подпрограммы-процедуры вывода данных}

Procedure RezOut (Mx,A:Tmx; N,M:integer; My:Tmy; Er:Ter);

var i,j:integer;

begin {Вывод результатов выполнения программы}

For j:=1 to M do begin

writeln (‘ A[‘,j,’]=’,A[j]:6:3);

writeln (‘ X Y’);

For i:=1 to N do If Er[i,j]=0 Then writeln (Mx[i]:6:3,’ ‘,My[i,j]:6:3)

Else writeln (Mx[i]:6:3,’ ошибка данных’);

writeln;

end;

end;

 

begin {Начало главной программы}

clrscr;

writeln ('Введите значения переменных: Xn,Dx,N.');

read (Xn,Dx,N);

writeln (‘Xn=’,Xn:6:3,’, Dx=’,Dx:6:3,’, N=’,N:3,’.’);

writeln ('Введите значения переменных: An,Da,Ak.');

read (An,Da,Ak);

writeln (‘An=’,An:6:3,’, Da=’,Da:6:3,’, Ak=’,Ak:6:3,’.’);

writeln ('Введите значения: нижнего предела интегрирования C, верхнего предела интегрирования D.');

read (C,D);

writeln (‘C=’,C:6:3,’, D=’,D:6:3,’.’);

writeln ('Введите значения: погрешности Eps, предельного числа повторения циклов Km.');

read (Eps,Km);

writeln (‘Eps=’,Eps:6:5,’, Km=’,Km:3,’.’);

DataIn (An,Ak,Da,A); {Вызов подпрограммы-процедуры заполнения массив значений параметра функции A}

Integral (C,D,Eps,Km,Z,Err); {Вызов подпрограммы-процедуры нахождения численного значения определенного интеграла методом Симпсона}

If Err=0 Then begin

M:=runk((Ak-An)/Da)+1;

B:=Z;

writeln ('Численное значение определенного интеграла B=',B:4:3,'.');

Tab (Xn,Dx,B,N,M,A,Mx,My,Er); {Вызов подпрограммы-процедуры табулирования функции}

RezOut (Mx,A,N,M,My,Er); {Вызов подпрограммы-процедуры вывода данных}

end

Else writeln ('Численное значение интеграла не найдено за ',Km:2,' итераций.');

end.

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

Выводы

Анализ результатов выполнения программы показывает, что полученные значения функции совпадают с результатами, полученными для контрольный тестовых примеров с помощью калькулятора, что подтверждает работоспособность программы. Следовательно, программа правильно вычисляет заданную функцию по всем ветвям алгоритма и может быть использована для других значений аргументов и параметров функции.


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

1. Кошелькова Л.В., Заковряшин А.И. Решение алгебраических задач численными методами в среде DELPHI: Учебное пособие к расчётной работе. – М.: Изд-во МАИ-ПРИНТ, 2008. – 88 с.: ил.

2. http://ru.wikipedia.org – свободная общедоступная мультиязычная универсальная интернет-энциклопедия.


Дата добавления: 2015-10-30; просмотров: 64 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Схемы алгоритмов| Главы (лекции) 1 и 2 добавлены в качестве лекций для студентов, но первоначально в учебное пособие не входили.

mybiblioteka.su - 2015-2024 год. (0.012 сек.)