Проверить, не являются ли прямые параллельными - C (СИ)
Формулировка задачи:
Что казал препод:
1.В постановке задач нужно указывать тип исходных данных, промежуточных данных и результатов.
2. Ограничения у вас неправильные. Ограничения накладываются на значения исходных данных. Уравнения прямых - это не ограничения.
3. Нужно проверять, не являются ли эти прямые параллельными. Знаменатель в формулах для х и у должен рассчитываться один раз и проверяться на равенству нулю. Если он равен нулю, то прямые параллельны.
4. Блок-схема полностью неправильна, за исключением расчета х и у.
Задача: Даны координаты точек, которые соединены по парно, найти точку их пересечения.
#include <stdio.h> #include <conio.h> #include <math.h> #include <stdlib.h> #include <locale.h> float main() { setlocale(LC_ALL, "rus"); float x1, x2, y1, y2, x3, x4, y3, y4; printf("Введите координаты точек:\n"); printf("Введите координаты x1: "); scanf_s("%f", &x1); printf("Введите координаты y1: "); scanf_s("%f", &y1); printf("Введите координаты x2: "); scanf_s("%f", &x2); printf("Введите координаты y2: "); scanf_s("%f", &y2); printf("Введите координаты x3: "); scanf_s("%f", &x3); printf("Введите координаты y3: "); scanf_s("%f", &y3); printf("Введите координаты x4: "); scanf_s("%f", &x4); printf("Введите координаты y4: "); scanf_s("%f", &y4); printf("Для расчета координат точек пересечения \nдвух прямых на плоскости используем формулы: \n"); printf("X = -((x1*y2 - x2*y1) * (x3 - x4) - (x1*y2 - x2*y1) *(x1 - x2)) / ((y1 - y2) * (x3 - x4) - (y3 - y4) * (x1 - x2)) \nY = -((y1 - y2) * (x1*y2 - x2*y1) - (y3 - y4) * (x1*y2 - x2*y1)) / ((y1 - y2) * (x3 - x4) - (y3 - y4) * (x1 - x2));\n\n"); float x, y; x = -((x1*y2 - x2*y1) * (x3 - x4) - (x1*y2 - x2*y1) *(x1 - x2)) / ((y1 - y2) * (x3 - x4) - (y3 - y4) * (x1 - x2)); y = -((y1 - y2) * (x1*y2 - x2*y1) - (y3 - y4) * (x1*y2 - x2*y1)) / ((y1 - y2) * (x3 - x4) - (y3 - y4) * (x1 - x2)); printf("Координаты точки пересечения прямых X = %4.2f, Y = %4.2f", x, y); printf("\n\nПроверка результатов данных: \n"); if ((abs((y1 - y2)*x + (x2 - x1)*y + (x1*y2 - x2*y1))) && (abs((y3 - y4)*x + (x4 - x3)*y + (x3*y4 - x4*y3)))) { printf("Найденные координаты точки пересечения верны.\n"); } else { printf("В расчетах допущена ошибка."); } _getch(); return 0; }
Решение задачи: «Проверить, не являются ли прямые параллельными»
textual
Листинг программы
float main()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д