Проверить, не являются ли прямые параллельными - 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()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы