Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 1
Регистрация: 05.04.2017
Сообщений: 64

Реализация стека

18.03.2019, 22:22. Показов 2039. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане.
Дали задание в универе реализовать стек на Visual Basic. Раньше этого зверя никогда не пробовал.
Саму реализацию решил делать используя массив.
VB.NET
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
Public Class Form1
 
    Class MyStack
        Dim stck(100) As Char  'создаю массив для хранения стека
        Public tos As Integer = 0 'индекс вершины стека
        Public mess As String
        'функция добавления элемента в стек
        Public Function Push(ch As Char)
            If (tos = stck.Length) Then
                mess = "Стек переполнен"
            End If
            stck(tos) = ch
            tos += 1
        End Function
        'функция чтения элемента из стека
        Public Function Pop() As Char
            If (tos = 0) Then
                mess = "Стек пуст"
                Return "0"
            Else : tos -= 1
                Return stck(tos)
            End If
        End Function
        Public Function IsFull()
            Return tos = stck.Length
        End Function
        Public Function IsEmpty()
            Return tos = 0
        End Function
        Public Function GetNum()
            Return tos
        End Function
 
    End Class
 
 
 
    Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim mystack As New MyStack()
        Dim element As Char
        mystack.Push(CChar(TextBox1.Text))
        TextBox1.Text = ""
        Label1.Text = mystack.tos
        Label2.Text = mystack.mess
    End Sub
 
End Class
Но собственно говоря он не работает. При нажатии на кнопку индекс вершины стека один раз увеличивается на единицу и все. При последующих нажатиях ничего не меняется. Я подобное раньше делал на C#. Правда не на формах, а консольное приложение и проблем не было.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.03.2019, 22:22
Ответы с готовыми решениями:

Перемещать элементы из первого стека во второй, пока значение вершины первого стека не станет четным
Даны указатели P1 и P2 на вершины двух непустых стеков. Пе-ремещать элементы из первого стека во второй, пока значение вершины ...

Реализация стека
Здравствуйте! По заданию требуется реализовать двусвязный стек. Помогите пожалуйста дописать двусвязность. Уже несколько дней не могу...

Реализация стека в WinForms
Как написать собственный класс стек и реализовать его в Windows Forms(отображение, удаление, изменение)

5
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
18.03.2019, 23:11
Dim_Dimich, в процедуре Button1_Click каждый раз создается новый пустой стек. Нужно сделать стек полем формы

VB.NET
1
2
3
4
5
6
7
8
    Dim mystack As New MyStack()
    Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Dim element As Char
        mystack.Push(CChar(TextBox1.Text))
        TextBox1.Text = ""
        Label1.Text = mystack.tos
        Label2.Text = mystack.mess
    End Sub
Цитата Сообщение от Dim_Dimich Посмотреть сообщение
Я подобное раньше делал на C#. Правда не на формах, а консольное приложение и проблем не было.
Похоже ты плохо знаком с понятием "время жизни переменной" раз возникли трудности. В C# и VB.NET они одинаковые.
0
0 / 0 / 1
Регистрация: 05.04.2017
Сообщений: 64
19.03.2019, 10:33  [ТС]
в этом случае ругается
Error 2 'mystack' is already declared as 'Class MyStack' in this class. C:\Users\Public\Documents\VS\Stack\Stack \Form1.vb 36 12 Stack

и еще
Error 3 Reference to a non-shared member requires an object reference. C:\Users\Public\Documents\VS\Stack\Stack \Form1.vb 40 9 Stack
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
19.03.2019, 11:21
Лучший ответ Сообщение было отмечено Dim_Dimich как решение

Решение

Dim_Dimich, переменнуй переменную или вынеси объявление класса в отдельный файл как полагается.
0
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
19.03.2019, 11:23
Цитата Сообщение от Dim_Dimich Посмотреть сообщение
Error 2 'mystack' is already declared as 'Class MyStack' in this class
Ну так назовите её как-нибудь по-другому, например, my_stask
0
0 / 0 / 1
Регистрация: 05.04.2017
Сообщений: 64
19.03.2019, 11:54  [ТС]
спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.03.2019, 11:54
Помогаю со студенческими работами здесь

Реализация стека на форме
Можете объяснить, как реализовать стек на форме? Добавлено через 10 минут Сделал по-своему, вроде бы как добавляет и удаляет...

ООП, реализация стека объектов
Сделал я стек чаров, работает как надо, но по заданию нужно сделать стек объектов класса, как это сделать, уже какой день сижу не понимаю...

Реализация стека на основе массива
Само задание: Реализовать стек на основе массива 1. проверку пустоты стека 2. проверка заполненности стекового массива 3....

Реализация стека и очереди на основе списка
1. Создать базовый класс CList (линейный однонаправленный cписок) с полями: указате-ли на следующий элемент; информационная часть –...

Реализация стека целых чисел. Процедура добавления нового элемента, удаление, вывод стека
Попросили написать программку, но, паскаль очень давно не практикую, поэтому прошу тут: Надо написать программу реализации стека целых...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
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-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru