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

Уравнения! - C++

Восстановить пароль Регистрация
 
Leningradeс
 Аватар для Leningradeс
10 / 10 / 1
Регистрация: 03.03.2011
Сообщений: 331
24.03.2011, 17:59     Уравнения! #1
Подскажите как правильно написать эти уравнения?

Уравнения!

Вот всё что я осилил... X вместо а.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void ysl1 (float X, float *tab)
{   
    tab [0] = X * ((cos (X) + 14) / (sin (X) + 7));
}
 
void ysl2 (float X, float *tab)
{   
    tab [1] = X + log ((fabs (X - 8)) + 10);
}
 
void ysl3 (float X, float *tab)
{   
    tab [2] = X * (X - 13);
}
 
void ysl4 (float X, float *tab)
{   
    tab [3] = 5 * X;
}
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2011, 17:59     Уравнения!
Посмотрите здесь:

C++ заданы уравнения
C++ Кубические уравнения
решение уравнения C++
C++ Квадратные уравнения
Решение уравнения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Leningradeс
 Аватар для Leningradeс
10 / 10 / 1
Регистрация: 03.03.2011
Сообщений: 331
24.03.2011, 18:21  [ТС]     Уравнения! #2
Точнее как написать кубический корень во втором уравнении???

C++
1
sqrt (X + (log (fabs (X - 8)) + 10));
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.03.2011, 18:26     Уравнения! #3
Цитата Сообщение от Leningradeс Посмотреть сообщение
Точнее как написать кубический корень во втором уравнении???
C++
1
pow(X + (log (fabs (X - 8)) + 10), 1.0/3.0);
Leningradeс
 Аватар для Leningradeс
10 / 10 / 1
Регистрация: 03.03.2011
Сообщений: 331
24.03.2011, 18:32  [ТС]     Уравнения! #4
Через pow... А как это устно объяснить:

C++
1
pow ((X), 1.0 / 3.0)
pow вводит число в степень... А ну понятно, спасибо.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.03.2011, 18:51     Уравнения! #5
Цитата Сообщение от Leningradeс Посмотреть сообщение
Через pow... А как это устно объяснить:
Алгебра, 10-ый клас
Leningradeс
 Аватар для Leningradeс
10 / 10 / 1
Регистрация: 03.03.2011
Сообщений: 331
24.03.2011, 19:19  [ТС]     Уравнения! #6
Угу 10-ый класс, только я в нем не учился
Да и еще, как можно объяснить эту запись:

C++
1
2
3
4
5
if (YSL [n] == 1)
{
    for (int j = 0; j < 4; j ++) tab [j] = 0;
    (*YSLtab [n]) (x, tab); //Особенно вот это что делает?...
}
В этом коде:

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
#include "modules.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <math.h>
#include <wmsnamedvalues.h>
#define YSL0 (x <= 4)
#define YSL1 (4 < x && x < 12)
#define YSL2 (12 <= x && x < 38)
#define YSL3 (x >= 38)
void ysl1 (float, float *);
void ysl2 (float, float *);
void ysl3 (float, float *);
void ysl4 (float, float *);
 
namespace Modules
{
    void module3 ()
    {
        setlocale (LC_ALL, "Russian");
        system ("cls");
        time_t d;
        time (&d);
        printf ("%s\n", ctime (&d));
        printf ("________________________________________________________________________________");
        void (*YSLtab [4]) (float, float *) = {ysl1, ysl2, ysl3, ysl4};
        fflush (stdin);
        float x = 0, tab [4];
        int YSL [4];
        printf ("|      X     |   усл.1    |   усл.2    |   усл.3    |   усл.4    |\n");
        for (int h = 1; h <= 20; h ++)
        {
            x = random (-10., 40.);
            if (-9. <= x && x <= -7.)
            {
                -- h;
                continue;
            }
            YSL [0] = YSL0;
            YSL [1] = YSL1;
            YSL [2] = YSL2;
            YSL [3] = YSL3;
            for (int n = 0; n < 4; n ++)
            {
                if (YSL [n] == 1)
                {
                    for (int j = 0; j < 4; j ++) tab [j] = 0;
                    (*YSLtab [n]) (x, tab);
                }
            }
            printf ("| %+10.6f |", x);
            for (int v = 0; v < 4; v ++)
            {
                if (tab [v] < 0) printf (" %+10.6f |", tab [v]);
                else printf (" %+10.6s |", "-");
            }
            printf ("\n");
        }
        printf ("Вычисления завершены. Пересчитать? Да - 1 / Нет - 2");
        int i;
        i = getche ();
        switch (i)
        {
            case '1': Modules::module3 (); break;
            case '2': return;
            default: printf ("\nОшибка!\n"); break;
        }
    }
}
 
void ysl1 (float X, float *tab)
{
    tab [0] = X * ((cos (X) + 14) / (sin (X) + 7));
}
 
void ysl2 (float X, float *tab)
{
    tab [1] = pow ((X + log ((fabs (X - 8)) + 10)), float (1 / 3));
}
 
void ysl3 (float X, float *tab)
{
    tab [2] = X * (sqrt (X - 13));
}
 
void ysl4 (float X, float *tab)
{
    tab [3] = 5 * X;
}
Мне просто сказали что надо туда это написать, я написал, но не знаю что это...
Yandex
Объявления
24.03.2011, 19:19     Уравнения!
Ответ Создать тему
Опции темы

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