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

Срочно! Алгоритм Бауэра Замельзона! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ кейрус отказывается работать!! http://www.cyberforum.ru/cpp-beginners/thread279732.html
вроде уже какой по счёту кейрус скачиваю с инета.. устанавливаю а в борланде язык не переключается((( или мб это из за того что у меня вин 7 ? Добавлено через 36 секунд чё подскажите сделать с моей бедой?
C++ Как разбить массив по 3 елемента и засунуть в другой массив Здарова форумчане. Помогите, кому не лень решить задачу по программированию на c++ Кароче нам дан массив чисел от 1 до 18. Сначала нам нужно разбить массив по три елемента, т.е от 1 до 3, от 3 до 6, от 6 до 9, от 9 до 12, от 12 до 15 и от 15 до 18. И получается 6 кусков. Из каждого куска нужно вывести среднее арифметическое. И все эти арифметические занести в одномерный массив. Потом из этого... http://www.cyberforum.ru/cpp-beginners/thread279729.html
Прерывание C++
При вызове прерывание компилятор пишет ошибка доступа. #include <iostream> using namespace std; char a = "hello"; int main() { _asm {
Переход с формы на форму C++
Сетяне, скажите! Какой код нужно писать чтобы при нажатии кнопки открылось другое окно? буду безгранично благодарен :~)
C++ При установке показывает Error 1317 http://www.cyberforum.ru/cpp-beginners/thread279690.html
У меня при установке Borland C++ Builder Enterprise v6.0 показывает ошибку Error 1317.An error occured while attempting to create the directory C:\Users\8255~1\AppData Скажите что делать? Я скачал с раздачи которая была проверена администраторами и оценена как работающая. В комментариях все хвалили и твердили что работает а вот у меня при установке почти дошел до 90 процентов показывает...
C++ Аналог AnsiString в Qt Чтобы в программе использовать тип AnsiString, что нужно подключить : #include *** ???? подробнее

Показать сообщение отдельно
Liv-pooL
1 / 1 / 0
Регистрация: 17.04.2011
Сообщений: 142
19.04.2011, 22:20     Срочно! Алгоритм Бауэра Замельзона!
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
 
char stack_z[10];
double stack_c[10];
int tos_z=0;
int tos_c=0;
char   number[11];  
/*операции со стеками*/
void push_z (char a)
{
    stack_z[tos_z]=a;
    tos_z++;
}
 
void push_c (double a)
{
    stack_c[tos_c]=a;
    tos_c++;
}
 
char pop_z ()
{
    tos_z--; 
    return stack_z[tos_z];
}
 
double pop_c ()
{
    tos_c--; 
    return stack_c[tos_c];
}
 
void do_op (); 
 
int main()      
{
    FILE *in; 
    in=fopen("expr_valin.txt", "r");
    char ch, d[80]={0};
    int t=0, i=0; 
    double count;
    while((ch=getc(in)) != '=')  /*Строку из файла в массив*/
    {
        d[i]=ch;
        ++i;
    }
i=0;
while(d[i]!=0)  /*Сам алгоритм*/
{
top_of_switch: 
switch(d[i]) 
    {
    
    case '(': 
        {push_c(d[i]); continue;}    
    case ')': 
        { 
            if(stack_z[tos_z-1]=='(')
            {
                pop_z(); continue; 
            }
            else 
            { 
                do_op(); 
                goto top_of_switch; 
            }   
        }
 
    case '+': case '-':
      switch(stack_z[tos_z-1]) 
      {
      case '\0': case '(': push_z(d[i]); continue;
      case '+'   : case '-': do_op(); push_z(d[i]); continue;
      default    :  do_op(); goto top_of_switch;
      }
 
    case '*':
      switch(stack_z[tos_z-1]) 
      {
      case '*': {do_op(); push_z(d[i]); continue;}
      case '^': {do_op(); goto top_of_switch; continue;}
      default : {push_z(d[i]); continue;} 
      }
 
    case '^': push_z(d[i]); continue;
    default :
      t = 0;
      do {number[t++] = d[i]; i++;} while (isdigit(d[i]));
      number[t] = '\0';  ungetc(ch,in);
      push_c(atof(number)); 
      i++;
    }
    }
    fcloseall();
    cout<<"Vichisleno!\n";
    for (int j=0;j<3;j++)
    {
        count=stack_c[j];
        cout<<count<<" ";
    }
    cout<<endl;
    char c;
    for ( j=0;j<3;j++)
    {
        c=stack_z[j];
        cout<<c<<" ";
    }
    cout<<endl;
    return 0;
}
 
void do_op ()
{
    double op1=pop_c();
    double op2=pop_c();
    char znak=pop_z();
    double res;
    switch (znak)
    {
    case '+': res=op1+op2; break;
    case '-': res=op1-op2; break;
    case '*': res=op1*op2; break;
    case '^': res=pow(op1,op2);
    }
    cout<<res<<endl;
    push_c(res);
}
Не работает, не могу найти ошибку, а срочно нужно. Помогите найти где перемудрил((((
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru