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

При вычислении выражения выдается неверный результат - C++

Восстановить пароль Регистрация
 
p1ggy
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 12
31.10.2012, 00:58     При вычислении выражения выдается неверный результат #1
Добрый вечер! Пытался разобраться, но, увы, не получилось. У меня есть пару вопросов:
1) Что значит следующая постановка: "Код методов – вне пространства определения класса. Программа должна включать в себя статический и динамический способы создания объектов, и для каждого объекта использовать прямую и косвенную адресацию при вызове методов класса." И соответствует нижеизложенный код этому заданию?
2) Есть задание: При вычислении выражения выдается неверный результат Но почему-то ответ неверный получается. Судя по всему что-то с типами данных или с их приведением при вычислении.
Помогите пожалуйста! Заранее спасибо! Вот сам код:
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
42
43
44
45
#include <iostream>
using namespace std;
#include <math.h>
#include <stdlib.h>
#include <conio.h>
 
class Lab2
{
    double x,y,z,b;
    public:
    void set()
{
    cout << "Please, input x.." << endl;
    cin >> x;
    cout << "Please, input y.." << endl;
    cin >> y;
    cout << "Please, input z.." << endl;
    cin >> z;
}
    void run()
{
    double q, w;
    q = sqrt (10*(pow(x,1.0*1/8)+pow(x,y+2)));
    w = pow(asin(z),2)-abs(x-y);
    b = q*w;
}
    void print()
{
    cout << "Your rezult: b = " << b << endl;
}
};
 
int main()
{
    Lab2 good;
    good.set(); good.run(); good.print();
    Lab2 *nice;
    nice = new Lab2;
    nice->set();
    nice->run();
    nice->print();
    delete nice;
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2012, 00:58     При вычислении выражения выдается неверный результат
Посмотрите здесь:

C++ Деревья, неверный результат
C++ Ошибка в вычислении выражения
C++ Сложение массивов разной длины. Неверный результат
Калькулятор выводит неверный результат C++
C++ Выводит неверный результат ln2=1-1/2+1/3-1/4
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.10.2012, 01:06     При вычислении выражения выдается неверный результат #2
Цитата Сообщение от p1ggy Посмотреть сообщение
Код методов – вне пространства определения класса
То есть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Lab2
{
    double x,y,z,b;
    
    public:
    void set();
    void run();
    void print();
};
 
void Lab2::set()
{
    cout << "Please, input x.." << endl;
    cin >> x;
    cout << "Please, input y.." << endl;
    cin >> y;
    cout << "Please, input z.." << endl;
    cin >> z;
}
...
p1ggy
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 12
31.10.2012, 02:15  [ТС]     При вычислении выражения выдается неверный результат #3
Спасибо, это теперь ясно. А что насчет собственно кода и задачи?
Yashman
 Аватар для Yashman
1 / 3 / 0
Регистрация: 02.07.2011
Сообщений: 90
31.10.2012, 02:36     При вычислении выражения выдается неверный результат #4
Извлечь из числа кубический корень, это тоже самое, что возвести число в степень одна третья, а не одна восьмая:
C++
1
q = sqrt (10*(pow(x,1.0*1/3)+pow(x,y+2)));
Если сделать так, то ответ правильный выходит
p1ggy
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 12
31.10.2012, 09:57  [ТС]     При вычислении выражения выдается неверный результат #5
Допустим, я криво увидел условие, но почему-то если я меняю 8 на 3, то ВСЕ РАВНО ПОЛУЧАЕТСЯ НЕ ТОТ ОТВЕТ -29,2798. Я уже вообще запутался... Помогите, пожалуйста. IDE CodeBlocks
Yashman
 Аватар для Yashman
1 / 3 / 0
Регистрация: 02.07.2011
Сообщений: 90
31.10.2012, 14:04     При вычислении выражения выдается неверный результат #6
Видимо, дело в компиляторе - я скомпилировал этот код (с поправкой в функции pow) в Xcode, Microsoft Visual Studio 2012 и даже с помощью online-компилятора на сайте ideone.com и везде получился результат -40.6307, так что код точно правильный. Попробуй скомпилировать в Dev-C++
Изображения
   
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.10.2012, 19:01     При вычислении выражения выдается неверный результат #7
C++
1
 w = pow(asin(z), 2) - fabs(x - y);
Добавлено через 8 минут
И старайтесь, если компилятор позволяет, использовать новые имена заголовочных файлов. Например, если: #include <stdlib.h>, то компилятор в Code Blocks никак не реагирует на то, что аргументы в функции abs() имеют тип double, а если: #include <cstdlib>, то выведет информацию об ошибке.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2012, 10:10     При вычислении выражения выдается неверный результат
Еще ссылки по теме:

При значении больше 10 выводит неверный результат C++
C++ Неверный результат при преобразования типов данных static_cast<int>(double)
C++ Почему выводит неверный результат при вычислении произведения?

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

Или воспользуйтесь поиском по форуму:
p1ggy
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 12
01.11.2012, 10:10  [ТС]     При вычислении выражения выдается неверный результат #8
Точно! Благодарю. Большое Вам всем спасибо!
Yandex
Объявления
01.11.2012, 10:10     При вычислении выражения выдается неверный результат
Ответ Создать тему
Опции темы

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