Страница: 1 |
Страница: 1 |
Вопрос: Бейсик допускает рекурсивный вызов функций?
Добавлено: 11.10.05 13:45
Автор вопроса: programmer1
Пишу функцию, которя находит по имени и возвращает объект HTMLNode из некоторого HTMLDocument'а.
Функция рекурсивная, описывается приблизительно так:
(хотя это и не важно, как она описывается...)
Function getNodeByName(Node as IHTMLDOMNode, byval myName as string) as IHTMLDOMNode
И вдруг меня ужасает сомнение, а Вижуал Бейсик вообще допускает рекурсивный вызов?
Это ведь даже не язык а скрипт какой-то. Вдруг он просто разругается и вся работа будет насмарку?!!!
Успокойте программера :)
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #1
Добавлено: 11.10.05 13:51
Допускает.
Номер ответа: 2
Автор ответа:
programmer1
Вопросов: 11
Ответов: 13
Профиль | | #2
Добавлено: 11.10.05 13:57
а ты пробовал?
Номер ответа: 3
Автор ответа:
Pashenko
ICQ: 176176951
Вопросов: 14
Ответов: 655
Профиль | | #3
Добавлено: 11.10.05 14:04
Возьми, да попробуй, в чём проблема-то?
Номер ответа: 4
Автор ответа:
programmer1
Вопросов: 11
Ответов: 13
Профиль | | #4
Добавлено: 11.10.05 14:08
проблема обычно бывает во времени
Номер ответа: 5
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #5
Добавлено: 11.10.05 15:29
Допустим так
Private Sub FindChildNoteXML(inNode As IXMLDOMNode)
Dim oNode1 As IXMLDOMNodeList
Set oNode1 = inNode.childNodes
For k = 0 To oNode1.length - 1
List1.AddItem oNode1.Item(k).xml
If oNode1.Item(k).nodeType = NODE_TEXT Then
List2.AddItem oNode1.Item(k).Text
List3.AddItem oNode1.Item(k).parentNode.nodeName
End If
Call FindChildNoteXML(oNode1.Item(k))
Next k
End Sub
Номер ответа: 6
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #6
Добавлено: 11.10.05 20:54
Я не знаю ни одного языка, компилятор для которого разработан после 1995 года, который бы не поддерживал рекурсию.
Номер ответа: 7
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #7
Добавлено: 11.10.05 21:07
Тоже верно.
За те 6 минут пока я ответил в первый раз уже бы несколько раз попробовал.
Номер ответа: 8
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #8
Добавлено: 12.10.05 08:06
При слишком глубокой рекурсии возможно переполнение стека. В PB размер стека можно увеличить, а в VB не знаю.
Номер ответа: 9
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #9
Добавлено: 13.10.05 01:23
А в VB можно использовать ручной стек
Номер ответа: 10
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #10
Добавлено: 13.10.05 04:57
Sharp,
не пудри людям мозги
Номер ответа: 11
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #11
Добавлено: 13.10.05 11:45