![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 29.09.2009
Сообщений: 3
|
![]()
HELP!!! При вычислении функции, код полностью не компилирует, останавливается на логарифме
![]() ![]() Sub zad2() Const Alfa = 0.5, Betta = 0.2 'задание значений в разделе констант Dim A, B, C, D As Double 'объявление переменных Dim F1, F2, F3, F4 As Double Dim Y, X As Double Dim dx As Double Dim i As Integer A = 3.4 ' Присвоение значений B = 12.6 C = 15.8 D = 17.6 'создание шапки для таблицы Cells(1, 2) = "y" Cells(1, 3) = "x" i = 2 'номер строки dx = 0.5 'шаг вычисления For X = -5 To 5 Step dx If X > 4 Then 'проверка условия F1 = Sqr(Alfa * X) + 8.5 * A Y = F1 Else If (X >= 1) And (X <= 4) Then 'проверка условия F4 = Sqr(A * X + B * X ^ 2) Y = F4 Else If (X >= 0) And (X <= 1) Then 'проверка условия F2 = Log(B * X / (C * X ^ 2 + D)) Y = F2 Else: F3 = 1.3 + 2 * Exp(Abs(Betta * X + C)) Y = F3 End If End If End If Cells(i, 2) = Y 'вывод значений x и y в i-ю строку 2-ого столбца на Листе 1 Cells(i, 3) = X i = i + 1 Next X End Sub
www.weblancer.net/users/-Stardust-/portfolio/
|
![]() |
![]() |
![]() |
#2 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
Компилируется-то нормально. Но когда, уже при работе программы, функции Log передаётся X, равный 0, возникает переполнение.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 29.09.2009 в 23:51. |
![]() |
![]() |
![]() |
#3 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
Вот ваш вариант в рабочем виде. В zad2.xls запускается по Ctrl-s.
Код:
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
![]() |
![]() |
![]() |
#4 | |
Регистрация: 29.09.2009
Сообщений: 3
|
![]() Цитата:
![]()
www.weblancer.net/users/-Stardust-/portfolio/
|
|
![]() |
![]() |
![]() |
#5 | |
Регистрация: 29.09.2009
Сообщений: 3
|
![]() Цитата:
![]() ![]() ![]() Option Explicit Sub Zadanie_2() Const Alfa = 0.5, Betta = 0.2 'задание значений в разделе констант' Dim A, B, C, D As Double 'объявление переменных' Dim F1, F2, F3, F4 As Double Dim Y, X As Double Dim dx As Double Dim i As Integer A = 3.4 ' Присвоение значений' B = 12.6 C = 7.8 D = 1.6 'создание шапки для таблицы' Cells(1, 2) = "x" Cells(1, 3) = "y" i = 2 'номер строки' dx = 0.5 'шаг вычисления' For X = -5 To 5 Step dx If X > 4 Then 'проверка условия' F1 = Sqr(Sin(Alfa * X)) + 8.5 * A Y = F1 Else If (X >= 1) And (X <= 4) Then 'проверка условия' F4 = Sqr(A * X + B * X ^ 2) / Alfa Y = F4 Else If (X >= 0) And (X <= 1) Then 'проверка условия' F2 = 1.3 + 2 * Exp(Abs(Betta * X + C)) Y = F2 Else F3 = Log(B * X / (C * X ^ 2 + D)) 'x и B не должны быть равны 0 Y = F3 End If End If End If Cells(i, 2) = X Cells(i, 3) = Y 'вывод значений x и y в i-ю строку 3-го столбца на Листе 1 i = i + 1 Next X End Sub
www.weblancer.net/users/-Stardust-/portfolio/
|
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
![]()
Здравствуйте Ludanka_V.
не вникая в суть вопроса, проверить "x и B не должны быть равны 0" можно так: Код:
P.S. для удобочитаемость заключайте вводимый код в тэги [соde]... ...[/соde] Последний раз редактировалось Teslenko_EA; 01.10.2009 в 16:12. |
![]() |
![]() |
![]() |
#7 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]() Код:
в этом языке пишется так: Код:
Не очень изящно, но что поделаешь... можно, кстати и просто вот так: Код:
Это лаконичнее;-)
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
![]() |
![]() |