Java - Функции. Решение import java util. Scanner class Main public static void main(String args)
Скачать 45.61 Kb.
|
Java - Функции Среднее значение Создайте функцию, которая будет принимать значение трех произвольных числовых параметров и производить расчет их среднего арифметического. Решение: import java.util.Scanner; class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Первое число: "); double x = in.nextDouble(); System.out.print("Второе число: "); double y = in.nextDouble(); System.out.print("Третье число: "); double z = in.nextDouble(); System.out.print("Среднее: " + average(x, y, z)); } public static double average(double x, double y, double z) { return (x + y + z) / 3; } } Одинаковые функции Создайте две функции с одинаковым названием. Первая функция должна подсчитывать сумму трех произвольных чисел, вторая – двух. Решение задания: class Main { public static void main(String[] args) { summ (19, 23); summ (23, 6, 8); } public static void summ (int a, int b, int c) { int res = a + b + c; System.out.println ("Сумма трех чисел: " + res); } public static void summ (int a, int b) { int res = a + b; System.out.println ("Сумма двух чисел: " + res); } } Округление просмотров Создайте функцию, которая будет округлять четырехзначные числа, заменяя все цифры, стоящие справа от разряда числа, буквой «К». Число менее тысячи будет выводиться без изменений. // Передаем число 1272 // Получаем - 1.2К Решение: class Main { public static void main(String[] args) { // Выполяем вызов функций views(1272); views(19334); views(936); } // Функция что принимает в параметре число public static void views(double views) { // Если число менее 1000, то возвращаем его без изменений if (views < 1000) { System.out.println(views); return; } // Делим число на 1000, чтобы получить лишь тысячи в числе double hundreds = views / 1000; // Умножаем и делим на 10, чтобы получить дробные числа после точки System.out.println(Math.round(hundreds * 10.0) / 10.0 + "K"); } } Подсчет всех чисел Создайте функцию, которая будет принимать число и выводить его как это показано в примере: // Есть число 782123 // Функция выведет в консоль следующее: 782123 82123 2123 123 23 3 То есть каждый раз выводиться число без первой цифры. Число может вводить сам пользователь. Решение задани: import java.util.Scanner; class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String num; // Сразу сделаем строкой, чтобы можно было разделить на символы System.out.print("Введите число: "); num = in.nextLine(); // Получаем число в виде строки printDigits(num); // Вызываем функцию } public static void printDigits(String str_num) { for (int i = 0; i < str_num.length(); i++) // Перебираем все число System.out.println(str_num.substring(i)); // Выводим на экран число // substring(i) - выводит число начиная с символа по индексу i // таким образом, каждый раз индекс увеличивается и число выводиться // без первой цифры каждый новый раз } } Правильное окончание для слов Создайте функцию, которая будет возвращать правильное окончание количеству лет. Например: при вводе числа 1 функция будет добавлять слово «год» (чтобы получилось 1 год), при вводе 2 – 2 года, при вводе 5 – 5 лет и т. д. Решение задани: class Main { public static void main(String[] args) { String[] arr = {"год", "года", "лет"}; System.out.println("23 " + ending (23, arr)); System.out.println("1 " + ending (1, arr)); System.out.println("18 " + ending (18, arr)); } public static String ending(int num, String[] words) { // Представим что у нас число 2000. // При получении остатка от 100 мы получим 20 // В условие мы это проверяем и если число было большим за 2000, // то мы от него в последствие получаем еще значение при делении на 10 num = num % 100; if (num > 19) num = num % 10; // Таким образом по итогу мы получили число в промежутке от 1 до 19 // Теперь мы можем проверить это число switch (num) { // Если 1, то первое слово из массива case 1: // Важно заметить, что break мы не ставим, // так как return и так выйдет из функции в целом return(words[0]); // 2, 3 и 4 берем второе значение из массива case 2: case 3: case 4: return(words[1]); default: // Для остального берем 3 значение из массива return(words[2]); } } } Простейшие функции Создайте две функции. Первая будет выводить текст в консоль, вторая будет принимать параметр в виде текста и выводить его в консоль. Важно: обе функции должны иметь одинаковое имя. Решение задани: class Main { public static void main(String[] args) { print(); print("Можете звать меня мистер Робот!"); } public static void print() { System.out.println("Вывод текст без параметра."); } public static void print(String str) { System.out.println(str); } } Минимальный по модулю Напишите функцию, которая будет принимать массив данных и выводить в консоль минимальный по модулю элемент массива. Массив данных: {9, 342, 2, -1, 34, -35, -12, -3, 4, -2, 23} Решение задани: class Main { public static void main(String[] args) { int[] arr = {9, 342, 2, -1, 34, -35, -12, -3, 4, -2, 23}; getMin(arr); } public static void getMin(int[] arr) { // Изначально минимальным пускай будет первый элемент // Плюс делаем его по модулю int min = Math.abs(arr[0]); // Перебираем все элементы и // если есть какой-то более минимальный элемент по модулю, // то запишем его как новый минимум for (int i = 1; i < arr.length; i++) { if (min > Math.abs(arr[i])) min = arr[i]; } System.out.println("Мнимальный элемент по модулю: " + min); } } Сравнение чисел Получите от пользователя два числа. Создайте функцию, которая сравнивает числа пользователя и возвращает результат в виде знаков >, < или =. Решение: import java.util.Scanner; public class Main { public static char ravenstvo(int a, int b) { if (a < b) return('<'); else if (a > b) return('>'); else return('='); } public static void main(String[] args) { int a1, b1; Scanner in = new Scanner(System.in); System.out.print("Введите первое число: "); a1 = in.nextInt(); System.out.print("Введите второе число: "); b1 = in.nextInt(); System.out.print(a1 + " " + ravenstvo(a1, b1) + " " + b1); } } Передача параметров Создайте функцию c тремя параметрами. Функция должна возвращать результат деление чисел. Дополнительно: проверка деления на ноль получите три числа от пользователя передайте числа в функцию Вот решение: import java.util.Scanner; public class Main { public static float delenie(float a, float b, float c) { if (b != 0 && c != 0) return (a / b / c); else return 1; } public static void main(String[] args) { float a1, b1, c1; Scanner in = new Scanner(System.in); System.out.print("Введите первое число: "); a1 = in.nextFloat(); System.out.print("Введите второе число: "); b1 = in.nextFloat(); System.out.print("Введите третье число: "); c1 = in.nextFloat(); System.out.print("Деление чисел равно: " + delenie(a1, b1, c1)); } } Перегрузка функций Создайте три функции с одним именем: Функция принимает два слова и выводит их через пробел; Функция принимает два целых числа и выводит каждое число с новой строки; Функция принимает одно число и одно булевое выражение и выводить их через пробел. Решение этого задания: public class Main { public static void printWords (String first, String second) { System.out.println(first + " " + second); } public static void printWords (int a, int b) { System.out.println(a); System.out.println(b); } public static void printWords (String word, boolean logic) { System.out.println(word + " " + logic); } public static void main(String[] args) { printWords ("Привет", "мир!"); printWords (15, 93); printWords ("Выражение равно", true); } } |