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

Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = a√2, 3 — высота h, опущенная на - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В чем разница между delete и delete[]? http://www.cyberforum.ru/cpp-beginners/thread641606.html
а можете еще по подробней рассказать про delete, точнее даже delete, чем именно отличается delete от delete, т.к. я попробовал выполнить delete после использования new, и программа отработала без ошибок.
C++ Символьный массив: заменить все символы * на + Задача 2 Данн одномерный массив, состоящий из символов. заменить все вимволы <<*>> на <<+>>\вывсети получившейся массив на экран. http://www.cyberforum.ru/cpp-beginners/thread641592.html
не могу найти или неправильно понял C++
Библиотечная функция max() получает один параметр типа. Можно ли вызвать ее для типов int и double? Если да, то как? Если нет, то почему ? имеется ввиду 1,2 или не одно из них? 1) std::max(int); или std::max(1); 2) std::max(1,2) или std::max(3, 5.5)
C++ Явные специализации и массивы строк
Не знаю, как еще точнее это назвать... В задании написано: Сделайте шаблонную функцию maxn(), которая принимает в качестве аргумента массив элементов типа Т и целое число, представляющее собой количество элементов в массиве, и которая возвращает элемент с наибольшим значением в этом массиве. Проверьте ее в программе, которая использует шаблон данной функции с массивом из шести значений типа...
C++ Метод для изменения защищенного поля http://www.cyberforum.ru/cpp-beginners/thread641576.html
Насколько безопастно данное издевательство решение? #include <stdio.h> class MYCLASS { private : int x; public : MYCLASS() : x(23) {} int* Get()
C++ Развертывание консольного окна Как при включении программы развернуть консольное окно??? Если я это делаю вручную оно прилепает к правому верхнему углу. Вот мне надо достигнуть подобного результата. Просто окно раскрывается в самом низу экрана и не помещается полностью. подробнее

Показать сообщение отдельно
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
24.08.2012, 13:25     Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = a√2, 3 — высота h, опущенная на
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
typedef enum tagAction
{
    OP_MUL = 0x0001,
    OP_DIV = 0x0002,
    OP_NONE = 0x0003
} OP_TYPE;
 
typedef struct tagValue
{
    char op_name[256];
    double op_val;
    OP_TYPE op_action;
} OP;
 
typedef struct tagParam
{
    int nindex;
    char name[256];
    double param_val;
    OP operands[256];
} PARAM;
 
double evaluate(OP* operands)
{
    double result = 0;
    for (int i = 0; strcmp(operands[i].op_name,"NULL") != 0; i++)
        if (operands[i].op_action == OP_NONE)
            result = operands[i].op_val;
        else if (operands[i].op_action == OP_MUL)
            result*=operands[i].op_val;
        else result/=operands[i].op_val;
 
    return result;
}
 
bool isexprempty(OP* operands)
{
    bool result = true;
    for (int i = 0; strcmp(operands[i].op_name,"NULL") != 0 && result; i++)
        result = operands[i].op_val == 0.00 ? 1 : 0;
    return result;
}
 
int main()
{
    static PARAM params[] = { { 1, "a",    0.00,   { { "NULL", 0.00, OP_NONE },  { "NULL",    0.00, OP_NONE }, { "NULL", 0.00, OP_NONE }, { "NULL", 0.00, OP_NONE } } },
                              { 2, "c",    0.00,    { { "a",    0.00, OP_NONE },  { "sqrt(2)", 1.41, OP_MUL },  { "NULL", 0.00, OP_NONE }, { "NULL", 0.00, OP_NONE } } },
                              { 3, "h",    0.00,    { { "c",    0.00, OP_NONE },  { "2",       2.00, OP_DIV },  { "NULL", 0.00, OP_NONE }, { "NULL", 0.00, OP_NONE } } },
                              { 4, "S",    0.00,    { { "c",    0.00, OP_NONE },  { "h",       0.00, OP_MUL },  { "2",    2.00, OP_DIV  }, { "NULL", 0.00, OP_NONE } } },
                              { 5, "NULL", 0.00,    { { "NULL", 0.00, OP_NONE },  { "NULL",    0.00, OP_NONE }, { "NULL", 0.00, OP_NONE }, { "NULL", 0.00, OP_NONE } } } } ;
 
    double val = 10.00; char *in = "a";
    char* param_names[] = { "a", "c", "h", "S", "NULL" };
 
    for (int v = 0; strcmp(params[v].name,"NULL") != 0; v++)
        if (!strcmp(params[v].name, in)) params[v].param_val = val;
 
    for (int i = 0; strcmp(param_names[i],"NULL") != 0; i++)
    {
        for (int k = 0; strcmp(params[k].name,"NULL") != 0; k++)
            if (!strcmp(params[k].name, param_names[i]) && params[k].param_val > 0.00)
            {
                for (int d = 0; strcmp(params[d].name,"NULL") != 0; d++)
                {
                    OP* operands = params[d].operands;
                    for (int m = 0; strcmp(operands[m].op_name,"NULL") != 0; m++)
                        if (!strcmp(operands[m].op_name,params[k].name))
                            operands[m].op_val = params[k].param_val;
                }
 
                for (int s = 0; strcmp(params[s].name,"NULL") != 0; s++)
                    if (!isexprempty(params[s].operands))
                        params[s].param_val = evaluate(params[s].operands);
            }
    }
 
    for (int r = 0; strcmp(params[r].name,"NULL") != 0; r++)
        printf("%s = %lf\n",params[r].name, params[r].param_val);
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/0463db...77d3f59688588b
 
Текущее время: 18:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru