Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передать в неуправляемую функцию указатель на указатель http://www.cyberforum.ru/cpp-beginners/thread1081439.html
Неуправляемая функция типа FUNC(int ** r); Делаю так fixed (int* ptr = arr) { FUNC((int **)ptr); и так FUNC(ptr); }
C++ Программа для вычеслений размера регулярных выплат в год Теория из книги Г. Шилдта /* Проект 2.3. Вычисление размера регулярных платежей по займу. Назовите этот файл RegPay.срр. */ #include <iostream> #include <cmath> #include <windows.h> http://www.cyberforum.ru/cpp-beginners/thread1081425.html
лексикографически упорядочены числа C++
В отличие от обычной математики числа здесь упорядочены не по возрастанию, а лексикографически, то есть как в словаре (сначала по первой цифре, затем, при равной первой цифре – по второй, и так далее). В данной науке используется первые N чисел. Так, например, если N=15, то числа в странной математике оказываются упорядочены следующим образом: 1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9. ...
C++ stl remove своя функция
мне нужна в качестве 3 аргумента функции remove указать структура, компилятор выдаёт ошибку, как исправить?
C++ Вычислить ф-ю http://www.cyberforum.ru/cpp-beginners/thread1081410.html
C++ В матрице найти наибольший прямоугольник состоящий из четных чисел в матрице найти наибольший прямоугольник состоящий из четных чисел. До этого несколько раз создавал тему, никто так и не смог написать решение( подробнее

Показать сообщение отдельно
Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49

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

25.01.2014, 22:11. Просмотров 488. Ответов 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 минуту
Первая проблема решена.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru