Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
43 / 37 / 17
Регистрация: 11.11.2009
Сообщений: 246

Стэк

10.09.2013, 20:15. Показов 1228. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Переделывал консольное приложение в обычное.
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
struct List
{
    int x; //информационный элемент
    List *Next,*Head; //Голова стека и указатель на следующий элемент
};
/*ФУНКЦИЯ ДОБАВЛЕНИЯ ЭЛЕМЕНТА В СТЕК  (в список LIFO)*/
void Add(int x, List **MyList) //Принимаем элемент стека и указатель на стек, при этом говорим, что принимаемый указатель будет сам по себе указателем
{
    List *temp=new List; //Выделяем память для нового элемента
    temp->x=x; //Записываем в поле x принимаемый в функцию элемент x
    temp->Next=(*MyList)->Head; //Указываем, что следующий элемент это предыдущий
    (*MyList)->Head=temp; //Сдвигаем голову на позицию вперед
}
/*ФУНКЦИЯ ОТОБРАЖЕНИЯ СТЕКА*/
void Show(List *MyList) //Нужен только сам стек
{
    List *temp=new List; //Выделяем память под временный элемент
    temp=MyList->Head; //Указываем ему, что его позиция в голове стека
               //с помощью цикла проходим по всему стеку
    while (temp!=NULL)  //выходим при встрече с пустым полем
    {
        //cout<<temp->x<<" "; //Выводим на экран элемент стека
        temp=temp->Next; //Переходим к следующему элементу
    }
}
/*ФУНКЦИЯ УДАЛЕНИЯ СТЕКА ИЗ ПАМЯТИ*/
void ClearList(List *MyList)
{  
     while (MyList->Head!=NULL)  //Пока по адресу не пусто
     {  
        List *temp=MyList->Head->Next; //Временная переменная для хранения адреса следующего элемента
        delete MyList->Head; //Освобождаем адрес обозначающий начало
        MyList->Head=temp; //Меняем адрес на следующий
     }
}
C++
1
2
3
4
5
6
7
8
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{ /*    List *MyList=new List; //Выделяем память для стека
    MyList->Head=NULL; //Во избежание ошибок инициализируем первый элемент
    for (int i=0;i<10;i++) Add(i,&MyList); //Заносим данные в стек
    Show(MyList); //Выводим стек на экран
void ClearList(List *MyList); //Очищаем память.     */
}
[C++ Error] Unit1.cpp(59): E2034 Cannot convert 'int' to 'TObject *'
[C++ Error] Unit1.cpp(59): E2342 Type mismatch in parameter 'Sender' (wanted 'TObject *', got 'int')
[C++ Error] Unit1.cpp(59): E2227 Extra parameter in call to _fastcall TForm1::Add(TObject *)
[C++ Error] Unit1.cpp(60): E2034 Cannot convert 'List *' to 'TObject *'
[C++ Error] Unit1.cpp(60): E2342 Type mismatch in parameter 'Sender' (wanted 'TObject *', got 'List *')

В консольном приложении на это жалоб вообще не было.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.09.2013, 20:15
Ответы с готовыми решениями:

СТЭК
Необходимо реализовать метод класса СТЭК метод должен возвращать true в случае удачного завершения и false в противном случае. Ошибки...

СТЭК
Необходимо реализовать методы класса СТЭК. Все методы должны возвращать true в случае удачного завершения и false в противном случае. ...

Стэк..
Ребят помогите написать ещё одну, по идее простую, задачу на си. Нужно перевернуть слово задом на перёд, используя стэк: нужно...

7
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
10.09.2013, 20:50
Несоответствие типов, хотя в принципе любой указатель это int в 4 байта. Или вы гдето реально ошибаетесь или если вы знаете что делаете то приводите типы вручную.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
10.09.2013, 20:53
C++
1
2
3
4
5
6
7
8
9
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    List *MyList=new List; //Выделяем память для стека
    MyList->Head=NULL; //Во избежание ошибок инициализируем первый элемент
    for (int i=0;i<10;i++) Add(i,&MyList); //Заносим данные в стек
    ::Show(MyList); // <--- если не указать глобальную область видимости - подразумевается метод TForm::Show
    ClearList(MyList); //Очищаем память.
}
, выводить элементы в функции Show надо не в cout, а куда-нибудь в визуальный компонент... Например, в Memo... Если что - код вот именно в таком виде прекрасно отработал... Builder XE2...
1
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
10.09.2013, 20:57
Я бы сделал ф-ции методами самой структуры. Например, метод Show() уже есть у формы и из-за этого может быть бардак.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
10.09.2013, 20:59
Например, это я и написал в комментариях...
1
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
10.09.2013, 21:05
Цитата Сообщение от UI Посмотреть сообщение
Например, это я и написал в комментариях...
Одновременно писали, просто вы чуток раньше отправили.
1
43 / 37 / 17
Регистрация: 11.11.2009
Сообщений: 246
10.09.2013, 21:29  [ТС]
cout я закомментировал, потому что собирался потом переделать. Для начала добавить. Но в Borland Developer Studio 2006 не в какую не хочет работать. Жалуется На функцию добавления (Add).

Добавлено через 5 минут
И впрям оказалось в названии проблема. Не знаю, что с чем конфликтовало, но при переименовании в Add11 все заработало.
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
10.09.2013, 21:30
Потомучто пытается вызвать метод формы, а вовсе не вашу ф-цию
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.09.2013, 21:30
Помогаю со студенческими работами здесь

стэк
блин помогите пожалуйста Цель работы: Реализовать стек на языке Pascal с использованием одномерного массива. Выполняемые операции:...

в стэк
Помогите данную программу переделать ! Нужно передать через стэк в процедуру строку ! Затем в процедуре...

Функция и стэк
Составить программу используя функции и стэк. 1) Подсчитать значение функции для X от 3 до 10... g(x)=5*x/2 2) Подсчитать...

movsb и стэк
почему не работает копирование строки в стэк? pop edx push edx sub edx,offset delta ...

СТЭК не фурычит
Привет! Такая проблема, решил написать стэк, в элементах которого лежат указатели на массив строк.Но что-то не так либо пишет мусор либо...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru