
Задание №1
Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.
|
При x = 16.5510-3, y = –2.75, z = 0.15 = –38.902. –40.6307 |
Структурная схема алгоритма:
Листинг:
#include <iostream>
using namespace std;
#include <conio.h>
#include <math.h>
int main()
{
double x, y, z, a, b , rez;
cout << "\n\t x,y,z = " << endl;
// Вводим исходные данные
cin >> x >> y >> z;
// Разбиваем наш пример на несколько частей; вычисляем первую часть
a = sqrt(10*(pow(x,1*1.0/3)+pow(x,y+2)));
// Вычисляем вторую часть
b = pow(asin(z),2)-fabs(x-y);
// Вычисляем ответ
rez = a*b;
cout << "\n x = " << x << "\n y = " << y << "\n z = " << z
// Выводим на экран
<< "\nRezult = " << rez << endl;
cout << "Press any key ... " << endl;
getch();
return 0;
}
Задание №2
Составить программу для вычисления значения rez в зависимости от поставленного условия.
Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен.
rez =
Структурная схема алгоритма:
Листинг:
#include <conio.h>
#include <math.h>
#include <iostream>
#include <iomanip>
using namespace std;
Int main()
{
double n1, n2, rez, nsum;
cout << "Input n1, n2" << endl;
// Вводим исходные дынные
cin >> n1 >> n2;
nsum=n1+n2;
// Находим ответ в соответствии с условиями
if ((nsum>=M_PI)&&(nsum<5.0)) {
rez = pow(sin(M_PI*n1+exp(n2)),2);
cout << " pi <= n1+n2 < 5" << endl;
} else if (nsum>=5.0) {
rez = pow(sin(M_PI*n2+n1),2);
cout << " n1+n2>=5 " << endl;
} else cout << "n1+n2<PI \t Net otveta" << endl;
cout.unsetf(ios::showpos);
// Вывовим ответ на экран
cout << "\n\t Rezult U = " << rez;
cout <<"\nPress any key ... " << endl;
getch();
}
Задание №3
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания.
.
Структурная схема алгоритма:
Листинг:
#include <conio.h>
#include <stdio.h>
#include <math.h>
// Описываем функцию вычиления факториала
double fact(int n)
{
int i, nfact;
nfact=1;
for (i=1; i<=n; i++) nfact=nfact*i;
return nfact;
}
int main()
{
double x, a, b, h, s, y, rez; int k, n;
// Вводим исходные данные
puts("Input a,b,h,n");
scanf("%lf%lf%lf%d", &a, &b, &h, &n);
// Производим необходимые вычисления в соответсвии с заданием
for(x = a; x<=b; x+=h) {
s = 1; y=(1+2*pow(x,2))*exp(pow(x,2));
for(k = 1; k<=n; k++) {
rez=((2*k+1)/fact(k))*pow(x,2*k);
s+=rez; }
// Выводим результаты вычислений
printf("\n x= %1.1f sum= %8.5lf fun= %8.5lf |Y(x) - S(x)| = %8.5lf ", x,s,y,fabs(y-s)); }
puts("\nPress any key ... ");
getch();
}