Какие математические функции доступны в Google Apps Script?

Обзор Google Apps Script и его применения

Google Apps Script – это облачная платформа для разработки, позволяющая автоматизировать задачи и расширять функциональность Google Workspace (Sheets, Docs, Forms, Gmail и т.д.). Apps Script использует JavaScript в качестве основного языка и предоставляет доступ к различным сервисам Google, а также к внешним API. Это делает его мощным инструментом для автоматизации бизнес-процессов, создания пользовательских решений и интеграции различных сервисов.

Зачем нужны математические функции в Apps Script

Математические функции необходимы для выполнения широкого спектра задач, таких как обработка числовых данных, статистический анализ, финансовые расчеты, оптимизация алгоритмов, генерация случайных чисел и многое другое. В контексте Google Apps Script они позволяют автоматизировать сложные вычисления непосредственно в таблицах, документах и других сервисах Google.

Основные математические объекты и константы

В Google Apps Script математические функции предоставляются встроенным объектом Math. Этот объект содержит набор статических методов и констант для выполнения различных математических операций. Важными константами являются Math.PI (число Пи) и Math.E (основание натурального логарифма).

Основные математические функции

Арифметические функции (Math.abs, Math.round, Math.floor, Math.ceil, Math.trunc)

Math.abs(x): Возвращает абсолютное значение числа x.

Math.round(x): Округляет число x до ближайшего целого.

Math.floor(x): Округляет число x вниз до ближайшего целого.

Math.ceil(x): Округляет число x вверх до ближайшего целого.

Math.trunc(x): Удаляет дробную часть числа x, возвращая целое число.

Пример:

/**
 * Пример использования арифметических функций.
 */
function arithmeticFunctionsExample() {
  const number: number = -3.75;

  Logger.log(`Math.abs(${number}): ${Math.abs(number)}`); // 3.75
  Logger.log(`Math.round(${number}): ${Math.round(number)}`); // -4
  Logger.log(`Math.floor(${number}): ${Math.floor(number)}`); // -4
  Logger.log(`Math.ceil(${number}): ${Math.ceil(number)}`); // -3
  Logger.log(`Math.trunc(${number}): ${Math.trunc(number)}`); // -3
}

Функции экспоненты и логарифма (Math.exp, Math.log, Math.pow, Math.sqrt)

Math.exp(x): Возвращает ex, где e – основание натурального логарифма.

Math.log(x): Возвращает натуральный логарифм числа x.

Math.pow(x, y): Возвращает x в степени y.

Math.sqrt(x): Возвращает квадратный корень числа x.

Пример:

/**
 * Пример использования функций экспоненты и логарифма.
 */
function exponentialLogarithmicFunctionsExample() {
  const x: number = 2;
  const y: number = 3;

  Logger.log(`Math.exp(${x}): ${Math.exp(x)}`);
  Logger.log(`Math.log(${x}): ${Math.log(x)}`);
  Logger.log(`Math.pow(${x}, ${y}): ${Math.pow(x, y)}`);
  Logger.log(`Math.sqrt(${x}): ${Math.sqrt(x)}`);
}

Тригонометрические функции (Math.sin, Math.cos, Math.tan, Math.asin, Math.acos, Math.atan)

Math.sin(x): Возвращает синус угла x (в радианах).

Math.cos(x): Возвращает косинус угла x (в радианах).

Math.tan(x): Возвращает тангенс угла x (в радианах).

Math.asin(x): Возвращает арксинус числа x (в радианах).

Math.acos(x): Возвращает арккосинус числа x (в радианах).

Math.atan(x): Возвращает арктангенс числа x (в радианах).

Пример:

/**
 * Пример использования тригонометрических функций.
 */
function trigonometricFunctionsExample() {
  const angle: number = Math.PI / 4; // 45 градусов в радианах

  Logger.log(`Math.sin(${angle}): ${Math.sin(angle)}`);
  Logger.log(`Math.cos(${angle}): ${Math.cos(angle)}`);
  Logger.log(`Math.tan(${angle}): ${Math.tan(angle)}`);
}

Функции min и max (Math.min, Math.max)

Math.min(a, b, ...): Возвращает наименьшее из переданных чисел.

Math.max(a, b, ...): Возвращает наибольшее из переданных чисел.

Пример:

/**
 * Пример использования функций min и max.
 */
function minMaxFunctionsExample() {
  const a: number = 10;
  const b: number = 20;
  const c: number = 5;

  Logger.log(`Math.min(${a}, ${b}, ${c}): ${Math.min(a, b, c)}`);
  Logger.log(`Math.max(${a}, ${b}, ${c}): ${Math.max(a, b, c)}`);
}

Работа со случайными числами

Функция Math.random() и ее использование

Math.random(): Возвращает псевдослучайное число с плавающей точкой в диапазоне от 0 (включительно) до 1 (исключительно).

Генерация случайных целых чисел в заданном диапазоне

Чтобы сгенерировать случайное целое число в заданном диапазоне, можно использовать следующую формулу:

Реклама

Math.floor(Math.random() * (max - min + 1)) + min;

Где:

min – минимальное значение диапазона (включительно).

max – максимальное значение диапазона (включительно).

Примеры использования случайных чисел в скриптах

Случайные числа часто используются для генерации тестовых данных, случайного выбора элементов, моделирования случайных событий и т.д.

Пример:

/**
 * Пример генерации случайного целого числа в диапазоне.
 *
 * @param {number} min Минимальное значение диапазона (включительно).
 * @param {number} max Максимальное значение диапазона (включительно).
 * @return {number} Случайное целое число в заданном диапазоне.
 */
function getRandomInt(min: number, max: number): number {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

/**
 * Пример использования функции getRandomInt.
 */
function randomIntExample() {
  const min: number = 1;
  const max: number = 100;

  Logger.log(`Случайное число от ${min} до ${max}: ${getRandomInt(min, max)}`);
}

Продвинутые математические операции

Округление с заданной точностью

Для округления числа до определенного количества знаков после запятой можно использовать следующий подход:

/**
 * Округление числа до заданного количества знаков после запятой.
 *
 * @param {number} number Исходное число.
 * @param {number} precision Количество знаков после запятой.
 * @return {number} Округленное число.
 */
function roundToPrecision(number: number, precision: number): number {
  const factor: number = Math.pow(10, precision);
  return Math.round(number * factor) / factor;
}

Применение функций для работы с углами (перевод градусов в радианы и наоборот)

Google Apps Script использует радианы для тригонометрических функций. Для перевода градусов в радианы и наоборот можно использовать следующие формулы:

Градусы в радианы: радианы = градусы * Math.PI / 180

Радианы в градусы: градусы = радианы * 180 / Math.PI

Использование Math.sign() для определения знака числа

Math.sign(x): Возвращает 1, если число x положительное, -1, если число x отрицательное, и 0, если число x равно 0.

Практическое применение математических функций в Google Apps Script

Пример: Расчет итоговой стоимости товара с учетом скидки и налога

/**
 * Расчет итоговой стоимости товара с учетом скидки и налога.
 *
 * @param {number} price Исходная цена товара.
 * @param {number} discountPercent Процент скидки (от 0 до 100).
 * @param {number} taxPercent Процент налога (от 0 до 100).
 * @return {number} Итоговая стоимость товара.
 */
function calculateFinalPrice(price: number, discountPercent: number, taxPercent: number): number {
  const discount: number = price * (discountPercent / 100);
  const discountedPrice: number = price - discount;
  const tax: number = discountedPrice * (taxPercent / 100);
  const finalPrice: number = discountedPrice + tax;

  return roundToPrecision(finalPrice, 2);
}

/**
 * Пример использования функции calculateFinalPrice.
 */
function finalPriceExample() {
  const price: number = 100;
  const discountPercent: number = 10;
  const taxPercent: number = 20;

  const finalPrice: number = calculateFinalPrice(price, discountPercent, taxPercent);
  Logger.log(`Итоговая стоимость товара: ${finalPrice}`);
}

Пример: Генерация случайного пароля

/**
 * Генерация случайного пароля.
 *
 * @param {number} length Длина пароля.
 * @return {string} Сгенерированный пароль.
 */
function generateRandomPassword(length: number): string {
  const characters: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()';
  let password: string = '';
  for (let i: number = 0; i < length; i++) {
    password += characters.charAt(Math.floor(Math.random() * characters.length));
  }
  return password;
}

/**
 * Пример использования функции generateRandomPassword.
 */
function randomPasswordExample() {
  const passwordLength: number = 12;
  const password: string = generateRandomPassword(passwordLength);
  Logger.log(`Случайный пароль: ${password}`);
}

Пример: Реализация простого калькулятора

Реализация калькулятора потребует обработки строк и приведения их к числам, плюс базовый набор арифметических операций, покрытых выше.

Заключение и полезные ресурсы

Математические функции в Google Apps Script предоставляют мощный набор инструментов для выполнения различных вычислений и автоматизации задач. Использование этих функций позволяет значительно расширить возможности скриптов и создавать более сложные и полезные решения. Документация Google Apps Script предоставляет подробную информацию о каждой функции и ее использовании. Полезные ресурсы: Официальная документация Google Apps Script.


Добавить комментарий