Задание 1
Составить согласно индивидуальному варианту блок-схему алгоритма и программу вычисления значения выражения при заданных исходных данных.
Сравнить полученное значение с указанным правильным результатом.
s =
при х = 12,3*10-1; у = 15,4; z = 0,252*103. Ответ: s = 82,8256.
Начало |
Вводx, y, z |
Выводx, y, z |
Выводs |
Конец |
Код программы
#include<iostream>
#include <math.h>
using namespace std;
int main()
{
double x, y, z, s;
cout<< " Vvedite x = ";
cin>> x;
cout<< " Vvedite y = ";
cin>> y;
cout<< " Vvedite z = ";
cin>> z;
s = (x + y / 2)*pow(x + 1, -1 / sin(z));
s /= 2 * fabs(x + y);
s += pow(y, x + 1) / (pow(fabs(y - 2), 1 / 3.) + 3);
cout<<endl;
cout<< " x = " << x <<endl;
cout<< " y = " << y <<endl;
cout<< " z = " << z <<endl;
cout<<endl;
cout<< " Result s = " << s <<endl;
return 0;
}
Результаты выполнения программы
Задание 2
Составить согласно индивидуальному варианту блок-схему алгоритма ипрограмму вычисления выражения. Предусмотреть вывод информации о выбранной ветви вычислений.
s =
При анализе условия задачи заметим, что от условий х3 >0 и х3 <0 можно перейти к равносильным более простым условиям х>0 и x<0.
Начало |
Вводx, y |
Вывод"Vetv 1" |
Выводs |
Конец |
x> 0 |
s = ln(x)3 |
Да |
Нет |
x< 0 |
Вывод"Vetv 2" |
s = tg(x3)+yx |
Да |
Нет |
Вывод"Vetv 3" |
Код программы
#include<iostream>
#include <math.h>
using namespace std;
int main()
{
double x, y, s;
cout<< " Vvedite x = ";
cin>> x;
cout<< " Vvedite y = ";
cin>> y;
if (x>0) {
s = pow(log(x), 3);
cout<< "\n Vetv 1\n";
}
else if (x<0)
{
s = tan(x*x*x) + y*x;
cout<< "\n Vetv 2\n";
}
else {
s = pow(fabs(y*y*y - x*x), 1 / 3.);
cout<< "\n Vetv 3\n";
}
cout<< "\n Result s = " << s <<endl;
return 0;
}
Результаты выполнения программы
Задание 3
Составить согласно индивидуальному варианту блок-схему алгоритма и программу вывода на экран таблицы значений функции y(x) для x, изменяющегося от a=0,1 до b=1,2 с шагом h=0,1. Вычисление y(x) оформить в виде функции. Предусмотреть передачу параметров в функцию разными способами.
y =
Блок-схема алгоритма основной программы
Начало |
Вводa, b, h, N |
x = a |
Summa(x, N,s) |
Выводx, s |
Конец |
x = x + h |
x<=b+h/2 |
Да |
Нет |
Выход |
n=N Цикл 1 |
Блок-схема алгоритма вычисления функции
Summa(x,N,s) |
s = 0 |
n=1 |
выход |
Код программы
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
double Summa(double, int);
void Summa(double*, int*, double*);
void Summa(double&, int&, double&);
int main()
{
double s, x, a, b, h;
int N;
cout<< " Vvedite a = ";
cin>> a;
cout<< " Vvedite b = ";
cin>> b;
cout<< " Vvedite h = ";
cin>> h;
cout<< " Vvedite N = ";
cin>> N;
cout<< "\n Value" <<setw(22) << "Pointer" <<setw(23) << "Reference\n";
x = a;
do
{
cout<<setw(5) << x <<setw(10) << Summa(x, N);
Summa(&x, &N, &s);
cout<<setw(10) << x <<setw(10) << s;
Summa(x, N, s);
cout<<setw(10) << x <<setw(10) << s <<endl;
x += h;
} while (x <= b + h / 2);
cout<<endl;
return 0;
}
double Summa(double x, int N)
{
double s;
int n;
s = 0;
for (n = 1; n <= N; n++)
s += n*n*pow(x, (n - 1)) / (2 * n + 1);
return s;
}
void Summa(double *x, int *N, double *s)
{
int n;
*s = 0;
for (n = 1; n <= *N; n++)
*s += n*n*pow(*x, (n - 1)) / (2 * n + 1);
}
void Summa(double &x, int&N, double &s)
{
int n;
s = 0;
for (n = 1; n <= N; n++)
s += n*n*pow(x, (n - 1)) / (2 * n + 1);
}
Результаты выполнения программы
Задание 4
Ввести одномерный статический массив из k чисел. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат. Предусмотреть использование функции пользователя.
Найти максимальное значение между суммами четных и нечетных элементов массива, расположенных до минимального элемента.
Кодпрограммы
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
intIndex_Min(int a[], int);
int main()
{
int a[10], i, k, min, i_min, sum_chet, sum_nechet, max;
cout<< " Vvediterazmermassiva: ";
cin>>k;
cout<< "\n Vveditemassiv:\n";
for (i = 0; i<k; i++)
{
cout<< " Vvedite a[" <<i<< "]=";
cin>> a[i];
}
cout<< "\n Massiv a:\n";
for (i = 0; i<k; i++)
cout<<setw(7) << a[i];
cout<<endl;
sum_chet = 0;
sum_nechet = 0;
i_min = Index_Min(a, k);
for (i = 0; i<i_min; i++)
if (a[i] % 2) sum_nechet += a[i];
else
sum_chet += a[i];
if (sum_nechet>sum_chet) max = sum_nechet;
else
max = sum_chet;
cout<<endl;
cout<< " Index min elementamassiva a =" <<i_min<<endl;
cout<< " Summa chet =" <<sum_chet<<endl;
cout<< " Summa nechet =" <<sum_nechet<<endl;
cout<< " Max =" << max <<endl;
return 0;
}
intIndex_Min(int a[], int k)
{
inti, min, i_min;
min = a[0];
i_min = 0;
for (i = 1; i<k; i++)
if (a[i]<min)
{
min = a[i];
i_min = i;
}
returni_min;
}