Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <cmath>
- using namespace std;
- class triungle{
- public:
- double a,b,c,x1,x2,y1,y2,z1,z2;
- triungle(){}
- triungle(double x1, double x2, double y1, double y2, double z1, double z2){
- this->x1 = x1;
- this->x2 = x2;
- this->y1 = y1;
- this->y2 = y2;
- this->z1 = z1;
- this->z2 = z2;
- }
- void st(){
- a = abs(sqrt(x1*x1+x2*x2));
- b = abs(sqrt(y1*y1+y2*y2));
- c = abs(sqrt(z1*z1+z2*z2));
- }
- void enc(){
- if((a+b) > c && (a+c) > b && (b+c) > a){
- cout << "Треугольник существует!" << endl;
- }else cout << "Треугольник не существует!" << endl;
- }
- void inf(){
- cout << "Сторона А: " << a << endl;
- cout << "Сторона B: " << b << endl;
- cout << "Сторона С: " << c << endl;
- }
- double per(){
- return a+b+c;
- }
- double sq(){
- double p = (a+b+c)/2;
- double s = sqrt(p*(p-a)*(p-b)*(p-c));
- return s;
- }
- double a_a(){
- return abs(sqrt(x1*x1+x2*x2));
- }
- double b_b(){
- return abs(sqrt(y1*y1+y2*y2));
- }
- double c_c(){
- return abs(sqrt(z1*z1+z2*z2));
- }
- };
- class ravn_triungle :public triungle{
- public:
- ravn_triungle(double x1, double x2, double y1, double y2, double z1, double z2): triungle (x1,x2,y1,y2,z1,z2) {}
- ravn_triungle():triungle(){}
- void ravn_st(){
- a = abs(sqrt(x1*x1+x2*x2));
- b = abs(sqrt(y1*y1+y2*y2));
- c = abs(sqrt(z1*z1+z2*z2));
- }
- bool pr(){
- if(a == b && a == c && b == c){
- return 1;
- }else return 0;
- }
- double mediana;
- double med(){
- return (sqrt(3) * a) / 2;
- }
- };
- int main() {
- int N;//число треугольников
- int M;//число равнобедренных треугольников
- cout << "Введите число треугольников: ";
- cin >> N;
- cout << endl;
- cout << "Введите число равносторонних треугольников: ";
- cin >> M;
- cout << endl;
- triungle* arr = new triungle[N];
- ravn_triungle* arr1 = new ravn_triungle[M];
- int min = 100000000;
- for (int i = 1; i <= N; i++) {
- cout << i << ")" << " Треугольник" << endl;
- double x1,x2,y1,y2,z1,z2;
- cout << "Введите координаты А: ";
- cin >> x1 >> x2;
- cout << endl;
- cout << "Введите координаты B: ";
- cin >> y1 >> y2;
- cout << endl;
- cout << "Введите координаты C: ";
- cin >> z1 >> z2;
- cout << endl;
- arr[i] = triungle(x1, x2, y1, y2, z1, z2);
- arr[i].inf();
- cout << arr[i].per() << endl;
- cout << arr[i].sq() << endl;
- if (arr[i].a_a() == arr[i-1].a_a() &&arr[i].b_b() == arr[i-1].b_b() && arr[i].c_c() == arr[i-1].c_c() ){
- cout << "Треугольники " << i << " и " << i-1 << " одинаковые!" << endl;
- }
- cout << "___________________________" << endl;
- }
- double min_m = 99999.0;
- for (int i = 1; i <= M; i++) {
- cout << i << ")" << " Равносторонний треугольник" << endl;
- double x11,x22,y11,y22,z11,z22;
- cout << "Введите координаты А: ";
- cin >> x11 >> x22;
- cout << endl;
- cout << "Введите координаты B: ";
- cin >> y11 >> y22;
- cout << endl;
- cout << "Введите координаты C: ";
- cin >> z11 >> z22;
- arr1[i] = ravn_triungle(x11,x22,y11,y22,z11,z22);
- if (arr1[i].pr()) {
- if(arr1[i].med() < min_m){
- min_m = arr1[i].med();
- }
- }
- arr1[i].inf();
- cout << arr1[i].per() << endl;
- cout << arr1[i].sq() << endl;
- }
- cout << "Треугольник с наименьшей медианой: " << min << endl;
- delete[]arr;
- delete[]arr1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment