Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
49
Добавлен:
01.10.2019
Размер:
72.68 Кб
Скачать

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

ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ

ВЫЧИСЛЕНИЯ ПО РЕККУРЕНТНЫМ ФОРМУЛАМ

Студент гр. ИКПИ-81

Коваленко Л. А.

А. Постановка задачи

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

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

В данной лабораторной работе рассматривается задача, содержащая линейный и циклический алгоритмы.

В случае с следует использовать линейный алгоритм.

В случае с — циклический.

Таким образом, задача сводится к двум основным действиям:

  1. Вычислить значение циклического алгоритма: .

  2. Прибавить к полученному значению (в первом пункте) .

Циклический алгоритм осуществляется с использованием цикла for (удобного для данной задачи). Счетчик цикла — i (причем из условий задачи понятно, что начальное ).

Если значение циклического алгоритма равно нулю (например, при ), то необходимо подсчитать значение линейного алгоритма.

В программе должен быть предусмотрен ввод исходных данных, к которым относятся переменные n, x; вычисление и вывод y.

В. Таблица идентификаторов

N

Обозначение в задаче

Идентификатор

Назначение

1

n

n

Входные данные

2

x

x

Входные данные

3

y

y

Выходные данные

4

i

Промежуточные данные

Г. Схема алгоритма

Начало

0

1

Ввод n, x

Останов

9

3

4

Вывод y

6

n>=6

2

Да

Нет

5

7

8

Д. Контрольный расчет

В качестве первого контрольного набора выберем n=7, x=0, второго — n=5, x=0.

Результаты вычислений приведены ниже в таблице вычислений.

Назначение набора данных

Набор данных

Результаты вычислений

n

x

Ручные

Машинные

y

y

Контрольный набор

7

0

0.954

0.954

5

0

0

0

Рабочий набор

30

9

861457.401

861457.401

Е. Программа на языке Си

/* Файл Lab4.c */

#include <stdio.h>

#include <math.h>

/*

Лабораторная работа 4

ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ

ВЫЧИСЛЕНИЯ ПО РЕККУРЕНТНЫМ ФОРМУЛАМ

Студент гр. ИКПИ-81

Коваленко Л. А.

*/

int main(int argc, char **argv)

{

int i, n;

double x, y;

/* Ввод исходных данных */

printf("Input n, x: ");

scanf("%d %lf", &n, &x);

/* Проверка и вычисления */

if (n >= 6) {

y = 1.0;

for (i = 6; i <= n; i++)

y *= x/(x+1.0) + (i*i)/(1.0 + i*i);

y = 2.4*sin(x) + y;

} else y = 2.4*sin(x);

/* Вывод результатов */

printf("y=%.3lf", y);

return 0;

}

Ж. Выводы

Тот факт, что результаты контрольных расчетов, выполненных вручную, достаточно совпадают с результатами контрольных расчетов, выполненных на ЭВМ, свидетельствуют о том, что программа составлена правильно.

Соседние файлы в папке Примеры отчетов