Статистика
Всего в нашей базе более 4 327 663 вопросов и 6 445 978 ответов!

Один из часто встречающихся видов списка стек — список, в котором все операции включения и извлечения, сопровождающегося удалением из списка, элементов

10-11 класс

выполняются только с одного края. Механизм функционирования стека отражён в его названии «LIFO» (Last In First Out — последним вошёл, первым вышел, подобно патронам в обойме). Следовательно, любой элемент не может быть извлечён и удалён из стека раньше, чем будут извлечены все элементы, помещённые в стек позднее него. Составить программу, реализующую функционирование стека. Стек оформить как массив.

Gamaskom 03 дек. 2014 г., 10:24:41 (9 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Aleshabores93
03 дек. 2014 г., 12:11:27 (9 лет назад)

Option Explicit

Const n = 50 'Максимальная емкость стека
Dim LIFO(1 To n) As Variant
Dim ptr As Integer  'указатель на вершину стека, моделируемого LIFO
Dim Overflow As Boolean
Dim EmptyLIFO As Boolean

Sub Push(Elem As Variant)
    'добавляет элемент на вершину стека
    If ptr < n Then
        ptr = ptr + 1
        LIFO(ptr) = Elem
        Overflow = False
        EmptyLIFO = False
    Else
        Overflow = True
    End If
End Sub

Sub Pop(Elem As Variant)
    'Возвращает элемент с вершины стека и удаляет его из стека
    If ptr > 0 Then
        Elem = LIFO(ptr)
        ptr = ptr - 1
    End If
    EmptyLIFO = (ptr = 0)
End Sub

Sub main()
    ' Пример работы со стеком - перестановка букв в словах строки.
    ' Не меняя порядка слов в строке, переставить в каждом слове буквы в обратном порядке.
    ' Слова разделяются ровно одним пробелом.
    Dim s As String, s1 As String, i As Integer, e As String
    s = Sheets("Лист1").Cells(1, 1).Value
    If Len(s) = 0 Then
        MsgBox "Нет входной строки"
        Exit Sub
    End If
    EmptyLIFO = True
    Overflow = False
    s1 = ""
    For i = 1 To Len(s)
        e = Mid(s, i, 1)    'Очередной символ
        If e <> " " Then
            Push e
        Else
            s1 = s1 + " "
            Do While Not EmptyLIFO
                Pop e
                s1 = s1 + e
            Loop
        End If
    Next i
    s1 = s1 + " "
    Do While Not EmptyLIFO
        Pop e
        s1 = s1 + e
    Loop
    s1 = Trim(s1)
    Sheets("Лист1").Cells(2, 1).Value = s1
End Sub


+ 0 -
Stifler
03 дек. 2014 г., 12:59:03 (9 лет назад)

Комментарий удален

+ 0 -
Alimovakarina
03 дек. 2014 г., 13:30:37 (9 лет назад)

Язык-VBA

+ 0 -
Ulia26062003
03 дек. 2014 г., 14:04:16 (9 лет назад)

Комментарий удален

+ 0 -
Helena2305
03 дек. 2014 г., 14:53:36 (9 лет назад)

Да

Ответить

Другие вопросы из категории

F = ¬Av(Bv¬C)→(BvА^С)
Информатика... Задача №1 Известна сумма денег у покупателя S и стоимость одной единицы товара. Определить сколько единиц товара может приобрести

покупатель и какова сдача? Задача №2 В классе N учеников. После контрольной работы получено А-"5", В-"4", С-"2". Определить процент троек? Задача №3. Заданы координаты №-х вершин треугольника (х1, у1), (х2, у2 ), (х3, у3). Найти периметр и площадь. Задача №4. Дана длина ребра куба. Найти площадь грани, площадь полной поверхности и объём этого куба

Читайте также

Часто встречается один из видов списка дек — список, в котором все операции включения элементов и их извлечения выполняются только с краёв. Механизм

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

Здравствуйте, нужна помощь, буду очень благодарна! "С клавиатуры считываются числа, отличные от нуля. Создайте два списка, один из которых состоит из от

рицательных чисел, а другой - из положительных" Тема "Односвязные списки". Заранее спасибо!

Задача. Коля, Вася и Серёжа гостили летом у бабушки. Однажды один из мальчиков нечаянно разбил любимую бабушкину вазу. На вопрос, кто разбил вазу,

они дали такие ответы: Серёжа: 1) Я не разбивал. 2) Вася не разбивал. Вася: 3) Серёжа не разбивал. 4) Вазу разбил Коля. Коля: 5) Я не разбивал. 6) Вазу разбил Серёжа. Бабушка знала, что один из её внуков (правдивый), оба раза сказал правду; второй (шутник) оба раза сказал неправду; третий (хитрец) один раз сказал правду, а другой раз - неправду. Назовите имена правдивого, шутника и хитреца. Кто из внуков разбил вазу?

Решение нужно через таблицу истинности.

