Моя книга по VBA на обсуждение и тестирования неточностей?

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 26.02.2005 (Сб) 11:51

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


Еще всем, в книге не правильно описанна функция вычисления факториала, она не вычислит правильно факториал при 0! Разумней всего для скорости выполнения и праильности вычисления так:

Код: Выделить всё
Function fact(ByVal n As Byte) As Double
If  n > 2 Then
fact = fact(n - 1) * n
elseIf  n > 0 Then
  fact = n
Else
  fact =1
End If
End Function

ism
Постоялец
Постоялец
 
Сообщения: 337
Зарегистрирован: 12.12.2001 (Ср) 12:59
Откуда: Russia, Saint-Petersburg

Сообщение ism » 26.02.2005 (Сб) 13:08

Рекурсия можт и быстерее цикла и удобнее, но невсегда лутше, я конечно не специалист в АСМе, но поидее возможно переполнение стэка при ОЧЕНЬ большом числе.

А почему As Double?
Факториал тоько целый и положительный, помнишь его определение

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 26.02.2005 (Сб) 13:11

Потому что в данном случаи ты можешь вычислить факториал до 170, при использовании целочисленной переменной Long произойдет переполнение разрядной сетки значительно раньше, и можно будет вычислить факториал только до 12!


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 70

    TopList