Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2008, 17:41   #1
fixoto
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 12
Восклицание Стек на c++, как?

Знающие, помогите!

Задача у меня следующая: написать программу реализующую работу с простейшим неограниченным по size стеком, с методами pop и push. - это вторая самостоятельная работа из 24х, все остальные я уже сделал! Сдать мне ее нужно было еще в начале сентября, а я до сих пор не могу понять где в ней ошибка в синтаксисе. Написать нужно для интерпретатора c++ 3.1 (досовский). Как я уже только не извращался, но не могу реализовать её и всё тут... Причем на паскале и делфи уже делал подобное и даже более сложное без проблем. А как началось c++ так тут все, полный каюк. Насчет литературы и примеров: кучу их перерыл, но в них везде либо стек ограниченый, либо написан с использованием стандартного (встроенного) класса стека.

Вот код моего последнего опыта с этим стеком:

Код:
#include <iostream.h>
#include <stdio.h>

Class Stack
{
Stack ();
Stack (Int2 Number);
{
Push(Number);
};
~Stack ();
Private:
Class IntUnit
{
Int2 Number;
IntUnit * Pointer;
};
IntUnit * Pointer;
Public:
Int2 Pop ()
{
If (Pointer==0) Return 0;
Int2 Number=Pointer.Number;
IntUnit * Pointer2=Pointer.Pointer;
Delete Pointer;
Pointer=Pointer2.Pointer;
//Delete Pointer2;
Return Number;
};
Void Push (Int2 Number)
{
IntUnit NewUnit=New NewUnit;
*NewUnit.Number=Number;
If (Pointer!=0)
NewUnit.Pointer=Pointer;
Pointer=NewUnit;
};
}

Void Main ()
{
}
Примечания:

1) Int2 - беззнаковый целочисленый тип размером в 2 байта
2) Компилятор не умеет сверять указатели с 0 и NULL, так как таких значений для указателей он не знает. Если вы подскажите как их реализовать буду оч благодарен.
3) Ну и естественно прога не компилируется из-за кучи придирок интерпретатора.

Помогите! Пожалуйсто!!
fixoto вне форума Ответить с цитированием
Старый 31.10.2008, 02:17   #2
n@sok
Пользователь
 
Регистрация: 24.11.2007
Сообщений: 46
По умолчанию

это на каком языке написано? На С++ это выглядит примерно так
Код:
#include <iostream.h>
#include <stdio.h>

class Stack
{
Stack (Int2 Number)
{
Push(Number);
}
~Stack ()
{
while(Pointer!=NULL) Pop();
}
private:
Class IntUnit
{
Int2 Number;
IntUnit * Pointer;
};
IntUnit * Pointer;
public:
Int2 Pop ()
{
if (Pointer==NULL) return 0;
Int2 Number=Pointer->Number;
IntUnit * Pointer2=Pointer->Pointer;
delete Pointer;
Pointer=Pointer2;
return Number;
}
void Push (Int2 Number)
{
IntUnit *NewUnit=new IntUnit;
NewUnit->Number=Number;
if (Pointer!=NULL)
NewUnit->Pointer=Pointer;
Pointer=NewUnit;
}
}

void main ()
{
}
n@sok вне форума Ответить с цитированием
Старый 31.10.2008, 05:13   #3
fixoto
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 12
По умолчанию

на языке Borland c++ 3.1

И то как ты говоришь, выглядит на с++ не компилируется, опять куча ошибок... (см. рис.)
Изображения
Тип файла: jpg Точечный рисунок.jpg (41.5 Кб, 153 просмотров)
fixoto вне форума Ответить с цитированием
Старый 31.10.2008, 10:37   #4
fixoto
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 12
По умолчанию

Всё, всем спасибо! Разобрался! Оказывается в intunit надо было public: вписать

ппц 2 месяца пыхтел из-за одной строчки
fixoto вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СТЕК KORT Фриланс 3 08.09.2008 23:38
про СТЕК anco Паскаль, Turbo Pascal, PascalABC.NET 5 06.07.2008 22:29
Стек Еленка Помощь студентам 2 06.06.2008 18:58
Стек Foky Паскаль, Turbo Pascal, PascalABC.NET 8 13.05.2008 18:39
Стек Dr.zlo Работа с сетью в Delphi 6 09.07.2007 07:59