Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 34

Как добавить проверку на существование

14.08.2015, 16:13. Показов 1083. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо добавить проверку на существование треугольника.
Что то вроде этого:
C++ (Qt)
1
2
3
double A=sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1)); //Длина стороны А
double B=sqrt((y3-y2)*(y3-y2)+(x3-x2)*(x3-x2)); //Длина стороны B
double C=sqrt((y1-y3)*(y1-y3)+(x1-x3)*(x1-x3)); //Длина стороны С
Вот моя программа:
C++ (Qt)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <math.h>
#include <stdio.h>
#include <iostream>
using namespace std;
 
class Triangle
{
private:
    double Ax, Ay, Bx, By, Cx, Cy; //Ввод координат
 
public:
    Triangle (double ax, double ay, double bx, double by, double cx, double cy):
    Ax(ax), Ay(ay), Bx(bx), By(by), Cx(cx), Cy(cy)
    {}
    double ploshad()
    {
        double s1 = sqrt((Ax - Bx) * (Ax - Bx) + (Ay - By) * (Ay - By)); //Формула длины стороны
        double s2 = sqrt((Bx - Cx) * (Bx - Cx) + (By - Cy) * (By - Cy)); //Формула длины стороны
        double s3 = sqrt((Cx - Ax) * (Cx - Ax) + (Cy - Ay) * (Cy - Ay)); //Формула длины стороны
        double p = (s1 + s2 + s3) / 2; //Полупериметр для формулы Герона
        double s = sqrt(p * (p - s1) * (p - s2) * (p - s3)); //Формула Герона
        return s;
    }
};
 
int main()
{
  double ax, ay, bx, by, cx, cy;
  float w;
 
  cout << "Ax = ";
  cin >> ax;
  cout << "Ay = ";
  cin >> ay;
  cout << "Bx = ";
  cin >> bx;
  cout << "By = ";
  cin >> by;
  cout << "Cx = ";
  cin >> cx;
  cout << "Cy = ";
  cin >> cy;
 
  Triangle Tr (ax, ay, bx, by, cx, cy);
  w=Tr.ploshad();
  printf("Ploshad ravna %f",w);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.08.2015, 16:13
Ответы с готовыми решениями:

Класс мобильный телефон. Добавить проверку на существование цены телефона введеной пользователем
надо сделать проверку, чтобы если пользователь вводил цену телефона которой нет, и программа выдавала соответсвенно сообщение:&quot; что...

как сделать проверку на существование файла
procedure vibor faila; var F: text; Name_f: string; begin writeln('введите имя файла'); readln(Name_f); if ... then...

Как правильно организовать проверку на отсутствие или существование записи в mysql
Вопрос в следующем как организовать проверку на отсутствие или существование записи в mysql? Есть таблица: И нужно перенаправлять...

9
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
14.08.2015, 16:23
Я ж уже говорил. Если задавать треугольник координатами вершин, то проверка не нужна - треугольник существует всегда. Если горько надо, то:
C++
1
2
3
4
5
class Triangle
{
    /* ... */
    bool Exist() { return true; }
};
0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 34
14.08.2015, 16:37  [ТС]
John Prick, не правда. Случайно можно ввести координаты, которые окажутся на одной линии(стороне) с другими, и треугольник не построиться
0
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
14.08.2015, 16:39
EgorVans, это будет вырожденный случай треугольника, на самом деле. Треугольник нулевой площади.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
14.08.2015, 16:40
Цитата Сообщение от John Prick Посмотреть сообщение
Я ж уже говорил. Если задавать треугольник координатами вершин, то проверка не нужна - треугольник существует всегда.
Ну почему же. Если две вершины совпадут, то это будет уже двуугольник, а если все три - то одноугольник.
0
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
14.08.2015, 16:43
Критерий для такого случая: сумма длин двух меньших сторон равна длине большей стороны.

Добавлено через 2 минуты
Цитата Сообщение от Mr.X Посмотреть сообщение
Если две вершины совпадут, то это будет уже двуугольник, а если все три - то одноугольник.
Ну, в принципе да.
0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 34
14.08.2015, 16:45  [ТС]
John Prick, а что за звездочки со слешами ты написал?
0
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
14.08.2015, 16:47
EgorVans, комментарий. Вместо него подразумеваю остальной код.
0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 34
14.08.2015, 16:49  [ТС]
John Prick, я вставил в код эту строчку...и проверил, ввел во все координаты одно и тоже число, программа мне сказала что площадь равна 0..это не проверка. я даже не знаю что это...нужно как то сделать чтобы она написала, что треугольник не может быть построен. Вы извините меня за тупость, я правда в этом ничего не понимаю.
0
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
14.08.2015, 17:09
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
bool double_equal(double x, double y)
{
    double precision = 0.00000001;
    return (abs(x - y) < precision);
}
 
class Triangle
{
    /* ... */
    bool Exist()
    {
        double s1 = sqrt((Ax - Bx) * (Ax - Bx) + (Ay - By) * (Ay - By)); //Формула длины стороны
        double s2 = sqrt((Bx - Cx) * (Bx - Cx) + (By - Cy) * (By - Cy)); //Формула длины стороны
        double s3 = sqrt((Cx - Ax) * (Cx - Ax) + (Cy - Ay) * (Cy - Ay)); //Формула длины стороны
        bool has_null_s = double_equal(s1, 0.0) || double_equal(s2, 0.0) || double_equal(s3, 0.0);
        double max_s = std::max(s1, std::max(s2, s3));
        bool all_on_line = double_equal((s1 + s2 + s3) / 2.0, max_s);
        return !(has_null_s || all_on_line);
    }
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.08.2015, 17:09
Помогаю со студенческими работами здесь

Сделать проверку на существование картинки в ресурсах
Искал искал и так не нашел того что мне нужно. А нужно мне сделать проверку на существование картинки в ресурсах. Как это сделать? ...

Как добавить проверку на ямы ?
Есть монстр, он ходит и у него есть проверка на стены и надо добавить еще проверку на ямы private void Move() { ...

Как в IF добавить проверку из базы данных?
Здравствуй форумчанин. Подскажи пожалуйста как добавить в IF проверку поля Допуск=True в таблице Users. И еще IF который проверять поле...

Как добавить проверку флагов у категорий?
Добавить проверку флагов у категорий: устанавливается либо «ОД», либо «ОУ». При установке «ОД» или «ОУ» обязательно устанавливается галка:...

Как добавить проверку на ввод символов?
write('Номер накладной: '); repeat readln(ch); val(ch,x.nom,code); if code=1 then begin{1} ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru