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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Передача символов через командную строку http://www.cyberforum.ru/cpp-beginners/thread277851.html
Доброго времени суток! Прошу помочь мне с решением данной задачи: Через командную строку передать два символа. Распечатать символ с большим кодом. PS заранее благодарен всем откликнувшимся(:
Visual C++ Фатальная ошибка в коде Здравствуйте!помогите пожалуйста с кодом...курсовую надо доделать а код ошибку выдает здесь: #ifndef _AFXDLL #error Building MFC application with /MD (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD #endif и пишет:fatal error C1189: #error : Building MFC application with /MD (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL... http://www.cyberforum.ru/cpp-beginners/thread277836.html
C++ ошибка в коде
// WhileDemo — введите счетчик цикла. // Программа выводит количество выполненных // циклов while #include: <stdio.h> # include: < lost ream. h> int main(int arg, char* pszArgs) ( // ввод счетчика цикла int loopCount; cout << "Введите loopCount: ";
C++ Что такое "2\n" ?
cout << "аргумент 1 больше, чем аргумент 2\n"; чё это тут 2\n для чего он и это тож не пойму #include <stdio.h> #include <iostream.h> для чего это
C++ кто может обьяснить про что тут говорится http://www.cyberforum.ru/cpp-beginners/thread277824.html
С помощью этого оператора & можно также выделять и устанавливать значения от- дельных битов. Представьте себе, что в написанной вами базе данных для сохранения некоторой информации о личности используется единственный бит. Первый значимый бит ра- вен 1. если это особа мужского пола, второй бит равен 1, если это программист, тре- тий равен 1 в случае внешней привлекательности, а четвертый —...
C++ Subscript requires array or pointer type Задание Нужно перегрузить операции для квадратной матрици Операции: - =, * =. но у меня не виходит ето зделать, подскажите, пожалуйста, в чем ошибка //Matrix.h #include <iostream> #include <stdlib.h> using namespace std; подробнее

Показать сообщение отдельно
Liv-pooL
1 / 1 / 0
Регистрация: 17.04.2011
Сообщений: 142
18.04.2011, 11:55  [ТС]     Алгоритм Бауэра Замельзона
ActionScript 3
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
#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 ()
{
    if (tos_z==0) 
    {cout<<"Pusto"; return 0;}
    else tos_z--; 
    return stack_z[tos_z];
}
 
double pop_c ()
{
    if (tos_c==0) 
    {cout<<"Pusto"; return 0;}
    else tos_c--; 
    return stack_c[tos_c];
}
 
void do_op (); 
 
int main()      
{
    FILE *in; 
    in=fopen("expr_valin.txt", "r");
    char ch;
    int i=0; 
    double count;
    while((ch=getc(in)) != '=') 
    {
top_of_switch: 
 
    switch(ch) 
    {
    case '(': 
        {push_c(ch); 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(ch); continue;
      case '+'   : case '-': do_op(); push_z(ch); continue;
      default    :  do_op(); goto top_of_switch; /* операторы '*', '/' */
      }
 
    case '*':
      switch(stack_z[tos_z-1]) 
      {
      case '*': {do_op(); push_z(ch); continue;}
      case '/': {do_op(); goto top_of_switch; continue;}
      default : {push_z(ch); continue;} /* пустой стек, '(' и операторы '+', '-' */
      }
 
    case '^': push_z(ch); continue;/* при любом содержимом вершины стека */
    default :/* если цифровой символ, то считываем  число и заносим в стек */
      i = 0;
      do number[i++] = ch; while (isdigit(ch=getc(in)));
      number[i] = '\0';  ungetc(ch,in);
      push_c(atof(number)); 
    }
    }
    fcloseall();
    cout<<"Vichisleno!\n";
    for (int j=0;j<3;j++)
    {
        count=stack_c[j];
        cout<<count<<" ";
    }
    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=op1/op2;
    }
    cout<<res<<endl;
    push_c(res);
}
Реализовал, в стек заносит, а ответ не вычисляе, ф-ия do_op ничего не делает, помогите исправить, не могу найти ошибку.
 
Текущее время: 00:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru