Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Разработка алгоритма вычисления функции




Федеральное агентство по образованию

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ

ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Факультет технической кибернетики

Кафедра систем автоматического управления

ОТЧЕТ

По лабораторной работе № 2

«Итерационные циклы»

Курс «Программирование и основы алгоритмизации»

Судент гр. 1083/1 Иванов И.И.

Преподаватель  Иванова Л.В.

Санкт-Петербург

2011

 

Оформление задания

Оформление каждого задания оформляется с нового листа. Задание включает описание задачи в контексте условия варианта. Если в описании варианта задания присутствует графическое изображение (схема, график, диаграмма), то оно также включается в описание задания. По заданию составляется подробное техническое задание, в котором описываются входные данные и порядок их ввода, выходные данные и вид их обработки и вывода., данные для тестирования и условия отладки

Пример записи задания  и технического задания

Задание 1

Для ряда значений х из заданного диапазона получить значения функции

, являющейся разложением функции ex в ряд

с заданной точностью, определяя число итераций и сходимость. Достижение заданной точности определяется выполнением условия |Fi (x)- Fi-1 (x)| <e, где i- номер очередного члена ряда e - заданная погрешность. Для дополнительного контроля правильности работы программы вывести контрольное значение, рассчитанное по формуле у= ex.

 

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

      Исходными данными для задачи являются :

          Интервал изменение аргумента – начальное и конечное значения

                Шаг изменения аргумента

                Погрешность вычисления функции

                Максимальное число итераций

Исходные данные вводятся с клавиатуры по запросу вида

                Введите интервал изменения аргумента и шаг

 

                Введите погрешность и максимальное число итераций

 

Соответствующие данные вводятся через пробел

 

Результаты работы программы выводятся на экран в таблицу следующего вида (сетку таблицы можно не выводить)

x Y=F(x) Y контрольное=exp(x) Число итераций погрешность сходимость
           
           
           
           
           

 

В качестве погрешности выводится последняя разность |Fi (x)- Fi-1 (x)|

План тестирования

    Тестирование программы проводить в три этапа.

              1 этап. Тестирование главное программы.

Цель тестирования: проверка правильности ввода, передачи параметров и вывода

 

В качестве функции использовать любую простую функцию. Например такую

                       F(x)=x

                       N=5

                  Df=0.001

                                         

Исходные данные для тестирования

    Диапазон от 0 до 2 с шагом  0.5

    Погрешность 0.01  максимальное число итераций5

Ожидаемые результаты

x Y=F(x) Y контрольное=exp(x) Число итераций погрешность сходимость
0.0 0.0 1.00 5 0.001 не сходится
0.5 0.5 1.65 5 0.001 не сходится
1.0 1.0 2.72 5 0.001 не сходится
1.5 1.5 4.48 5 0.001 не сходится
2.0 2.0 7.39 5 0.001 не сходится

 

              Здесь тестируется правильность организации цикла по переменной x, вызов функции, обработка результатов и вывод

 

 

2 этап. Тестирование функции вычисления ряда.

Цель тестирования: проверка правильности работы функции вычисления ряда.

Исходные данные

                  Диапазон от 1 до 1 с шагом  1  

              Погрешность 0.01  максимальное число итераций 3

 

Предварительные расчеты суммы для x=1 для 4 членов ряда

x

i- номер итерации

i – член ряда 

Частичная сумма на i-ом шаге

1

0

1

1

 

1

1

2

 

2

0.5

2.5

 

3

0.166667

2.666667

Ожидаемый вид результатов тестирования

 

x Y=F(x) Y контр=exp(x) Число итераций погрешность сходимость
  x 1   i             a        f          0      1         1 1      1         2 2      0.5     2.5 3      0.16   2.667                           
1 2.66 2.72 3 0.166667 не сходится

                  

        

3 этап.

Тестирование отлаженной программы (без промежуточных результатов) для варианта исходных данных из теста 1.

Ожидаемые результаты

x Y=F(x) Y контрольное=exp(x) Число итераций погрешность сходимость
0.000 0.000 1.000 1 0.000 сходится
0.500 0.500 1.649 4

0.003

сходится
1.000 2.716 2.718 5 0.008 не сходится
1.500 4.462 4.482 5 0.063 не сходится
2.000 7.267 7.389 5 0.267 не сходится

 

 

Если для подготовки результатов тестирования использовались технические средства, вставлять их лучше вместе с формулами Например, для вставки листа ExсeL после копирования надо вставить его через меню ПРАВКА- Специальная вставка - Лист Excel(объект)

Пример (можно посмотреть все формулы, изменить данные и т.п.)

Для подготовки результатов тестирования использован ExCeL

 

1.2. Разработка алгоритма

Математическое описание задачи (для нашего примера)

Текущее значение вычисляем по формуле

X= x0+i*dx; где i=- номер точки, изменяется от 0 до K.

K вычисляем по формуле k=целая часть(xk-x0)/dx

Необходимо уточнить значение шага для точного попадания в конечную точку

dx= (xk-xo)/k

Вычисление самой функции здесь не рассматриваем!!!!!!!!

 

Далее  этом пункте выбираются имена и типы для входных и выходных данных, составляется таблица вида

№ п/п Имя переменной, константы и т.д. Тип Вид Назначение
1 а int переменная Возраст
2 b float переменная Рост в метрах
3 c char[10] переменная Фамилия
4 g float константа Гравитационная постоянная

Для нашего примера

№ п/п Имя переменной, константы и т.д. Тип Вид Назначение

Входные параметры, вводимые с клавиатуры

1 x0 real переменная Начало интервала для Х
2 xk real переменная Конец интервала для Х
3 dx real переменная Шаг по Х
4 n_max integer переменная Максимальное число итераций для вычисления функции
5 eps     Допустимая погрешность вычисления функции

Выходные данные (результаты вычислений)

5 X real переменная Аргумент функции
6 y real   F(x)
7 n integer   Число итераций
8 Dy real   Погрешность
9 Y_kontr real   Контрольное значение

Переменные для обеспечения вычислений

10 k integer   Число промежутков интервале
11 i integer   Счетчик точек по x

 

Правила оформления схемы алгоритма (блок-схемы) (если алгоритм простой, он может быть словесный)

Блок-схема должна отражать весь алгоритм работы программы. Если программа состоит из нескольких модулей, то для каждого модуля составляется отдельная блок-схема. В случае, если в программе определены подпрограммы (процедуры и функции), то для каждой из них составляется отдельная блок-схема, которой предшествует свое задание, математическое описание подзадачи и структура данных.

При оформлении блок-схемы к программе следует придерживаться следующих правил:

1. Элементы блок-схемы изображаются согласно их описанию, приведенному в таблице;

2. Линии изображаются со стрелками, если они (или какая-либо их часть) направлены вверх или влево;

3. Пересечения линий не допускаются. В случае, когда возникает ситуация с пересечением линий, следует воспользоваться элементами «Соединитель»;

4. Линии должны соединяться с фигурами только сверху или снизу. Исключение составляет «Логический» блок. Для него разрешается ответвление линий в любую сторону;

5. Все надписи выполняются шрифтом одного размера. Если надписи выполняются «от руки», то используют чертежный шрифт подходящего размера.

6. Все элементы размещаются в воображаемой сетке с размером ячейки 4 х 3 ед., при этом сама сетка не изображается.

 

 

Обозначения элементов блок-схемы

Условное обозначение Наименование
Блок вычислений
Логический блок
Блок ввода-вывода данных
Начало (конец)
Процесс пользователя (подпрограмма)
Блок модификации
Соединитель
Межстраничные соединения

 

 

Рекомендации

1. Так как отчет оформляется в редакторе MS Word, то для создания блок-схем целесообразно использовать встроенные возможности этого редактора, размещая на странице так называемые «Автофигуры» панели «Рисование»

2. Чтобы избежать искажения пропорций элементов блок-схемы при их масштабировании держите нажатой клавишу “Shift”

3. Для добавления текста внутрь графического изображения элемента воспользуйтесь командой контекстного меню «Добавить текст».

