JavaRush /Java блог /Random UA /Кава-брейк #170. Пишемо Java-програму для перевірки прямо...

Кава-брейк #170. Пишемо Java-програму для перевірки прямокутного трикутника. Створюємо свій власний алгоритм сортування

Стаття з групи Random UA

Java-програма для перевірки прямокутного трикутника

Джерело: Mayankvikash У цій статті продемонстровано розробку Java-програми для перевірки трикутника на наявність у ньому прямого кута. Прямокутний трикутник - це трикутник, у якого один із внутрішніх кутів дорівнює 90 градусів. Є кілька властивостей прямокутного трикутника; одне з них полягає в тому, що квадрат гіпотенузи дорівнює сумі квадрата катетів (перпендикуляра та основи трикутника). Це називається теорема Піфагора. Гіпотенуза – найдовша сторона трикутника. Кава-брейк #170.  Пишемо Java-програму для перевірки прямокутного трикутника.  Створюємо свій власний алгоритм сортування.

Логіка програми

Оскільки квадрат гіпотенузи дорівнює сумі квадратів двох інших сторін, потрібно обчислити цю суму. І якщо вона дорівнює квадрату гіпотенузи, то трикутник прямокутний. Скриншот програми: Кава-брейк #170.  Пишемо Java-програму для перевірки прямокутного трикутника.  Створюємо свій власний алгоритм сортування - 2А тепер давайте напишемо програму. Ось її базова структура:
import java.util*;
public class RightAngledTriangle{
  public static void main(String args[]){
    Scanner in = new Scanner(System.in);
    // code
  }
}
Оголошення змінних:
int h, p, b;
Запит користувача на введення:
System.out.println("Enter the Hypotenuse");
h = in.nextInt();
System.out.println("Enter the Perpendicular");
p = in.nextInt();
System.out.println("Enter the Base");
b = in.nextInt();
Простий спосіб перевірити, чи дорівнює квадрат гіпотенузи до суми квадратів перпендикуляра і основи, — використовувати if-else . Умова If-else :
if (h*h==(p*p)+(b*b)){
    System.out.println("Right Angled Triangle");
}
else{
    System.out.println("Not a right angled Traingle");
}

Код

import java.util.*;
public class RightAngledTriangle {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int h, p, b;
        System.out.println("Enter the Hypotenuse");
        h = in.nextInt();
        System.out.println("Enter the Perpendicular");
        p = in.nextInt();
        System.out.println("Enter the Base");
        b = in.nextInt();

        if (h*h==(p*p)+(b*b)){
            System.out.println("Right Angled Triangle");
        }
        else{
            System.out.println("Not a right angled Traingle");
        }

    }
}

Висновок

Чи не прямокутний трикутник: Кава-брейк #170.  Пишемо Java-програму для перевірки прямокутного трикутника.  Створюємо свій власний алгоритм сортування - 3Прямокутний трикутник: Кава-брейк #170.  Пишемо Java-програму для перевірки прямокутного трикутника.  Створюємо свій власний алгоритм сортування - 4

Створюємо свій власний алгоритм сортування

Джерело: Medium Завдяки цьому посібнику ви навчитеся виконувати сортування не тільки в порядку зростання або зменшення, але й на основі власних параметрів. Кава-брейк #170.  Пишемо Java-програму для перевірки прямокутного трикутника.  Створюємо свій власний алгоритм сортування - 5Зазвичай на Java або будь-якій іншій мові програмування ми сортуємо за зростанням або зменшенням. Але чи можна сортувати на основі власного параметра? Щоб з'ясувати це, давайте спочатку відсортуємо звичним способом – у порядку зростання чи спадання.
//Например, у нас есть массив
Integer array[]={9,4,8,5,7,6,1,2,3};

//Сортируем по возрастанию
Arrays.sort(array);

//печатаем отсортированный массив
System.out.println(Arrays.toString(array));

//Сортируем по убыванию
Arrays.sort(array, Collections.reverseOrder());

//печатаем отсортированный массив
System.out.println(Arrays.toString(array));
Вихід:
[1,2,3,4,5,6,7,8,9] [9,8,7,6,5,4,3,2,1]
Arrays.sort(array) — це метод колекцій Java для сортування масиву. Якщо він використовується без другого параметра, сортування відбувається в порядку зростання. У другому параметрі ми можемо визначити Collections.reverseOrder() для сортування в порядку зменшення. Але нам потрібно створити власний алгоритм сортування у другому параметрі. Як це зробити? Припустимо, нам потрібно впорядкувати числа в масиві таким чином, щоб при їх об'єднанні ми отримали число, яке є найбільшим з усіх чисел, за умови, що може бути змінена лише позиція чисел, а не цифри у цьому числі. Наприклад: {1,2,3,4}=>{4321} {12,34}=>{3412} {30,3}=>{330} {8,89}=>{898} У Java є клас Comparator , де ми повинні перевантажити функцію порівняння. Її принцип роботи полягає в тому, що якщо два елементи з'являються в порядку {item1, item2} , то вони будуть прийняті функцією порівняння (comparator) так:
public int compare(item 1, item2){

}
Якщо функція виводить позитивне значення, то функція сортування замінить місцями елементи. Тобто висновок у колекції буде {item2,item1} . Якщо функція виводить негативний чи нульовий результат, то порядок не зміниться, висновок залишиться тим самим: {item1,item2} . Ця логіка рекурсивно застосовна до всіх членів масиву. Отже, переходячи до вихідного питання, ми визначимо нашу логіку у класі компаратора, перевантаживши функцію compare() таким чином:
Collections.sort(A,new Comparator<Integer>(){

public int compare(Integer a,Integer b){
String a1=Integer.toString(a)+Integer.toString(b);
String a2=Integer.toString(b)+Integer.toString(a);
int l =a1.length();
for(int i=0;i<l;i++){

if(a1.charAt(i)>a2.charAt(i)){
return -1;
}

else if(a1.charAt(i)<a2.charAt(i)){
return 1;

}

else continue;

}

return 0;

}
Тут ми об'єднали два числа та перевірабо, яке з них більше. Ця логіка рекурсивно застосовується до решти в масиві, якщо потрібно отримати бажаний результат. Підбиваючи підсумки, використовуйте клас Comparator для перевантаження функції compare() . Це допоможе створити власну логіку сортування і повернути позитивне значення за зміни порядку появи в масиві, і негативне значення або 0 при збереженні порядку.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