Приоритет операций

thmn8

Администратор
Сообщения
1 472
Реакции
311
Сайт
tehadm.ru
При решении данных примеров, только приоритет операций не поможет. Потребуется ассоциативность операций. Потому что если, допустим, раскладывать выражение только по приоритету операций, то получается совсем другое число.
Пример 1:
Java:
int a = 2;
int b = 5;
int result = b * 3 + 20 / 2 * a--;
Задание: Используя приоритеты операций, разложить выражение int result = b * 3 + 20 / 2 * a-- по шагам.

Пример 2:
Java:
int num1 = 4;
        int num2 = 5;
        int num3 = 15;
        int num4 = 10;
        int num5 = 5;
        int result = 12;

        result += num1 * num2 + num3 % num4 / num5;
Задание: Используя приоритеты операций, разложить выражение result += num1 * num2 + num3 % num4 / num5 по шагам.

Пример 3:
Java:
int x = 8;
int y = 9;
int z = x++ + ++y;
Задание: Чему будет равна переменная z после выполнения следующего кода и почему?

Пример 4:
Задание:
Какие арифметические операторы являются правоассоциативными?

Пример 5:
Java:
        double x = 8.8;
        double y = 1.5;
        double z = x - y;
        System.out.println(z);
Задание: Что будет выведено на консоль в результате выполнения следующего кода?
 
Последнее редактирование:
Код:
//1: a--;         // 2
//2: b * 3;      //15
//3: 20 / 2;     // 10
//4: 10 * 2;     // 20
//5: 15 + 20;  // 35
Ответ: 35

Код:
//Сразу расставим приоритеты, и приведем в нормальный вид:
//result = 12 + (4 * 5) + (15 % 10) / 5;
//1: 4 * 5 = 20
//2: 15 % 10 = 5
//3: 5 / 5 = 1
//4: 12 + 20 = 32
//5: 32 + 1 = 33
Ответ: 33

Код:
//Подставим значения переменных
//int z = 8++ + ++9;
//8++ = 8
//++9 = 10
//10 + 8 = 18
//8++ увеличит значение на единицу, но возвратит ее предыдущее значение - число 8
//++9 увеличит значение и возвратит ее новое значение, то есть число 10
Ответ: 18

Решение данного вопроса я нашел не сразу (хотя конечно, мог подсмотреть, подсказку), но стал гуглить.
Ответ: префиксный инкремент и декремент

Ответ: 7.300000000000001
 
Последнее редактирование:
Назад
Верх Низ