Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет по программированию.doc
Скачиваний:
9
Добавлен:
18.07.2019
Размер:
295 Кб
Скачать
☆
  1. Текст программы

procedure TForm1.Button1Click(Sender: TObject);

var a, b, x0, x, Eps:Real;

function F(x:Real):real;

begin

F:=sin(ln(x))-cos(ln(x))+2*ln(x);

end;

begin

a:=StrToFloat(edit1.Text); {начало отрезка}

b:=StrToFloat(edit2.Text); {конец отрезка}

eps:=StrToFloat(edit3.Text); {абсолютная погрешность}

if (F(a)*F(b)>=0) then

edit4.Text:='на заданном отрезке корней нет'

else

begin

if F(a)=0 then x:=a

else

begin

if F(b)=0 then x:=b

else

begin

x0:=(a+b)/2;

while (f(x0)<>0) and (Abs(b-x0)>=eps) do

begin

if (F(a)*F(x0)<0) then b:=x0

else a:=x0;

x0:=(b+a)/2;

end;

x:=x0

end;

end;

edit4.Text:=FloatToStr(x);

end;

end;

end.

  1. Результаты тестирования

С использование программы MathCad был найден корень заданной функции.

Разработанная программа была протестирована в двух режимах: корректные значения, не корректные значения. Граничные значения отсутствуют. Результаты представлены в таблице 1.

Таблица 1. Результаты тестирования.

Режим тестирования

a

b

eps

Результат

Корректные значения

1

0,2

1,2

4

6

4

0,001

0,00004

0,01

1,374267578125

1,37487258911133

1,36953125

Не корректные значения

s

4

0,001

Ошибка – неверный формат

Вывод: программа работает верно.

  1. Заключение

В ходе проделанной работы был освоен способ нахождения корня уравнения методом половинного деления.

Задание 2. Вычисление конечных сумм.

  1. Теоретическое введение

Обычно формула общего члена суммы принадлежит к одному из следующих трех типов:

  1. . xn/n! (-1)n* x2n-1/(2n+1)! x2n/(2n)!

  2. cos(nx)/n sin((2n-1)x)/2n-1 cos(2nx)/4n2-1

  3. X4n-1/4n+1 (-1)n*cos(nx)/n2 n2+1(x/2)n/n!

В случаи b) необходимо каждый член суммы вычислять по общей формуле.

Алгоритм решения задач суммирования при значениях параметра суммирования, изменяющегося в некотором диапазоне с заданным шагом, сводится к двум вложенным циклам. Внутренний цикл суммирует слагаемые при фиксированном параметре x, а внешний организует изменение параметра x. Вычисляемая сумма является частичной суммой некоторого функционального ряда, поэтому наряду с вычислением суммы необходимо вычислить для сравнения и значения соответствующей функции y=F(x).

  1. Техническое задание

Составить программу для вычисления суммы ряда с заданной точностью eps и значения функции на заданном диапазоне изменения аргумента (количество расчетных точек – не менее 10).

Сумма: S=(x*cos(pi)/3))/1+(x^2*cos(2*pi)/3))/2+…+(x^n*cos(n*pi)/3))/n

Диапазон изменения аргумента:0,1<=x<=0,8

Функция y:= -1/2*ln(1-2*x*cos((pi)/3)+x^2)

  1. Анализ технического задания

Для нахождения суммы ряда, значения функции на заданном диапазоне необходимо:

  • Рассчитать точки

  • Найти значения функции в полученных точках

  • Определить способ задания входных параметров – ввод с экрана.

  • Найти суммы рядов в полученных точках и сопоставить со значениями функции в соответствующих значениях.

  1. Блок-схема

Блок-схема алгоритма

Блок-схема функции

  1. Модульная структура программы

  1. Спецификация на программные модули

Модуль 1.

  1. Имя модуля TForm1.Button1Click(Sender: TObject).

  2. Имя вызывающего модуля – Unit1.

  3. Выполняемые функции – реализует алгоритм нахождения конечных сумм.

  4. Входные данные – eps.

  5. Выходные данные – y,s,x.

  6. Особенности, ограничения – нет.

Модуль 2.

  1. Имя модуля y.

  2. Имя вызывающего модуля – TForm1.Button1Click(Sender: TObject).

  3. Выполняемые функции – вычисление значения функции.

  4. Входные данные – x.

  5. Выходные данные – y.

  6. Особенности, ограничения – нет.

Модуль 3.

  1. Имя модуля Unit1

  2. Имя вызывающего модуля – нет.

  3. Выполняемые функции – обеспечивает работу всех модулей.

  4. Входные данные – нет.

  5. Выходные данные – нет.

  6. Особенности, ограничения – нет.

Модуль 4.

  1. Имя модуля TForm1.FormCreate(Sender: TObject).

  2. Имя вызывающего модуля – Unit1.

  3. Выполняемые функции – обеспечивает очистку полей Memo.

  4. Входные данные – нет.

  5. Выходные данные – нет.

  6. Особенности, ограничения – нет.