Во многих приложениях есть скидки — столько-то процентов на тот или иной товар. Поэтому программисты должны уметь запрограммировать взятие процента — просто умножить на число процентов и поделить на 100. Но не стоит путать оператор % и взятие процента. Исторически сложилось, что символ % обозначает в Java остаток от деления нацело.
Когда вам нужно посчитать процент от заданного числа, то нужно умножить это число на количество процентов и поделить на 100. Аналогичный способ – умножить число на ноль запятая количество процентов. Проценты часто используются, чтобы рассчитать значения цены со скидкой или когда вам известна пропорция — сколько A составляет от B в процентах.
Пример. Обычная цена товара составляет 4000 руб, но сейчас действует скидка 15 процентов. Выведите на экран сумму со скидкой:
// не забываем о коварстве деления нацело и пишем 15.0, // а не просто 15 — см. предыдущую тему System.out.println (4000*15.0/100); // это будет 15% от исходной величины — 600 рублей System.out.println (4000*0.15); // это то же самое // Теперь сама новая цена — это старая минус сумма скидки: System.out.println (4000 — 4000*0.15); // Аналогично мы можем писать и с помощью переменных double price = 4000; // исходная цена — могла быть прочитана из файла или базы данных double discount_percent = 15; // величина скидки в процентах double discount_value = price * discount_percent / 100; // величина скидки в рублях double new_price = price — discount_value; // новая цена за вычетом скидки
Не стоит путать оператор % и взятие процента. Исторически сложилось, что символ % обозначает в Java вычисление остатка от деления нацело.
Деление с остатком (по модулю). Уроки программирования на С++ для начинающих.
Посмотрим в коде:
/* Посчитаем остаток от деления 100 на 10. Делится нацело, поэтому остаток – ноль*/ int s = 100%10; // 100 не делится нацело на 11 – в остатке остаётся 1 s = 101%10; // s равно 1 s = 102%10 // s равно 2 s = 119%10 // s равно 9 s = 120%10 // s равно 0, деление нацело, то есть остатка нет
В программировании часто используется остаток от деления, чтобы описать циклически меняющуюся величину. Дело в том, что если исходная величина все время возрастает, то остаток от деления на постоянную величину будет расти, но затем пойдет снова с нуля. Посмотрим в коде, заодно вспомним оператор инкремента ++ (увеличить переменную на 1):
int a = 3; System.out.println ( a % 3); // распечатать остаток от деления a на 3. Сейчас он равен нулю. a ++; // означает «увеличить a на 1, эквивалентно a += 1 . Теперь a стало равно 4 System.out.println ( a % 3); // распечатать остаток от деления a на 3. Сейчас это 1. a ++; // а равно 5 System.out.println ( a % 3); // остаток 2 a ++; // а равно 6 System.out.println ( a % 3); // остаток 0 a ++; // а равно 7 System.out.println ( a % 3); // остаток 1 // Как видно, выражение a%3 все время пробегает повторяющийся набор значений: // 0, 1, 2, 0, 1, 2, 0, 1, 2 и так далее.
Как видите, мы все время повторяли команды a++ и распечатка a%3. Чтобы не писать один и тот же код много раз применяют циклы, они позволяют запускать кусок кода много раз подряд. Но о циклах в следующих разделах, а пока мы поняли, что % — остаток от деления одного числа на другое бывает полезен, чтобы сформировать последовательность чисел от нуля до заданного числа, повторяющуюся подряд нужное число раз. Такие последовательности бывают нужны в самых разных задачах, например, когда вы хотите задать координаты персонажам в игре и расставить их по экрану — каждый следующий правее, и так до конца экрана, а потом снова слева направо уже по следующей строчке.
Как работает процент (%) / остаток от деления в программировании?
Самое главное мы уже освоили. Теперь время решать задачи. Ответьте на несколько вопросов, чтобы лучше усвоился новый материал:
Источник: progtoday.ru
Python. Как написать программу для нахождения остатка от деления?
Напишите программу, которая находит остаток от деления числа x на число y и выводит результат на экран. Чтение чисел осуществляется с клавиатуры.
На ввод программе дается 2 числа x,y. Вводить третью переменную, в которой будет осуществляться операция НЕ НУЖНО.
комментировать
в избранное
vdtes t [30.7K]
более года назад
Для ввода значений с клавиатуры используем функцию input(«. «) с соответствующей подсказкой
Для для нахождения остатка от деления используется оператор %
Для обработки целых значений делимого и делителя (x и y) подойдёт следующая программа:
x=int(input(«Делим ое X=»))
y=int(input(«Делит ель Y=»))
print(f’остаток от деления X/Y=’)
Делимое X=25
Делитель Y=3
остаток от деления X%Y=1
Если x и y могут быть десятичными числами, то код программы будет таким:
x=float(input(«Дел имое X=»))
y=float(input(«Дел итель Y=»))
print(f’остаток от деления X%Y=’)
Делимое X=25.5
Делитель Y=3
остаток от деления X%Y=1.5
Источник: www.bolshoyvopros.ru
Как проверить, есть ли остаток от деления чисел в С++?
С математической точки зрения, операция вычисления остатка в C/С++ для отрицательных чисел, например -11 % 8 == -3 , выдаёт не тот результат к которому мы привыкли со школьной скамьи. Конечно, это вопрос договорённости, но. Эта проблема иногда вызывает недоумение и горячие споры.
Если задача определить лишь отсутствие остатка, тогда достаточно % . Однако, есть частное решение когда делитель — это число степени 2. Этот же способ является наиболее простым для определения остатка от деления на числа больше 1 равные степени 2.
int a; int b; //2 в степени n if (a (8 — 1) == 5 else //остаток равен нулю. Например, -8 (4-1) последовательность периодическая
n -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 n 3) < case 0: /*событие 1*/; break; case 1: /*событие 2*/; break; case 2: /*событие 3*/; break; case 3: /*событие 4*/; break; >
и быть уверенным, что каждое событие будет возникать с завидной регулярностью независимо от знака i и дополнительных case не потребуется.
Источник: ru.stackoverflow.com