Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Прогноз на n лет  [new]
UnderHeaven
Member

Откуда: Мск
Сообщений: 14
Стоит такая задача:
Вычислить, через какое кол-во лет стоимость годового выпуска станет больше произвольно заданной величины - Sum1- вводимой с клавиатуры.
Прогноз определяется как минимальное количество членов ряда. Сумма ряда имеет вид:
Х + Х2/2 + Х3 /6 + Х 4 /24 + . . .

Написала такой цикл. Пока добилась только того, что считает сумму ряда.
х в данном случае берется из таблицы, sum1 ввожу, n - кол-во членов ряда, и сравнивает введенную стоимость с клавиатуры с той, что взята из таблицы.

' Функция вычисления прогноза
Function prognozN(x As Long, n As Integer, sum1 As Integer)

Dim fact As Long ' факториал
Dim i As Integer ' переменная цикла
Dim sum As Long ' искомая величина

fact = 1
sum = x 
pow = 1

For i = 1 To n
    fact = fact * i ' вычисление факториала
    pow = x * pow ' вычисление степени x
    sum = sum + x + (pow / fact)
    If sum1 > sum Then
    prognozN = sum1
    Else: prognozN = sum
End If
Next i

End Function

А надо чтоб он в столбце запроса выдавал n - т.е через какое кол-во лет, сумма введенная с клавиатуры станет больше той что вязта из таблицы...
Понимаю что несколько путанно объясняю.. но все ж... Помогите пожалуйста! Хотя бы намекните что делать!
Это курсовик, сдавать завтра.
1 июн 06, 20:13    [2732133]     Ответить | Цитировать Сообщить модератору
 Re: Прогноз на n лет  [new]
UnderHeaven
Member

Откуда: Мск
Сообщений: 14
' Функция прогноза
Function prognozO(x As Long, sum1 As Integer)

Dim fact As Long ' факториал
Dim i As Integer ' переменная цикла
Dim sum As Long ' стоимость годового выпуска берется из таблицы


fact = 1
sum = x
pow = 1

i = 0
  While sum < sum1
    i = i + 1
    fact = fact * i 
    pow = x * pow 
    sum = sum + x + (pow / fact)
    If sum1 > sum Then
    prognozO = sum1
    Else: prognozO = sum
End If
Wend

End Function

Вот. я переделала. Осталось только вывести i, на котором прекращает выполнятся условие!! Подскажите как!
1 июн 06, 21:21    [2732232]     Ответить | Цитировать Сообщить модератору
 Re: Прогноз на n лет  [new]
UnderHeaven
Member

Откуда: Мск
Сообщений: 14
Я справилась сама. Всем спасибо! :) Я молодец!
1 июн 06, 22:01    [2732355]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить