C++ (Мытникова) / Отчёты / Отчёт 3
.docxМИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Чувашский государственный университет имени И.Н. Ульянова»
Факультет информатики и вычислительной техники
Кафедра компьютерных технологий
Программирование на языках высокого уровня
Лабораторная работа №3
Вариант 8.
Выполнил:
студент гр. КТ-43-15
Сергеев А. И.
Проверил:
ст.преп. кафедры КТ
Мытникова Е.А.
Чебоксары, 2016
ЛАБОРАТОРНАЯ РАБОТА 3.
ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ.
ЗАДАЧА ТАБУЛИРОВАНИЯ
Цель работы: получение практических навыков решения задач по вычислению значений функции при различных значениях аргумента (табулирование функции).
-
Задание.
Задание: необходимо решить задачу вычисления N значений функции y = f(x) для ряда равноотстоящих значений аргумента x, начиная от значения x = xнач вплоть до значения x = xкон. Функция y = f(x) зависит от параметра a. Результаты вычислений следует оформить в виде таблицы, снабженной заголовком.
Таблица 1.
8 |
15 |
6 |
2 |
5 |
-
Код программы
-
Для for:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
#include <locale.h>
#include <iomanip>
using namespace std;
int main(void)
{
setlocale(0, "Rus");
double x, xn, xk, N, a, y, h;
//cout << "Вариант 8" << endl;
cout << "Ведите N = ";
cin >> N;
cout << "Введите a = ";
cin >> a;
cout << "Введите xn = ";
cin >> xn;
cout << "Введите xk = ";
cin >> xk;
h = (xk - xn) / N;
y = 0;
for (x = Xn; x <= Xk; x += h)
{
y = pow(a + log(a) + log(x), 1.0 / 5);
cout << "Ответ: y = " << y << " \t\t\t при x = " << x << endl;
}
_getch();
return 0;
}
-
Для while:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
#include <locale.h>
#include <iomanip>
using namespace std;
int main(void)
{
setlocale(0, "Rus");
double x, xn, xk, N, a, y, h;
//cout << "Вариант 8" << endl;
cout << "Ведите N = ";
cin >> N;
cout << "Введите a = ";
cin >> a;
cout << "Введите xn = ";
cin >> xn;
cout << "Введите xk = ";
cin >> xk;
h = (xk - xn) / N;
y = 0;
x=xn;
while (x <= xk)
{
y = pow(a + log(a) + log(x), 1.0 / 5);
x += h;
cout << "Ответ: y = " << y << " \t\t\t при x = " << x << endl;
}
_getch();
return 0;
}
-
Для do while
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
#include <locale.h>
#include <iomanip>
using namespace std;
int main(void)
{
setlocale(0, "Rus");
double x, xn, xk, N, a, y, h;
//cout << "Вариант 8" << endl;
cout << "Ведите N = ";
cin >> N;
cout << "Введите a = ";
cin >> a;
cout << "Введите xn = ";
cin >> xn;
cout << "Введите xk = ";
cin >> xk;
h = (xk - xn) / N;
y=0;
x=xn;
do
{
y+ = pow(a + log(a) + log(x), 1.0 / 5);
x += h;
cout << "Ответ: y = " << y << " \t\t\t при x = " << x << endl;
} while (x < xk);
_getch();
return 0;
}
-
Результаты во всех трех программах одинаковы
4. Блок-схема.
Начало
Вводим N, a, х1, x2
X=x1
x+=(x2-x1)/N
x<=x2
y=
Вывод x, у
Конец