Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТиУвТС / ОАиП, заочное ИИТ, 1 кр, 6 вариант.doc
Скачиваний:
12
Добавлен:
01.04.2014
Размер:
256.51 Кб
Скачать

Задание №1

Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.

При x = 16.5510-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();

}