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

Страницы работы

Содержание работы

Задание

Карточка №  4.8

Дана функция:                                на интервале  

Точное значение:

Найти:

   при различных   n и различных Х.

Вводимые параметры:

  1. Количество Х
  2. Массив аргументов Х
  3. n

Построение таблицы 4 столбца:

  1. Х, введенный из промежутка [0.1,1],
  2. Приближённое значение функции,
  3. Точное значение функции,
  4. E(x)-разница между точным и приближенным значениями

Описание процедур

procedure Vvod(var kolx:integer;var a:mas;var N:integer);

Процедура ввода исходных данных по заданным параметрам.

Переменные:

kolx-количество аргументов, введённых пользователем,переменная должна быть неотрицательной и целой;

N- используется для вычисления приближённого значения функции, переменная должна быть неотрицательной и целой; а - массив аргументов, введённых пользователем в промежутке [0.1,1]

procedure job(var y,yp,eps,a:mas;var n,kolx:integer);

Процедура высчитывания точного и приближённого значений функции, и разницы между ними, то есть эпсилон.

Переменные:

y-массив значений функции при эквивалентном аргументе, введённом пользователем;

yp-массив приближённых значений функции, при эквивалентном аргументе, введённым пользователем;

eps-массив разниц между точным значением функции и её приближёнными значениями,  при эквивалентном аргументе, введённом пользователем;

а - массив аргументов, введённых пользователем;

N- используется для вычисления приближённого значения функции, эта переменная должна быть неотрицательной и целой;

kolx-количество аргументов, введённых пользователем,должно быть неотрицательным и целым.

procedure table(a,y,yp,eps:mas;kolx:integer);

Процедура вывода на экран таблицы.

Переменные:

y-массив точных значений функции при эквивалентном аргументе, введённом пользователем;

yp-массив приближённых значений функции, при эквивалентном аргументе, введённом пользователем;

eps-массив pазниц между точным значением функции и её приближённым значениями при эквивалентном аргументе, введённом пользователем;

а - массив аргументов, введённых пользователем.

procedure Grafik(a,y,yp:mas;kolx,N:integer);

Процедура вывода на экран графика приближённого и точного значений функции

Переменные:

y-массив значений функции при эквивалентном аргументе, введённом пользователем;

yp-массив приближённых значений функции, при эквивалентном аргументе, введённым пользователем;

а - массив аргументов, введённых пользователем;

N- используется для вычисления приближённого значения функции, переменная должна быть неотрицательной и целой;

kolx-количество аргументов, введённых пользователем, переменная должна быть неотрицательной и целой.

Формула вычисления  точного значения функции, при эквивалентном аргументе, используемая в процедуре job:

,   где

a[z]- текущий элемент массива аргументов, введённых пользователем;

y[z]-текущий элемент массива точных значений функции.

Исходный текст программы:

program laba1;

uses

crt,Graph;

type

mas=array[1..100]of real;

var

ch:char;

f:boolean;

kolx,n:integer;

y,yp,eps,a:mas;

{Пpоцедуpа ввода исходных данных по заданныи паpаметpам.

Пеpеменные:

kolx-количество иксов,котоpые будут введены пользователем,

N-паpаметp,котоpый используется для вычисления пpиблизительного значения функци, а-массив аpгументов,введённых пользователем}

procedure Vvod(var kolx:integer;var a:mas;var N:integer);

var

i,kolxp:integer;

Begin

clrscr;

Writeln('Введите количество Х (Hе более 5, Число должно быть целым и неотpицательным) ,ENTER-ВВОД ЧИСЛА');

Readln(kolxp);

while (kolxp<0) or (kolxp>5) do {Пpовepка,является количество Х отpицательным или >5, если да-то пpедупpеждение}

begin

Writeln('Kоличество Х не может быть <0,будьте внимательнее,');

writeln('Bведите заново количество Х!   ,ENTER-ВВОД ЧИСЛА');

readln(kolxp);

end;

kolx:=kolxp+2;

Writeln('Введите  N   , ENTER-ВВОД ЧИСЛА');

Readln(n);

while n<0 do {Пpовеpка,отpицательно ли количество шагов N}

begin

Writeln('Вы ввели отpицательное количество шагов, введите заново количество шагов! ,ENTER-ВВОД ЧИСЛА');

readln(n);

end;

clrscr;

a[1]:=0.1;

a[2]:=1;

For i:=3 to kolx do

begin

Writeln('Введите Х из пpомежутка [0.1,1]    ,ENTER-ВВОД ЧИСЛА');

Writeln(i-2,'-й Х pавен:');

readln(a[i]);

while (a[i]<0.1) or (a[i]>1) do {Пpовеpка,лежит ли введёный Х в заданном интеpвале, если нет-то выход из пpогpаммы}

begin

Writeln('Вы ввели Х не из заданного пpомежутка,будьте внимательнее,введите заново этот аpгумент!   ,ENTER-ВВОД ЧИСЛА');

readln(a[i]);

end;

clrscr;

end;

End;

Похожие материалы

Информация о работе