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

Нужна помощ - C++

Восстановить пароль Регистрация
 
klaif
0 / 0 / 0
Регистрация: 10.01.2012
Сообщений: 3
11.01.2012, 15:49     Нужна помощ #1
Здравствуйте, помогите пожалуйста с задачами :

1).Вычислить значения функции U
http://10pix.ru/img1/1836/6536502.png
при http://10pix.ru/img1/417307/6536617.png
Найти максимальное значение U и при каких х, y и z оно достигается

2).Дана матрица А(4,3)
1. Найти сумму отрицательных элементов матрицы, лежащих над главной
диагональю
2. Найти максимальный элемент 1ой строки
3. Заменить максимальный элемент 1ой строки на полученное значение
суммы

3). Составить программу для вычисления Y и Z по заданным формулам.
Y=2a x+ ln|x+a3|
http://10pix.ru/img1/3518/6536712.png
При x=2.1, a= 0.2

P.S. Понимаю что много, но очень нужно. Заранее благодарю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2012, 15:49     Нужна помощ
Посмотрите здесь:

Помощ в программке C++
Нужна помощ с функциями в Borland C. C++
C++ НУЖНА ССЫЛКА!!!
нужна литература C++
C++ нужна помощ.... Помогите составить программу...
C++ очень нужна помощ по С++
Нужна книга! C++
Нужна практика C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
11.01.2012, 23:19     Нужна помощ #2
Цитата Сообщение от klaif Посмотреть сообщение
1).Вычислить значения функции U
Вот, защищенная версия, можно ей деление на ноль скормить или stack_overflow

Попутно вопрос знающим людям. Если заменить в этом коде переменные double на long double, использовать соответствующие мат-функции и перегрузить также функцию int _matherrl( struct _exceptionl *a ), создать затем, к примеру, деление на ноль, то программа виснет по непонятным причинам. А с переменными double работает, как задумано... Что за фигня такая?
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
using namespace std;
// ---------------------------------------------------------------------------
int _matherr( struct _exception *a )
{
    throw 0;
}
// ---------------------------------------------------------------------------
bool calc_U_equation( double *U, double x, double y, double z ) {
 
    double _U;
 
    try {
        __try {
            _U = - pow( ( pow( y, 2 ) + 4 * pow( x, 2 ) / 3 ), 0.5 ) +
                   ( sin( pow( x, 3 ) - y ) - fabs( x * y ) ) / x * z;
        }
        __except ( EXCEPTION_EXECUTE_HANDLER ) {
            throw 0;
        }
    }
    catch ( ... ) {
        return false;
    }
    *U = _U;
    return true;
}
// ---------------------------------------------------------------------------
int _tmain( int argc, _TCHAR *argv[] )
{
    double U, x, y, z,
           hx = 1.3, hy = 0.1, hz = 0.8,
           x_min = 1, y_min = -0.4, z_min = 0.5,
           x_max = 3, y_max = -0.2, z_max = 1.5,
           U_res = -DBL_MAX, x_res, y_res, z_res;
 
    for ( x = x_min; x <= x_max; x += hx ) {
        for ( y = y_min; y <= y_max; y += hy ) {
            for ( z = z_min; z <= z_max; z += hz ) {
                if ( calc_U_equation( &U, x, y, z ) ) {
                    cout << "U = " << U << "\tx = " << x
                           << "\ty = " << y << "\tz = " << z << endl;
                    if ( U > U_res ) {
                        U_res = U;
                        x_res = x;
                        y_res = y;
                        z_res = z;
                    }
                }
                else {
                    cout << "Not computable variables:" << "\tx = " << x
                           << "\ty = " << y << "\tz = " << z << endl;
                }
 
            }
        }
    }
    cout << endl << "Max U = " << U_res << "\tx = " << x_res
           << "\ty = " << y_res << "\tz = " << z_res << endl << endl;
 
    system( "pause" );
    return 0;
}
Вывод
U = -0.929295 x = 1 y = -0.4 z = 0.5
U = -0.460936 x = 1 y = -0.4 z = 1.3
U = -0.861256 x = 1 y = -0.3 z = 0.5
U = -0.33041 x = 1 y = -0.3 z = 1.3
U = -0.805874 x = 1 y = -0.2 z = 0.5
U = -0.220242 x = 1 y = -0.2 z = 1.3
U = -2.88563 x = 2.3 y = -0.4 z = 0.5
U = -3.20541 x = 2.3 y = -0.4 z = 1.3
U = -2.84427 x = 2.3 y = -0.3 z = 0.5
U = -3.11878 x = 2.3 y = -0.3 z = 1.3
U = -2.80639 x = 2.3 y = -0.2 z = 0.5
U = -3.03527 x = 2.3 y = -0.2 z = 1.3

Max U = -0.220242 x = 1 y = -0.2 z = 1.3

Для продолжения нажмите любую клавишу . . .


Вывод при "x_min = 0" (Run without debugging !!!)
Not computable variables: x = 0 y = -0.4 z = 0.5
Not computable variables: x = 0 y = -0.4 z = 1.3
Not computable variables: x = 0 y = -0.3 z = 0.5
Not computable variables: x = 0 y = -0.3 z = 1.3
Not computable variables: x = 0 y = -0.2 z = 0.5
Not computable variables: x = 0 y = -0.2 z = 1.3
U = -1.55423 x = 1.3 y = -0.4 z = 0.5
U = -1.55542 x = 1.3 y = -0.4 z = 1.3
U = -1.44969 x = 1.3 y = -0.3 z = 0.5
U = -1.31992 x = 1.3 y = -0.3 z = 1.3
U = -1.35373 x = 1.3 y = -0.2 z = 0.5
U = -1.0967 x = 1.3 y = -0.2 z = 1.3
U = -3.37618 x = 2.6 y = -0.4 z = 0.5
U = -3.93206 x = 2.6 y = -0.4 z = 1.3
U = -3.32619 x = 2.6 y = -0.3 z = 0.5
U = -3.82062 x = 2.6 y = -0.3 z = 1.3
U = -3.2779 x = 2.6 y = -0.2 z = 0.5
U = -3.70833 x = 2.6 y = -0.2 z = 1.3

Max U = -1.0967 x = 1.3 y = -0.2 z = 1.3

Для продолжения нажмите любую клавишу . . .


Добавлено через 50 минут
Цитата Сообщение от klaif Посмотреть сообщение
Найти сумму отрицательных элементов матрицы, лежащих над главной
диагональю
http://www.cyberforum.ru/cpp-beginne...read14283.html
Yandex
Объявления
11.01.2012, 23:19     Нужна помощ
Ответ Создать тему
Опции темы

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