Помогите написать алгоритм в Visual Basic

Автор player, 18.04.2012, 22:51

« назад - далее »

player

Пожалуйста, помогите написать вот этот алгоритм:

Poltava

Ну насколько я могу судить вам нужно решить то что у вас написано в самом верху листочка
так вот ваш алгоритм как по мне не совсем корректен
1) y=0 и y= формула Здесь вы обнулили прежний у!!!! тут либо нужно вводить буферную переменную в которой вычислять значение и ниже прибавлять ее к y либо писать y=y+формула а y=y+0 вообще опустить убрав else из алгоритма
2)Вы выполняете цикл пока n<i это напрочь отметает решение вашей формулы ведь в ней четко написано Суммировать n раз а не пока n<i цикл должен проходить заданное количество раз
3)Даже если выше я не прав и нужно именно так как у вас то цыкл должен быть не с пост условием а с пред условием ведь возможно что n сразу будет больше i и тогда нужно сразу прекратить вычисления не вычислив формулу НЕРАЗУ по вашему алгоритму это невозможно
ниже два примера с буферной переменной и без так как я это вижу
Sub Алгоритм()
'
    n = InputBox("Введите n") 'Вводим n
    k = InputBox("Введите k") 'Вводим k
    y = 0 'Обнуляем y
    i = k ' присваиваем i первоначальное значение k
    For nCounter = 1 To n 'цыкл n раз
        MsgBox i
        If i <> 3 And i <> 6 Then 'если i 6 или 3 не ровно 0 то вычисляем и запивываем в буферную переменную иначе пишем 0
            temp = (i + 2) / (i - 3) * (i - 6) 'Вычисляем формулу
        Else
            temp = 0
        End If
        y = y + temp 'вычисляем y
        i = i + 1 'добавляем i
    Next
    MsgBox 'выводим y
End Sub


без буфера

Sub Алгоритм()
'
    n = InputBox("Введите n") 'Вводим n
    k = InputBox("Введите k") 'Вводим k
    y = 0 'Обнуляем y
    i = k ' присваиваем i первоначальное значение k
    For nCounter = 1 To n 'цыкл n раз
        MsgBox i
        If i <> 3 And i <> 6 Then 'если i 6 или 3 не ровно 0 то вычисляем и запивываем в буферную переменную иначе пишем 0
            y = y + (i + 2) / (i - 3) * (i - 6) 'Вычисляем формулу
        End If
        i = i + 1 'добавляем i
    Next
    MsgBox 'выводим y
End Sub
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

player


Poltava

Да незачто просто интересно что все таки вы хотели увидеть в результате, а то я на кофейной гуще гадал :)
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.