Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/12: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Никита21000
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 49
1

Проверить лежат ли точки на одной прямой

20.10.2018, 19:49. Просмотров 2464. Ответов 6
Метки нет (Все метки)

Как перестроить программу что бы пользователь не смог ввести одинаковые точки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <locale.h>
int main(){
setlocale(LC_ALL, "rus");
float x1,x2,x3,y1,y2,y3;
float a, b;
int s;
printf ("Введите координаты первой точки: ");
scanf ("%f %f", &x1, &y1);
printf ("Введите координаты второй точки: ");
scanf ("%f %f", &x2, &y2);
printf ("Введите координаты третей точки: ");
scanf ("%f %f", &x3, &y3);
if (x1 == x2)
{
if (x1 == x3) printf ("Данные точки лежат на одной прямой.\n");
else printf ("Данные точки не лежат на одной прямой.\n");
}
else a = (y1-y2)/(x1-x2);
b = y1 - a * x1;
if (a * x3 + b == y3) printf ("Данные точки лежат на одной прямой.\n");
else printf ("Данные точки не лежат на одной прямой.\n");
return 0;
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2018, 19:49
Ответы с готовыми решениями:

Определите, лежат ли точки на одной прямой
1)Заданы три точки на плоскости: М с координатами(x1,y1), L с координатами(x2,y2), и H с...

Определить, лежат ли точки на одной прямой
ВСЕМ ПРИВЕТ!!!!!!!!ПОМОГИТЕ КТО-НИБУДЬ СПРАВИТЬСЯ С ЗАДАЧЕЙ НА С++.рЕШИТЕ ПОЖАЛУЙСТА ВОТ УСЛОВИЕ-...

Лежат ли точки на одной прямой и вычислить угол
Написал программу, но не пойму в чём ошибка( #include &lt;iostream.h&gt; #include &lt;math.h&gt; void main()...

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

Три точки заданы координатами. Определить, лежат ли они на одной прямой
Задачи довольно простые. Я проста не разбираюсь в этом языке программирование. Проста срочно нужны...

6
Kuzia domovenok
2558 / 2234 / 561
Регистрация: 25.03.2012
Сообщений: 8,084
Записей в блоге: 1
Завершенные тесты: 1
20.10.2018, 19:56 2
Лучший ответ Сообщение было отмечено Никита21000 как решение

Решение

сравнивать флоаты лучше по модулю разности, особенно в геометрии

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <locale.h>
    bool equal(float x1,float y1,float x2,float y2){
        return fabs(x1 - x2) < 1e-3 && 
            fabs(y1 - y2) < 1e-3;
    }
int main(){
  setlocale(LC_ALL, "rus");
  float x1,x2,x3,y1,y2,y3;
  float a, b;
  int s;
  do{
    printf ("Введите координаты первой точки: ");
    scanf ("%f %f", &x1, &y1);
    printf ("Введите координаты второй точки: ");
    scanf ("%f %f", &x2, &y2);
    printf ("Введите координаты третей точки: ");
    scanf ("%f %f", &x3, &y3);
  }while(equal(x1,y1,x2,y2)||equal(x1,y1,x3,y3)||equal(x3,y3,x2,y2));
  if (fabs(x1-x2)<1e-3)
  {
    if (fabs(x1-x3)<1e-3) printf ("Данные точки лежат на одной прямой.\n");
    else printf ("Данные точки не лежат на одной прямой.\n");
  }
  else 
  {
    a = (y1-y2)/(x1-x2);
    b = y1 - a * x1;
    if (fabs(a * x3 + b- y3)<1e-3) printf ("Данные точки лежат на одной прямой.\n");
    else printf ("Данные точки не лежат на одной прямой.\n");
  }
  return 0; 
}
0
Verevkin
1506 / 908 / 242
Регистрация: 12.03.2015
Сообщений: 5,525
20.10.2018, 19:57 3
напиши функцию сравнения двух точек с учётом погрешности (они ж не целые). Юзай структуры, так проще.
C++
1
2
3
4
5
typedef struct {float x, y} TFPoint;
bool equal_points(TFPoint* a, TFPoint* b, float epsilon)
{
  // 2-3 строки кода
}
0
Никита21000
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 49
20.10.2018, 20:31  [ТС] 4
Kuzia domovenok онлайн компилятор выдает ошибку
0
Kuzia domovenok
2558 / 2234 / 561
Регистрация: 25.03.2012
Сообщений: 8,084
Записей в блоге: 1
Завершенные тесты: 1
20.10.2018, 20:48 5
Цитата Сообщение от Никита21000 Посмотреть сообщение
Kuzia domovenok онлайн компилятор выдает ошибку
ну охренеть, теперь ещё и банальные ошибки исправлять в коде, набросанном от руки!
А что, сказать что именно за ошибка религия не позволяет!
Я честно, поражаюсь таким людям! Они относятся к программам как к чёрным ящикам с двумя состояниями - работает/не работает...
Выяснять почему не работает, они просто боятся - ссут! Сообщения об ошибках они в принципе не читают - сразу на форум жаловаться! Видимо считают себя заведомо неспособными программировать(а чтение ошибок это часть такой способности) - только копипастить.
0
zss
Модератор
Эксперт С++
8105 / 7240 / 4507
Регистрация: 18.12.2011
Сообщений: 19,144
Завершенные тесты: 1
20.10.2018, 20:57 6
C++
1
#include <math.h>
0
Никита21000
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 49
21.10.2018, 12:18  [ТС] 7
Kuzia domovenok не злись , я уже разобрался
0
21.10.2018, 12:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2018, 12:18

Определить, лежат ли три точки A, B, C на одной прямой. Если нет, найти угол ABC
Даны три точки A(x_1, y_1), \, B(x_2, y_2), \, C(x_3, y_3) Определить будут ли они...

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

Проверить, принадлежат ли все точки одной прямой линии
Как известно, Владимир даёт студентам сложные курсовые работы по алгоритмам. Не каждому удаётся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru