Математика в 1С

Математика в 1С — полезные приёмы

В реальной работе программисту постоянно приходится что-то считать:
округлять цены, сравнивать числа, находить минимум или максимум, генерировать случайные значения.
В 1С всё это можно делать встроенными функциями — разберём самые полезные.


Округление чисел

Цена = 100.384;
Округленная = Окр(Цена, 1);  // 100.4

Функция Окр принимает число и количество знаков после запятой.
Правило стандартное: если следующая цифра ≥ 5, прибавляем единицу.

Особый случай: если цифра равна 5, можно задать режим округления:

Сообщить(Окр(100.350, 1, РежимОкругления.Окр15как10)); // 100.3
Сообщить(Окр(100.350, 1, РежимОкругления.Окр15как20)); // 100.4

Целая часть

Целая = Цел(Цена);  // 100

Функция Цел просто отбрасывает дробь.


Степени и корни

Куб = Pow(10, 3);    // 1000
Корень = Sqrt(25);   // 5

Pow — возведение в степень, Sqrt — квадратный корень.


Минимум и максимум

МаксЗначение = Макс(10, 20, 30); // 30
МинЗначение  = Мин(10, 20, 30);  // 10

Функции Макс и Мин принимают любое количество чисел.


Генерация случайных чисел

ГСЧ = Новый ГенераторСлучайныхЧисел();
Сообщить(ГСЧ.СлучайноеЧисло(0, 2)); // от 0 до 2

Можно зафиксировать последовательность:

ГСЧ = Новый ГенераторСлучайныхЧисел(2014);

Это удобно для тестов: вы всегда получите одинаковый результат.


💡 Практика: мини-задачи

  1. Случайное число от 1 до 100, округлённое до целого.
  2. Вывести максимум из пяти случайных чисел.
  3. Проверить: если число больше 1000, вывести его квадратный корень, иначе — его куб.
  4. Написать функцию, которая принимает список чисел и возвращает сумму их округлённых значений.

🏠 Домашнее задание

Создать программу:

  • Генерируем 3 случайных числа (1…1000),
  • возводим каждое в 5-ю степень,
  • извлекаем квадратный корень,
  • делим на 3,
  • округляем до двух знаков (режим Окр15как10),
  • умножаем на 0.25,
  • отбрасываем дробную часть,
  • суммируем результаты.

В зависимости от версии 1С результат будет разным (изменился алгоритм ГСЧ),
но сама логика должна совпадать.

Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *