Java-програма для перевірки прямокутного трикутника
Джерело: Mayankvikash У цій статті продемонстровано розробку Java-програми для перевірки трикутника на наявність у ньому прямого кута. Прямокутний трикутник - це трикутник, у якого один із внутрішніх кутів дорівнює 90 градусів. Є кілька властивостей прямокутного трикутника; одне з них полягає в тому, що квадрат гіпотенузи дорівнює сумі квадрата катетів (перпендикуляра та основи трикутника). Це називається теорема Піфагора. Гіпотенуза – найдовша сторона трикутника.Логіка програми
Оскільки квадрат гіпотенузи дорівнює сумі квадратів двох інших сторін, потрібно обчислити цю суму. І якщо вона дорівнює квадрату гіпотенузи, то трикутник прямокутний. Скриншот програми: А тепер давайте напишемо програму. Ось її базова структура: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");
}
}
}
Висновок
Чи не прямокутний трикутник: Прямокутний трикутник:Створюємо свій власний алгоритм сортування
Джерело: Medium Завдяки цьому посібнику ви навчитеся виконувати сортування не тільки в порядку зростання або зменшення, але й на основі власних параметрів. Зазвичай на 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 при збереженні порядку.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