Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для meloman92
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 14

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

12.12.2010, 19:57. Показов 1015. Ответов 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;
    }
Вложения
Тип файла: txt Хрень!!!.txt (2.4 Кб, 17 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2010, 19:57
Ответы с готовыми решениями:

Пацаны, пожалуйста. Завтра сдавать в вузе. Если не сдам, будет плохо, а сам я не понимаю нифига
1. Вводится действительное число b. Найти такое наименьшее N, что 1 + 1/2 + 1/3 + 1/4 + 1/N больше b. 2. Задана последовательность...

WCF: Всё ли я правильно понимаю и делаю?
Всем привет. Вот уже который день разбираюсь с wcf... Возникло несколько вопросов, в которых вроде как разобрался, но хотелось бы быть...

Сколько всего нужно закупить парт чтобы их хватило на всех учеников
Вроде задача с одной стороны очень легкая, но я думаю над ней целый вечер. Условие В школе решили набрать три новых...

2
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
12.12.2010, 20:58
Цитата Сообщение от meloman92 Посмотреть сообщение
вот есть стек,который работает на си++ (он то мне и нужен),но не могу перевести на си!
new -> malloc
delete -> free
ввод-вывод через stdio
и будет на C.
0
 Аватар для meloman92
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 14
13.12.2010, 12:25  [ТС]
спасибо) пробую!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2010, 12:25
Помогаю со студенческими работами здесь

ER диаграмма. Первый раз это делаю и не понимаю в том направлении двигаюсь или нет
Требуется разработать ER диаграмму, а потом создать БД для ВУЗа. В себе БД должна содержать: Список специальностей: должен содержать...

C# и SQL - нифига не понял
не смейтесь, но может кто-нибудь объяснить: 1) У меня в программах значится Microsoft SQL Server 2008 (не помню чтобы устанавливал!)...

Нифига себе продвижение
Добрые время суток! Прикупил тут я Яззл и выяснил интересную для себя штуку: конкуренты продвигают свои сайты скупая ВСЕ, что есть,...

На структуры прога,не идет нифига(
Вывести анкетные данные студентов,получивших по предмету физика оценку &quot;отлично&quot;.

Нужна дороботка с программой нифига не работает
Нада чтоб ввел букву и вывело что это буква а если цифры ввел то вывело цифра if a==0 or a==1 or a==2 or a==3 or a==4 or a==5: ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru