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