Остаток от деления 1с. Остаток от деления в 1С: способы вычисления и применение

Как получить остаток от деления в 1С. Какие функции и операторы использовать для вычисления остатка. Примеры применения остатка от деления в разработке на 1С. Особенности работы с целочисленным и вещественным делением.

Содержание

Способы вычисления остатка от деления в 1С

В языке 1С есть несколько способов получить остаток от деления одного числа на другое:

  • Оператор % (модуль)
  • Функция Mod()
  • Функция ОстатокОтДеления()

Рассмотрим каждый из этих способов подробнее.

Оператор %

Оператор % (процент) возвращает остаток от деления левого операнда на правый. Например:

Результат = 10 % 3; // Результат будет равен 1

Это самый простой и часто используемый способ получения остатка. Он работает с целыми и вещественными числами.

Функция Mod()

Функция Mod() принимает два аргумента — делимое и делитель, и возвращает остаток от их деления:

Результат = Mod(10, 3); // Результат будет равен 1

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


Функция ОстатокОтДеления()

Функция ОстатокОтДеления() — это русскоязычный аналог Mod():

Результат = ОстатокОтДеления(10, 3); // Результат будет равен 1

Она полностью идентична по функциональности, выбор между ней и Mod() — вопрос личных предпочтений разработчика.

Особенности работы с остатком от деления

При использовании остатка от деления в 1С важно учитывать следующие моменты:

  • Остаток всегда имеет знак делимого
  • При делении на 0 возникает ошибка
  • Для вещественных чисел результат может быть неточным из-за особенностей представления чисел с плавающей точкой

Рассмотрим эти особенности на примерах:

// Знак остатка совпадает со знаком делимого
Сообщить(-10 % 3);  // -1
Сообщить(-10 % -3); // -1
Сообщить(10 % -3);  // 1

// Деление на 0 вызывает ошибку
//Сообщить(10 % 0); // Ошибка деления на 0

// Неточность при работе с вещественными числами
Сообщить(10.1 % 3);  // 1.0999999999999996

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


Применение остатка от деления в разработке на 1С

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

Определение четности числа

Чтобы проверить, является ли число четным, можно использовать остаток от деления на 2:

Функция ЧетноеЧисло(Знач Число) Экспорт
    Возврат Число % 2 = 0;
КонецФункции

Сообщить(ЧетноеЧисло(10)); // Истина
Сообщить(ЧетноеЧисло(7));  // Ложь

Циклический перебор значений

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

Функция ПолучитьДеньНедели(Знач НомерДня) Экспорт
    МассивДней = Новый Массив;
    МассивДней.Добавить("Понедельник");
    МассивДней.Добавить("Вторник");
    МассивДней.Добавить("Среда");
    МассивДней.Добавить("Четверг");
    МассивДней.Добавить("Пятница");
    МассивДней.Добавить("Суббота");
    МассивДней.Добавить("Воскресенье");
    
    Индекс = (НомерДня - 1) % 7;
    Возврат МассивДней[Индекс];
КонецФункции

Сообщить(ПолучитьДеньНедели(1));  // Понедельник
Сообщить(ПолучитьДеньНедели(8));  // Понедельник
Сообщить(ПолучитьДеньНедели(15)); // Понедельник

Разбиение на группы

Остаток от деления можно использовать для разбиения элементов на группы:


Процедура РазбитьНаГруппы(Знач МассивЭлементов, Знач РазмерГруппы)
    Для Индекс = 0 По МассивЭлементов.ВГраница() Цикл
        НомерГруппы = Цел(Индекс / РазмерГруппы) + 1;
        ПорядокВГруппе = Индекс % РазмерГруппы + 1;
        Сообщить(СтрШаблон("Элемент %1 входит в группу %2, порядковый номер в группе %3", 
                            МассивЭлементов[Индекс], НомерГруппы, ПорядокВГруппе));
    КонецЦикла;
КонецПроцедуры

МассивЧисел = Новый Массив;
МассивЧисел.Добавить(1);
МассивЧисел.Добавить(2);
МассивЧисел.Добавить(3);
МассивЧисел.Добавить(4);
МассивЧисел.Добавить(5);

РазбитьНаГруппы(МассивЧисел, 2);

Результат выполнения:

