Задача 3.1.
Достаточно простая задача. Алгоритм определения чётности числа простой. Мы его уже разбирали. Если остаток от деления числа на 2 равен нулю, то число чётное, если не равен нулю - нечётное.
Давайте создадим целочисленную переменную и присвоим ей начальное значение.
int a = 5;
Для наглядности создадим переменную логического типа
boolean b;
Присвоим переменной b значение
b = (a % 2 == 0);
И принимаем к сведению, что если число, содержащееся в переменной a чётное, то остаток от деления его на 2 будет равен нулю, а значение переменной b будет true.
Выводим на экран текст, который был задан в условии задачи
System.out.println("Число " + a + " чётное - это " + b);
System.out.println("Число " + a + " нечётное - это " + !b);
Во второй строчке мы применили оператор ! Если число чётное, то b примет значение true. Если число нечётное, то надо заставить поменяться значению b на противоположное. Это мы и сделали с помощью оператора !
Всё. Задача решена. Полный код решения
Результат исполнения
На всякий случай проверяем с заменой цифры 5 на 10. Файл Chetnost.java заново сохраняем. Затем повторно компилируем и запускаем программу
Работает правильно.
Задача 3.2.
Идею как из четырёхзначного числа получить значения всех четырёх цифр я украду у себя из предыдущего урока. Повторяться и описывать её не буду. Возьму сразу код.
int a = 7890;
int a1;
int a2;
int a3;
int a4;
a1 = a / 1000 - (a % 1000) / 1000;
a %= 1000;
a2 = a / 100 - (a % 100) / 100;
a %= 100;
a3 = a / 10 - (a % 10) / 10;
a %= 10;
a4 = a;
Итак, у нас есть 4 переменных со значениями цифр - a1, a2, a3, a4 изначально заданного числа.
Для наглядности заведём переменную логического типа.
boolean b;
Смотрим условие задачи. Сумма цифр должна быть меньше или равна 15. Ну или не должна быть. Присваиваем переменной b значение логического выражения
b = ( (a1 + a2 + a3 + a4) <= 15);
Для большей наглядности для соблюдения приоритета операций (а это важно!), о которых мы поговорим в следующих уроках, с помощью скобок указываем, в каком порядке должны выполниться операторы сложения, сравнения и присвоения.
Выводим текст на экран
System.out.println("Сумма цифр числа " + a1 + a2 + a3 + a4 + " меньше или равна 15 - это " + b);
Всё. Сохраняем файл
Компилируем и запускаем
Ещё одна задача решена. Попробуйте самостоятельно подставить число 1234 и проверить результат.
Задача 4.1.
Задача достаточно простая. Давайте решать.
Для номера месяца создадим целочисленную переменную
int mes = 4;
Отдельных переменных под название времен года создавать не вижу смысла.
Воспользуемся оператором if
Давайте определимся с условиями, при которых можно отнести месяц к какому-то времени года.
Зима. Номер месяца должен быть 1, 2 или 12.
Весна. Номер месяца должен быть в интервале от 3 до 5 включительно.
Лето. Номер месяца должен быть в интервале от 6 до 8 включительно.
Осень. Номер месяца должен быть в интервале от 9 до 11 включительно.
Теперь предлагаю наши условия отобразить в виде кода
if ( (mes == 1) || (mes == 2) || (mes == 12) )
{
System.out.println("Время года месяца с номером " + mes + " - зима");
}
На что нужно обратить внимание в этом коде. Мы воспользовались оператором логическое ИЛИ ||. То есть если хотя бы одно из трёх условий сложного выражения будет верно, то выполнится тот код, который указан в фигурных скобках. Если все три выражения ложны, то код в фигурных скобках не выполнится. И второй момент. Мы заключили всё сложное выражение в скобки, чтобы компилятор нас понял правильно, ну и для наглядности.
Для весны можно также воспользоваться оператором ИЛИ, но мы для разнообразия воспользуемся оператором логическое И &&. Код для весны будет такой:
if ( (mes >= 3) && (mes <= 5) )
{
System.out.println("Время года месяца с номером " + mes + " - весна");
}
Здесь уже оба выражения в скобках должны быть истинными, чтобы выполнился код в фигурных скобках.
Теперь сделаем аналогично весне лето и осень.
if ( (mes >= 6) && (mes <= 8) )
{
System.out.println("Время года месяца с номером " + mes + " - лето");
}
if ( (mes >= 9) && (mes <= 11) )
{
System.out.println("Время года месяца с номером " + mes + " - осень");
}
Осталось сохранить
Скомпилировать и запустить
Для номера месяца 4 работает. Попробуйте самостоятельно поменять номер месяца и проверить, правильно ли программа выполнится.
Задача 4.2.
Эта задача совсем простенькая.
Пусть число будет целым. Объявляем переменную и задаём ей начальное значение.
int a = -10;
Для модуля числа объявим вторую переменную b и сразу присвоим ей значение переменной a. Дальше напишу зачем присваивать ей значение переменной a.
int b = a;
Дальше на выбор. Либо пользуемся тернарным оператором, либо оператором if.
Для варианта с тернарным оператором код следующий
b = (a > 0) ? a : -a;
Что сделает этот оператор? Если a > 0, то переменной b будет присвоено значение переменной a. Если выражение в скобках неверно, то переменной b будет присвоено значение -a. В нашем случае a = -10, т.е. выражение в скобках ложно, соответственно переменной b будет присвоено значение - (-10), то есть +10.
Для варианта с оператором if код будет таким
if (a < 0) b = -a;
Тут, думаю, вопросов не возникает.
И обещал написать, пишу. Если бы мы в начале кода не присвоили переменной b значение переменной a, то сейчас нам бы пришлось заморачиваться с else. Иначе в случае когда a больше или равно 0, у нас бы переменная b осталась без значения и компилятор выдал бы ошибку.
Дальше выводим на экран текст
System.out.println("Модуль числа " + a + " - это " + b);
Для случая когда a = 0 у нас тоже всё хорошо. Модуль нуля - ноль. Поэтому проблем с ним не возникнет.
Всё задача решена. Полный код решения
или такой
Результат выполнения в обоих случая одинаков и он такой
Ссылка на предыдущий урок
Ссылка на следующий урок
Ссылка на содержание курса