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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать класс FileStream, инкапсулирующий работу с файлами через стандартную библиотеку Си (fopen, fclose, fprintf, fscanf, fread, fwrite и т.д.) http://www.cyberforum.ru/cpp-beginners/thread1041262.html
Разработать класс FileStream, инкапсулирующий работу с файлами через стандартную библиотеку Си (fopen, fclose, fprintf, fscanf, fread, fwrite и т.д.). Реализовать методы открытия и закрытия файла (отдельный метод Open и метод Create и конструктор с именем открываемого файла, закрывать – в деструкторе и отдельным методом Close) Реализовать методы Write и Read для int, double и char*. Обеспечить...
C++ Односвязный список. Создать список строк Организован циклический ввод данных для обработки, т.е. программа должна работать (запрашивать данные, считать и выводить результат ) до тех пор, пока пользователь не введет признак окончания работы (либо встретится конец файла) Написать функции для подсчёта количества слов в списке: а) начинающихся и оканчивающихся одной и той же буквой б) начинающихся с той же буквы, что и следующие... http://www.cyberforum.ru/cpp-beginners/thread1041243.html
программа деления чисел C++
Есть программа деления двух чисел. Резльтат записывается в файл. Помогите переделать программу, чтобы были функции пользователя. Вот код: #include <iostream> #include <windows.h> #include <fstream> #include <conio.h> using namespace std;
Дискретка C++
Написать программу, которая определяет, ассоциативная бинарная операция или нет. Входящими данными есть таблица операций(операции заданы на конечном множестве). Написать программу, которая проверяет или являеться структура групой, полугрупой или моноидом. Входящими данными являються элементы таблицы Келли операции.
C++ Использование механизма обмена сообщениями для управления окнами в ОС Windows http://www.cyberforum.ru/cpp-beginners/thread1041220.html
Ошибка в строке wincl.lpszClassName = szClassName; собственно почему ругается??? #include "stdafx.h" #include <windows.h> #include <stdio.h> /* кол-во строчек */ #define LINES 30
C++ сколько слагаемых должно быть в сумме 1+1/2+1/3+.+1/N, чтобы сумма оказалась больше L. L вводится пользователем , L принадлежит промежутку [1;2] Cколько слагаемых должно быть в сумме 1+1/2+1/3+...+1/N, чтобы сумма оказалась больше L. L вводится пользователем, L принадлежит промежутку . подробнее

Показать сообщение отдельно
Brain_Dead
 Аватар для Brain_Dead
9 / 8 / 2
Регистрация: 25.09.2013
Сообщений: 34
15.12.2013, 09:22     Математическая задача
Цитата Сообщение от 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;
}
З.Ы. Новички, завязывайте писать код без пробелов и скобок. Сами же будете в нём путаться.
 
Текущее время: 16:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru