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

Стеки - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
KVANTA
 Аватар для KVANTA
3 / 3 / 0
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 17:39     Стеки #1
C++
1
Создать класс типа - стек. Функции-члены вставляют элемент в стек, вытаскивают элемент из стека. Проверяют вершину стека.
Помогите пожалуйста с этой задачей, а то я не могу разобраться, заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2011, 17:39     Стеки
Посмотрите здесь:

Стеки в С C++
C++ Стеки
C++ Стеки
Стеки C++
C++ Стеки на С!
C++ Стеки
C++ Стеки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 18:09     Стеки #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
#include <iostream.h>
class IntVal{
    int Number;
public:
    IntVal *curr;
    IntVal *prev;
 
    IntVal(){
        curr = NULL;
    }
    Push(int N){
        prev = curr;
        curr = new IntVal();
        curr->Number = N;
        curr->prev = prev;
    }
    int Pop(){
        cout << curr->Number;
        delete curr;
        curr = curr->prev;
        if (curr == NULL)
            return 0;
    }
};
KVANTA
 Аватар для KVANTA
3 / 3 / 0
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 18:32  [ТС]     Стеки #3
[Linker Error] Unresolved external '_main' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\C0X32.OBJ

Вот такую ошибку выдает
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 18:36     Стеки #4
Я так понимаю Вы просто скопировали код..Как видите там нет точки входа в програму ( функции main)

Решение: Добавьте в конце вот такую фичу )

C++
1
2
3
4
5
6
7
8
9
10
11
int main(int argc, char* argv[])
{
    int i = 5;
    IntVal *Stack = new IntVal();
    while(i){
        Stack->Push(i--);
    }
    while(Stack->Pop());
    delete Stack;
    return 0;
}
KVANTA
 Аватар для KVANTA
3 / 3 / 0
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 18:46  [ТС]     Стеки #5
спасибо но почему то ругается на
C++
1
 cout<< curr->Number;
Добавлено через 6 минут
[C++ Warning] Unit1.cpp(17): W8070 Function should return a value
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 19:26     Стеки #6
Попробуй с Паузой..

C++
1
2
3
4
5
6
7
8
9
10
11
12
int main(int argc, char* argv[])
{
    int i = 5;
    IntVal *Stack = new IntVal();
    while(i){
        Stack->Push(i--);
    }
    while(Stack->Pop());
    delete Stack;
    system("pause");
    return 0;
}
KVANTA
 Аватар для KVANTA
3 / 3 / 0
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 19:41  [ТС]     Стеки #7
а у вас она запускается? у меня та же ошибка
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 21:47     Стеки #8
[C++ Warning] Unit1.cpp(17): W8070 Function should return a value

Как бы не ошибка а предупреждение..запускается все хорошо. У вас програма компилируется?

Добавлено через 4 минуты
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
//---------------------------------------------------------------------------
#include <iostream.h>
using namespace std;
class IntVal{
    int Number;
public:
    IntVal *curr;
    IntVal *prev;
 
    IntVal(){
        curr = NULL;
    }
    int Push(int N){
        prev = curr;
        curr = new IntVal();
        curr->Number = N;
        curr->prev = prev;
        return 0;
    }
    int Pop(){
        cout << curr->Number << endl;
        delete curr;
        curr = curr->prev;
        if (curr == NULL)
            return 0;
    }
};
int main(int argc, char* argv[])
{
    int i = 5;
    IntVal *Stack = new IntVal();
    while(i){
        Stack->Push(i--);
    }
    while(Stack->Pop());
    delete Stack;
    system("pause");
    return 0;
}
//---------------------------------------------------------------------------
Все запустилось.
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
14.12.2011, 21:51     Стеки #9
stl stuck?
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 21:58     Стеки #10
Насколько я понял надо простенький клас..ничего особенного
KVANTA
 Аватар для KVANTA
3 / 3 / 0
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 22:18  [ТС]     Стеки #11
она компилируется, запускается консоль и выдает ошибку.

Добавлено через 6 минут
А в какой среде вы писали данную программу? У меня Builder 6
И что должно быть написано в консольном окне? у меня просто выдает 1, и ошибку
DU
1478 / 1054 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.12.2011, 22:31     Стеки #12
[C++ Warning] Unit1.cpp(17): W8070 Function should return a value
Как бы не ошибка а предупреждение..запускается все хорошо. У вас програма компилируется?
Наплевательское отношение к ворнингам до добра не доводит. Все вроде компилится, но работает не прваильно. Неужели так сложно перевести что тут написано, что ф-ия должна возвращать значение? Смотрим на ф-ию int Pop() и видим, что return у нее не всегда отрабатывает, а только когда стек уже пустой. А когда не пустой что возвращается? В некоторых системах программа в таких случаях просто крашится. В общем, это надо исправить.
KVANTA
 Аватар для KVANTA
3 / 3 / 0
Регистрация: 12.12.2011
Сообщений: 68
14.12.2011, 22:36  [ТС]     Стеки #13
а как исправить?
DU
1478 / 1054 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.12.2011, 22:57     Стеки #14
если в ф-ии нет строчки с ретурном а компилятор на это ворнинг выдает, то, очевидно, строчку с ретурном нужно куда-нибудь довабить. например в конец этой ф-ии
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 23:06     Стеки #15
спасибо за замечание...

Без варнингов
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
#include <iostream.h>
using namespace std;
class IntVal{
    int Number;
public:
    IntVal *curr;
    IntVal *prev;
 
    IntVal(){
        curr = NULL;
    }
    int Push(int N){
        prev = curr;
        curr = new IntVal();
        curr->Number = N;
        curr->prev = prev;
        return 0;
    }
    int Pop(){
        cout << curr->Number << endl;
        delete curr;
        curr = curr->prev;
        if (curr == NULL)
            return 0;
        else
            return 1;
    }
};
int main(int argc, char* argv[])
{
    int i = 5;
    IntVal *Stack = new IntVal();
    while(i){
        Stack->Push(i--);
    }
    while(Stack->Pop());
    delete Stack;
    system("pause");
    return 0;
}
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
15.12.2011, 13:11     Стеки #16
Цитата Сообщение от YouDoItWrong Посмотреть сообщение
stl stuck?
Цитата Сообщение от Dr.Urban Посмотреть сообщение
Насколько я понял надо простенький клас..ничего особенного
Ну я просто это неписал к тому, что уже к готовому шаблону можно приписать свой функционал, не изобритая велосипедов.
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
15.12.2011, 15:40     Стеки #17
Я так понимаю человеку не надо сам велосипед а надо разобраться как он работает, чтобы сам мог собрать такой..
KVANTA
 Аватар для KVANTA
3 / 3 / 0
Регистрация: 12.12.2011
Сообщений: 68
15.12.2011, 16:11  [ТС]     Стеки #18
весьма благодарен за помощь, но у меня все же те же ошибки, объясните пожалуйста что должна выводить эта программа
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
16.12.2011, 00:37     Стеки #19
Можно их как нибуть увидеть? или же укажите место где ошибки. У меня все чистенько, жду..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2011, 00:57     Стеки
Еще ссылки по теме:

Стеки C++
Стеки C++
C++ Стеки
Стеки С++ C++
Стеки в С++ C++

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

Или воспользуйтесь поиском по форуму:
KVANTA
 Аватар для KVANTA
3 / 3 / 0
Регистрация: 12.12.2011
Сообщений: 68
16.12.2011, 00:57  [ТС]     Стеки #20
вот фото с ошибкой
Миниатюры
Стеки  
Yandex
Объявления
16.12.2011, 00:57     Стеки
Ответ Создать тему
Опции темы

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