Трое друзей – Илья, Костя и Серёжа – принимали участие в олимпиаде по программированию, и один из них занял первое место. Когда ребята пришли в школу,

учительница спросила, кто из них победил. Илья сказал: « Это я победил, а не Костя или Серёжа ». Костя сказал: « Это Серёжа победил, а Илья всегда лжёт ». Серёжа сказал: « Победил не Костя, а Илья всегда говорит правду ». Учительница знает, что один из ребят всегда говорит правду, другой – всегда лжёт, а третий говорит через раз то ложь, то правду, но не знает, кто из них правдив, а кто – нет. кто победитель?

Помогите, пожалуйста, решить задачи.

1. В один из жарких летних дней Петя и его друг Вася решили купить арбуз. Они выбрали самый большой и самый спелый, на их взгляд. После недолгой процедуры взвешивания весы показали w килограмм. Поспешно прибежав домой, изнемогая от жажды, ребята начали делить приобретенную ягоду, однако перед ними встала нелегкая задача. Петя и Вася являются большими поклонниками четных чисел, поэтому хотят поделить арбуз так, чтобы доля каждого весила именно четное число килограмм, при этом не обязательно, чтобы доли были равными по величине. Ребята очень сильно устали и хотят скорее приступить к трапезе, поэтому Вы должны подсказать им, удастся ли поделить арбуз, учитывая их пожелание. Разумеется, каждому должен достаться кусок положительного веса.
Входные данные
В первой и единственной строке входных данных записано целое число w (1 ≤ w ≤ 100) — вес купленного ребятами арбуза.
Выходные данные
Выведите YES, если ребята смогут поделить арбуз на две части, каждая из которых весит четное число килограмм, и NO в противном случае.
Примечание
Например, ребята могут поделить арбуз на две части размерами 2 и 6 килограммов соответственно (другой вариант — две части 4 и 4 килограмма).

2. На клетчатой плоскости заданы координаты K зданий. Требуется построить кольцевую дорогу вокруг зданий минимальной длины в виде прямоугольника, со сторонами, параллельными линиям сетки.
Входные данные
Во входном файле, на первой строке, находится число K( ). На следующих K строках находятся пары чисел и – координаты зданий
( ).
Выходные данные
Выведите в выходной файл координаты левого нижнего и правого верхнего углов прямоугольника.

3. Хакер Иван является сотрудником крупной антивирусной компании. Один из вирусов исследованием, которого он занимается, был специально создан для атаки на программы биржевой торговли.
Для того что бы победить зловред Ване необходимо разработать алгоритм, который бы вычислил минимальное количество операций необходимых для того что бы пара чисел (a, b) стала "k -красивой". Пара чисел (a, b) называется "k-красивой" если хотя бы одно из чисел парны не меньше заданного целого числа k. При этом, операции, проводимые с парой чисел (a, b) могут быть только такие:
1. Пара (a, b) может быть преобразована в (a+b, b);
2. Пара (a, b) может быть преобразована в (a, b+a).
Помогите Ване победить.
Входные данные
Единственная строка входных данных содержит три целых числа a, b и k ( - 1018 ≤ x, y, m ≤ 1018).
Выходные данные
Выведите минимальное количество операций или число -1, если сделать заданную пару "k-красивой" невозможно.

4. Инженер-программист Надежда занимается разработкой компилятора для нового сверх секретного языка программирования. Для того чтобы закончить разработку одного из модулей ей остается решить задачу следующего содержания:
Во входных данных Надя получает строку содержащую в себе цифры и скобки одного вида: '(' и ')'. Наде необходимо написать программу, которая для любых входных данных определяет является ли содержащаяся в них скобочная последовательность правильной, и в случае правильности скобочной последовательности возвращает количество встречающихся в ней скобок, если же последовательность неправильная, то выводится число -1.
Скобочная последовательность называется правильной, если:
1. Пустая строка — правильная скобочная последовательность;
2. Правильная скобочная последовательность, взятая в скобки одного типа — правильная скобочная последовательность;
3. Правильная скобочная последовательность, к которой приписана слева или справа правильная скобочная последовательность — тоже правильная скобочная последовательность.
Помогите Наде в разработке компилятора для нового сверх секретного языка программирования.
Входные данные
Единственная строка конечной длины содержит цифры и скобки, длина строки не больше 1024 символов.
Выходные данные
Выведите количество скобок если скобочная последовательность правильная или число -1 если нет.

5. Маленький Вася научился считать сумму цифр для любого числа. Для любого числа, он считал сумму его цифр, затем тоже самое он делал с полученным в результате числом и так далее. Определите сколько раз Васе необходимо посчитать сумму, чтобы она стала цифрой.
Входные данные
Одна непустая строка с числом (0 Выходные данные
Одна строка, с числом.



Вы находитесь на странице вопроса "Один из часто встречающихся видов списка стек — список, в котором все операции включения и извлечения, сопровождающегося удалением из списка, элементов", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.