Семинар 3

3.1

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

#include <iostream>
#include <cmath>
using namespace std;
int main() {
double x1,y1,x2,y2,dist;
cout << "Vvedite abscissy pervoj tochki: ";
cin >> x1;
cout << "Vvedite ordinaty pervoj tochki: ";
cin >> y1;
cout << "Vvedite abscissy vtoroj tochki: ";
cin >> x2;
cout << "Vvedite ordinaty vtoroj tochki: ";
cin >> y2;
dist = abs(sqrt(pow(x1-x2,2)+pow(y1-y2,2)));
cout << "Rasstoyanije mejdu tochkami: " << dist << endl;
return 0;
}

3.2.

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

#include <iostream>
#include <cmath>
using namespace std;
int main() {
int time, hours, minutes;
cout << "Ukajite vremennoj interval v secundah: ";
cin >> time;
hours = time/3600;
minutes = (time%3600)/60;
cout << "V etom intervale soderjitsa: " << hours << " h " << minutes << " m " << endl;
return 0;
}

3.3.

Создать программу, выводящую на экран три числа, введённых пользователем, в виде неубывающей последовательности.

#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a,b,c;
cout << "Enter first number: ";
cin >> a;
cout << "Enter second number: ";
cin >> b;
cout << "Enter third number: ";
cin >> c;
if(a>=b&&a>=c&&b>=c) {
cout << c << " " << b << " " << a << endl;
} else if(a>=b&&a>=c&&b<=c) {
cout << b << " " << c << " " << a << endl;
} else if(a>=b&&a<=c&&b<=c) {
cout << b << " " << a << " " << c << endl;
} else if(a<=b&&a<=c&&b<=c) {
cout << a << " " << b << " " << c << endl;
} else if(a<=b&&a<=c&&b>=c) {
cout << a << " " << c << " " << b << endl;
} else {
cout << c << " " << a << " " << b << endl;
}
return 0;
}

3.4.

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

#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a,b,c,S,P;
cout << "Enter first katet: ";
cin >> a;
cout << "Enter second katet: ";
cin >> b;
if(a>0&&b>0) {
S = (a*b)/2;
c = sqrt(pow(a,2)+pow(b,2));
P = a+b+c;
cout << "Ploshad pryamoygolnogo treygolnika: " << S << endl;
cout << "Perimet pryamoygolnogo treygolnika: " << P << endl;
} else {
cout << "Katet doljen bit bolojitelnim chislom" << endl;
}
return 0;
}

3.5

Создать программу, вычисляющую площадь произвольного треугольника по длинам трёх сторон, указанных пользователем с клавиатуры. Перед вычислением проверить, может ли существовать треугольник с указанными сторонами.

#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a, b, c, p, S;
cout << "Vvedite dliny pervoj storoni: ";
cin >> a;
cout << "Vvedite dliny vtoroj storoni: ";
cin >> b;
cout << "Vvedite dliny tretej storoni";
cin >> c;
if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a) {
p = (a+b+c)/2;
S = sqrt(p*(p-a)*(p-b)*(p-c));
cout << "Ploshad treygolnika ravna: " << S << endl;
} else {
cout << "Treygolnik postroit nelzja" << endl;
}
return 0;
}

3.6

Создать программу, которая будет находить вещественные корни квадратного уравнения ax2+bx+c=0, по введённым пользователем с клавиатуры коэффициентам a, b и c.

#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a, b, c, d, x1, x2;
cout << "Vvedite koeffitsient pri kvadrate x: ";
cin >> a;
cout << "Vvedite koeffitsient pri x: ";
cin >> b;
cout << "Vvedite svobodnij chlen: ";
cin >> c;
if(a!=0) {
d = pow(b,2)-4*a*c;
if(d>=0) {
x1 = (-b+sqrt(d))/(2*a);
x2 = (-b-sqrt(d))/(2*a);
cout << "Yravnenije imeet dva kornja: " << x1 << " and " << x2 << endl;
} else {
cout << "Yravnenije ne imeet kornej" << endl;
}
} else {
x1 = -c/b;
cout << "Yravnenije imeet odin koren" << x1 << endl;
}
return 0;
}

3.7

Пользователь указывает коэффициенты для общего уравнения прямой Ax+By+C=0. Создать программу, которая рассчитает под каким углом в градусах прямая пересечёт координатную ось абсцисс.

Для решения задачи потребуется функция atan(x) из библиотеки cmath. Она для указанного вещественного значения тангенса x возвращает соответствующий ему угол в радианах.

#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a,b,c,k;
cout << "Nado vvesti keffitsienti dlya yravneniya prjamoj: Ax+By+C=0" << endl;
cout << "Vvedite koeffitsient pri x (A): ";
cin >> a;
cout << "Vvedite koeffitsient pri y (B): ";
cin >> b;
cout << "Vvedite C: ";
cin >> c;
k = atan(b/a);
k = k*180/M_PI;
cout << "Ygol naklona: " << k;
return 0;
}

Free Web Hosting