1 семестр (Леканов) / лаба2 в2 / Garakhin_A_N_2
.odtНижегородский Государственный
Технический Университет
им. Р. Е. Алексеева
Кафедра: “Прикладная математика”
Лабораторная №2
Тема: Циклический алгоритм
Вариант: 2
Выполнил
Студент группы: 18ПК
Гарахин А.Н.
Проверил:
Леканов А.К.
Нижний Новгород
2018г.
А)Постановка задачи:
1. использование оператора «for»
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
double x, y;
cout.precision(5);
cout << setw(10) << "x=" << "\t" << setw(10) << "y=" << endl;
for (x = 0; x <= 4; x += 0.8)
{
y = cos(3.56*(pow(x, 3) - 4 * x));
cout << setw(10) << x << "\t" << setw(10) << y << endl;
}
return 0;
}
2. использование оператора «while»
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
double x, y;
cout.precision(5);
cout << setw(10) << "x=" << "\t" << setw(10) << "y=" << endl;
x = 0;
while (x <= 4)
{
y = cos(3.56*(pow(x, 3) - 4 * x));
cout << setw(10) << x << "\t" << setw(10) << y << endl;
x += 0.8;
}
return 0;
}
3. использование оператора «do while»
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
double x, y;
cout.precision(5);
cout << setw(10) << "x=" << "\t" << setw(10) << "y=" << endl;
x = 0;
do
{
y = cos(3.56*(pow(x, 3) - 4 * x));
cout << setw(10) << x << "\t" << setw(10) << y << endl;
x += 0.8;
} while (x <= 4);
return 0;
}
Общий результат:
Mathcad:
1) 2)
3)
Б)Постановка задачи:
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
double x, y, z, s, p, min, max;
min = 10000;
max = -10000;
s = 0;
p = 1;
cout.precision(5);
cout << setw(10) << "x=" << "\t" << setw(10) << "y=" << "\t" << setw(10) << "z=" << endl;
for (x = 0; x <= 12; x += 7)
{
for (y = 0; y <= 3; y += 1.5)
{
if (fabs(x*y) <= 5)
z = cos(exp(1));
else if ((fabs(x*y) < 15) && (fabs(x*y) > 5))
z = pow(x, 2) + pow(y, 2);
else z = sin(x);
cout << setw(10) << x << "\t" << setw(10) << y << "\t" << setw(10) << z << endl;
if (min > z)
min = z;
if (max < z)
max = z;
s = s + z;
p = p * z;
}
}
cout <<"\n"<< " s= " << s << endl;
cout << " p= " << p << endl;
cout << " min= " << min << endl;
cout << " max= " << max << endl;
return 0;
}
Результат:
Блок – схема:
Mathcad:
В)Постановка задачи:
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
double x, y, z, z1, z2;
cout.precision(5);
cout << setw(10) << "x=" << "\t" << setw(10) << "y=" << "\t" << setw(10) << "z=" << endl;
(x = 2);
while (x <= 3.2)
{(y = 0.5);
while (y <= 1)
{
z1 = pow(fabs(cos(x)), y);
z2 = pow((x + 6), 1 / 5);
if (z1 < z2)
z = z1;
else
z = z2;
cout << setw(10) << x << "\t" << setw(10) << y << "\t" << setw(10) << z << endl;
y += 0.22;
}
x += 0.7;
}
return 0;
}
Результат:
Mathcad:
Excel:
1 задание
2 задание
3 задание
Вывод: На этой лабораторной работе я изучил циклические алгоритмы.