Страницы: 1
RSS
Сохранение промежуточных результатов работы функции
 
Как можно сохратить промежуточные результаты работы рекурсивной функции? Мне надо сделать подсчет повторений промежуточного результата. В коде выделен :"<---------------------------Вывод в файл." . Т.е. чтобы после выполнения функции в файле было что-то типа "промежуточный результат - > количество повторов" (во время работы функции, промежуточный результат принимал значения "0" ("1","2","3","4"...) -  38 (27,49,40,55) раз:
Код
Value counter
0 -> 38
1 -> 27
2 -> 49
3 -> 40
4 -> 55
5 -> 33
6 -> 70
Изменено: Aleksandr H. - 07.03.2015 14:31:09
 
debug.print
вывод в файл
вывод в глобальную переменную
Живи и дай жить..
 
Слэн,файл не смотрелся, ответ писался после прочтения вопроса? ;-)
Изменено: Aleksandr H. - 06.03.2015 15:38:44
 
Вот фрагмент кода, который осуществляет вывод в файл:
Код
    Open "e:/taks_1_2.txt" For Append As #1
    Print #1,
    Print #1, "answer: " & ANSWER
    Print #1, "source: 11989460275519080564894036768322865785999566885539505969749975204962718118914971586072960191064507745920086993438529097266122668"
    Close #1
Добавьте по аналогии в нужное место кода.
Что вообще тут считается?
 
Это реализация длинного умножения методом Карацубы.
Мне надо где то сохранить результаты промежуточных результатов, каких именно результатов - в коде помечено комментарием : "<---------------------------Вывод в файл."
А после етого посчитать количество повторов значений етих промежуточных результатов. Прошу прощения за каламбурное описание.

Наверно надо с помощью коллекции реализировать, только еще не разобрался кака именно.
 
Пример со словарем:
Код
Sub qq()
Dim dict As Object, i As Integer, j As Integer, ArrKey, ArrVal
Set dict = CreateObject("Scripting.Dictionary")
For i = 1 To 10000
    j = Rnd() * 100                     'случайное число
    dict.Item(j) = dict.Item(j) + 1     'добавление числа в словарь
Next i
ArrKey = dict.keys                      'массив ключей
ArrVal = dict.items                     'массив значений
For i = 1 To dict.Count
    Cells(i, 1) = ArrKey(i - 1)         'выгрузка на лист
    Cells(i, 2) = ArrVal(i - 1)
Next i
End Sub
Страницы: 1
Наверх