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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.94
Левиафам
 Аватар для Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 422
23.08.2012, 19:01     Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = a√2, 3 — высота h, опущенная на #1
Привет всем...я тут прогу попытался написать на С и что-то не выходит....кто подскажет что нужно сделать чтобы сработала???......спасибо заранее!!!!! Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = a√2, 3 — высота h, опущенная на гипотенузу (h = c/2), 4 — площадь S = ch/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
46
#include <stdio.h>
 #include <conio.h>
 
int main(int argc, char* argv[]) 
{
  float a,c,h,s,ch; 
  int n;
  
  printf("vvedite cifru ");
  scanf("%d",&n); 
  
  switch(n){
            case 1:{ printf("vvedite a");
                    scanf("%f",&a);
                    c=a*sqrt(2); 
                     h=c/2;
                     s=((c*h)/2);
                     printf("%f",s);}
                     break;
            
            case 2: {printf("vvedite c");
                    scanf("%f",&c);
                    h=c/2;
                     a=c/sqrt(2);
                     s=((c*h)/2);
                     printf("%f",s);}
                     break;
             
            case 3:{printf("vvedite h");
                    scanf("%f",&h);
                    c=h*2;
                     a=c/sqrt(2);
                     s=((c*h)/2); 
                     printf("%f",s);}
                     break;
                     
            case 4: {printf("vvedite s");
                    scanf("%f",&s);
                    ch=s*2;
                     s=ch/2;
                     printf("%f",s);}
                     break;
   default: printf("Oshibjchno vveden");} 
  system("pause");
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2012, 19:01     Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = a√2, 3 — высота h, опущенная на
Посмотрите здесь:

C++ Дано гипотенузу С и Катет А прямоугольного треугольника. Найти второй катет по формуле
C++ Гипотенуза и катет
C++ Дни недели пронумерованы следующим образом
C++ Как найти катет если известна гипотенуза и другой катет?
Вывести значения заданного равнобедренного прямоугольного треугольника C++
Элементы равностороннего треугольника пронумерованы следующим образом C++
Дни недели пронумерованы следующим образом C++
а) Создать шаблонную функцию, изменяющую попарно элементы массива следующим образом C++
C++ Поменять элементы массива следующим образом: первый с последним, второй с предпоследним и т.д.
Даны гипотенуза и катет прямоугольного треугольника, найти второй катет C++
Известна гипотенуза С и противолежащий угол B прямоугольного треугольника. Найти периметр треугольника C++
Определить углы прямоугольного треугольника, если известны два его катета и гипотенуза C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
23.08.2012, 19:31     Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = a√2, 3 — высота h, опущенная на #2
Цитата Сообщение от Левиафам Посмотреть сообщение
Вывести значения остальных элементов данного треугольника (в том же порядке).
А у вас в switch(n) всегда выводится только одно значение, площадь треугольника
C++
1
printf("%f",s);
Добавьте еще для катета, гипотенузы и для высоты в каждый case

Добавлено через 7 минут
C++
1
2
3
4
printf("%f",a);
printf("%f",c);
printf("%f",h);
printf("%f",s);
Левиафам
 Аватар для Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 422
23.08.2012, 19:37  [ТС]     Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = a√2, 3 — высота h, опущенная на #3
да нет...я просто библиотеку MATH не добавил....а так всё правильно.....допёр только сейчас


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
#include <stdio.h>
 #include <conio.h>
 #include <math.h>
int main(int argc, char* argv[]) 
{
  float a,c,h,s,ch; 
  int n;
  
  printf("vvedite cifru ");
  scanf("%d",&n); 
  
  switch(n){
            case 1:{ printf("vvedite a");
                    scanf("%f",&a);
                    c=a*sqrt(2); 
                     h=c/2;
                     s=((c*h)/2);
                     printf("%f",s);}
                     break;
            
            case 2: {printf("vvedite c");
                    scanf("%f",&c);
                    h=c/2;
                     a=c/sqrt(2);
                     s=((c*h)/2);
                     printf("%f",s);}
                     break;
             
            case 3:{printf("vvedite h");
                    scanf("%f",&h);
                    c=h*2;
                     a=c/sqrt(2);
                     s=((c*h)/2); 
                     printf("%f",s);}
                     break;
                     
            case 4: {printf("vvedite s");
                    scanf("%f",&s);
                    ch=s*2;
                     s=ch/2;
                     printf("%f",s);}
                     break;
   default: printf("Oshibjchno vveden");} 
   scanf("%d",&s);
  return 0;
}
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
23.08.2012, 20:29     Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = a√2, 3 — высота h, опущенная на #4
Ну библиотека это понятно. А как же в задаче ведь надо вывести значения всех переменных или только площадь треугольника?
Левиафам
 Аватар для Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 422
24.08.2012, 09:20  [ТС]     Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = a√2, 3 — высота h, опущенная на #5
там нужно только площадь треугольника вывести через разные введённые значения))
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, опущенная на #6
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
Yandex
Объявления
24.08.2012, 13:25     Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = a√2, 3 — высота h, опущенная на
Ответ Создать тему
Опции темы

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