ЮНИТ 18. МАТЕМАТИКА В ЯЗЫКЕ 1С

В одном из первых юнитов мы уже разбирали использование арифметических операций в 1С 8.3. Конечно, это не все математические операции, которые доступны разработчику, и в этом юните мы восполним этот пробел.

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

Представим, что у нас есть число с дробной частью:

Цена = 100.45;

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

Округленная Цена = ОкрЩена, 1);

// вернет 100.5

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

В качестве результата округления мы получим 100.5. Но почему не 100.4?

По умолчанию, команда Окр делает округление в большую сторону, поэтому мы получим 100.5. Но если потребуется округление в меньшую сторону, нужно просто передать третьим параметром ноль:

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

// вернет 100.4

А теперь давайте отбросим дробную часть числа, чтобы осталась только целая часть:

ЦелаяЧасть = Цел(Цена);

// вернет 100

Мы воспользовались командой Цел, которая принимает число с дробной частью и возвращает только его целую часть.

Иногда при расчетах требуется возвести число в степень: ДесятьВКубе = Рош(10, 3);

// вернет 1000

Команда Роч> принимает число и степень, в которую его нужно возвести. А порою нам требуется, наоборот, к примеру, извлечь квадратный корень из числа:

КвадратныйКореньИз25 = 5яг1(25);

// вернет 5

Еще задача. Пусть у нас имеется конечный набор чисел и нужно найти максимальное значение:

МаксимальноеЗначениеИзТрехЧисел = Макс(10, 20, 30);

// вернет 30

МаксимальноеЗначениеИзДвухЧисел = Макс(0, -5);

// вернет 0

Количество параметров, которые можно передавать в функцию Макс для поиска максимального элемента неограниченно.

Функция Мин решает обратную задачу: МинимальноеЗначениеИзТрехЧисел = Мин(10, 20, 30);

// вернет 10

МинимальноеЗначениеИзДвухЧисел = Мин(0, -5);

// вернет -5

Еще очень популярной задачей является генерация случайных чисел. В 1С это делается таким образом:

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

Первой строкой мы создаем объект ГенераторСлучаиныхЧисел и связываем с ним нашу переменную ГСЧ.

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

В приведенном примере вы каждый раз будете запускать программу, и она каждый раз будет вам выдавать новое число от нуля (включительно) до двух (включительно). Это и есть генерация случайных чисел.

С более полным перечнем математических функций в 1С вы можете ознакомиться во втором разделе пособия.

Для отработки и закрепления материала данного юнита рекомендуется выполнить нижеследующее задание.

Напишите программу, которая генерирует три случайных числа в диапазоне от 1 до 1000. Генератор случайных чисел инициализируете числом 2014 (об этом ниже). Затем каждое число возводится в 5 степень. Затем из каждого числа извлекается квадратный корень. Затем каждое число делится на 3. Затем каждое число округляется до второго знака в меньшую сторону. Затем каждое число умножается на 0.25. Затем от каждого числа отбрасывается дробная часть. И, наконец, находится сумма всех получившихся чисел, которая и выводится пользователю. Получившееся значение будет равно 849442.

Подсказка:

Чтобы инициализировать генератор определенным числом (например, 2014) напишем:

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

Инициализация определенным числом позволит вам получить на своем компьютере ту же самую последовательность случайных чисел, что получил я. Это нужно, чтобы вы в конце выполнения программы получили тот же самый ответ, что и я - 849442.

Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся

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

// объявили генератор случайных чисел

А= ГСЧ.СлучайноеЧисло(1, 1000);

// сгенерировали первое случайное число от 1 до 1000

Б = ГСЧ.СлучайноеЧисло(1, 1000);

В = ГСЧ.СлучайноеЧисло(1, 1000);

А = Роу(А, 5); // возвели число в 5 степень

Б = Рош(Б, 5);

В = Роу(В, 5);

А = БягЦА); // вычислили квадратный корень из числа

Б = БцгЦБ);

В = БцгЦВ);

А = А/ 3;

// разделили на три

Б= Б/3;

В= В/3;

А = Окр(А, 2, 0); // округлили до второго знака Б = Окр(Б, 2, 0);

В = Окр(В, 2, 0);

А = А* 0.25; //умножили на 0.25

Б = Б * 0.25;

В = В *0.25;

А = Цел (А); // отбросили дробную часть

Б = Цел(Б);

В = Цел(В);

Сообщить(А + Б + В); // сложили все три числа и вывели

// пользователю

 
< Пред   СОДЕРЖАНИЕ     След >