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

Математическая задача - C++

Восстановить пароль Регистрация
 
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 401
14.12.2013, 17:53     Математическая задача #1
Добрый вечер! Снова прошу у вас помощи с программой. Выдает ошибку при запуске. И ещё её нужно переделать, для работы через функции, у меня что-то не получается. Очень благодарен за любую помощь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main()
{ 
int a,b,c;
double q,w,e,i,o,p;
cout<<"Vvedite storoni ishodnogo treygolnika"<<endl;
cin>>a>>b>>c;
if(b-c<a<b+c) cout<<"Eto treugolnik";
else cout<<"Eto ne treugolnik";
q=0,5*sqrt(2*b*b+2*c*c-a*a);
w=0,5*sqrt(2*b*b+2*a*a-c*c);
e=0,5*sqrt(2*a*c+2*c*c-b*b);
i=0,5*sqrt(2*q*q+2*w*w-e*e);
o=0,5*sqrt(2*a*a+2*e*e-w*w);
p=0,5*sqrt(2*q*q+2*w*w-e*e);
cout<<"Medianu"<<i<<endl<<o<<endl<<p<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2013, 17:53     Математическая задача
Посмотрите здесь:

Математическая задача C++
C++ Математическая ф-ия в Borland C 3.01
C++ Математическая задача в С++
необычная математическая задача C++
Математическая формулировка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Brain_Dead
 Аватар для Brain_Dead
9 / 8 / 2
Регистрация: 25.09.2013
Сообщений: 34
14.12.2013, 20:04     Математическая задача #2
Вместо 0,5 поставь 0.5
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 401
14.12.2013, 22:26  [ТС]     Математическая задача #3
Цитата Сообщение от Brain_Dead Посмотреть сообщение
Вместо 0,5 поставь 0.5
Всё равно не работает
DmitryM5
Love~
 Аватар для DmitryM5
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 743
Записей в блоге: 1
14.12.2013, 22:31     Математическая задача #4
Цитата Сообщение от avatar1870 Посмотреть сообщение
Всё равно не работает
Программа не правильно работает,или же она вообще не компилируется?
У меня компилируется даже странный ваш код..
Brain_Dead
 Аватар для Brain_Dead
9 / 8 / 2
Регистрация: 25.09.2013
Сообщений: 34
15.12.2013, 09:22     Математическая задача #5
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Программа не правильно работает,или же она вообще не компилируется?
У меня компилируется даже странный ваш код..
Да, у меня тоже. Наверно, среда программирования другая. Поэтому я бы на всякий случай:
1) поставил double a,b,c вместо int a,b,c
2) не стал бы писать b-c < a < b+c, а написал бы так: (b-c < a) && (a < b+c)
3) всё-таки написал бы в конце _getch() и return 0.
Но дело не в этом. В алгоритме 2 грубые ошибки.
Первая - неравенство треугольника. Полностью оно выглядит так:

C++
1
if((a < b + c) && (b < a + c) && (c < a + b))
А при условии (b-c < a < b+c) можно вводить любую хрень (допустим, 1 1 5 спокойно сработает: -4 < 1 < 6), и пойдут вычисления с отрицательными числами под корнями.

Вторая ошибка такая. Допустим, условие правильное и оно сработало, сигнализировав, что это не треугольник. Блок else завершился, и дальше спокойно пошли расчёты. А программу-то надо остановить.

Помимо этого, еще в строках 15 и 18 стоят не те переменные.
В общем, код должен выглядеть примерно так:

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 <iostream>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
int main()
{ 
    double a,b,c;
    double q,w,e,i,o,p;
    cout << "Vvedite storoni ishodnogo treygolnika" << endl;
    cin >> a >> b >> c;
    if((a < b + c) && (b < a + c) && (c < a + b))
    {
        cout << "Eto treugolnik" << endl;
    }
    else
    {
        cout << "Eto ne treugolnik" << endl;
        return 0;
    }
 
    q = 0.5 * sqrt(2*b*b + 2*c*c - a*a);
    w = 0.5 * sqrt(2*b*b + 2*a*a - c*c);
    e = 0.5 * sqrt(2*a*a + 2*c*c - b*b);
    i = 0.5 * sqrt(2*q*q + 2*w*w - e*e);
    o = 0.5 * sqrt(2*q*q + 2*e*e - w*w);
    p = 0.5 * sqrt(2*e*e + 2*w*w - q*q);
    cout << "Medianu" << endl << i << endl << o << endl << p << endl;
 
    _getch();
    return 0;
}
З.Ы. Новички, завязывайте писать код без пробелов и скобок. Сами же будете в нём путаться.
Yandex
Объявления
15.12.2013, 09:22     Математическая задача
Ответ Создать тему
Опции темы

Текущее время: 14:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru