1сем Дагаев / ЛР3 / Отчет
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет инфокоммуникационных Сетей и систем (иксс)
кафедра программной инженерии и вычислительной техники
(пи и вт)
Дисциплина: «Программирование»
Лабораторная работа №3
Тема: «Циклические вычислительные процессы.
Задача табулирования»
вариант №20
Выполнил: Студент группы ИКВТ-03
Ситников Д.Г.
Подпись____________
Принял: к.т.н, доцент кафедры ПИиВТ
Дагаев А.В.
Подпись____________
«_____»________ 2020
2020г
Постановка задачи
Необходимо решить на компьютере задачу вычисления N значений функции y = f(x) для ряда равноотстоящих значений аргумента x, начиная от значения нач x x вплоть до значения кон x x . Функция y = f(x) зависит от параметра a. Результаты вычислений следует оформить в виде таблицы, снабженной заголовком.
Табл.1. Поставленная задача
№ |
Вид функции y = f(x) |
Рабочий набор исх. данных |
|||
N |
a |
xнач |
xкон |
||
20 |
|
5 |
2 |
1 |
5 |
Разработка алгоритма
Решаемая задача относится к категории задач формульного счета. В формуле для вычисления величины z целесообразно выполнить вычленение одинаковых подвыражений. Для выполнения вычленения введем дополнительную переменную p. С учетом этого расчетные формулы принимают следующий вид
В программе должен быть предусмотрен ввод исходных данных, к которым относятся переменные x, a, b; вычисления величин y, p и z; вывод результатов значений (вывод значений величин y и z).
Таблица идентификаторов
Табл.2. Таблица идентификаторов
Обозначения в задаче |
Идентификатор |
Назначение |
N |
N |
Количество расчетных точек |
a |
a |
Параметр функций |
xнач |
xn |
Начальное значение аргумента |
xкон |
xk |
Исходные данные |
x |
x |
Текущее значение аргумента |
y |
y |
Вычисленное значение аргумента |
Схема алгоритма решения.
Рис.1. Схема алгоритма
Таблица вычислений
Табл.2. Таблица вычислений
Назначение набора данных |
Набор данных |
Результаты вычислений |
|||||||
N |
a |
xn |
xk |
ручных |
машинных |
||||
x |
y |
x |
y |
||||||
Контрольный набор данных (тест) |
3 |
2 |
1 |
3 |
1 |
0,536 |
1 |
0,536479 |
|
2 |
0,519 |
2 |
0,51986 |
||||||
3 |
0,512 |
3 |
0,51299 |
||||||
Рабочий набор данных |
15 |
2 |
1 |
5 |
… |
… |
См. рез. |
См. рез. |
Описание программы
Программа разработана при помощи среды разработки Microsoft Visual Studio, в которой предоставлены все необходимые библиотеки, заголовки, необходимые компилятором C и C++ для работы в системе Windows, написана на языке C++. Программа собрана при помощи системы сборки компилятор C++ Visual Studio includes a command-line C, набора инструментов .NET Framework 4.5, тестировалась на Windows 10. Была подключена библиотека cmath, и были использованы следующие функции: exp – возведение экспоненты в степень, pow – возведение числа в степень.
Результаты работы программы
Далее предоставлены результаты выполнения программы с выбранным для тестирования контрольным набором исходных данных.
Рис.2 Результаты выполнения программы
Выводы
В ходе выполнения работы были получены следующие результаты:
1. Изучены алгоритмы написания программ решения задач формульного счета.
2. Освоена среда разработки Microsoft Visual Studio.
3. Программа разработана для вычисления математических функций на языке C++ таких, как возведения экспоненты и числа в степень exp(), возведения числа в степень pow().
Текст программы на Си
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
void main() {
setlocale(LC_ALL, "RUS");
float x, xn, xk, N, a, y;
system("cls");
cout << "Введите N, a, x начальный, x конечный: ";
cin >> N >> a >> xn >> xk;
for (x = xn; x < xk; x = x + ((xk - xn) / N)) {
y = log(a*a + x*x)/abs(a+x);
cout << "f(" << x << ") = " << y << endl;
}
system("pause");
}