Программирование на Java
Задачник к учебнику
Блок 1. Раздел 2. Оператор IF, строки
Задачник для самостоятельной практики

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

Задачник к учебнику
Блок 1. Раздел 2. Оператор IF, строки

Задачник для самостоятельной практики
На этой странице приведены задачи к разделу 2. В скобках указано, для какой темы та или иная задача. Для части задач дано решение, разобранное в учебнике, для других решения нет - его должны найти вы.
Задача 1.2.1 (есть в учебнике, тема 1). Как будет работать и что будет выдавать данная программа на экране?

package javaapplication5;
import java.util.Scanner;
public class JavaApplication5 {
    public static void main(String[] args) {
        Scanner myscan = new Scanner (System.in);
        
        System.out.println ("Привет!");
        System.out.println ("Введи первое число");

         double x = 0;
         x = myscan.nextDouble (); 

         System.out.println ("Введи второе число");
         double y = 0;
         y = myscan.nextDouble ();

         System.out.println (x + y);
    }             
}
Задача 1.2.2 (тема 3). Напишите тестеровщик на основе данного кода. Пусть он спрашивает не один вопрос как сейчас, а 3 вопроса.

package javaapplication5; //название проекта у вас будет какое-то свое
import java.util.Scanner;
public class JavaApplication5 { //здесь тоже свое 
    public static void main(String[] args) {
        Scanner myscan = new Scanner (System.in);
        
        System.out.println ("Привет!");
        System.out.println ("Сколько будет 25*5 ?");

         int x = 0;
         x = myscan.nextInt (); //считать int с клавиатуры и записать в x
        
        if (x == 125){
               System.out.println ("Да, это круто!");
        } else {
		System.out.println ("Абсолютная ложь!");
		}
	}
}
Задача 1.2.3. (есть в учебнике, тема 2). Что выведет программа, если человек наберет на клавиатуре abc?

package javaapplication1;
public class JavaApplication1 {
public static void main(String[] args) throws java.io.IOException  {
  char c0 = (char) System.in.read ();
  char c1 = (char) System.in.read ();
  char c2 = (char) System.in.read ();

  System.out.println (c2);
  System.out.println (c1);
  System.out.println (c0);
 }   
}
Задача 1.2.4. (есть в учебнике, тема 4) Напишите лотерею. Человек не знает, какие несколько конкретных чисел выигрышные, и пробует ввести их наугад от 0 до 100. Мы сообщаем о выигрыше, если введенное число равно 4, 10, 40 или 89. Напишите этот код с помощью пары операторов switch-case.
Задача 1.2.5. (есть в учебнике, тема 3) Может ли при каком либо x сработать else if (x>1000) в данном коде:

package javaapplication1;
import java.util.Scanner;
public class JavaApplication1 {
public static void main(String[] args) {

        Scanner myscan = new Scanner (System.in);
        
        int x = myscan.nextInt ();
        
        if (x>100)
            System.out.println ("x > 100");
        else if (x > 1000)
            System.out.println ("x > 1000");
        else
            System.out.println ("x <= 100");
 }   
}
Задача 1.2.6 (есть в учебнике, тема 4). Напишите калькулятор. Используйте Scanner и if.

а) Пусть человек вводит одно число, вводит второе и затем вводит символ '+', '-', '*' или '/'. В зависимости от символа выведите на экран результат выполнения арифметической операции.

б) С получившимся ответом предложите выполнить ещё одну операцию и уже нужно будет ввести символ операции и одно число и применить операцию к результату выполнения прошлой операции. Так сделайте 4 раза.

в) Добавьте возможность - если человек на любом этапе введёт символ 'q', то завершите программу на этом месте. Это опциональная, дополнительная задача. Вам поможет слово return - его можно написать внутри любого if и вообще в любом месте, и тогда текущая функция, то есть main, сразу завершится.

г) Дополнительная задача - Прочитайте в интернете, как работает функция hasNextInt класса Scanner, и с её помощью сделайте так, чтобы программа не падала, даже если пользователь вводит не число, а какое-то слово. Умение находить информацию в интернете – такое же важное, как и умение писать код. Читайте форумы, книги, документацию, help и так далее.
Задача 1.2.7 (тема 3). Считайте целое число с клавиатуры и сохраните его в переменную x. Выполните распечатку, в случае если

а) x равен 6 или 9

б) x больше -20 и одновременно меньше 100

в) x меньше 100 или больше 1000

Задача 1.2.8 (тема 5). Введите с клавиатуры строчку.
а) Если в ней есть буква 'a', то напечатайте "в этом тексте была буква a".

б) Если в строке содержится слово "арбуз", то напечатайте "в этом тексте было слово арбуз".

Введите ещё одну строчку с клавиатуры.

в) Если последние и начальные буквы двух этих двух строчек совпадают, то напечатайте, что программа это обнаружила.

г) Выведите на экран сначала одну из введенных строк, потом другую в порядке, в котором эти строки шли бы в словаре. Поможет одна из функций класса String.

д) Выведите ту строчку, в которой больше символов.

е) Выведите первую строчку без начального символа.

Задача 1.2.9 (тема 5). Напишите программу - прообраз текстового редактора с подсчетом статистики. Пусть пользователь может вводить несколько строчек текста, к примеру пять штук. Программа должна вывести, сколько в тексте было всего символов во всех 5 строчках. Если пользователь на каком-либо этапе ввёл "quit", то программа должна завершиться на этом этапе. Вам поможет слово return - его можно написать внутри любого if и вообще в любом месте, и тогда текущая функция, то есть main, сразу завершится.
Задача 1.2.10 (тема 1). Считайте с клавиатуры три дробных числа. Выведите их на экран в обратном порядке, при этом сделав их целыми, то есть отбросив дробную часть.

Задача 1.2.11 (тема 5). Считайте с клавиатуры строчку. Выведите её же, но все вхождения малой буквы 'a', замените на заглавную 'A'. Вам поможет функция replace класса String - узнайте как она действует самостоятельно.

Задача 1.2.12 (Тема 3). Сгенерируйте 3 случайных числа. Выведите самое большое из них.