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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2012, 23:47   #1
MayhemWithMercy
Пользователь
 
Регистрация: 17.08.2012
Сообщений: 23
По умолчанию Реализация стека в Pascal. Ошибка.

Не могу разобраться в чем проблема.

type
__stack=record
____A: array [1..100] of byte;
____top: byte;
__end;

Что-то наподобие стека, с массивом и указателем на последний элемент.

procedure
__push(S: stack; t: byte);
____begin
______inc(S.top);
______S.A[S.top]:=t;
____end;

Процедура для помещения элемента в стек.

var
__S1, S2, S3: stack;

Создал пару стеков, решил проверить как все работает.

begin
__S1.top:=0; {на всякий случай обнуляю указатель на "топ"}
__push(S1, 23);
__writeln(S1.A[S1.top]);
end;

Положил в S1 число 23, но следующая команда (writeln) должна показать текущий элемент, то есть 23, но отображает 0, программирую в программе Lazarus. То есть после процедуры push данные не сохраняются или не попадают в стек S1. Спасибо.

Последний раз редактировалось MayhemWithMercy; 17.08.2012 в 23:49.
MayhemWithMercy вне форума Ответить с цитированием
Старый 18.08.2012, 00:09   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

push(var S: stack; t: byte);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 18.08.2012, 00:46   #3
MayhemWithMercy
Пользователь
 
Регистрация: 17.08.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
push(var S: stack; t: byte);
Спасибо. Буду внимательнее.

Последний раз редактировалось MayhemWithMercy; 18.08.2012 в 00:50.
MayhemWithMercy вне форума Ответить с цитированием
Старый 18.08.2012, 01:38   #4
MayhemWithMercy
Пользователь
 
Регистрация: 17.08.2012
Сообщений: 23
По умолчанию

А еще такой вопрос, с помощью чего можно измерить время выполнения программы с точностью до милисекунд?
MayhemWithMercy вне форума Ответить с цитированием
Старый 18.08.2012, 11:18   #5
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Ну можно написать программу, которая будет запускать нужную прогу и считать её завершения.
Kix.IV вне форума Ответить с цитированием
Старый 18.08.2012, 13:23   #6
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

ищите метод, который вычислит текущее время с нужной точностью. вызываете его в начале программы и второй раз в конце, затем из второго значения вычитаете первое, результат есть время выполнения. все это делаете в одной программе
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 18.08.2012, 14:29   #7
MayhemWithMercy
Пользователь
 
Регистрация: 17.08.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Sparky Посмотреть сообщение
ищите метод, который вычислит текущее время с нужной точностью. вызываете его в начале программы и второй раз в конце, затем из второго значения вычитаете первое, результат есть время выполнения. все это делаете в одной программе
Спасибо, я понял, что-нибудь придумаю.
MayhemWithMercy вне форума Ответить с цитированием
Старый 18.08.2012, 14:49   #8
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Например вот так
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С (Си). реализация стека alex(21) Общие вопросы C/C++ 21 18.10.2010 08:54
Реализация стека basilius90 Паскаль, Turbo Pascal, PascalABC.NET 0 03.06.2010 17:01
Реализация стека на С Angriff Помощь студентам 14 01.03.2010 10:51
Реализация Стека MjRed Общие вопросы C/C++ 3 13.05.2009 12:18