Задачи по Java для начинающих
Собрали для вас практические задачи по программированию Java для начинающих разработчиков с примерами решений. Это простые задачи с собеседований Java, которые позволят попрактиковаться или самостоятельно подготовиться к интервью.
Задача 1
Напишите программу, которая выводит на экран числа от 1 до 10.
Самый простой вариант решения этой Java-задачи — использовать цикл for :
public class NumbersFromOneToTen < public static void main(String[] args) < for (int i = 1; i > >
Задача 2
Напишите программу, которая находит сумму всех чисел от 1 до 100.
В данном случае также вполне достаточно рассчитать сумму в цикле for :
public class SumOfNumbers < public static void main(String[] args) < int sum = 0; for (int i = 1; i System.out.println("Сумма чисел от 1 до 100: " + sum); > >
Задача 3
Найдите факториал заданного числа.
Факториал числа — это произведение всех натуральных чисел от 1 до заданного числа. Например, факториал числа 5 равен 5 * 4 * 3 * 2 * 1 = 120.
В Java программу для нахождения факториала заданного числа можно написать с помощью цикла for или рекурсии. Ниже приведен пример программы с использованием цикла for :
public class FactorialCalculator < public static void main(String[] args) < int number = 5; // Заданное число, для которого мы хотим найти факториал int factorial = 1; // Изначально присваиваем факториалу значение 1 // Используем цикл for для нахождения факториала for (int i = 1; i // Выводим результат System.out.println("Факториал числа " + number + " равен " + factorial); > >
Запустив эту программу, вы получите вывод:
Факториал числа 5 равен 120
Обратите внимание, что для больших значений number , факториал может стать очень большим числом, превышающим максимальное значение типа данных. В таких случаях лучше использовать типы данных с большим диапазоном, такие как long или BigInteger .
Задача 4
Напишите проверку, является ли заданное число простым.
Почему-то с этой задачей по Java у многих начинающих разработчиков на собеседованиях возникают проблемы. На самом деле, решение этой Java-задачи максимально простое:
public class PrimeNumberCheck < public static void main(String[] args) < int number = 17; boolean isPrime = true; for (int i = 2; i > System.out.println(number + " является простым числом: " + isPrime); > >
Задача 5
Отсортируйте массив по значению в порядке возрастания и убывания.
Для сортировки массива по значению в порядке возрастания и убывания в Java можно использовать методы сортировки, доступные в Java Arrays классе. Для сортировки по возрастанию используется метод Arrays.sort() , а для сортировки по убыванию можно воспользоваться классом Comparator и методом Arrays.sort() :
import java.util.Arrays; import java.util.Comparator; public class ArraySorting < public static void main(String[] args) < int[] array = ; // Сортировка массива по возрастанию Arrays.sort(array); System.out.println("Массив, отсортированный по возрастанию:"); for (int num : array) < System.out.print(num + " "); >// Сортировка массива по убыванию Integer[] boxedArray = Arrays.stream(array).boxed().toArray(Integer[]::new); Arrays.sort(boxedArray, Comparator.reverseOrder()); System.out.println("\nМассив, отсортированный по убыванию:"); for (int num : boxedArray) < System.out.print(num + " "); >> >
Задача 6
Напишите на Java простой код, который переводит целое число в строку, при том что его можно применить в любой системе счисления.
Решить эту простую задачу Java не составит труда. Для перевода целого числа в строку в любой системе счисления, можно воспользоваться методом Integer.toString() или Long.toString() , которые позволяют задать основание системы счисления вторым аргументом:
public class NumberToStringConverter < public static void main(String[] args) < int number = 123; int base = 16; // Задаем систему счисления (например, 16 для шестнадцатеричной) String numberAsString = convertToString(number, base); System.out.println(number + " в системе счисления " + base + ": " + numberAsString); >public static String convertToString(int number, int base) < return Integer.toString(number, base); >>
Задача 7
Напишите программу, которая инвертирует массив (меняет порядок элементов на противоположный).
public class ArrayReverse < public static void main(String[] args) < int[] array = ; int temp; int length = array.length; for (int i = 0; i < length / 2; i++) < temp = array[i]; array[i] = array[length - i - 1]; array[length - i - 1] = temp; >System.out.print("Инвертированный массив: "); for (int element : array) < System.out.print(element + " "); >> >
Задача 8
Отсортируйте словарь по значению в порядке возрастания и убывания. Объясните решение.
Да, эта практическая задача по Java похожа на задачу пятую. Однако!
Для сортировки словаря ( Map ) по значению в порядке возрастания и убывания в Java можно использовать интерфейс Comparator и методы сортировки, доступные в Java Collections Framework. Для этого нужно представить словарь в виде списка пар «ключ-значение» и затем отсортировать этот список на основе значений. Предположим, у нас есть словарь Map с именами и их возрастами:
import java.util.*; public class DictionarySorting < public static void main(String[] args) < // Создаем и заполняем словарь имен и возрастов Mapdictionary = new HashMap<>(); dictionary.put("Анна", 25); dictionary.put("Петр", 32); dictionary.put("Мария", 18); dictionary.put("Иван", 40); dictionary.put("Елена", 28); // Сортировка словаря по значению (возрастанию) List sortedAscending = new ArrayList<>(dictionary.entrySet()); Collections.sort(sortedAscending, new Comparator() < @Override public int compare(Map.Entryo1, Map.Entry o2) < return o1.getValue().compareTo(o2.getValue()); >>); // Вывод отсортированного словаря (по возрастанию) System.out.println("Словарь, отсортированный по возрастанию:"); for (Map.Entry entry : sortedAscending) < System.out.println(entry.getKey() + ": " + entry.getValue()); >// Сортировка словаря по значению (убыванию) List sortedDescending = new ArrayList<>(dictionary.entrySet()); Collections.sort(sortedDescending, new Comparator() < @Override public int compare(Map.Entryo1, Map.Entry o2) < return o2.getValue().compareTo(o1.getValue()); >>); // Вывод отсортированного словаря (по убыванию) System.out.println("\nСловарь, отсортированный по убыванию:"); for (Map.Entry entry : sortedDescending) < System.out.println(entry.getKey() + ": " + entry.getValue()); >> >
Надеемся, вам понравилась подборка задач по Java. Пишите свои варианты решения, а также задачи, которые попадались на собеседованиях вам.
Также рекомендуем порешать задачи по Python и JavaScript.
Что думаете?
Недавно у меня появилась потребность реализовать асинхронную реализацию для VK Messenger на PHP, решил выложить в открытый доступ) https://github.com/ctapu4ok/vk-messenger-sdk
Я называю это «синдромом сомалийского космонавта».Дело не в тебе и не твоих силах и талантах, беда как раз в рынке. На росиях и окраинах это галерные галеры не по факту так по духу.А на галерах нужны в первую очередь рабы. Без особых талантов но со скилом грести именно вот этим вот веслом , потому что оно такое от заказчика и не важно в болоте твоя галера или в пустыне, ты должен грести даже если завтра весло будет из бумаги а после завтра его не будет вообще, ты должен продолжать грести руками, ногами, но при этом продолжать делать вид что у тебя в руках весло а если ты однажды психанешь — это значит у тебя нет софтскилов и эмпатии , ты не командный игрок и вообще гавно и почему ты не сказал о том что ты гавно на собеседовании !? Гавно должно честно говорить на собесе что оно гавно!Вот и девочка — автор в статье увещевает, ну гавно ты, но мы же все люди, все понимаем, 98 лет.
from sklearn import datasets import pandas as pd from sklearn.metrics import classification_report from sklearn.metrics import confusion_matrixfrom sklearn.metrics import accuracy_scorefrom sklearn.neighbors import KNeighborsClassifier from sklearn.svm import SVC import sklearn as sk data = pd.read_csv(‘iris.csv’)data.drop(‘Id’, axis=1, inplace=True) # «.iloc» принимает row_indexer, column_indexer X = data.iloc[. -1].values # Теперь выделим нужный столбецy = data[‘Species’]# test_size показывает, какой объем данных нужно выделить для тестового набора# Random_state — просто сид для случайной генерации# Этот параметр можно использовать для воссоздания определённого результата: X_train, X_test, y_train, y_test = sk.model_selection.train_test_split(X, y, test_size=0.20, random_state=27)SVC_model = sk.svm.SVC()# В KNN-модели нужно указать параметр n_neighbors# Это число точек, на которое будет смотреть# классификатор, чтобы определить, к какому классу принадлежит новая точка KNN_model = KNeighborsClassifier(n_neighbors=5)SVC_model.fit(X_train, y_train)KNN_model.fit(X_train, y_train)SVC_prediction = SVC_model.predict(X_test)KNN_prediction = KNN_model.predict(X_test)print(SVC_prediction)print(KNN_prediction)# Оценка точности — простейший вариант оценки работы классификатораprint(accuracy_score(SVC_prediction, y_test))print(accuracy_score(KNN_prediction, y_test))# Но матрица неточности и отчёт о классификации дадут больше информации о производительностиprint(confusion_matrix(SVC_prediction, y_test))print(classification_report(KNN_prediction, y_test))
Методы Java: упражнения, практика, решение
Упражнения по методу Java [16 упражнений с решением]
1. Напишите метод Java, чтобы найти наименьшее число среди трех чисел. Перейти к редактору
Тестовые данные:
Введите первое число: 25
Введите второе число: 37
Введите третье число: 29
Ожидаемый результат:
2. Напишите метод Java для вычисления среднего из трех чисел. Перейти к редактору
Тестовые данные:
Введите первое число: 25
Введите второе число: 45
Введите третье число: 65
Ожидаемый результат:
3. Напишите метод Java для отображения среднего символа строки. Перейти к редактору
Примечание: а) Если длина строки нечетная, будет два средних символа.
б) Если длина строки четная, будет один средний символ.
Тестовые данные:
Введите строку: 350
Ожидаемый результат:
Средний символ в строке: 5
4. Напишите метод Java для подсчета всех гласных в строке. Перейти к редактору
Тестовые данные:
Введите строку: w3resource
Ожидаемый результат:
Количество гласных в строке: 4
5. Напишите метод Java для подсчета всех слов в строке. Перейти к редактору
Тестовые данные:
Введите строку: быстрая коричневая лиса перепрыгивает через ленивую собаку.
Ожидаемый результат:
Количество слов в строке: 9
6. Напишите метод Java для вычисления суммы цифр в целом числе. Перейти к редактору
Тестовые данные:
Введите целое число: 25
Ожидаемый результат:
7. Напишите метод Java для отображения первых 50 пятиугольных чисел. Перейти к редактору
Примечание. Пятиугольное число — это фигурное число, которое расширяет концепцию треугольных и квадратных чисел до пятиугольника, но, в отличие от первых двух, шаблоны, используемые при построении пятиугольных чисел, не являются вращательно-симметричными.
Ожидаемый результат:
1 5 12 22 35 51 70 92 117 145 176 210 247 287 330 376 425 477 532 590 651 715 782 852 925 1001 1080 1162 1247 1335 1426 1520 1617 1717 1820 1926 2035 2147 2262 2380 2501 2625 2752 2882 3015 3151 3290 3432 3577 3725
8. Напишите метод Java для расчета будущей инвестиционной стоимости с заданной процентной ставкой в течение определенного количества лет. Перейти к редактору
Примерные данные (Ежемесячно составлено) и Вывод:
Введите сумму инвестиций: 1000
Введите процентную ставку: 10
Введите количество лет: 5
Years FutureValue 1 1104,71 2 1220,39 3 1348,18 4 1489,35 5 1645,31
9. Напишите метод Java для печати символов между двумя символами (т.е. от A до P). Перейти к редактору
Примечание: печатает 20 символов в строке
() * +, -. / 0 1 2 3 4 5 6 7 8 9:; ? @ ABCDEFGHIJKLMNOPQRSTU VWXYZ [] ^ _ `abcdefghijklmnopqrstu vwxyz
10. Напишите метод Java, чтобы проверить, является ли введенный пользователем год (целое число) високосным или нет. Перейти к редактору
11. Напишите метод Java, чтобы проверить, является ли строка действительным паролем. Перейти к редактору
Правила пароля:
Пароль должен содержать не менее десяти символов.
Пароль состоит только из букв и цифр.
Пароль должен содержать не менее двух цифр.
1. Пароль должен содержать не менее восьми символов. 2. Пароль состоит только из букв и цифр. 3. Пароль должен содержать как минимум две цифры Введите пароль (Вы соглашаетесь с вышеуказанными Условиями и положениями.): Abcd1234 Пароль действителен: abcd1234
12. Напишите метод Java (принимает число n в качестве входных данных), чтобы отобразить матрицу n-на-n. Перейти к редактору
Введите число: 10 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0
13. Напишите методы Java для вычисления площади треугольника. Перейти к редактору
Входная сторона-1: 10 Входная сторона-2: 15 Входная сторона-3: 20 Площадь треугольника составляет 72,6184377413890.
14. Напишите метод Java для создания области пятиугольника. Перейти к редактору
Введите количество сторон: 5 Введите сторону: 6 Площадь пятиугольника составляет 61,93718642120281
15. Напишите метод Java для отображения текущей даты и времени. Перейти к редактору
Текущая дата и время: среда, 25 января 2017 г. 7:47:43
16. Напишите метод Java, чтобы найти все двойные простые числа меньше 100. Перейти в редактор
(3, 5) (5, 7) (11, 13) (17, 19) (29, 31) (41, 43) (59, 61) (71, 73)
Редактор Java-кода
Еще не все !
Не отправляйте решение вышеупомянутых упражнений здесь, если вы хотите внести вклад, перейдите на соответствующую страницу упражнения.