КР
.docx1) Написать программу вычисления значения выражения при заданных исходных данных. Сравнить полученное значение с указанным правильным результатом.
При x=0,4*10; y=-0,875; z=-0,475*10; Ответ S=1,98727;
#include <iostream.h>
#include <math.h>
int main ()
{
double x,y,z,a,b,c,s;
cout<<"vvedite x: ";
cin>>x;
cout<<"vvedite y: ";
cin>>y;
cout<<"vvedite z: ";
cin>>z;
a=fabs(cos(x)-cos(y));
b=1+2*pow(sin(y),2);
c=1+z+pow(z,2)/2+pow(z,3)/3+pow(z,4)/4;
s=pow(a,b)*c;
cout<<"Result s= "<< s <<endl;
return 0;
}
2) Составить программу вычисления выражения согласно указанному варианту. Предусмотреть вывод информации о выбранной ветви вычислений.
#include <iostream.h>
#include <math.h>
int main ()
{
double x,y,s;
cout<<"Vvedite x: ";
cin>>x;
cout<<"Vvedite y: ";
cin>>y;
if(x>y)
{
s=pow(fabs(x-y),1/3.)+tan(x);
cout<<"1 vetv.Result= "<<s<<endl;
}
else if(y>x)
{
s=pow(x-y,3)+cos(x);
cout<<"2 vetv.Result= "<<s<<endl;
}
else
{s=pow(y+x,2)+pow(x,3);
cout<<"3 vetv.Result= "<<s<<endl;
}
return 0;
}
3) Вывести на экран таблицу значений функции y(x) для x, изменяющегося от a = 0,1 до b = 1,2 с шагом h = 0,1. Вычисление y(x) оформить в виде функции. Предусмотреть передачу параметров в функцию разными способами.
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
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, b, h, n:" << endl;
cin >> a >> b >> h >> n;
cout << "\n Value"<<setw(20)<<"Pointer"<<setw(24)<<"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 i;
s = 0;
for (i = 1; i <= n; i++)
s += (pow(i,2)+1)/i*pow(x/2,i);
return s;
}
void Summa (double *x, int *n, double *s)
{
int i;
*s = 0;
for (i = 1; i <= *n; i++)
*s += (pow(i,2)+1)/i*pow(*x/2,i);
}
void Summa (double &x, int &n, double &s)
{
int i;
s = 0;
for (i = 1; i <= n; i++)
s += (pow(i,2)+1)/i*pow(x/2,i);
}
4) Ввести одномерный статический массив из k чисел. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат. Предусмотреть использование функции пользователя.
Найти количество элементов массива, расположенных после минимального элемента.
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
void Min(int a[],int,int*,int*,int*);
int main()
{
int a[10],i,n,s,min,imin;
s=1;
cout<<"Vvedite razmer massiva: ";
cin>>n;
cout<<"\nVvedite massiv:\n";
for(i=0;i<n;i++)
{
cout<<"Vvedite a["<<i<<"]=";
cin>>a[i];
}
cout<<"\nMassiv a:\n";
for(i=0;i<n;i++)
cout<<setw(7)<<a[i];
cout<<endl;
Min(a,n,&s,&min,&imin);
cout<<"min="<<min<<setw(5)<<"\nimin="<<imin<<endl;
cout<<"Kolichestvo elementov massiva posle min elementa= "<<s<<endl;
return 0;
}
void Min(int a[],int n,int*s,int*min,int*imin)
{
int i;
*min=a[0];
*imin=0;
for(i=1;i<n;i++)
if(a[i]<*min)
{
*min=a[i];
*imin=i;
}
*s*=n-*imin-1;
}
5) Ввести матрицу размером NxM. Память для массива выделить динамически. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат. Предусмотреть в программе функцию пользователя.
Определить произведение положительных элементов, расположенных ниже главной диагонали матрицы.
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
void proizvedenie (int**,int,int*);
int main()
{
int **a;
int i,j,n,s;
cout<<"Vvedite razmer massiva A:\n";
cout<<"row i column n=";
cin>>n;
a=new int*[n];
for(i=0;i<n;i++)
a[i]=new int[n];
cout<<"\nVvedite massiv A:\n";
for (i=0;i<n;i++)
for (j=0;j<n;j++)
{
cout<<"Vvedite a["<<i<<"]["<<j<<"]: ";
cin>>a[i][j];
}
cout<<"\nMassiv A:\n";
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
cout<<setw(9)<<a[i][j];
cout<<endl;
}
proizvedenie (a,n,&s);
cout<<"\nResult s= "<<s<<endl;
for(i=0;i<n;i++)
delete [] a[i];
delete []a;
a=NULL;
return 0;
}
void proizvedenie (int **a,int n,int*s)
{
int i,j;
*s=1;
for (i=1;i<n;i++)
for (j=0;j<i;j++)
if (a[i][j]>0)
*s*=a[i][j];
}