Программирование на Java
Задачник к онлайн курсу и учебнику
Блок 1. Раздел 1. Первые шаги, переменные
Задачник для самостоятельной практики
На онлайн занятиях решаем задачи, разбираем трудные места
Преподают опытные программисты, с нуля до мобильных приложений

Программирование на Java

Задачник
к онлайн курсу и учебнику
Блок 1. Раздел 1. Первые шаги, переменные

Задачник для самостоятельной практики
На онлайн занятиях решаем задачи, разбираем трудные места
Преподают опытные программисты, с нуля до мобильных приложений
На этой странице приведены задачи к разделу 1. В скобках указано, для какой темы та или иная задача. Для части задач дано решение, разобранное в учебнике, для других решения нет - его должны найти вы.
Совет. Для самопроверки задач на вычисления очень удобно использовать какой-либо инженерный калькулятор. В том числе есть варианты онлайн, например, wolframaplha - там нужно просто написать выражение в окно ввода, и сразу будет ответ. Например, для задачи "посчитать 1-2+3-4+5-6" можно ввести этот же текст в окно ввода и получить ответ -3, см. https://www.wolframalpha.com/input/?i=1-2%2B3-4%2B5-6 Программа не только всё посчитает, но ещё и покажет результат расчета по шагам, что тоже может помочь.

Кстати, если вдруг вам сложно установить Eclipse, Netbeans или IntelliJIdea, то можно сразу пробовать программировать в компиляторах онлайн. Вот например, https://www.jdoodle.com/online-java-compiler/.
Задача 1.1.1 (есть в учебнике, тема 1). Создайте новый проект и запустите в main распечатку. Должен получиться примерно такой код:
package javaapplication8; // у вас может быть другое название

public class JavaApplication8 {

    public static void main(String[] args) {  // стандартная шапка
        
        System.out.println("Привет!");
    }
}
Вывод программы
Привет!
Задача 1.1.2-а (тема 3). Запустите в main следующий код. Подумайте, почему деление даёт ноль, хотя это просто дробь меньше единицы. Замените у всех переменных тип int на double и посмотрите, что будет. Теперь дробь будет ненулевой и это правильно.
int x = 5;
int y = 7;
int z = 0;

z = x + y; // помещаем в z значение суммы 5+7=12
      System.out.println (z);
z = x — y; // помещаем в z значение разности 5-7=-2
      System.out.println (z);
z = x * y; // помещаем в z значение произведения 5*7=35
      System.out.println (z);
z = x / y; // помещаем в z значение произведения 5/7=0, так как тип int
      System.out.println (z);
Вывод программы
1) при типе переменных int:
12
-2
35
0

2) при типе переменных double:
12.0
-2.0
35.0
0.7142857142857143
Задача 1.1.2-b (Тема 3). Посчитайте выражения, выведите их на экран и убедитесь, что результат действительно правильный:
int x = 5, y = 7, z = 0;

z = x*x + y*y;
z = x*x*x;
z = x / 0; // делить на ноль нельзя и будет ошибка.
// Запомните, как она выглядит, и в будущем, обнаружив такую, будете знать,
// куда копать, чтобы исправить программу
Вывод программы
74
125
Exception in thread "main" java.lang.ArithmeticException: / by zero
Задача 1.1.3 (Тема 5). Запустите код. Подумайте, почему программа выдаст отрицательное число вместо двух миллиардов:
package javaapplication8;
public class Calculator {
    public static void main(String[] args) { 
        
        System.out.println("Привет!");

        System.out.println(Integer.MAX_VALUE);

        int z = 2147483647+1; 
                System.out.println(z);
  }    
}
Вывод программы
Привет!
2147483647
-2147483648
Задача 1.1.4 (Тема 5). Возможно вам придется гуглить и ориентироваться на местности - это нормально. Исправьте ошибки в коде:
package javaapplication8;
public class Calculator {
static void main(String[ args) {

         System.out.println("Привет!")

        int x = 2-1.2; 
        float y == x;       
        System.out.println(x);
}
Вывод программы
Всего в тексте 6 ошибок
Код
package javaapplication8;
public class Calculator {
public static void main(String[] args) {

System.out.println("Привет!");

double
x = 2-1.2;
double y = x;
System.out.println(x);
}
}

Задача 1.1.5 (Тема 5). Объявите 10 переменных типа int со значениями 0,1, 2, 3, 4, 5, 6, 7, 8, 9. Объявите ещё одну переменную int и сохраните в неё сумму этих переменных, деленную на 10. Получается, у вас будет среднее арифметическое этих чисел в одной переменной. Распечатайте её через println. Сколько программа отбросила в дробной части? Сравните со значением double.
Вывод программы
4 // вариант с int
4.5 // вариант с double
Задача 1.1.6 (Тема 4). Объявите 2 переменных типа double со значениями
x = 0.25, y = 0.9;
Посчитайте выражения, каждый раз выводя их на экране:
10*x + y
y * sqrt (x)
возведите x в степень y и затем вычтите 1
Вывод программы
3.4
0.45
-0.7128254112507413
Код
double x = 0.25, y = 0.9;
double z;
z = 10*x + y;
System.out.println(z);
z = y * Math.sqrt(x);
System.out.println(z);
z = Math.pow (x, y) - 1;
System.out.println(z);
Задача 1.1.7-a (Тема 4). Пусть x = -10; сколько будет Math.sqrt (x) ? Выведите на печать это значение.
Вывод программы
Должно получиться NaN - not a number, поскольку квадратный корень не извлекается из отрицательных чисел. Комплексные числа, придуманные в математике для обхода этой проблемы, доступны в специальных классах, но не в стандартном Math.
Задача 1.1.7-b (Тема 4). Пусть x = 5, y = 10; Выведите на экран sqrt (x*x + y*y); Это и есть гипотенуза треугольника со сторонами x, y.
Вывод программы
11.180339887498949
Задача 1.1.7-c (Тема 4). Проведите вычисления

x = 10, y = 20;

z = sqrt (y-x);

z = z +1;
Вывод программы
3.1622776601683795
4.16227766016838
Задача 1.1.7-d (Есть в учебнике, тема 4). Проведите вычисления:

x = 30, y = 40; 

z = |40-30| //модуль убирает знак минус у числа. Он оставляет положительные числа такими же, а отрицательные делает положительными. В Java это Math.abs (). 

z = z*z; 
Вывод программы
10
100
Задача 1.1.8 (Тема 6). Пусть цена товара A обычно составляет 1000 руб, и товара B составляет 500 руб. Если клиент покупает товары вместе, то на них действует скидка 10% на всю покупку. Выведите на экран переменную, которая стоимости суммы A+B со скидкой. Отдельно выведите на экран сумму скидки от этой покупки.
Вывод программы
Cумма покупки со скидкой: 1350.0
Сумма скидки: 150.0
Код
public static void main(String[] args) {

double A_price = 1000, B_price = 500, Discount = 0.1;
double AB_disc = (A_price+B_price)*(1-Discount);
double pride_dis = (A_price+B_price)*Discount;

System.out.println("Cумма покупки со скидкой: " + AB_disc);
System.out.println("Сумма скидки: " + pride_dis);

Задача 1.1.9 (тема 5). Исправьте ошибки в коде:
а) int x = 20 //должно быть объявление переменной икс = 20
    int x = x + 50; //должно быть увеличить икс на 50
б) u = 100; //должно быть объявление переменной u = 100
    int m = u * 2; // //должно быть объявление переменной m в два раза больше u
в) int k = (1 / 5) * 1000; //исправьте, чтобы результат не обнулялся.
Исправление программы
а) int x = 20;
x = x + 50;

б) int u = 100;
int m = u * 2;

в) double k = (1.0 / 5) * 1000;
Задача 1.1.10 (Тема 6). Сделайте расчет товаров со скидками. Лучше решить с переменными, чем без.

а) товар А стоит 200 руб и на него скидка 15%, а товар Б стоит 30 руб. Клиент взял 10 A и 2 Б. Выведите итоговую цену:

б) товар А стоит 500 руб и на него скидка 50%, а товар Б стоит 50 руб. Клиент взял 7 A и 1 Б. Выведите итоговую цену:

в) товар А стоит 300 руб и на него скидка 10%, а товар Б стоит 20 руб. Клиент взял 2 A и 3 Б. Выведите итоговую цену.

Вывод программы
а) 1760.0
б) 1800.0
в) 600.0
Создайте мобильные приложения и изучите Java с преподавателем
Самый востребованный язык на рынке труда
Группы до 15 человек, преподают опытные программисты
Проверим каждую строчку вашего кода
Cертификат и портфолио - своя мобильная игра и магазин
Создайте мобильные приложения и изучите Java с преподавателем
Самый востребованный язык на рынке труда
Группы до 15 человек, преподают опытные программисты
Проверим каждую строчку вашего кода
Cертификат и портфолио - своя мобильная игра и магазин