1сем Дагаев / ЛР4 / Отчет
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет инфокоммуникационных Сетей и систем (иксс)
кафедра программной инженерии и вычислительной техники
(пи и вт)
Дисциплина: «Программирование»
Лабораторная работа №4.
Тема: «Циклические вычислительные процессы. Вычисления по рекуррентным формулам»
вариант №20
Выполнил: Студент группы ИКВТ-03
Ситников Д.Г.
Подпись____________
Принял: к.т.н, доцент кафедры ПИиВТ
Дагаев А.В.
Подпись____________
«_____»________ 2020
Санкт-Петербург
2020г
Постановка задачи
Требуется составить программу вычисления значения функции (рис.1)
Рис. 1. Постановка задачи
по заданным значениям x, n и выполнить вычисления на ЭВМ
Разработка алгоритма
Решаемая задача относится к категории задач формульного счета. В формуле для вычисления величины z удобнее подсчитать сумму в отдельной функции вещественного типа, называемой Sum (рис.2), она получает на вход значения переменных n и x1.
Рис. 2. Функция Sum
В программе должен быть предусмотрен ввод исходных данных, к которым относятся переменные x, n; вычисление z с обращением к функции Sum; вывод результатов значений (вывод значения z).
Таблица идентификаторов
Табл.1. Таблица идентификаторов
N |
Обозначения в задаче |
Идентификатор |
Назначение |
1 |
n |
n |
Исходные данные |
2 |
x |
x |
|
3 |
k |
k |
|
4 |
z |
z |
Результаты вычислений |
5 |
f |
f |
Описание программы
Программа разработана при помощи среды разработки Microsoft Visual Studio, в которой предоставлены все необходимые библиотеки, заголовки, необходимые компилятором C и C++ для работы в системе Windows, написана на языке C++. Программа собрана при помощи системы сборки компилятор C++ Visual Studio includes a command-line C, набора инструментов .NET Framework 4.5, тестировалась на Windows 10. Были подключены библиотеки iostream и windows.h, для ввода и вывода и управления экраном вывода соответственно, были использованы функции cout, cin и system.
Результаты работы программы
На рис.3 предоставлены результаты выполнения программы с выбранным для тестирования контрольным набором исходных данных.
Рис.3 Результат расчета функции z.
Контрольный расчет
Для тестирования программы выбираем контрольный набор исходных данных: n = 15, x = 1.5.
Расчет, выполненный вручную, дал следующие результаты: z = 0.417
Таблица вычислений
Табл.2. Таблица вычислений
Назначение набора данных |
Набор данных |
Результаты вычислений |
||
x |
n |
ручных |
машинных |
|
z |
z |
|||
Контрольный набор данных (тест) |
15 |
1.5 |
0.417 |
0.417002 |
Рабочий набор данных |
1 |
1 |
0.5 |
0.5 |
Рис.4 Результаты выполнения программы
Текст программы на C++
#include <iostream>
#include <windows.h>
using namespace std;
float Sum(int *n, float *x1) {
float x = *x1;
float f = 0;
int znak = -1;
for (int k = 1; k <= *n; k++) {
f = f + znak*k*x / (x*x + k*k);
znak = -znak;
}
return f;
}
void main() {
int n;
float z, x;
system("cls");
cout << "Vvedite n(int) & x(float) = ";
cin >> n >> x;
z = 1 / x + Sum(&n, &x);
cout << "z = " << z << endl;
system("pause");
}
Выводы
В ходе выполнения работы были получены следующие результаты:
1. Изучены алгоритмы написания программ решения задач формульного счета.
2. Программа разработана для вычисления математических функций на языке C++ таких, как возведения экспоненты и числа в степень pow().
3. Научились находим произведение и суммы чисел от k до n, через цикл for().