Функции

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
*Qwerty*
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 10.05.2004 (Пн) 4:01
Откуда: Енакиево

Функции

Сообщение *Qwerty* » 19.11.2004 (Пт) 21:30

Здравствуйте, подскажите пожалуйста, как вычислить функцию Lg x через васик?
И ещё, есть ли в Вб функция остаток от деления (кажеться она называлась mod, но что-то её в ВБ нету), или хотя бы способ отделения дробной части от числа?
Большое спасибо
BASIC-программисты – люди меченые, путем насилия или подкупа нас можно заставить работать на другом языке, но думать-то мы все равно будем на BASIC (c) C.Г.Зиновьев

Dzhon
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 236
Зарегистрирован: 09.12.2003 (Вт) 13:30
Откуда: Россия, Омск

Сообщение Dzhon » 19.11.2004 (Пт) 22:09

[quote="VBHELP"]
Функция Log
Возвращает значение типа Double, содержащее натуральный логарифм числа.

Синтаксис

Log(число)

Обязательный аргумент число представляет значение типа Double или любое допустимое положительное числовое выражение.

Дополнительные сведения

Натуральным логарифмом называют логарифм по основанию e. Константа e приблизительно равняется 2,718282.
Для вычисления логарифма числа x по основанию n следует разделить натуральный логарифм числа x на натуральный логарифм числа n:
Logn(x) = Log(x) / Log(n)

В следующем примере показана специальная процедура Function, предназначенная для вычисления логарифмов по основанию 10:
Static Function Log10(X)
Log10 = Log(X) / Log(10#)
End Function
'------------------------------------------------------------------------------------
Пример использования функции Log
Код: Выделить всё
В данном примере функция Log используется для вычисления натурального логарифма числа.
Dim MyAngle, MyLog
' Задает угол в радианах.
MyAngle = 1.3
' Вычисляет гиперболический арксинус.
MyLog = Log(MyAngle + Sqr(MyAngle * MyAngle + 1))

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.11.2004 (Пт) 22:31

Дык и Mod на месте, никуда он не делся...

Дробная часть: X - Int(X)
Изображение

*Qwerty*
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 10.05.2004 (Пн) 4:01
Откуда: Енакиево

Сообщение *Qwerty* » 20.11.2004 (Сб) 11:44

tyomitch писал(а):Дык и Mod на месте, никуда он не делся...

Дробная часть: X - Int(X)


Тю, блин, а он и вправду никуда не делся, только что- то я не могу вспомнить, как с помощью него определять четное число или нет, не подскажите?
И ещё: как выводить символы Ascii?
И где взять єту таблицу?
BASIC-программисты – люди меченые, путем насилия или подкупа нас можно заставить работать на другом языке, но думать-то мы все равно будем на BASIC (c) C.Г.Зиновьев

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.11.2004 (Сб) 11:51

if num mod 2 then ...

for i=0 to 255
debug.? chr$(i)
next
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.11.2004 (Сб) 12:29

А таблица берётся оттуда: Windows-R -> charmap
Изображение

*Qwerty*
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 10.05.2004 (Пн) 4:01
Откуда: Енакиево

Сообщение *Qwerty* » 20.11.2004 (Сб) 13:33

GSerg писал(а):if num mod 2 then ...

for i=0 to 255
debug.? chr$(i)
next

А если числа не целые, то что-то оно не так работает, как хотелось бы:
K( 1)= -1.2
K( 2)= -1.005
K( 3)= -.81
K( 4)= -.615
K( 5)= -.42
K( 6)= -.225
K( 7)= -2.99999999999997E-02
K( 8)= .165
K( 9)= .36
K( 10)= .555
K( 11)= .75
K( 12)= .945
K( 13)= 1.14
K( 14)= 1.335
K( 15)= 1.53
K( 16)= 1.725
K( 17)= 1.92
K( 18)= 2.115
K( 19)= 2.31
K( 20)= 2.505
Нечетные :
k( 2)= -1.005
k( 4)= -.615
k( 6)= -.225
k( 8)= .165
k( 10)= .555
k( 12)= .945
k( 14)= 1.335
k( 16)= 1.725
k( 18)= 2.115
k( 20)= 2.505

То есть числа K( 3)= -.81, K( 15)= 1.53, K( 19)= 2.31 не относяться к нечетным.
Вот листинг моей программы:
Код: Выделить всё
Private Sub Form_Load()
Dim k(1 To 30) As Single
Dim s, i, SrGeom, Proizv, w As Double
Dim n, d As Byte
n = 0
s = (2.7 - (-1.2)) / 20
    For i = -1.2 To 2.7 Step s
        n = n + 1
        k(n) = i
        Text1.Text = Text1.Text + "K(" & Str(n) & ")= " & Str(i) & vbCrLf
    Next
Proizv = 1
Text1.Text = Text1.Text + "Нечетные элементы: " & vbCrLf
    For n = 1 To 30
   
        If k(n) Mod 2 Then
            Text1.Text = Text1.Text + "k(" & Str(n) & ")= " & Str(k(n)) & vbCrLf
            Proizv = Proizv * k(n)
            d = d + 1
        End If
    Next
SrGeom = Proizv / d
Text1.Text = Text1.Text + "Среднее геометрическое: " & Str(SrGeom)
End Sub
BASIC-программисты – люди меченые, путем насилия или подкупа нас можно заставить работать на другом языке, но думать-то мы все равно будем на BASIC (c) C.Г.Зиновьев

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.11.2004 (Сб) 14:12

Чётным называется число, нацело делящееся на 2. Значит, оно целое, как минимум.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

*Qwerty*
Новичок
Новичок
Аватара пользователя
 
Сообщения: 41
Зарегистрирован: 10.05.2004 (Пн) 4:01
Откуда: Енакиево

Сообщение *Qwerty* » 20.11.2004 (Сб) 14:20

GSerg писал(а):Чётным называется число, нацело делящееся на 2. Значит, оно целое, как минимум.

Так получается, что если число нецелое- то оно уже нечетное?
Кстати, среднее геометрическое- это произведение, деленое на количество чисел, не знаешь?
BASIC-программисты – люди меченые, путем насилия или подкупа нас можно заставить работать на другом языке, но думать-то мы все равно будем на BASIC (c) C.Г.Зиновьев

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.11.2004 (Сб) 14:28

Если число не целое, то понятие чётности к нему не применяется, поскольку любое дробное число можно разделить на 2, получив чуть более длинную дробь...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.11.2004 (Сб) 14:35

СГ - это (a1 * a2 * ... * an) ^ (1/n)
Изображение


Вернуться в Visual Basic 1–6

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

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

    TopList