Разработка программ с ветвлениями. Разработка программы для проверки попадания точки с заданными на плоскости координатами x и y внутрь пересекающихся окружностей, страница 2

l2=sqrt((X02-x)*(X02-x)+(Y02-y)*(Y02-y));

if (R1>=l1) i=1;

if (R2>=l2) j=1;

if (i+j==2) cout<<"Точка принадлежит первому и второму кругу.";

else

if (i+j==0) cout<<"Точка не принадлежит ни одному из кругов.";

else

{

if (i==1)    cout<<"Точка принадлежит только первому кругу.";

if (j==1)    cout<<"Точка принадлежит только второму кругу.";

}

getch();

}

Результаты работы программы:

5.1 Разработать программу, присваивающую трем переменным ,  и  значения параметров одного их трех полупроводниковых материалов: германия, кремния или арсенида галлия, в зависимости от введенного ключа выбора G, S или A.

Материал

, эВ

, см-3

германий

16.0

0.67

2.4.1013

кремний

11.9

1.12

1.45.1010

арсенид галлия

13.1

1.43

1.79.106

Затем должны выполняться вычисления величин

;

, где         q = 1.60.10-19 Кл – заряд электрона;

e0 = 8.85.10-14 Ф/см – диэлектрическая постоянная;

k = 8.62.10-5 эВ/К – постоянная Больцмана.

Входные данные :

Переменные – I тип char double T0;

T1, K, q, E, ni0, eps, eps0 тип double;

Выходные данные – значение функции в зависимости от выбранного значения i;

Описание работы :

1. подключение библиотек <iosteram.h>,<conio.h>,<math.h>;

2. вывод приглашения key = (cout<<”key =”);

3. ввод значения переменной х с клавиатуры (cin>>x);

4.  В зависимости от введенного значения I (‘A’, ‘S’, ‘G’) происходит инициализация переменных eps, E, ni0 ;

5.  Присваиваем значения переменным q, eps0, K ;

6.  Вычисляем и выводим значения L, ni;

Текст программы:

#include <iostream.h> // включение заголовочного файла ввода/вывода C++

#include <conio.h> // включение заголовочного файла для функции getch()

#include <math.h>

void main()

{

char i;

double T0;

double T1;

double K;

double q;

double E;

double ni0;

double eps;

double eps0;

clrscr();

cout<<"key = ";

cin>>i;

cout<<"T0 = ";

cin>>T0;

cout<<"T1 = ";

cin>>T1;

switch(i)

{

case 'G':

eps=16.0;

E=0.67;

ni0=2.4*pow(10,13);

break;

case 'S':

eps=11.9;

E=1.12;

ni0=1.45*pow(10,10);

break;

case 'A':

eps=13.1;

E=1.43;

ni0=1.79*pow(10,6);

break;

}

q = 1.60*pow(10,-19);

eps0=8.85*pow(10,-14);

K=8.6210*pow(10,-5);

cout<<"ni = "<<ni0*exp(E*(T1-T0)/(2*K*T1*T0));

cout<<"\n"<<"L = "<<sqrt((eps*eps0*K*T1)/(q*ni0));

getch();

}

Результаты работы программы:

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

Текст программы:

#include <iostream.h> // включение заголовочного файла ввода/вывода C++

#include <conio.h> // включение заголовочного файла для функции getch()

#include <math.h>

void main()

{

int k;

double a;

double b;

double c;

double d;

double p;

double q;

double w;

double x1;

double x2;

double x3;

double r;

double z;

double D;

double fi;

double u;

double v;

double y1;

double y2;

double y3;

clrscr();

cout<<"a*x^3+b*x^2+c*x+d=0"<<"\n";

cout<<"a = ";

cin>>a;

cout<<"b = ";

cin>>b;

cout<<"c = ";

cin>>c;

cout<<"d = ";

cin>>d;

p=(3*a*c-b*b)/(3*a*a)/3;

q=(2*pow(b,3)/(27*pow(a,3))-b*c/(3*pow(a,2))+d/a)/2;

if (p==0)

{

//   ветвь 1

y1=y2=y3=pow(-2*q,1.0/3);

k=0;

}

else // p не равно нулю

{

//   расчет r и z

r=q/fabs(q)*sqrt(fabs(p));

z=q/pow(r,3);

if (p<0)

{

//     расчет D

D=q*q+p*p*p;

//     ветвление по знаку D

if (D<=0)

{

//       ветвь 2

fi=acos(z);

y1=-2*r*cos(fi/3);

y2= 2*r*cos(M_PI/3-fi/3);

y3= 2*r*cos(M_PI/3+fi/3);

k=0;

}

else  // D>0

{

//       ветвь 3

fi=log(z+sqrt(z*z-1));

y1=-2*r*cosh(fi/3);

u=r*cosh(fi/3);

v=sqrt(3)*r*sinh(fi/3);

k=1;

}

}

else  // p > 0

{

//     ветвь 4

fi=log(z+sqrt(z*z+1));

y1=-2*r*sinh(fi/3);

u=r*sinh(fi/3);

v=sqrt(3)*r*cosh(fi/3);

k=1;

}

}

// пункт 5, расчет x по y

w=b/(3*a);

x1=y1-w;

if (k==0)  // корни вещественные

{

x2=y2-w;

x3=y3-w;

}

else       // корни комплексно-сопряженные

{

x2=u-w;

x3=v;

}

cout<<"k = "<<k;

cout<<"\n"<<"x1 = "<< x1;

cout<<"\n"<<"x2 = "<< x2;

cout<<"\n"<<"x3 = "<< x3;

getch();

}

Таблица для проверки работы программы:

Ветвь 1

Ветвь 2

Ветвь 3

Ветвь 4

a

2.0

1.5

1.0

2.0

b

3.0

-3.0

4.0

-10.0

c

1.5

-7.5

-10.75

18.0

d

-15.75

9.0

7.5

-10.0

k

0

0

1

1

x1

1.5

-2.0

-6.0

1.0

x2

1.5

3.0

1.0

2.0

x3

1.5

1.0

0.5

1.0

Результаты работы программы: