Вверх ↑
Пакеты 
HiAsm4
Windows 
Компоненты 
Лoгикa - Math

Math
Краткое описание
   Компонент предназначен для выполнения простых арифметических операций и вычисления некоторых функций
Параметры
  • OpType - Определяет арифметическую операцию
  • Op1 - Определяет операнд 1 по умолчанию
  • Op2 - Определяет операнд 2 по умолчанию
  • ResultType - Определяет тип результата
  • Default - Начальные значения результата
  • AngleMode - Единицы для тригонометрических функций
  • Методы
  • doOperation - Вычисляет сумму, или разность, или... (и т.д. по списку в OpType)
  • doClear - Устанавливает начальные значения результата
  • События
  • onResult - Выдаёт в поток результат матоперации
  • onError - Событие происходит всякий раз при арифметической ошибке
  • Свойства
  • Result - Содержит результат операции после его вычисления методом doOperation
  • Данные
  • Op1 - Операнд 1
  • Op2 - Операнд 2
  • Примеры
       Простой пример вычисления выражения из двух операндов (вычесление остатка от деления - mod)

    
    Add(MainForm,12961720,105,147)
    {
     Width=240
     Height=162
     Caption="Пример использования Math"
    }
    Add(Edit,13001748,168,91)
    {
     Left=65
     Top=25
     Text="3"
    }
    Add(Edit,8616283,266,91)
    {
     Left=130
     Top=25
     Text="2"
    }
    Add(Button,581647,168,147)
    {
     Left=100
     Top=55
     Caption="calc"
     link(onClick,2826043:doOperation,[])
    }
    Add(Edit,8593208,266,147)
    {
     Left=65
     Top=80
     Width=115
     Text=""
    }
    Add(Math,2826043,217,147)
    {
     OpType=8
     ResultType=0
     link(onResult,8593208:doText,[])
     link(Op1,13001748:Text,[(223,135)(174,135)])
     link(Op2,8616283:Text,[(230,135)(272,135)])
    }
    
    

    Пример использования MathParse для нахождения min и max
    
    Add(MainForm,13771273,112,77)
    {
     Width=271
     Height=238
     Caption="Пример использования MathParse"
    }
    Add(Label,7001549,175,77)
    {
     Left=25
     Top=15
     Width=11
     Height=17
     Caption="A"
    }
    Add(Edit,9764418,224,77)
    {
     Left=50
     Top=12
     Text="4"
    }
    Add(Edit,3192347,273,77)
    {
     Left=180
     Top=12
     Text="6"
    }
    Add(Edit,10627641,329,161)
    {
     Left=50
     Top=162
     Text=""
    }
    Add(Edit,12123487,329,203)
    {
     Left=180
     Top=162
     Text=""
    }
    Add(Button,4513443,112,161)
    {
     Left=101
     Top=85
     link(onClick,15969813:doEvent1,[])
    }
    Add(Math,10976685,266,203)
    {
     OpType=39
     link(onResult,12123487:doText,[])
     link(Op1,9998433:Var3,[(272,124)])
     link(Op2,8621102:Var2,[])
    }
    Add(Math,16134100,224,161)
    {
     OpType=38
     link(onResult,10627641:doText,[])
     link(Op1,9998433:Var2,[])
     link(Op2,8621102:Var1,[(237,133)])
    }
    Add(Hub,15969813,168,161)
    {
     link(onEvent1,16134100:doOperation,[])
     link(onEvent2,10976685:doOperation,[(212,174)(212,209)])
    }
    Add(GetDataEx,9998433,224,119)
    {
     link(Data,9764418:Text,[])
    }
    Add(GetDataEx,8621102,273,128)
    {
     link(Data,3192347:Text,[])
    }
    Add(Label,2817402,175,77)
    {
     Left=145
     Top=15
     Width=11
     Height=17
     Caption="B"
    }
    Add(Label,5611803,175,77)
    {
     Left=25
     Top=165
     Width=11
     Height=17
     Caption="A"
    }
    Add(Label,14871279,175,77)
    {
     Left=145
     Top=165
     Width=11
     Height=17
     Caption="B"
    }
    
    
    Замечания
       Описание доступных операций
    Операция Пример Описание
    + 3 + 2 = 5 Сложение
    - 3 - 2 = 1 Вычитание
    * 3 * 2 = 6 Умножение
    / 3 / 2 = 1.5 Деление
    and 3 and 2 = 2 Логическое И
    or 3 or 2 = 3 Логическое ИЛИ
    xor 3 xor 2 = 1 Исключающее ИЛИ
    div 3 div 2 = 1 Целочисленное деление
    mod 3 mod 2 = 1 Вычесление остатка от деления
    shl 3 shl 2 = 12 Битовый сдвиг влево
    shr 3 shr 2 = 0 Битовый сдвиг вправо
    x^y 3 ^ 2 = 9 Степень (*)
    cos cos(180) = -1 Косинус (*)
    sin sin(180) = 0 Синус (*)
    tg tg(180) = 0 Тангенс (*)
    ctg ctg(45) = -7.01525255 Котангес (*)
    acos acos(1) = 0 Арккосинус (*)
    asin asin(0) = 0 Арксинус (*)
    atan atan(1) = 45 Арктангенс (*)
    ch Гиперболический косинус
    sh Гиперболический синус
    th Гиперболический тангенс
    cth Гиперболический контангенс
    ach Ареасинус (арксинус гиперболический)
    ash Ареакосинус
    ath Ареатангенс
    acth Ареакотангенс
    log Логарифм op1 по основанию op2
    lg Десятичный логарифм op1
    ln Натуральный логарифм
    exp e в степени op1
    sqr Квадрат op1
    sqrt Квадратный корень из op1
    abs Модуль
    sign Знак
    round Округление op1 с точностью до остатка деления op1/op2 (по правилам математики)
    frac Получение дробной части op1 с точностью до остатка деления op1/op2 путём отброса целой части
    trunc Округление op1 с точностью до остатка деления op1/op2 путём отброса дробной части
    min Наименьшее из двух значений
    max Наибольшее из двух значений
    odd odd(5) = 1 Нечетность op1
    even even(4) = 1 Четность op1
    floor floor(3.5) = 3 Округление op1 до меньшего целого
    ceil ceil(3.5) = 4 Округление op1 до большего целого


    (*) - Приведённые примеры верны для AngleMode=Градусы.

    Обновление элемента: [svn]Math.pas[/svn]
    BB-code статьи для вставки
    Всего комментариев: 0
    (комментарии к статье еще не добавлены)
    Комментарий
    ...