Добавил:
Лабы/курсовые по программированию (С++/Verilog HDL), Теория и Практика Помехоустойчивого Кодирования Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1сем Дагаев / ЛР3 / Отчет

.docx
Скачиваний:
22
Добавлен:
09.03.2022
Размер:
101.64 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Факультет инфокоммуникационных Сетей и систем (иксс)

кафедра программной инженерии и вычислительной техники

(пи и вт)

Дисциплина: «Программирование»

Лабораторная работа №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");

}

Соседние файлы в папке ЛР3