Элемент 1 входит в группу 1, порядковый номер в группе 1
Элемент 2 входит в группу 1, порядковый номер в группе 2
Элемент 3 входит в группу 2, порядковый номер в группе 1
Элемент 4 входит в группу 2, порядковый номер в группе 2
Элемент 5 входит в группу 3, порядковый номер в группе 1

Заключение

Остаток от деления — простая, но мощная операция, которая находит широкое применение в программировании на 1С. Правильное использование этой операции позволяет реализовать многие алгоритмы более эффективно и элегантно. При работе с остатком от деления важно помнить о его особенностях, таких как поведение со знаковыми числами и потенциальная неточность при работе с вещественными числами.


Независимо от того, используете ли вы оператор %, функцию Mod() или ОстатокОтДеления(), понимание принципов работы с остатком от деления поможет вам писать более качественный и эффективный код на 1С.


остаток от деления в 1 С

Содержание:

1.      Получение остатка в запросе

2.      Работа с СКД 1С

 

Иногда бывают ситуации, когда нужно получить остаток от деления. Остаток от деления в 1С можно получить с помощью знака %.

Пример: Допустим, нам нужно получить остаток от деления 10 на 3 в переменную в примере с именем А. Как выглядит выражение:

А=10%3;  


 

1.    Получение остатка в запросе

Тут все просто и понятно. Несколько сложнее ситуация обстоит, если нужно получить остаток в запросе.


В этом случае можно написать вот такое выражение:

x- y * (ВЫРАЗИТЬ(x / y — 0.5 КАК ЧИСЛО(15, 0)))

где x – делимое, а y – делитель.

Если взять пример с теми же x=10 и y=3, получим такое выражение:

10- 3 * (ВЫРАЗИТЬ(10 / 3 — 0.5 КАК ЧИСЛО(15, 0)))

И результат вычисления выражения:  



2.    Работа с СКД 1С

Есть третий способ, но, к сожалению, он подходит только для системы компоновки данных (СКД 1С). Он редко используется, но имеет право на существование. Для этого нужно создать экспортную функцию в общем модуле.


Затем нужно создать вычисляемое поле во вкладке Вычисляемые поля и заполнить его так, как показано на картинке. Переменные Х и Y берутся из запроса в СКД.


Результат работы простого отчета.


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

Специалист компании ООО «Кодерлайн» 

Евгения Скунцева.

1с запрос остаток от деления

На чтение 2 мин. Просмотров 100 Опубликовано

Недавно в чужом программном столкнулся с тем, что не все программисты 1С знают, как в 1С 8.2 или 8.3 получить остаток от деления.

Периодически встречаются вот такие конструкции:

ОстатокОтДеления = Делимое — Цел(Делимое / Делитель) * Делитель;

Это конечно забавный и остроумный способ. Но есть более простой метод, встроенный в платформу:

ОстатокОтДеления = Делимое % Делитель;

Вот, собственно, и всё!

P.S. Кстати, результат 1%2 = 1, некоторые почему-то думают, что ноль

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

Собственные наработки и набитые шишки в моей практике по программированию в 1С.

Страницы

среда, 28 октября 2015 г.

Как найти целое число от числа в запросе

Иногда необходимо получить целое число в запросе. Аналог Цел() языка. Необходимо прибегнуть к мелким хитростям, поскольку такого метода в запросе не существет. Но не стоит огорчаться.

Вот собственно необходимо задействовать конструкцию ВЫРАЗИТЬ(). Для положительных чисел необходимо вычесть 0.5, а для отрицательных чисел прибавить 0.5. Вот пример:

ВЫБОР КОГДА ВашеЧисло > 0 ТОГДА
ВЫРАЗИТЬ(ВашеЧисло — 0.5 КАК Число(15, 0))
ИНАЧЕ
ВЫРАЗИТЬ(ВашеЧисло + 0.5 КАК Число(15, 0))

Число — это один из примитивных типов данных существующих в 1С. Числа в 1С:Предприятии встречаются абсолютно везде и всюду. Следовательно важность знания функций для работы с числами трудно переоценить. К рассмотрению этих функций и приступим.

В начале скажем, что максимальная разрядность для числа равняется 38-ми знакам, при этом для целой части выделено 32 символа.

При этом в конфигураторе можно указать длину числа в 64 символа (при точности в 32 символа), но это вероятно какая-то ошибка, так как при попытке обновить конфигурацию Вы увидите нечто подобное:

Ошибка конфигуратора

