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 и выполнили различные задания, которые помогут вам научиться проводить простейшие арифметические задачи.