Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

текстовые файлы

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Don
Гость





СообщениеДобавлено: Вс Июн 22 2003 14:37    Заголовок сообщения: текстовые файлы Ответить с цитатой

Здраствуйте.
Проблема такая: дан программный файл на Паскале, необходимо подсчитать колличество вложенных циклов (while,for,repeat). Никак немогу продумать алгоритм подсчета.
Help please.
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Пн Июн 23 2003 09:00    Заголовок сообщения: А в чем проблема: разбить на слова, подсчитать количество самих слов while,for,repeat или каким языком посчитать? (-) Ответить с цитатой

-
Вернуться к началу
Don
Гость





СообщениеДобавлено: Пн Июн 23 2003 12:47    Заголовок сообщения: Проблема в подсчете количества вложенных циклов Ответить с цитатой

Т.е. надо подсчитать количество вложенных while и т.д.
например
while not eof(f) do
while not eoln(f) do
begin
...
end;
for i:=1 to n do ....

while ... do
begin
...
end;

т.е. здесь колич. влож. циклов =1
Еще надо учитывать то что циклы могут быть одной строкой т.е. без begin и end.
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Пн Июн 23 2003 13:05    Заголовок сообщения: Re: Проблема в подсчете количества вложенных циклов Ответить с цитатой

Используй стек. Счетчик слов увеличивай, если встретившийся цикл находится не в основании стека. Стек увеличивай, если сразу за do стоит контрольное слово (while,for,repeat) или begin? а уменьшай, если встретилась ";" без begin или end при наличии begin. Естественно if then [begin-end] else [begin-end] игнорировать.

Примерно так. Подходит?
Вернуться к началу
Don
Гость





СообщениеДобавлено: Вт Июн 24 2003 06:03    Заголовок сообщения: ? Ответить с цитатой

Спасибо что отвечаете на мои вопросы.
Со стеками я плохо знаком.
Вы не могли бы выслать сам код программы?
А то мне в 30 июня сдавать надо.

p.s. а можно ли без использования стеков?
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Вт Июн 24 2003 13:05    Заголовок сообщения: Можно и без стеков Ответить с цитатой

Вместо стека использовать логическую переменную, имеющую значения "цикл на нулевом уровне/цикл на ненулевом уровне". Но это, вероятно, будет более запутанный алгоритм.

Вместо стека использовать числовую переменную, имеющую значения "номер уровня вложения". Начальное значение ноль. Но этот алгоритм в точности аналогичен стековому, только вместо стека как структуры используется стек как число -- номер уровня.

>> Вы не могли бы выслать сам код программы?
Мог бы, но за плату Smile, за достойную.
Вернуться к началу
Don
Гость





СообщениеДобавлено: Ср Июн 25 2003 05:36    Заголовок сообщения: спасибо Ответить с цитатой

оплатить я наверное не смогу так как у меня нет ни счета ни карточки.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...