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

Задача на нахождение площади треугольника

25.01.2014, 22:11. Показов 2436. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Условие: Даны действительные числа a, b, c, d. Найти площадь шестиугольника, изображенного на
рис. 4.1. Определить функцию вычисления площади треугольника по трем его
сторонами, заданными действительными числами. Если эти числа не позволяют по-
строить треугольник, то результатом работы функции должно быть значение -1. Рисунок
Проблема: Как ограничить пример:
  • Cделать ввод сторон которые будут равны только положительным числам? (Не допустить ввод отрицательных a, b, c, d) Т.к. стороны математически не могут быть равны отрицательным значениям.
  • Cкомпилировать программу (ввести заранее не верные значения), и если посмотреть то один из треугольников будет равен -1, и площадь шестиугольника дальше продолжает считаться. Вопрос, как сделать если несколько(один) из треугольников будет равнен -1, то вывести к примеру надпись "Нельзя посчитать площадь треугольника". А то вместо этого оно продолжает считать площадь которая уже заранее не верна. Как говорится сделать защиту для дурака.
Решение:
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
34
35
36
37
38
39
40
41
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
 
float square(float a, float b, float c) // площадь треугольника
{
    float p;
    if (a + b < c || a + c < b || b + c < a) // проверка на существование треугольника
        return -1;
    p = (a + b + c) / 2.;
    return sqrt (p * (p - a) * (p - b) * (p - c)); // формула Герона
 
}
int main ()
{
       setlocale(0, "rus");
       float line1, line2, line3, line4; // стороны 
       line1 = 1.0;
       line2 = 1.8;
       line3 = 1.4;
       line4 = 1.2;
       float a, b, c, d;
       cout << "Введите сторону а: ";
       cin >> a;
       cout << "Введите сторону b: ";
       cin >> b;
       cout << "Введите сторону c: ";
       cin >> c;
       cout << "Введите сторону d: ";
       cin >> d;
cout << "Площадь треугольника № 1 (а, 1.0, 1.8): " << square(a, line1, line2) << endl;
cout << "Площадь треугольника № 2 (d, 1.8, 1.4): " << square(d, line2, line3) << endl;
cout << "Площадь треугольника № 3 (c, 1.4, 1.2): " << square(c, line3, line4) << endl;
cout << "Площадь треугольника № 4 (a, b, 1.2): " << square(a, b, line4) << endl;
int s;
s = square(a, line1, line2) + square(d, line2, line3) + square(c, line3, line4) + square(a, b, line4);
cout << "Площадь шестиугольника: " << s << endl;
system ("pause");
return 0;
}
P.S. Если видите недочеты в коде, говорите обязательно, т.к. ещё только учусь, и вникаю в функции да и в с++ в целом.
P.S. 2. Как прервать работу программы в MS VS 2010? (завершить процесс)

Добавлено через 1 час 0 минут
Решил.

Добавлено через 1 минуту
Первая проблема решена.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.01.2014, 22:11
Ответы с готовыми решениями:

Нахождение площади треугольника по точкам
Если запустить программу со значениями 0 0 1 0 0 1, то она скажет, что ответ не является числом. Я так понимаю, что ошибка в строке 12...

Нахождение площади через координаты треугольника
Здравствуйте, есть задание Напишите функцию square, вычисляющую площадь треугольника. С ее помощью для каждой из N точек определите,...

Нахождение площади треугольника через координаты его вершин
На вход даются шесть чисел — координаты вершин. Найти площадь. Знаю, что бесконечно много раз спрашивали про такую программу, но поиск по...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.01.2014, 22:11
Помогаю со студенческими работами здесь

Задача о площади треугольника
Следующий код не компилируется.Скажите пожалуйста почему #include&quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;math.h&gt; ...

Нахождение площади параллелограмма, треугольника и объема параллелепипеда, тетраэдра по координатам вершин
Нахождение площади параллелограмма, треугольника и объема параллелепипеда, тетраэдра по координатам вершин. Задается пользователем:...

Задача на вычисление площади разностороннего остроугольного треугольника
пусть даны координаты трех точек на плоскости. Если они могут быть вершинами разностороннего остроугольного треугольника вычислите его...

Нахождение площади четырехугольника используя процедуру вычисления площади треугольника
Заданы a,b,c,d - длины сторон четырехугольника и f - его диагональ. Найти площадь четырехугольника, используя в качестве подпрограммы...

Егэшная задача (С4): найти отношение площади треугольника к площади трапеции.
Помогите пожалуйста решить второй вариант решений Периметр равнобедренной трапеции 52.В трапецию вписана окр. делящая боковые стороны в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru