Skip to content

5. Арифмитические операции

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

Арифметические операторы в Java используются для выполнения математических операций. Основные арифметические операторы включают:

  • + (сложение)
  • - (вычитание)
  • * (умножение)
  • / (деление)
  • % (остаток от деления)

Теперь давайте рассмотрим задания, которые помогут вам научиться использовать арифметические операторы и выполнять простейшие арифметические задачи.

Задания

1. Возвести второе число в степень первого

import java.util.Scanner;

public class PowerOfNumbers {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите первое число (степень): ");
        int exponent = scanner.nextInt();
        System.out.print("Введите второе число (основание): ");
        int base = scanner.nextInt();

        double result = Math.pow(base, exponent);
        System.out.println(base + " в степени " + exponent + " равно " + result);
    }
}

2. Возвести 1 в степень 2, и результат в степень 3

public class PowerOfOne {
    public static void main(String[] args) {
        double result = Math.pow(1, 2);
        result = Math.pow(result, 3);
        System.out.println("1 в степени 2, а затем в степени 3 равно " + result);
    }
}

3. Решить предыдущую задачу, используя Math.pow только на одной строчке

public class PowerOfOneSingle {
    public static void main(String[] args) {
        double result = Math.pow(Math.pow(1, 2), 3);
        System.out.println("1 в степени 2, а затем в степени 3 равно " + result);
    }
}

4. Найти разницу в длине двух строк

import java.util.Scanner;

public class StringLengthDifference {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите первую строку: ");
        String str1 = scanner.nextLine();
        System.out.print("Введите вторую строку: ");
        String str2 = scanner.nextLine();

        int lengthDifference = Math.abs(str1.length() - str2.length());
        System.out.println("Разница в длине строк: " + lengthDifference);
    }
}

5. Найти разницу в длине самой короткой и самой длинной строки

import java.util.Scanner;

public class ShortestLongestStringDifference {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите первую строку: ");
        String str1 = scanner.nextLine();
        System.out.print("Введите вторую строку: ");
        String str2 = scanner.nextLine();
        System.out.print("Введите третью строку: ");
        String str3 = scanner.nextLine();

        int minLength = Math.min(str1.length(), Math.min(str2.length(), str3.length()));
        int maxLength = Math.max(str1.length(), Math.max(str2.length(), str3.length()));
        int lengthDifference = maxLength - minLength;

        System.out.println("Разница в длине самой короткой и самой длинной строки: " + lengthDifference);
    }
}

6. Найти разницу в длине самой короткой и самой длинной строки без использования операторов сравнения

import java.util.Scanner;

public class ShortestLongestStringDifferenceNoComparison {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите первую строку: ");
        String str1 = scanner.nextLine();
        System.out.print("Введите вторую строку: ");
        String str2 = scanner.nextLine();
        System.out.print("Введите третью строку: ");
        String str3 = scanner.nextLine();

        int length1 = str1.length();
        int length2 = str2.length();
        int length3 = str3.length();

        int minLength = length1 - ((length1 - length2) * ((length1 - length2) >> 31)) - ((length1 - length3) * ((length1 - length3) >> 31));
        int maxLength = length1 + ((length2 - length1) * ((length2 - length1) >> 31)) + ((length3 - length1) * ((length3 - length1) >> 31));

        int lengthDifference = maxLength - minLength;
        System.out.println("Разница в длине самой короткой и самой длинной строки: " + lengthКонечно! Продолжим с заданиями.

#### 6. Найти разницу в длине самой короткой и самой длинной строки без использования операторов сравнения (продолжение)

```java
        System.out.println("Разница в длине самой короткой и самой длинной строки: " + lengthDifference);
    }
}

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

7. Калькулятор для трех чисел

import java.util.Scanner;

public class SimpleCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Введите первое число: ");
        double firstNumber = scanner.nextDouble();
        System.out.print("Введите оператор (+, -, *, /): ");
        char operator1 = scanner.next().charAt(0);
        System.out.print("Введите второе число: ");
        double secondNumber = scanner.nextDouble();
        System.out.print("Введите второй оператор (+, -, *, /): ");
        char operator2 = scanner.next().charAt(0);
        System.out.print("Введите третье число: ");
        double thirdNumber = scanner.nextDouble();

        double result = 0;

        // Выполняем первое действие
        switch (operator1) {
            case '+':
                result = firstNumber + secondNumber;
                break;
            case '-':
                result = firstNumber - secondNumber;
                break;
            case '*':
                result = firstNumber * secondNumber;
                break;
            case '/':
                if (secondNumber != 0) {
                    result = firstNumber / secondNumber;
                } else {
                    System.out.println("Ошибка: деление на ноль.");
                    return;
                }
                break;
            default:
                System.out.println("Ошибка: неверный оператор.");
                return;
        }

        // Выполняем второе действие
        switch (operator2) {
            case '+':
                result += thirdNumber;
                break;
            case '-':
                result -= thirdNumber;
                break;
            case '*':
                result *= thirdNumber;
                break;
            case '/':
                if (thirdNumber != 0) {
                    result /= thirdNumber;
                } else {
                    System.out.println("Ошибка: деление на ноль.");
                    return;
                }
                break;
            default:
                System.out.println("Ошибка: неверный оператор.");
                return;
        }

        System.out.println("Результат: " + result);
    }
}

8. Калькулятор с учетом приоритета операций

import java.util.Scanner;

public class CalculatorWithPriority {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Введите первое число: ");
        double firstNumber = scanner.nextDouble();
        System.out.print("Введите оператор (+, -, *, /): ");
        char operator1 = scanner.next().charAt(0);
        System.out.print("Введите второе число: ");
        double secondNumber = scanner.nextDouble();
        System.out.print("Введите второй оператор (+, -, *, /): ");
        char operator2 = scanner.next().charAt(0);
        System.out.print("Введите третье число: ");
        double thirdNumber = scanner.nextDouble();

        double result = 0;

        // Сначала выполняем операции с более высоким приоритетом
        if (operator1 == '*' || operator1 == '/') {
            switch (operator1) {
                case '*':
                    result = firstNumber * secondNumber;
                    break;
                case '/':
                    if (secondNumber != 0) {
                        result = firstNumber / secondNumber;
                    } else {
                        System.out.println("Ошибка: деление на ноль.");
                        return;
                    }
                    break;
            }
            // Теперь выполняем вторую операцию
            switch (operator2) {
                case '+':
                    result += thirdNumber;
                    break;
                case '-':
                    result -= thirdNumber;
                    break;
                case '*':
                    result *= thirdNumber;
                    break;
                case '/':
                    if (thirdNumber != 0) {
                        result /= thirdNumber;
                    } else {
                        System.out.println("Ошибка: деление на ноль.");
                        return;
                    }
                    break;
            }
        } else {
            // Сначала выполняем первую операцию
            switch (operator1) {
                case '+':
                    result = firstNumber + secondNumber;
                    break;
                case '-':
                    result = firstNumber - secondNumber;
                    break;
            }
            // Теперь выполняем операцию с третьим числом
            switch (operator2) {
                case '+':
                    result += thirdNumber;
                    break;
                case '-':
                    result -= thirdNumber;
                    break;
                case '*':
                    result *= thirdNumber;
                    break;
                case '/':
                    if (thirdNumber != 0) {
                        result /= thirdNumber;
                    } else {
                        System.out.println("Ошибка: деление на ноль.");
                        return;
                    }
                    break;
            }
        }

        System.out.println("Результат: " + result);
    }
}

Объяснение: В этом примере мы сначала проверяем, является ли первый оператор умножением или делением. Если это так, мы выполняем эту операцию первой. Затем мы выполняем вторую операцию с учетом результата первой. Если первый оператор — это сложение или вычитание, мы сначала выполняем его, а затем выполняем операцию с третьим числом.

9. Вывести английский алфавит

public class EnglishAlphabet {
    public static void main(String[] args) {
        for (char letter = 'A'; letter <= 'Z'; letter++) {
            System.out.print(letter + " ");
        }
        System.out.println(); // Переход на новую строку
    }
}

Объяснение: В этом примере мы используем цикл for, чтобы пройтись по всем буквам английского алфавита от 'A' до 'Z' и вывести их на экран.

10. Вывести букву английского алфавита по счету N

import java.util.Scanner;

public class AlphabetByIndex {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите номер буквы (1-26): ");
        int n = scanner.nextInt();

        if (n >= 1 && n <= 26) {
            char letter = (char) ('A' + n - 1); // Преобразование индекса в букву
            System.out.println("Буква под номером " + n + ": " + letter);
        } else {
            System.out.println("Ошибка: введите число от 1 до 26.");
        }
    }
}

Объяснение: Здесь мы запрашиваем у пользователя номер буквы и преобразуем его в соответствующий символ, добавляя к 'A' (код 65) значение n - 1. Если введенное значение не попадает в диапазон от 1 до 26, выводится сообщение об ошибке.

11. Вывести случайную букву английского алфавита

import java.util.Random;

public class RandomAlphabet {
    public static void main(String[] args) {
        Random random = new Random();
        char randomLetter = (char) ('A' + random.nextInt(26)); // Генерация случайной буквы
        System.out.println("Случайная буква: " + randomLetter);
    }
}

Объяснение: В этом примере мы используем класс Random для генерации случайного числа от 0 до 25 и добавляем его к 'A', чтобы получить случайную букву английского алфавита.

12. Вывести случайное число от 11 до 22

import java.util.Random;

public class RandomNumber {
    public static void main(String[] args) {
        Random random = new Random();
        int randomNumber = random.nextInt(12) + 11; // Генерация случайного числа от 11 до 22
        System.out.println("Случайное число от 11 до 22: " + randomNumber);
    }
}

Объяснение: Здесь мы используем метод nextInt(12), который генерирует случайное число от 0 до 11, и добавляем 11, чтобы получить число в диапазоне от 11 до 22.

Заключение

В этом конспекте мы рассмотрели арифметические операторы в Java и выполнили различные задания, которые помогут вам научиться проводить простейшие арифметические задачи.