2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
1

Что означает оператор %= ?

08.04.2013, 12:32. Показов 60367. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что означает оператор %= и как его использовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2013, 12:32
Ответы с готовыми решениями:

Что означает оператор -> ?
Замечаю периодически в листингах. Почитал на сайтах, не до конца понял. Обьясните, пожалуйста

Что означает оператор A = b >= c;
a = b >= c; Что это означает?

Пожалуйста подскажите, что означает оператор!
Доброго времени суток. Перевожу Сишный исходник в Делфи и столкнулся с такой строкой v5 = **(_DWORD...

Что конкретно означает оператор . (точка) при вызове каких либо функций?
Например, функция s.size() вычисляет длину строки s. Так есть где-нибудь определение этой точки? В...

25
В астрале
Эксперт С++
8048 / 4805 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
08.04.2013, 12:36 2
programina, % с присваиванием очевидно. http://liveworkspace.org/code/WGWQD$1
Но тут зависит от того, для какого типа он используется (может быть перегружен и значить что угодно).
1
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
08.04.2013, 12:41  [ТС] 3
Цитата Сообщение от ForEveR Посмотреть сообщение
programina, % с присваиванием.
почему выдает ошибку
C++
1
int a %= 5;
0
328 / 327 / 92
Регистрация: 16.12.2012
Сообщений: 544
08.04.2013, 12:45 4
в данном случает вы пытаетесь присвоить переменной а остаток от деления на 5.
Т.е. a = a % 5;
Но ведь вам надо вначале инициализировать эту переменную, прежде чем вычислять остаток от деления значения этой переменной.\
Сделайте так:
C++
1
2
int a = 13;
a %= 5; // будет 3
2
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
08.04.2013, 12:50  [ТС] 5
SummerRain,
ForEveR,
спасибо.
0
0 / 0 / 0
Регистрация: 07.10.2019
Сообщений: 6
23.08.2021, 15:51 6
У меня тоже вопрос по присваиванию. Отвечал на короткие задачи и споткнулся вот на таком примере:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string>
using namespace std;
int main()
{
  int m=9;
  int a=1;
  a%=m;
  cout<<a<<endl;
}
В ответе показывает 1. Но почему?
Насколько я понимаю в примере происходит следущее:
a%=m это 1/9 =0.111 то есть остаток ноль. и он присваивается переменной a.
0
318 / 215 / 114
Регистрация: 14.05.2020
Сообщений: 890
23.08.2021, 16:02 7
Yri7, ну все правильно, 1 % 9 != 0;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
int main(void)
{
    int i = 1;
    while(i < 10) {
        
        std::cout << (i % 9) << std::endl;
        ++i;
    }
    
    
    
 
    return EXIT_SUCCESS;
}
1
17410 / 9246 / 2260
Регистрация: 30.01.2014
Сообщений: 16,183
23.08.2021, 16:07 8
Yri7, Вы неправильно понимаете семантику оператора %.
a % b - это не a / b,
это - a - (a / b) * b
1
из племени тумба-юбма
2412 / 1741 / 405
Регистрация: 29.11.2015
Сообщений: 8,440
Записей в блоге: 14
23.08.2021, 16:14 9
Цитата Сообщение от DrOffset Посмотреть сообщение
Вы неправильно понимаете семантику оператора %
Иными словами, если a<b, то результат a%b всегда будет равен a.
1
Evg
Эксперт CАвтор FAQ
21265 / 8281 / 637
Регистрация: 30.03.2009
Сообщений: 22,645
Записей в блоге: 30
23.08.2021, 17:10 10
Цитата Сообщение от DrOffset Посмотреть сообщение
Вы неправильно понимаете семантику оператора %
Он не правильно понимает, что такое остаток от деления. Похоже, что он думает, что остаток - это целая часть от вещественного результата деления (но точно не уверен)

Цитата Сообщение от мама Стифлера Посмотреть сообщение
Иными словами, если a<b, то результат a%b всегда будет равен a
При условии, что "a" неотрицательное, а "b" положительные
2
0 / 0 / 0
Регистрация: 07.10.2019
Сообщений: 6
23.08.2021, 17:52 11
Спасибо, убедительно.

Добавлено через 7 минут
Цитата Сообщение от Evg Посмотреть сообщение
Он не правильно понимает, что такое остаток от деления. Похоже, что он думает, что остаток - это целая часть от вещественного результата деления (но точно не уверен)

Да, где то я упустил при изучении. Перечитаю.


При условии, что "a" неотрицательное, а "b" положительные
Цитата Сообщение от мама Стифлера Посмотреть сообщение
Иными словами, если a<b, то результат a%b всегда будет равен a.
Спасибо. Приму к сведению.
0
Evg
Эксперт CАвтор FAQ
21265 / 8281 / 637
Регистрация: 30.03.2009
Сообщений: 22,645
Записей в блоге: 30
23.08.2021, 18:15 12
Цитата Сообщение от Yri7 Посмотреть сообщение
Да, где то я упустил при изучении. Перечитаю
Что такое остаток от деления, обычно изучают во 2-м классе
0
0 / 0 / 0
Регистрация: 07.10.2019
Сообщений: 6
23.08.2021, 18:28 13
Цитата Сообщение от Evg Посмотреть сообщение
Что такое остаток от деления, обычно изучают во 2-м классе
Что такое остаток деления я прекрасно понимаю. Я имею ввиду что я видимо не понял как это работает С++.
Я ориентировался по этому примеру

Цитата Сообщение от SummerRain Посмотреть сообщение
в данном случает вы пытаетесь присвоить переменной а остаток от деления на 5.
Т.е.
a = a % 5;
Но ведь вам надо вначале инициализировать эту переменную, прежде чем вычислять остаток от деления значения этой переменной.
Сделайте так:


1 int a = 13;
2 a %= 5; // будет 3
Т.е. переменной а присваивалось значение остатка.
Но в данном случае он не сработал.
0
Вездепух
Эксперт CЭксперт С++
10904 / 5901 / 1613
Регистрация: 18.10.2014
Сообщений: 14,832
23.08.2021, 18:36 14
Цитата Сообщение от Yri7 Посмотреть сообщение
Но в данном случае он не сработал.
В каком "данном случае" и что именно "не сработало"?
0
из племени тумба-юбма
2412 / 1741 / 405
Регистрация: 29.11.2015
Сообщений: 8,440
Записей в блоге: 14
23.08.2021, 18:57 15
Цитата Сообщение от Yri7 Посмотреть сообщение
Что такое остаток деления я прекрасно понимаю. Я имею ввиду что я видимо не понял как это работает С++
Язык С++ тут не причем, это чисто арифметический термин. Ну зайдите вы на википедию, посмотрите как вычисляется остаток.
1
0 / 0 / 0
Регистрация: 07.10.2019
Сообщений: 6
23.08.2021, 19:00 16
Вы меня все больше запутываете.
Возможно я неправильно выразился.
Сработало но не стем результатом что я ожидал. Я плаваю в данных моментах, я признаю в этом.
Но потому я сюда и пришел что бы прояснить ситуацию
0
зомбяк
1581 / 1215 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
23.08.2021, 19:01 17
Цитата Сообщение от Yri7 Посмотреть сообщение
1/9 =0.111 то есть остаток ноль
Результат деления называется частным деления, и оно тут действительно 0. Остаток - это чуть другое.
1
0 / 0 / 0
Регистрация: 07.10.2019
Сообщений: 6
23.08.2021, 19:13 18
Да я согласен. Но скажите ведь в коде a%m мы получаем именно остаток.
0
Вездепух
Эксперт CЭксперт С++
10904 / 5901 / 1613
Регистрация: 18.10.2014
Сообщений: 14,832
23.08.2021, 19:22 19
Цитата Сообщение от Yri7 Посмотреть сообщение
Но скажите ведь в коде a%m мы получаем именно остаток.
Да, именно отстаток. Остаток от деления 1 на 9 равен 1. Что вас в этом удивляет?

Цитата Сообщение от Yri7 Посмотреть сообщение
Сработало но не стем результатом что я ожидал.
Тут никому не интересны туманные рассказы о ваших несбывшихся ожиданиях. Приводите конкретные значения: что ожидалось и что получилось.
0
"C with Classes"
1634 / 1392 / 521
Регистрация: 16.08.2014
Сообщений: 5,828
Записей в блоге: 1
23.08.2021, 19:33 20
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Что вас в этом удивляет?
Думаю, вопрос естественный, почему математики решили что если делимое меньше делителя, то нужно в качестве ответа (остатка) вернуть делимое, ведь здравый смысл подсказывает, что невозможно получить остаток от деления если делимое меньше делителя.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2021, 19:33
Помогаю со студенческими работами здесь

Что означает оператор "->" в заголовке функции
Встретил такой код: template &lt;typename T, typename T1&gt; auto compose(T a, T1 b) -&gt; decltype(a + b)...

Что означает и делает оператор ">>="
Глупый вопрос, но тем не менее. Что означает и делает оператор &quot;&gt;&gt;=&quot;. Может есть русское описание?

Как означает оператор ^
Microsoft visual studio C++ 2010, что означает оператор &quot;^&quot;? пример: system::String...

Поясните пожалуйста что означает двоеточие и то что идет после него
В 4 строчке после параметра в скобочках нету &quot;;&quot; или же тела функции, что не сходится с моим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru