![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Andrewshkovskii |
![]()
Сообщение
#1
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
ЗА 1 день попытался освоить стек,и написать под него процедуры ,вот что получилось..
Единственное что не могу реализовать это : Нормальное создание стека ,без "нулевого" элемента.(была проблема с ограничением стека,и последующией проверкой на переполнение,пришлось идти обходными путями) Добавление сразу нескольких элементов. Думаю завтра все осилить..или попытатся хотябы. вот,осудите по все строгости,хочу нормально заботать стеки.. Program stekT; {Created and Tested By Andrewshkovskii} вот..первый опыт |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
По всей строгости, говоришь? Ну, ты сам просил...
1. Функция StekOver ... Во-первых, я не совсем понимаю причин, по которым надо как-то ограничивать стек ... Тогда уже используй массив. Для стека как раз характерно, что он может динамически изменять размер, и не надо его ничем ограничивать... Единственный случай, который требует внимания (и это как раз и есть переполнение стека) - это когда у тебя не хватает памяти для того, чтобы занести следующих элемент в стек. Но это ловится не в этой функции, а при добавлении... Но... Ладно. Хорошо. Ты решил стек ограничить. В конце концов почему бы и нет - ты автор программы, тебе лучше знать, что нужно... ![]() type , и производить при добавлении в стек увеличение поля count, а при удалении элемента - его уменьшение, и тебе достаточно будет вместо прохода в чикле, и подсчета числа элементов просто сравнить Count с нужным значением... 2. Что еще очень сильно бросается в глаза... Дело, конечно опять же твое, но... Есть ДСД (динамическая структура данных) - Стек, над которой возможны следующие операции: Push (добавление элемента), Pop (извлечение элемента), Empty (проверка на пустоту стека)... То, что ты называешь эти операции другими именами - это не очень хорошо по крайней мере по 2-м причинам: а) это сейчас тебе все понятно (я надеюсь), что делает та или иная процедура, а что будет через месяц? Сможешь с первого взгляда на ЭТУ ЖЕ программу рассказать, что какая процедура делает? б) если ты попробуешь задать вопрос на форуме (ну, или, скажем по-другому, если в твоей программе должен будет разобраться другой человек) - я не думаю, что ты получишь ответ быстро... Потому что надо заставить себя понять, что означает каждая из этих вот процедур, и какую за какой следует вызывать, и что можно, а что нельзя делать со стеком... |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 23:30 |