Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабРаб.doc
Скачиваний:
4
Добавлен:
02.09.2019
Размер:
236.03 Кб
Скачать

Примеры использования методов

Следующая программа ищет и выводит на экран все простые нетривиальные делители числа, введённого пользователем с клавиатуры, начиная с наибольшего из делителей, либо сообщает, что введённое число — является простым.

import java.util.Scanner; public class Main {      public static boolean isPrime(int n) {         for(int i = 2; i <= Math.sqrt(n) ; i++) {             if(n%i == 0) {                 return false;             }         }         return true;     }     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         System.out.print("Введите натуральное число: ");         if(sc.hasNextInt()) {             int u = sc.nextInt();             if(u > 0) {                 if(isPrime(u)) {                     System.out.println("Вы ввели простое число");                 } else {                     System.out.print("Простые делители числа: ");                     for(int i = (int)Math.sqrt(u); i >= 2  ; i--) {                         if(u%i == 0 && isPrime(i)) {                             System.out.print(i+" ");                         }                     }                     System.out.println();                 }             } else {                 System.out.println("Вы ввели не положительное число");             }         } else {             System.out.println("Вы ввели не целое число");         }     } }

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

Первый вариант метода будет просто переводить строку, т. е. фактически являться боле коротким синонимом встроенного метода System.out.println(). Параметров у этого варианта не будет.

Второй вариант метода (его первая перегрузка), проверяет, есть ли у числового аргумента дробная часть, если её нет, то аргумент приводится к целым и выводится на экран без нулевой дробной части (3 вместо 3.0). В этот метод смогут в качестве единственного аргумента передаваться не только переменные типа double, но и переменные любого другого типа, для которого возможно автоприведение к double (например, любые целочисленные переменные).

Третий метод с одним параметром просто вызывает четвёртый метод, передавая в качестве параметров ему полученный массив, а также пробел в качестве второго параметра. Обратите внимание, что мы вызываем метод, который будет описан далее по ходу программу, это вполне допустимо.

Четвёртый метод выводит числовой массив, обрабатывая каждый элемент уже существующим методом. После каждого выведенного элемента добавляется переданный в параметре разделитель.

public class Main {     public static void pr() {         System.out.println();     }     public static void pr(double d) {         if((int)d == d) {             System.out.print((int)d);         } else {             System.out.print(d);         }     }     public static void pr(double[] m) {         pr(m, " ");     }     public static void pr(double[] m, String s) {         for(int i = 0; i < m.length; i++) {             pr(m[i]);             System.out.print(s);         }     }     public static void main(String[] args) {         double[] arrn = {1, 2.71, 3.14, 15, -5, 92, 0.5};         double p = 3.0;         int k = 13;         pr(p); // вывод числа, без дробной части при возможности         pr(); // переводит строку         pr(arrn); // вывод числового массива в строку         pr(); // переводит строку         pr(arrn,", "); // вывод числового массива в строку через запятую         pr(); // переводит строку         pr(k); // вывод целого числа через автоприведение     } }

В результате работы программы на экран будет выведено:

3 1 2.71 3.14 15 -5 92 0.5 1, 2.71, 3.14, 15, -5, 92, 0.5, 1

Задачи

  1. Создать статический метод, который будет иметь два целочисленных параметра a и b, и в качестве своего значения возвращать случайное целое число из отрезка [a;b]. C помощью данного метода заполнить массив из 20 целых чисел и вывести его на экран.

  2. Создать метод, который будет выводить указанный массив на экран в строку. С помощью созданного метода и метода из предыдущей задачи заполнить 5 массивов из 10 элементов каждый случайными числами и вывести все 5 массивов на экран, каждый на отдельной строке.

  3. Создать метод, который будет сортировать указанный массив по возрастанию любым известным вам способом.

  4. В массиве хранится 7 явно заданных текстовых строк. Создать программу, которая отсортирует и выведет на экран строки в алфавитном порядке. Например, если были даны такие строки:

Пушкин Лермонтов Некрасов Толстой Л. Н. Толстой А. Н. Есенин Паустовский

Программа должна вывести на экран:

Есенин Лермонтов Некрасов Паустовский Пушкин Толстой А. Н. Толстой Л. Н.

Указание: прежде всего надо создать метод, устанавливающий отношения порядка для двух строк, переданных методу через аргументы.