Вы находитесь на странице: 1из 5

#include <iostream>

#include <cmath>
using namespace std;
int main(){
//Число pi:
const double pi=3.1415;
//Рабочие переменные программы:
double R,H,V,V0,x,y,z;
//Число точек N (по каждой из координат)
//и число внутренних точек n:
int N=1500,n=0;
//Ввод параметров R и H:
cout<<"Enter R = ";
cin>>R;
cout<<"Enter H = ";
cin>>H;
//Объем параллелепипеда:
V0=4*R*R*(H+R);
//Перебор всех точек:
for(int i=0;i<=N;i++){
x=2*i*R/N-R;
for(int j=0;j<=N;j++){
y=2*j*R/N-R;
for(int k=0;k<=N;k++){
z=k*(H+R)/N;
//Подсчет внутренних точек:
if(((sqrt(x*x+y*y)/R<=z/H)&&(z<=H))||((x*x+y*y+(z-H)*
(z-H)<=R*R)&&(z>H)))n++;
}}}
//Объем тела:
V=V0*n/pow(N+1,3);
//Вывод вычисленного и точного значений:
cout<<"V = "<<V<<" : "<<pi*R*R*H/3+2*pi*pow(R,3)/3<<endl;
return 0;
}
19 задача
#include <iostream>
#include <cmath>
using namespace std;
int main(){
//Число pi:
const double pi=3.1415;
//Рабочие переменные программы:
double a,S,S0,x,y,z;
int N=100,n=0;
//Ввод параметров R и H:
cout<<"Enter a = ";
cin>>a;
S0=4*a*a;
//Перебор всех точек:
for(int i=0;i<=N;i++){
x=2*i*a/N;
for(int j=0;j<=N;j++){
y=2*j*a/N;
//Подсчет внутренних точек:
if(x*y>a*a && x*y<2.5*a) n++;
}}
//Объем тела:
S=S0*n/pow(N+1,2);
//Вывод вычисленного и точного значений:
cout<<"S = "<<S<<" : "<<15./8-2*log(2)<<endl;
return 0;
}

#include <iostream>
#include <cmath>
using namespace std;
int N=100;
double Integral(double a)
{
double x,y,S0;
int n=0;
//Объем параллелепипеда:
S0=4*a*a;
//Перебор всех точек:
for(int i=0;i<=N;i++){
x=2*i*a/N;
for(int j=0;j<=N;j++){
y=2*j*a/N;

//Подсчет внутренних точек:


if(x*y>a*a && x+y<2.5*a) n++;
}}
//Объем тела:
return S0*n/pow(N+1,2);}

int main(){
//Число pi:
const double pi=3.1415;
//Рабочие переменные программы:
double a;
//Число точек N (по каждой из координат)
//и число внутренних точек n:

cout<<"Enter a = ";
cin>>a;

//Вывод вычисленного и точного значений:


cout<<"S = "<<Integral(a)<<" : "<<(15./8-2*log(2))<<endl;
return 0;
}
Программа круг, треугольник, прямоугольник
#include <iostream>
#include <cmath>
using namespace std;

double k (double R)
{
return M_PI*R*R;
}

double p (double a, double b)


{
return a*b;
}

double t (double a, double b, double c)


{
double p;
p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}

int main()
{
int n, k=1;
double R, a, b, c;
while (k==1)
{
cout << "Select: 1-k; 2-p; 3-t: ";
cin >> n;
switch (n)
{
case 1:
{
cout <<"R="; cin >>R;
cout <<"S="<<(R)<<endl;
break;
}
case 2:
{
cout <<"a="; cin >>a;
cout <<"b="; cin >>b;
cout <<"S = "<< (a,b)<<endl;
break;
}
case 3:
{
cout <<"a="; cin >>a;
cout <<"b="; cin >>b;
cout <<"c="; cin >>c;
cout <<"S = "<<t(a, b, c)<<endl;
break;
}

}
}
return 0;
}
Напишите программу, которая определит и выведет на экран сумму элементов главной и
побочной диагонали квадратной матрицы.
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{ const int N=5;
int A[N][N];
int i,j;
for (i=0;i<N;i++)
for (j=0;j<N;j++)
A[i][j]=rand()%10;

for (i=0;i<N;i++){
for (j=0;j<N;j++)
cout<<A[i][j]<<" ";
cout<<endl;}
int S_g=0, S_p=0;
for (i=0;i<N;i++){
S_g+=A[i][i];
S_p+=A[i][N-i-1];
}
cout<<"S_glavnoy="<<S_g<<endl;
cout<<"S_pobochnoy="<<S_p<<endl;
cout<<endl;

return 0;
}
Даны два массива. Напишите программу, которая находит такую последовательность
максимальной длины, которая содержится и в первом и во втором массивах.

#include <iostream>

using namespace std;


const int n=9;
int g=0;
int a[n]={1,2,3,4,5,6,7,2,5}; // первый массив
int b[n]={1,2,3,4,3,6,10,2,5}; //второй массив

int Length(int f) //функция, которая определяет длину


//совпадающей последовательности элементов в массиве
{ int k=0;
for (int i=f;i<n;i++)
{
if (a[i]==b[i])
{k++;
if (a[i+1]!=b[i+1] || (i==n-1))
{g=i+1;
break;}}

}
return k; // k-длина найденной последовательности
}

int main()
{ int r[n], j=0; // в массиве r[n] сохраняются длины всех найденных
//совпадающих последовательностей массивов a[n] и b[n]
while (g<n) //пока индекс последнего элемента найденной последовательности
//меньше длины массива ищем совпадающие последовательности
{
r[j]=Length(g);
cout<<r[j]<<endl;
j++;
}
int max1=r[0]; for (int p=0;p<j-1;p++) if (max1<r[p]) max1==r[p];
cout<<"max="<<max1<<endl;

return 0;
}

Вам также может понравиться