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

Где ошибка в формуле ??? - C++

Восстановить пароль Регистрация
 
botasa
3 / 3 / 0
Регистрация: 18.01.2011
Сообщений: 131
11.09.2011, 14:08     Где ошибка в формуле ??? #1
Задача
Где ошибка в формуле ???

Код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void lab1::funB( double x, double y, double z )
{
    double b1 = pow( fabs( y + z ), 0.2 );
    double b2 = pow( fabs( z ), 1.34 );
    double b3 = pow( y - z, 2 );
    double b4 = 1 + ( pow( sin( z ), 2 ) );  
    double b5 = pow( fabs( z - y ), 3 );
    double b6 = z /  ( cos( pow ( x, 2 ) ) );
    b = b1 / b2 + b3 / b4 + b5 / b6;
}
 
void lab1::funA( double x, double y, double z )
{
    double a1 = sqrt( ( pow( x * x - 1, 0.3 ) ) );
    double a2 = pow( ( sin( y + 2 * b ) ), 1 / 3 );
    double a3 = 1 + ( x / Faktr( 1 ) ) + (  ( pow( y, 2 ) ) / Faktr( 2 ) ) 
    + ( ( pow( z, 3 ) ) / Faktr( 3 ) );
    a = ( a1 - a2 ) / a3;
}
1) помогите найти ошибку в формуле( формулах ), уже мозги плывут, по 10 раз экспериментировал, менял, переставлял ...
2) Кто может подсказать как в Visual 2010 в проекте С++ сделать подсказки, типа пишу x:: и букву а оно мне все что есть, там в пространстве имен вроде ... выдает в левом нижнем угле IntelliSense : "Unavailable for C++/ CLI" .
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Slimmy
 Аватар для Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97
11.09.2011, 14:50     Где ошибка в формуле ??? #2
Есть какие-то тестовые значения для отладки? Желательно бы посмотреть.
На первый взгляд в а1 и а2 пропущен abs. Сейчас еще что-нибудь посмотрю.
botasa
3 / 3 / 0
Регистрация: 18.01.2011
Сообщений: 131
11.09.2011, 15:06  [ТС]     Где ошибка в формуле ??? #3
Цитата Сообщение от Slimmy Посмотреть сообщение
Есть какие-то тестовые значения для отладки? Желательно бы посмотреть.
На первый взгляд в а1 и а2 пропущен abs. Сейчас еще что-нибудь посмотрю.
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// lab1.cpp : main project file.
 
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cmath>
#include <conio.h>
using namespace std;
 
class lab1
{
private:
    double a,b;
public:
    lab1() : a( 1 ), b( 1 ) {}
    void funB( double x, double y, double z );
    void funA( double x, double y, double z );
    double Faktr( int n );
    void showlab1( char *c, char *s )
    { cout << setw( 8 ) << c << b << s << a << endl; }
 
    void tabX( double xp, double xk, double dx, double y, double z );
 
    void tabXY(double xp, double xk, double dx, double yp, double yk, double dy, double z);
};
 
void lab1::funB( double x, double y, double z )
{
    double b1 = pow( fabs( y + z ), 0.2 );
    double b2 = pow( fabs( z ), 1.34 );
    double b3 = pow( y - z, 2 );
    double b4 = 1 + ( pow( sin( z ), 2 ) );  
    double b5 = pow( fabs( z - y ), 3 );
    double b6 = z /  ( cos( pow ( x, 2 ) ) );
    b = b1 / b2 + b3 / b4 + b5 / b6;
}
 
void lab1::funA( double x, double y, double z )
{
    double a1 = sqrt( ( pow( x * x - 1, 0.3 ) ) );
    double a2 = pow( ( sin( y + 2 * b ) ), 1 / 3 );
    double a3 = 1 + ( x / Faktr( 1 ) ) + (  ( pow( y, 2 ) ) / Faktr( 2 ) ) 
    + ( ( pow( z, 3 ) ) / Faktr( 3 ) );
    a = ( a1 - a2 ) / a3;
}
 
double lab1::Faktr( int n )
{
    double f = 1 ;
    if( n > 1 )
        for( int i = 2; i <= n; i++ )
            f *= i;
    return f;
}
 
void lab1::tabX( double xp, double xk, double dx, double y, double z )
{
    double x = xp;
    while( x < xk )
    {
        funB( x, y, z );
        funA( x, y, z );
        cout << setw( 7 ) << "x = " << x;
        showlab1( "b = ",", a = " );
        x += dx;
    }
}
 
void lab1::tabXY(double xp, double xk, double dx, double yp, double yk, double dy, double z)
{
    double y = yp;
    while( y <= yk )
    {
        double x = xp;
        cout << setw( 7 ) << y << "->";
        while( x < xk )
        {
            funB( x, y, z );
            funA( x, y, z );
            cout << setw( 7 ) << a << " ";
            x += dx;
        }
        y += dy;
        cout << "\n";
    }
}
 
int main(array<System::String ^> ^args)
{
    setlocale( LC_ALL, "" );
    cout.precision( 5 );
    cout.setf( ios_base::fixed | ios_base::showpoint );
    //cout << "Завдання № 1.1\n";
    //double x1 = 0.48 * 8, y1 = 0.47 * 8, z1 = -1.32 * 8;
    lab1 laba;
    //laba.funB( x1, y1, z1 );
    //laba.funA( x1, y1, z1 );
    //laba.showlab1( "b = ",", a = " );
 
    cout << "Завдання № 1.2\n";
    laba.tabX( -1, 1, 0.2, 4.7, 1.32 );
 
    //cout << "Завдання № 1.3\n";
    //laba.tabXY( -1, 1, 0.2, -2, 2, 0.2, 1.32 );
    system("pause");
    return 0;
}
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
11.09.2011, 15:09     Где ошибка в формуле ??? #4
Цитата Сообщение от botasa Посмотреть сообщение
Кто может подсказать как в Visual 2010 в проекте С++ сделать подсказки, типа пишу x:: и букву а оно мне все что есть, там в пространстве имен вроде ... выдает в левом нижнем угле IntelliSense : "Unavailable for C++/ CLI" .
Есть хороший IntelliSense под названием Visual Assist X.
botasa
3 / 3 / 0
Регистрация: 18.01.2011
Сообщений: 131
11.09.2011, 19:30  [ТС]     Где ошибка в формуле ??? #5
Цитата Сообщение от Overmind024 Посмотреть сообщение
Есть хороший IntelliSense под названием Visual Assist X.
читал про него на МСДН, наверно будет надо скачивать его ... думал есть способ где-то в настройках порыться ...
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
12.09.2011, 08:39     Где ошибка в формуле ??? #6
a() - четыре аргумента
Yandex
Объявления
12.09.2011, 08:39     Где ошибка в формуле ???
Ответ Создать тему
Опции темы

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