Проект представляет собой сборник из 20 различных задач по программированию на Java, разделенных на 4 тематических модуля При выполнении проекта использовались 5 классов из них 4 класса представляют собой по 5 методов, которые решают каждую задачу, и пятый класс, класс main, использовался для выбора задач. Так же в проекте для каждой задачи были добавлены по 1 методу (соответсвенно 5 в сумме для модуля) для соответствующего метода решения поставленной задачи. В них добавлены ввод данных пользователем, проверка ввода.
- Задача 1: Сумма двух последних цифр числа
// получение последних двух цифр и их сложение
int last = x % 10;
int lastlast = (x / 10) % 10;
return last + lastlast;
Вход: 1234
Вывод: 7 (4 + 3)
- Задача 2: Проверка положительного числа
// проверка на неотрицательное число
if (x >= 0) {
return true;
} else {
return false;
}
Вход: -5
Вывод: false
- Задача 3: Проверка заглавной буквы
// определение регистра символа
if (Character.isUpperCase(x)) {
return true;
}
else if (Character.isLowerCase(x)) {
return false;
}
Вход: 'A'
Вывод: true
- Задача 4: Проверка делителей
// проверка делимости чисел друг на друга
if (a % b == 0) {
return true;
}
else if (b % a == 0) {
return true;
}
else {
return false;
}
Вход: 10, 5
Вывод: true (10 делится на 5)
- Задача 5: Многократное сложение последних цифр
// сложение последних цифр двух чисел
return (a % 10) + (b % 10);
Вход: 123, 456
Вывод: 9 (3 + 6)
- Задача 6: Безопасное деление с проверкой на ноль
// защита от деления на ноль
if (y == 0) {
return 0;
}
else {
return (double) x / y;
}
Вход: 10, 0
Вывод: 0.0
- Задача 7: Сравнение двух чисел
// сравнение и формирование строки результата
if (x == y) {
return ("Результат: " + x + " == " + y);
}
else if (x > y) {
return ("Результат: " + x + " > " + y);
}
else {
return ("Результат: " + x + " < " + y);
}
Вход: 7, 3
Вывод: "Результат: 7 > 3"
- Задача 8: Проверка тройной суммы
// проверка, равна ли сумма двух чисел третьему
if ((x + y == z) || (x + z == y) || (y + z == x)) {
return true;
} else {
return false;
}
Вход: 3, 4, 7
Вывод: true (3 + 4 = 7)
- Задача 9: Определение правильного склонения для возраста
// выбор правильного склонения для русского языка
if ((x % 10 == 1) & (x % 100 != 11)) {
return ("год");
}
else if (((x % 10 == 2) || (x % 10 == 3) || (x % 10 == 4))
& (x % 100 != 12 & x % 100 != 13 & x % 100 != 14)) {
return ("года");
} else {
return ("лет");
}
Вход: 21
Вывод: "год"
- Задача 10: Вывод дней недели начиная с заданного
// вывод оставшихся дней недели через switch-case
switch (x) {
case "понедельник":
System.out.println(" понедельник\n вторник\n среда\n четверг\n пятница\n суббота\n воскресенье");
break;
// остальные случаи...
}
Вход: "среда"
Вывод: среда, четверг, пятница, суббота, воскресенье
- Задача 11: Вывод чисел в обратном порядке
// обратный перебор чисел через цикл for
for (int i = x; i != -1; i--) {
res.append(i).append(" ");
}
Вход: 5
Вывод: "5 4 3 2 1 0"
- Задача 12: Возведение числа в степень
// цикличное умножение для возведения в степень
for (int i = 0; i < y; i++) {
res *= x;
}
return res;
Вход: 2, 3
Вывод: 8 (2³)
- Задача 13: Проверка одинаковых цифр в числе
// проверка всех цифр числа на одинаковость
while (num_x > 0) {
if (num_x % 10 != last) return false;
num_x /= 10;
}
return true;
Вход: 444
Вывод: true
- Задача 14: Построение левого треугольника
// вложенные циклы для построения треугольника
for (int i = 1; i <= x; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.print("\n");
}
Вход: 3
Вывод:
*
**
- Задача 15: Игра "Угадай число"
// цикл угадывания с подсчетом попыток
while (guess != random_num) {
attempt++;
if (guess == random_num) {
System.out.println("Вы угадали число! Это число " + random_num);
}
}
Вход: 5 (загадано 5)
Вывод: "Вы угадали число! Это число 5"
- Задача 16: Поиск последнего вхождения элемента
// обратный поиск по массиву
for (int i = arr.length - 1; i >= 0; i--) {
if (arr[i] == x) return i;
}
return -1;
Вход: [1, 2, 3, 2, 4], 2
Вывод: 3
- Задача 17: Добавление элемента в массив
// создание нового массива и копирование элементов
int[] new_arr = new int[arr.length + 1];
for (int i = 0; i < pos; i++) new_arr[i] = arr[i];
new_arr[pos] = x;
for (int i = pos; i < arr.length; i++) new_arr[i + 1] = arr[i];
return new_arr;
Вход: [1, 2, 3], 9, 1
Вывод: [1, 9, 2, 3]
- Задача 18: Реверс массива
// перестановка элементов симметрично
for(int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
Вход: [1, 2, 3, 4]
Вывод: [4, 3, 2, 1]
- Задача 19: Объединение двух массивов
// последовательное копирование двух массивов
for (int i = 0; i < arr1.length; i++) res[i] = arr1[i];
for (int i = 0; i < arr2.length; i++) res[i + arr1.length] = arr2[i];
return res;
Вход: [1, 2], [3, 4]
Вывод: [1, 2, 3, 4]
- Задача 20: Удаление отрицательных элементов
// подсчет положительных и создание нового массива
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 0) cnt_positive++;
}
int[] res = new int[cnt_positive];
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 0) res[pos++] = arr[i];
}
return res;
Вход: [1, -2, 3, -4, 5]
Вывод: [1, 3, 5]
Данный проектп представляет собой 4 модуля основных глав программирования: от базовых методов и условий до работы с циклами и массивами. Каждая задача представляет собой законченное решение с обработкой пользовательского ввода и проверкой данных, что делает проект практичным