Задание на лабораторную работу
Last updated
Was this helpful?
Last updated
Was this helpful?
Скачайте архив с заданием на первую лабораторную работу.
Откройте IntelliJ IDEA (предварительно установите плагин EduTools), выберите пункт Learn and Teach -> Import Local Course
Выберите архив с заданием
Откройте задание с помощью кнопки Open
Задание на лабораторную работу состоит из 7 задач, которые необходимо решить
Для решения каждой задачи требуется написать код для метода и вернуть правильное значение. Условие работы метода описано в правой части окна. После написания кода, нажмите кнопку Check, чтобы проверить, правильно ли вы реализовали метод.
Давайте рассмотрим выполнение лабораторной работы на примере первой задачи.
Нам необходимо реализовать метод sleepIn()
. Согласно условию задачи, метод принимает на вход булеву переменную weekday
(будний ли день) и переменную vacation
(отпуск или нет).
Давайте нажмем кнопку Check и посмотрим, что произойдет.
Как мы видим, изначально задача не решена, нам необходимо корректно реализовать метод.
Согласно условию задачи, метод возвращает true
, если выходной или отпуск. Очевидно, что код метода будет выглядеть следующим образом.
Проверим правильность написания кода.
Ура, задача решена. Для успешной сдачи лабораторной работы необходимо выполнить все 7 задач.
На всякий случай, продублируем условия задач на первую лабораторную работу
Метод sleepIn() принимает решение о том, необходимо ли нам проснуться или можно еще поспать. Нужно проснуться, если будний день и нет отпуска
Параметр weekday определяет, будний ли день
Параметр vacation определяет, отпуск или нет
Метод возвращает true, если можно еще поспать и false в обратном случае
Дано два числа, метод closeToTen() возвращает число, которое наиболее близко к 10. Если оба числа равноблизки к 10, то метод возвращает 0.
Подсказка: используйте метод Math.abs() для получения абсолютного значения числа. Пример:
closeToTen(8, 13) -> 8 (число 8 ближе к 10)
closeToTen(8, 11) -> 11 (число 11 ближе к 10)
closeToTen(13, 7) -> 0 (оба числа равноблизки к 10)
Метод принимает на вход массив и возвращает массив в обратном порядке
Пример:
reverseArray([1,2,3]) -> [3,2,1]
reverseArray([7,0,0]) -> [0,0,7]
Метод принимает на вход два массива и возвращает массив, сумма элементов которого больше. Если суммы элементов массивов равны, метод возвращает первый массив.
Пример:
biggestArray([1,2,3], [1,2,4]) -> [1,2,4]
biggestArray([1,5,10], [15]) -> [1,5,10]
biggestArray([2,4,6], [10,2]) -> [2,4,6]
Метод принимает на вход число n >=0. Метод возвращает массив по шаблону {1, 1,2, 1,2,3, ...1,2,3..n}. Длина итогового массива = n*(n+1)/2
Пример:
seriesUp(3) -> [1, 1, 2, 1, 2, 3]
seriesUp(4) -> [1, 1, 2, 1, 2, 3, 1, 2, 3, 4]
seriesUp(2) -> [1, 1, 2]
Дан непустой массив. Метод возвращает true, если массив можно разбить на две части (необязательно равные) таким образом, чтобы сумма частей была равна.
Пример:
canSplit([1, 1, 1, 2, 1]) -> true ([1,1,1] [2,1])
canSplit([2, 1, 1, 2, 1]) -> false
canSplit([10, 1, 2, 3, 4]) -> true ([10] [1,2,3,4])
Дан массив, метод возвращает true если каждый элемент массива равен или больше предыдущему
Пример:
scoresIncreasing([1, 3, 4]) -> true
scoresIncreasing([1, 3, 2]) -> false
scoresIncreasing([1, 1, 4]) -> true
Реализуйте игру "Крестики-нолики". В игру играют два человека, поочередно вводя координаты поля, куда необходимо поставить крестик или нолик. Ввод происходит в формате [строка] [столбец]
. Например: 0 0
или 1 2
.
Сценарий игры будет примерно следующим
Ниже представлен возможный вариант метода для отрисовки поля. В данном случае подразумевается, что в двумерном массиве число 0
соответствует пустому полю, число 1
соответствует X
, а число - 1
соответствует 0
.
Блок-схема алгоритма программы может быть примерно следующей.
В качестве дополнительного задания необходимо предусмотреть метод для проверки корректности ввода: можно ставить крестик или нолик только в свободную ячейку, а также отслеживать выход за пределы поля при указании номера строки и столбца.
Если пользовательский ввод оказался некорректным, то программа просит игрока повторить ход.