С числами в 1С можно выполнять все стандартные арифметические операции:

Функции для работы с числами в 1С 8.2 и 8.3

Функция Окр(x, y, z) позволяет округлить число “x” в зависимости от заданной разрядности “y” и режима округления “z”.

ЧАСТНОЕ (функция ЧАСТНОЕ)

В этой статье описаны синтаксис формулы и использование функции ЧАСТНОЕ в Microsoft Excel.

Совет: Если вы хотите разделить числные значения, используйте оператор /, так как в Excel нет функции DIVIDE. Например, чтобы разделить 5 на 2, введите =5/2 в ячейку, которая возвращает 2,5. Функция QUOTIENT для этих же чисел =QUOTIENT(5;2) возвращает 2, так как функция QUOTIENT не возвращает остаток. Другие способы дележения чисел см. в этой теме.

Описание

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

Синтаксис

ЧАСТНОЕ(числитель;знаменатель)

Аргументы функции ЧАСТНОЕ указаны ниже.

Замечание

Если один из аргументов не является числом, то quotient возвращает #VALUE! значение ошибки #ЗНАЧ!.

Пример

Скопируйте пример данных из следующей таблицы и вставьте его в ячейку A1 нового листа Excel. Для переключения между формулами и их результатами нажмите клавишу F2. При необходимости измените ширину столбцов, чтобы видеть все данные.

Формула

Описание

Результат

=ЧАСТНОЕ(5; 2)

Целая часть результата деления 5/2

2

=ЧАСТНОЕ(4,5; 3,1)

Целая часть результата деления 4,5/3,1

1

=ЧАСТНОЕ(-10;3)

Целая часть результата деления -10/3

-3

См. также

ПРОИЗВЕД

Умножение и деление чисел в Excel

Расчет процентов

Краткое руководство: форматирование чисел на листе

Как вычислить остаток от деления в WinMIPS64



ISA MIPS поддерживает DIV, причем частное хранится в $LO , а остальное-в $HI . Однако WinMIPS64, по-видимому, не поддерживает операцию DIV , а вместо этого имеет (например) DDIV .

Из документации остается неясным, вычисляет ли DDIV только частное, но когда я вывожу результат в terminal, я получаю только его целочисленную часть, и нигде в WinMIPS64 GUI я не могу найти регистр или сегмент памяти данных, где хранится частное.

Я подумывал о том, чтобы просто выполнить деление с помощью последовательных вычитаний, но мне хотелось бы знать, есть ли простой способ в WinMIPS64 вычислить остаток деления.

Я буду признателен Вам за любую помощь.

assembly mips modulo mips64
Поделиться Источник David     10 мая 2018 в 20:27

1 ответ


  • Найти остаток от деления числа

    Как я мог найти остаток от деления числа в Python? Например: Если число равно 26, а деленное число равно 7, то остаток от деления равен 5. (с тех пор 7+7+7=21 и 26-21=5.)

  • остаток от целочисленного деления на 0

    Рассмотрим целочисленное деление a = bq + r где a, b, q, r соответственно: дивиденд, делитель, частное и остаток. В частности, когда b = 0, нет единственного q, который удовлетворял бы уравнению для данного a, и поэтому имеет смысл, что частное q должно быть неопределенным в таком случае. Однако в…



1

У меня недостаточно XP, чтобы написать комментарий, поэтому я пишу здесь:

Если вы находитесь в том же классе, что и я, и вам нужно получить остаток for loop, вы можете просто проверить, если (i+x) > ITERATIONS-1 с SLT, где x-ваш коэффициент развертывания цикла. Поскольку вам в любом случае нужно рассчитать (i+x), это не будет стоить вам никаких дополнительных циклов.

Поделиться Cajus Ammon     11 мая 2018 в 19:14


Похожие вопросы:


Остаток от деления поплавка

Как вычислить остаток от деления двух float с?


Как вычислить остаток деления в SPARC Assembly?

Вот псевдокод, который вычисляет деление двух положительных целых чисел. HR регистр сохраняет остаток, а LR сохраняет дивиденды. (и в конечном итоге сохраняет root) Однако я думаю, что у этого…


Как найти остаток от деления в Ruby?

Я пытаюсь получить остаток от деления, используя Ruby. Допустим, мы пытаемся разделить 208 на 11. Финал должен быть 18 with a remainder of 10…что мне в конечном счете нужно, так это 10 . Вот что у…


