123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- //-Замените все значения констант, используемых в программе с использованием директивы #define
- //
- //- с использованием директивы #define реализуйте макрос, который возводит число во вторую степень.С помощью данного макроса решите задачу на нахождение длины отрезка по координатам двух его точек.
- //
- //- С помощью данного макроса и решения предыдущей задачи напишите функцию, которая проверяет, образуют ли треугольник точки, координаты которых ввел пользователь.Если треугольник образуется, найти его периметр и площадь.
- //
- //- Переработайте предыдущую функцию таким образом, чтобы она использовала директивы #if, #else, #elif, #endif.
- #include <stdio.h>
- #include <math.h>
- #include <locale.h>
- #define step(x) x*x
- #define perimetr(a, b, c) a+b+c
- double vozvod(float x, float y, float x1, float y1)
- {
- double d;
- float a = x1 - x;
- float b = y1 - y;
- d = step(a) + step(b);
- #if(!d)
- d = sqrt(d);
- return d;
- #endif
- }
- int is_treygolnik(double a, double b, double c)
- {
- return (a + b > c) && (a + c > b) && (b + c > a);
- }
- void treygolnik(float x, float x1, float x2, float y, float y1, float y2)
- {
- double a = vozvod(x, y, x1, y1);
- double b = vozvod(x1, y1, x2, y2);
- double c = vozvod(x2, y2, x, y);
- if (is_treygolnik(a, b, c))
- {
- double p = (perimetr(a, b, c))/2;
- printf("Это треугольник\n");
- printf("Периметр треугольника = %f\n", perimetr(a, b, c));
- printf("Площадь треугольника = %f", sqrt(p*((p-a)*(p-b)*(p-c))));
- }
- else
- {
- printf("Это не треугольник");
- }
- }
- void main()
- {
- setlocale(LC_ALL, "Russian");
- float x;
- float x1;
- float x2;
- float y;
- float y1;
- float y2;
- printf_s("введите координату x точки 1: \n");
- scanf_s("%f.2", &x);
- printf_s("введите координату y точки 1: \n");
- scanf_s("%f.2", &y);
- printf_s("введите координату x точки 2: \n");
- scanf_s("%f.2", &x1);
- printf_s("введите координату y точки 2: \n");
- scanf_s("%f.2", &y1);
- printf_s("введите координату x точки 3: \n");
- scanf_s("%f.2", &x2);
- printf_s("введите координату y точки 3: \n");
- scanf_s("%f.2", &y2);
- treygolnik(x, x1, x2, y, y1, y2);
- }
|