Skip to content

GiniyatovIT14/Java-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

Проект Java/Лабораторная работа №1. Выполнил Гиниятов Фидан ИТ-14

Описание проекта

Проект представляет собой сборник из 20 различных задач по программированию на Java, разделенных на 4 тематических модуля При выполнении проекта использовались 5 классов из них 4 класса представляют собой по 5 методов, которые решают каждую задачу, и пятый класс, класс main, использовался для выбора задач. Так же в проекте для каждой задачи были добавлены по 1 методу (соответсвенно 5 в сумме для модуля) для соответствующего метода решения поставленной задачи. В них добавлены ввод данных пользователем, проверка ввода.

Структура проекта

Модуль 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)

Модуль 2: Условия (5 задач)

  • Задача 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;
    // остальные случаи...
}

Вход: "среда"
Вывод: среда, четверг, пятница, суббота, воскресенье

Модуль 3: Циклы (5 задач)

  • Задача 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"

Модуль 4: Массивы (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 модуля основных глав программирования: от базовых методов и условий до работы с циклами и массивами. Каждая задача представляет собой законченное решение с обработкой пользовательского ввода и проверкой данных, что делает проект практичным

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages