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

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

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

Министерство образования и науки РФ

Тульский государственный университет

Кафедра прикладной математики и информатики

Технологии проектирования программных систем

Лабораторная работа №2

«Проектирование и программирование модуля»

Выполнил:   студент группы                                                            

Проверил:                                                                                                                                                                                          

 

Тула - 2004


I. ЦЕЛЬ РАБОТЫ

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

II. ЗАДАНИЕ

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

III.  ВЫПОЛНЕНИЕ

МОДУЛЬ mysin:

Производит вычисление синуса  как частичную сумму его разложение в ряд Тейлора.

Входными данными является аргумент arg, который передается по значению, тип – с плавающей точкой (float).

На выходе: значение функции синус от аргумента sin(arg), тип – с плавающей точкой (float).

Для повышения стабильности работы модуль снабжен операцией приведения аргумента к оптимальному виду, то есть .

1. Математическая формулировка решения задачи:


2. Выбор численного метода: 


              

An=An-1 * q,      A0=x 

Sn=Sn-1 +An,      S0=x

 
 


3. Разработка алгоритма решения задачи:

A0=x         S0=x     


                     1 

An=An-1 * q   

n                              êAnê<e

нет          да

Sn=Sn-1 +An

n=n+1

¥

Разработка программного модуля.

4. Определение данных:

а) Выбор баз данных:

      x                                          mysin

 


б) Выбор структуры и формы баз данных на машинных носителях:

Блок-схема: данные:               f
x.xxxxxx
   х
Блок-схема: документ: f
x.xxxxxx
mysin
 


в) Выбор структуры и формы баз данных в основной памяти:

      

 


Овал: 2Овал: 1Блок-схема: знак завершения: начало

Блок-схема: решение: x>2

x=x-2

 
Блок-схема: решение: x<-2

x=x+2

 
5. Разработка алгоритма программного модуля:

 


Блок-схема: знак завершения: конец                                             нет

                                                                                 

 


да                                                                               нет

 


                                                                                           да

А=А*q

 
 


нет

               

S=S+А

n=n+1

 
 


                          да

Овал: 1
 


Текст модуля:

#include <stdio.h>

#include <iostream.h>

#include<math.h>

void main()

{

float  mysin(float);

float arg=1.;

cout<<mysin(arg);

}

float  mysin(float x)

{

while (x>M_PI) x-=2*M_PI;

while (x<-M_PI) x+=2*M_PI;

float S=x, A=x,q,eps=0.001,n=1;

while(fabs(A)>=eps)

{

q=-x/(2*n)*x/(2*n+1);

A*=q;

S+=A;

n+=1;

}

return S;

}

МОДУЛЬ F:

Данный модуль производит вычисление натурального логарифма с помощью разложения его в частичную сумму ряда Тейлора.

Входными данными является аргумент t, передача по значению, тип – с плавающей точкой (float).

Выход: значение функции ln(x), тип данных – с плавающей точкой (float)

1. Математическая формулировка решения задачи:


2. Выбор численного метода: 

An=An-1 * q,  A0= 

Sn=Sn-1 +An,  S0=

 

              

3. Разработка алгоритма решения задачи:

A0=         S0=     


                     1  

An=An-1 * q   

n                              êAnê<e

нет          да

Sn=Sn-1 +An

n=n+1

¥

Разработка программного модуля.

4. Определение данных:

а) Выбор баз данных:

      x                                          F

 

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

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