Найти остаток от деления числа

Как я мог найти остаток от деления числа в Python? Например: Если число равно 26, а деленное число равно 7, то остаток от деления равен 5. (с тех пор 7+7+7=21 и 26-21=5.)


остаток от целочисленного деления на 0

Рассмотрим целочисленное деление a = bq + r где a, b, q, r соответственно: дивиденд, делитель, частное и остаток. В частности, когда b = 0, нет единственного q, который удовлетворял бы уравнению для…


ios как проверить, является ли остаток от деления целым числом

кто-нибудь из вас знает, как я могу проверить, является ли остаток от деления целым числом или нулем? if ( integer ( 3/2))


как найти остаток от деления

Q=A/B, Q-действительное число, выраженное в виде пары 8 бит: наиболее значимые 8 бит для целочисленной части наименее значимые 8 бит для дробной части номер без знака например: 0 0 1 0 1 1 0 1 . 0 1…


Целочисленный остаток от деления не получается

Целочисленный остаток от деления не получается. Число от 7 до 30 лежит в $interval->d . Я всегда получаю 0, почему это? $w = $interval->d % 7; $result .= $interval->format($w == 1 ? %w week…


Divmod: частное и остаток от деления в одной функции Elixir

Во многих языках программирования существует комбинированная операция, которая возвращает как частное, так и остаток от деления в виде целых чисел. Во многих случаях он называется divmod , потому…


Целочисленное деление модуля и целочисленный остаток деления с балериной

Как это сделать, целочисленное деление по модулю и остаток от целочисленного деления операции с балериной ?

Арифметические операторы в C++ | Уроки по С++

  Обновл. 30 Июл 2021  | 

На этом уроке мы рассмотрим арифметические операторы и их использование в языке С++.

Унарные арифметические операторы

Унарные операторы — это операторы, которые применяются только к одному операнду. Существуют два унарных арифметических оператора: плюс (+) и минус ().

ОператорСимволПримерОперация
Унарный плюс++xЗначение x
Унарный минус−xОтрицательное значение x

Унарный оператор + возвращает значение операнда. Другими словами, +5 = 5 или +х = х. Унарный плюс вам, скорее всего, не придется использовать. Его по большей части добавили в качестве симметрии с унарным оператором минус. Унарный оператор минус возвращает операнд, умноженный на −1. Например, если х = 5, то −х = −5.

Оба этих оператора пишутся непосредственно перед самим операндом, без пробела (−x, а не − x).

Не следует путать унарный оператор минус с бинарным оператором вычитания, хоть они и используют один и тот же символ. Например, в выражении х = 5 − −3;, первый минус — это оператор вычитания, а второй — унарный минус.

Бинарные арифметические операторы

Бинарные операторы — это операторы, которые применяются к двум операндам (слева и справа). Существует 5 бинарных операторов.

ОператорСимволПримерОперация
Сложение+x + yx плюс y
Вычитаниеx − yx минус y
Умножение*x * yx умножить на y
Деление/x / yx разделить на y
Деление с остатком%x % yОстаток от деления x на y

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

Деление целых чисел и чисел типа с плавающей точкой

Оператор деления имеет два режима. Если оба операнда являются целыми числами, то оператор выполняет целочисленное деление. Т.е. любая дробь (больше/меньше) отбрасывается и возвращается целое значение без остатка, например, 7 / 4 = 1.

Если один или оба операнда типа с плавающей точкой, то тогда будет выполняться деление типа с плавающей точкой. Здесь уже дробь присутствует. Например, выражения 7.0 / 3 = 2.333, 7 / 3.0 = 2.333 или 7.0 / 3.0 = 2.333 имеют один и тот же результат.

Попытки деления на 0 (или на 0.0) станут причиной сбоя в вашей программе, и это правило не следует забывать!

Использование оператора static_cast в операциях деления

На уроке о символьном типе данных char мы уже использовали оператор static_cast для вывода ASCII-символов в виде целых чисел.

Аналогичным образом мы можем использовать static_cast для конвертации целого числа в число типа с плавающей точкой. Таким образом, вместо целочисленного деления выполнится деление типа с плавающей точкой. Например:

#include <iostream> int main() { int x = 7; int y = 4; std::cout << «int / int = » << x / y << «\n»; std::cout << «double / int = » << static_cast<double>(x) / y << «\n»; std::cout << «int / double = » << x / static_cast<double>(y) << «\n»; std::cout << «double / double = » << static_cast<double>(x) / static_cast<double>(y) << «\n»; return 0; }

#include <iostream>

int main()

{

    int x = 7;

    int y = 4;

    std::cout << «int / int = » << x / y << «\n»;

    std::cout << «double / int = » << static_cast<double>(x) / y << «\n»;

    std::cout << «int / double = » << x / static_cast<double>(y) << «\n»;

    std::cout << «double / double = » << static_cast<double>(x) / static_cast<double>(y) << «\n»;

    return 0;

}

Результат выполнения программы:

int / int = 1
double / int = 1.75
int / double = 1.75
double / double = 1.75

Деление с остатком

Оператор деления с остатком (%) работает только с целочисленными операндами и возвращает остаток от целочисленного деления. Например:

   Пример №1: 7 / 4 = 1 с остатком 3, таким образом, 7 % 4 = 3.

   Пример №2: 25 / 7 = 3 с остатком 4, таким образом, 25 % 7 = 4. Остаток составляет не дробь, а целое число.

   Пример №3: 36 % 5 = 7 с остатком 1. В числе 36 только 35 делится на 5 без остатка, поэтому 36 − 35 = 1, 1 — это остаток и результат.

Данный оператор чаще всего используют для проверки деления без остатка одних чисел на другие. Если х % у == 0, то х делится на у без остатка.

Например, мы хотим написать программу, которая выводит числа от 1 до 100 по 20 значений в каждой строке. Мы можем использовать оператор деления с остатком для создания разрыва строк. Несмотря на то, что мы еще не рассматривали цикл while, в следующей программе всё максимально просто и понятно:

#include <iostream> int main() { // Переменная count хранит текущее число для вывода int count = 1; // начинаем с 1 // Повторение операции (цикл) до тех пор, пока count не будет равен 100 while (count <= 100) { std::cout << count << » «; // вывод текущего числа // Если count делится на 20 без остатка, то вставляем разрыв строки и продолжаем с новой строки if (count % 20 == 0) std::cout << «\n»; count = count + 1; // переходим к следующему числу } // конец while return 0; } // конец main()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include <iostream>

int main()

{

    // Переменная count хранит текущее число для вывода

    int count = 1; // начинаем с 1

    // Повторение операции (цикл) до тех пор, пока count не будет равен 100

    while (count <= 100)

    {

        std::cout << count << » «; // вывод текущего числа

        // Если count делится на 20 без остатка, то вставляем разрыв строки и продолжаем с новой строки

        if (count % 20 == 0)

            std::cout << «\n»;

        count = count + 1; // переходим к следующему числу

    } // конец while

    return 0;

} // конец main()

Результат выполнения программы:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

О while мы еще поговорим на соответствующем уроке.

Отрицательные числа в операциях деления до C++11

До C++11, если любой из операндов целочисленного деления является отрицательным, то компилятор округляет результат самостоятельно! Например, результатом −5 / 2 может быть либо −3, либо −2. Однако большинство современных компиляторов округляют числа в сторону нуля (например, в −5 / 2 результатом будет −2). В спецификации C++11 определили, что компилятор должен всегда округлять к нулю (или, проще говоря, просто отбрасывать дробь).

Также до C++11, если один из операндов оператора деления с остатком является отрицательным, то результат может быть как положительным, так и отрицательным! Например, результатом −5 % 2 может быть как 1, так и −1. В спецификации C++11 решили сделать так, чтобы результат a % b был того же знака, что и значение а.

Арифметические операторы присваивания

ОператорСимволПримерОперация
Присваивание=x = yПрисваиваем значение y переменной x
Сложение с присваиванием+=x += yДобавляем y к x
Вычитание с присваиванием−=x −= yВычитаем y из x
Умножение с присваиванием*=x *= yУмножаем x на y
Деление с присваиванием/=x /= yДелим x на y
Деление с остатком и с присваиванием%=x %= yПрисваиваем остаток от деления x на y переменной x

До этого момента, когда нам нужно было добавить число 5 к определенной переменной, мы делали следующее:

Это работает, но требуется два оператора для выполнения.

Так как стейтменты типа х = х + 5 являются очень распространенными, то C++ предоставляет 5 арифметических операторов присваивания для нашего удобства. Вместо х = х + 5, мы можем записать:

Вместо:

Мы можем записать:

Где оператор возведения в степень?

В языке C++ вместо оператора возведения в степень есть функция pow(), которая находится в заголовочном файле cmath. pow(base, exponent) эквивалентно baseexponent. Стоит отметить, что параметры pow() имеют тип double, поэтому вы можете использовать не только целые числа, но и дробные. Например:

#include <iostream> #include <cmath> // подключаем pow() int main() { std::cout << «Enter the base: «; double base; std::cin >> base; std::cout << «Enter the exponent: «; double exp; std::cin >> exp; std::cout << base << «^» << exp << » = » << pow(base, exp) << «\n»; return 0; }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#include <iostream>

#include <cmath> // подключаем pow()

int main()

{

    std::cout << «Enter the base: «;

    double base;

    std::cin >> base;

    std::cout << «Enter the exponent: «;

    double exp;

    std::cin >> exp;

    std::cout << base << «^» << exp << » = » << pow(base, exp) << «\n»;

    return 0;

}

Тест

Задание №1

Вычислите результат следующего выражения: 6 + 5 * 4 % 3.

Ответ №1

Поскольку операторы * и % имеют более высокий приоритет, чем оператор +, то оператор + будет выполняться последним. Мы можем переписать наше выражение следующим образом: 6 + (5 * 4 % 3). Операторы * и % имеют одинаковый приоритет, но их ассоциативность слева направо, так что левый оператор будет выполняться первым. Получается: 6 + ((5 * 4) % 3).

6 + ((5 * 4) % 3) = 6 + (20 % 3) = 6 + 2 = 8

Ответ: 8.

Задание №2

Напишите программу, которая просит пользователя ввести целое число, а затем сообщает, является ли его число чётным или нечётным. Напишите функцию isEven(), которая возвращает true, если целое число является чётным. Используйте оператор деления с остатком, чтобы определить чётность числа.

Подсказка: Используйте ветвление if и оператор сравнения (==).

Ответ №2

#include <iostream> bool isEven(int x) { // Если x % 2 == 0, то x — это чётное число return (x % 2) == 0; } int main() { std::cout << «Enter an integer: «; int x; std::cin >> x; if (isEven(x)) std::cout << x << » is even\n»; else std::cout << x << » is odd\n»; return 0; }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include <iostream>

bool isEven(int x)

{

    // Если x % 2 == 0, то x — это чётное число

    return (x % 2) == 0;

}

int main()

{

    std::cout << «Enter an integer: «;

    int x;

    std::cin >> x;

    if (isEven(x))

        std::cout << x << » is even\n»;

    else

        std::cout << x << » is odd\n»;

    return 0;

}

Возможно, вы хотели написать или написали функцию isEven() следующим образом:

bool isEven(int x) { if ((x % 2) == 0) return true; else return false; }

bool isEven(int x)

{

    if ((x % 2) == 0)

        return true;

    else

        return false;

}

Хотя этот способ тоже рабочий, но он сложнее. Посмотрим, как его можно упростить. Во-первых, давайте вытащим условие if и присвоим его отдельной переменной типа bool:

bool isEven(int x) { bool isEven = (x % 2) == 0; if (isEven) // isEven — true return true; else // isEven — false return false; }

bool isEven(int x)

{

    bool isEven = (x % 2) == 0;

    if (isEven) // isEven — true

        return true;

    else // isEven — false

        return false;

}

В коде, приведенном выше, если переменная isEven имеет значение true, то возвращаем true, в противном случае (если isEven имеет значение false) — возвращаем false. Мы же можем сразу возвращать isEven:

bool isEven(int x) { bool isEven = (x % 2) == 0; return isEven; }

bool isEven(int x)

{

    bool isEven = (x % 2) == 0;

    return isEven;

}

Так как переменная isEven используется только один раз, то мы можем её вообще исключить:

bool isEven(int x) { return (x % 2) == 0; }

bool isEven(int x)

{

    return (x % 2) == 0;

}

Оценить статью:

Загрузка…

Поделиться в социальных сетях:

Функция ОСТАТ в Excel (получение остатка от деления) | MS Office

Функция ОСТАТ в Excel предназначена для получения остатка от деления одного числа на другое. Относится к группе математических формул программы, использовать которую очень просто (смотрите описание функции ОСТАТ, а также примеры и видео-урок).