Вызвать контекстное меню можно, нажав правую кнопку мыши над изображением.

 

Алгоритм главной программы

1. Ввод исходных данных

1.1. Вывод сообщения : Введите интервал и шаг

1.2. Ввод x0, xk, dx

1.3. Вывод сообщения : Введите максимальное число итераций и погрешность

1.4. ввод n_max, eps

2. Расчет числа точек и уточнение шага

2.1. k=целая часть((xk-x0)/dх)

2.2. dx=(xk-x0)/k

3. Вывод заголовка таблицы

4. Цикл для i от 0 до k

4.1. x=x0+i*dx

4.2. y=f(x, n_max, eps, dy,  n ) // функция вычисления суммы ряда

4.3. y_kontr=exp(x)

4.4. вывод x,y, y_kontr,dy,n

4.5. если n>=n_max вывод “НЕ “

4.6. вывод ”СХОДИТСЯ”

5. конец

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

 

Затычка для проверки работы главной программы

 

Функция f

 

Структура данных (только входные и выходные параметры)

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

1 х real Значение (входной) Аргумент функции
2 n_max integer Значение (входной) Максимальное число итераций
3 eps real Значение (входной) Допустимая погрешность
4 Dy real Адрес (выходной) Реальная погрешность вычисления функции
5 n integer Адрес (выходной) Число итераций
6 f reaal Имя функции Возвращаемый результат вычисления функции

 

Алгоритм затычки для функции f. Задаем значения выходных параметров для проверки правильности вывоза функции и передачи параметров.

  1. dy=0.001
  2. n=5
  3. f=x

конец f

 

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

x0 xk dx N_max eps k
0 2 0.5 3 0.01 4
    0.5      

 

i x y Y_kontr Число итераций погрешность сходимость
0 0.0 0.0 1.00 5 0.001 не сходится
1 0.5 0.5 1.65 5 0.001 не сходится
2 1.0 1.0 2.72 5 0.001 не сходится
3 1.5 1.5 4.48 5 0.001 не сходится
4 2.0 2.0 7.39 5 0.001 не сходится

 

 


Разработка алгоритма вычисления функции

1.3.1. Назначение функции

Для заданного значения х получить значения функции

с заданной точностью, определяя число итераций. Достижение заданной точности определяется выполнением условия |Fi (x)- Fi-1 (x)| <e, где i- номер очередного члена ряда e - заданная погрешность, количество итераций ограничено значением  n_max

 

Математическое описание задачи.

Первый член ряда         

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

Найдем формулу для вычисления q, и если она будет проще, формула для вычисления члена ряда, то используем ее в своем алгоритме

Начальное значение суммы   или просто a

1.3.2. Структура данных функции f

Дополним структуру данных параметрами S, a, q и S0

Окончательно получим структуру данных для подпрограммы расчета суммы ряда

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

1 х real Значение (входной) Аргумент функции
2 n_max integer Значение (входной) Максимальное число итераций
3 eps real Значение (входной) Допустимая погрешность
4 dy real Адрес (выходной) Реальная погрешность вычисления функции
5 n integer Адрес (выходной) Число итераций (номер очередного члена ряда -i
6 f real Имя функции Возвращаемый результат вычисления функции

Локальные параметры

1 a real переменная Очередной член ряда
2 S real переменная Сумма n членов
3 S0 real переменная Сумма (n-1) членов
4 q real переменная Множитель для определения следующего члена ряда
         

 

1.3.3. Алгоритм вычисления функции и его проверка

 

 

 

1.4. Составление программы

1.4.1. Главная программа

Текст программы с затычкой

 

1.4.2. Функция вычисления суммы ряда

Текст функции отдельно

1.5. Тестирование программы

1.5.1. Тест 1

Исходные данные

 

 

Результат

 

1.5.2. Тест 2

Исходные данные

 

 

Результат

 

1.5.3. Тест 3

Исходные данные

 

Результат

 

1.6. Выводы

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

 

 

Если в лабораторной работе только одно задание, то первый индекс в нумерации разделов нужно опустить.

 

 










Последнее изменение этой страницы: 2018-05-30; просмотров: 163.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...