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

делаю курсач! нифига не понимаю! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ запись данных из txt в html файл http://www.cyberforum.ru/cpp-beginners/thread209448.html
Надо открыть большой txt файл, прочитать и переписать данные в html файлы по 500 символов в каждом ,при чем если предложение в txt файле выходит 3а 500-ый символ , нужно как-то уместить его в 1-ом...
C++ Циклический сдвиг вправо Нужно сделать цеклический сдвиг машинного слова на 1 байт влево, через union и через побитовые операции. Вот так я пишу побитовый сдвиг unsigned D=15; cout<<(D<<8|D>>24)<<endl;; а вот с... http://www.cyberforum.ru/cpp-beginners/thread209447.html
C++ Вычислить и вывести на экран в виде таблицы значения ф-ции F на интервале от нач до конечн х, с шагом dx
Будьте любезны, помогите! Сегодня нужно очень...желательно попроще, ибо С++ знаю плохо. Последняя лаба очень нужна HELP!!! #include <stdio.h> #include <math.h> int main () { double...
C++ Нужно решение!
Найти первый член последователности, для которого выполнено условие |An -An-1|< E, если последовательностей образована по закону : A1 = x; An= КОРЕНЬ(14*An-1*An-1 - 2*x) n и n-1 индексы! Е -...
C++ Слова в алфавитном порядке http://www.cyberforum.ru/cpp-beginners/thread209425.html
Задача: Напечатать слова данного предложения в алфавитном порядке.
C++ ВЫчеслить срадее арифметическое без масива на с++ Дано натуральное число п и последовательность целых чисел х1,х2,х3,…,хn. Написать программу решения следующей задачи: вычислить среднее арифметическое всех положительных членов последовательности. ... подробнее

Показать сообщение отдельно
meloman92
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 14

делаю курсач! нифига не понимаю! - C++

12.12.2010, 19:57. Просмотров 428. Ответов 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
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
 #include "stdafx.h"
    #include <iostream>
    #define StackData MyStruct
     
     
    using namespace std;
     
    typedef struct
    {
            int ID;
            char* Name;
    } MyStruct;
     
     
    struct StackCell
    {
            StackData *Value;
            struct StackCell *Next;
    };
     
    struct Stack {
            StackCell *Top;
    };
     
    void Push(Stack *s, StackData *value){
            StackCell *newCell = new StackCell();
            newCell->Next = s->Top;
            newCell->Value = value;
            s->Top = newCell;
    }
    StackData* Pop(Stack *s){
     
            StackCell *cell = s->Top;
            StackData* rslt = cell->Value;
            s->Top = s->Top->Next;
            delete cell;
            return rslt;
    }
    int Count(Stack *s){
            StackCell *c = s->Top;
            int n;
            for(n=0; c->Next; c++,n++);
            return n;
    }
    void Clear(Stack *s){
            StackCell *c = s->Top;
            StackCell *t = c;
            if(!s) return;
            if(!c) return;
            do {
                    t = c->Next;
                    delete c;
                    c = t;
            } while (c);
            s->Top = 0;
    }
    Stack* CreateStack(){
            Stack *newStack = new Stack();
            newStack->Top = 0;
            return newStack;
    }
     
    istream& operator>> (istream &s, StackData &dst){
            dst.Name = new char[30];
            return s>>dst.ID>>dst.Name;
    }
    ostream& operator<< (ostream &s, StackData &src){
            return s<<"[ID="<<src.ID<<", Name="<<src.Name<<"]";
    }
     
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {  
            cout<<"StackTest: Hi there. Input just how much entities do you wish to push:"<<endl<<"StackTest> ";
            int n;
            cin>>n;
            Stack *s = CreateStack();
           
            for(int i=0;i<n;++i){
                    StackData *data = new StackData();
                    cin>>*data;
                    Push(s, data);
            }
            cout<<"StackTest: Done pushing. Now extracting your stuff back:"<<endl;
           
            while(s->Top)
                    cout<<"StackTest: "<<*(Pop(s))<<endl;
     
            cout<<"StackTest: input anything to end the program ";
            cin>>n;
            return 0;
    }
0
Вложения
Тип файла: txt Хрень!!!.txt (2.4 Кб, 16 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru