Модуль:Calculator

Материал из Вики-Вятки
Версия от 18:40, 25 августа 2020; Admin (обсуждение | вклад) (Admin переименовал страницу Модуль:Калькулятор в Модуль:Calculator без оставления перенаправления)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Использование

Модуль калькулятора предоставляет несколько функций, которые можно вызывать с помощью {{#invoke}}:

Сложение
Складывает два предоставленных числа
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.
Вычитание
Вычитает два предоставленных числа
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.
Умножение
Выполняет умножение указанных чисел
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.
Деление
Делит два предоставленных числа
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.
Остаток
Находит остаток от деления двух указанных чисел.
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.
Возведение в степень
Возводит число в указанную степень
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.

-- https://dev.fandom.com/wiki/Module:Calculator
-- Calculator - Easily add arithmetic operations to wiki pages
-- Written by Shining-Armor
-- Version 0.1
 
local p = {}
local userError = require('Dev:User error')
local entrypoint = require('Dev:Entrypoint')
 
local function empty( s )
    if s == nil or s == '' then 
        return true
    else
        return false
    end
end
 
function p.addition( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for addition')
    else
        return tonumber( frame.args[1] ) + tonumber( frame.args[2] )
    end
end
 
function p.division( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for division')
    else 
        return tonumber( frame.args[1] ) / tonumber( frame.args[2] )
    end
end
 
function p.modulo( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for modulo')
    else
        return tonumber( frame.args[1] ) % tonumber( frame.args[2] )
    end
end
 
function p.multiplication( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for multiplication')
    else
        return tonumber( frame.args[1] ) * tonumber( frame.args[2] )
    end
end
 
function p.subtraction( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for subtraction')
    else
        return tonumber( frame.args[1] ) - tonumber( frame.args[2] )
    end
end
 
function p.exponentation( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for exponentation')
    else
        return tonumber( frame.args[1] ) ^ tonumber( frame.args[2] )
    end
end
 
p.main = entrypoint(p)
 
return p