JavaRush /Blog Java /Random-PL /Przerwa kawowa #170. Piszemy program w Javie sprawdzający...

Przerwa kawowa #170. Piszemy program w Javie sprawdzający trójkąt prostokątny. Tworzenie własnego algorytmu sortowania

Opublikowano w grupie Random-PL

Program Java do sprawdzania trójkąta prostokątnego

Źródło: Mayankvikash W tym artykule zaprezentowano rozwój programu w języku Java służącego do testowania trójkąta w celu sprawdzenia, czy ma on kąt prosty. Trójkąt prostokątny to trójkąt, którego jeden z kątów wewnętrznych ma miarę 90 stopni. Istnieje kilka właściwości trójkąta prostokątnego; jedną z nich jest to, że kwadrat przeciwprostokątnej jest równy sumie kwadratów nóg (prostopadłej i podstawy trójkąta). Nazywa się to twierdzeniem Pitagorasa. Przeciwprostokątna to najdłuższy bok trójkąta. Przerwa kawowa #170.  Piszemy program w Javie sprawdzający trójkąt prostokątny.  Stwórz własny algorytm sortowania - 1

Logika programu

Ponieważ kwadrat przeciwprostokątnej jest równy sumie kwadratów pozostałych dwóch boków, musimy obliczyć tę sumę. A jeśli jest równy kwadratowi przeciwprostokątnej, to trójkąt jest prostokątny. Zrzut ekranu programu: Przerwa kawowa #170.  Piszemy program w Javie sprawdzający trójkąt prostokątny.  Stworzenie własnego algorytmu sortowania - 2Teraz napiszmy program. Oto jego podstawowa struktura:
import java.util*;
public class RightAngledTriangle{
  public static void main(String args[]){
    Scanner in = new Scanner(System.in);
    // code
  }
}
Deklaracja zmiennych:
int h, p, b;
Monit użytkownika o wprowadzenie danych:
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();
Prostym sposobem sprawdzenia, czy kwadrat przeciwprostokątnej jest równy sumie kwadratów prostopadłej i podstawy, jest użycie if-else . Warunek if-else :
if (h*h==(p*p)+(b*b)){
    System.out.println("Right Angled Triangle");
}
else{
    System.out.println("Not a right angled Traingle");
}

Kod

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");
        }

    }
}

Wniosek

Trójkąt inny niż prostokątny: Przerwa kawowa #170.  Piszemy program w Javie sprawdzający trójkąt prostokątny.  Stworzenie własnego algorytmu sortowania - 3Trójkąt prostokątny: Przerwa kawowa #170.  Piszemy program w Javie sprawdzający trójkąt prostokątny.  Stworzenie własnego algorytmu sortowania - 4

Tworzenie własnego algorytmu sortowania

Źródło: Medium Dzięki temu samouczkowi dowiesz się, jak sortować nie tylko w porządku rosnącym lub malejącym, ale także w oparciu o własne parametry. Przerwa kawowa #170.  Piszemy program w Javie sprawdzający trójkąt prostokątny.  Tworzenie własnego algorytmu sortowania - 5Zwykle w Javie lub innym języku programowania sortujemy w kolejności rosnącej lub malejącej. Ale czy możemy sortować na podstawie własnego parametru? Aby się tego dowiedzieć, najpierw posortujmy w zwykły sposób – rosnąco lub malejąco.
//Например, у нас есть массив
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));
Wyjście:
[1,2,3,4,5,6,7,8,9] [9,8,7,6,5,4,3,2,1]
Arrays.sort(array) to metoda kolekcji w Javie służąca do sortowania tablicy. Jeśli zostanie użyty bez drugiego parametru, wówczas sortowanie nastąpi w kolejności rosnącej. W drugim parametrze możemy zdefiniować Collections.reverseOrder() do sortowania w kolejności malejącej. Musimy jednak stworzyć własny algorytm sortowania w drugim parametrze. Jak to zrobić? Załóżmy, że musimy uporządkować liczby w tablicy w taki sposób, aby po ich połączeniu otrzymaliśmy liczbę największą ze wszystkich liczb, pod warunkiem, że można zmieniać tylko położenie liczb, a nie cyfry w tej liczbie. Na przykład: {1,2,3,4}=>{4321} {12,34}=>{3412} {30,3}=>{330} {8,89}=>{898} Istnieje class w Java Comparator , w której musimy przeciążyć funkcję porównania. Działa to tak, że jeśli w kolejności {item1, item2} pojawią się dwa elementy , to zostaną one zaakceptowane przez funkcję komparatora w następujący sposób:
public int compare(item 1, item2){

}
Jeśli funkcja zwróci wartość dodatnią, funkcja sortowania zamieni elementy. Oznacza to, że wyjściem w kolekcji będzie {item2,item1} . Jeśli funkcja daje wynik ujemny lub zerowy, kolejność się nie zmieni, wynik pozostanie taki sam: {item1, item2} . Ta logika ma zastosowanie rekurencyjnie do wszystkich elementów tablicy. Wracając do pierwotnego pytania, zdefiniujemy naszą logikę w klasie komparatora, przeciążając funkcję Compare() w następujący sposób:
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;

}
Tutaj połączyliśmy dwie liczby i sprawdziliśmy, która z nich jest większa. Ta logika jest rekurencyjnie stosowana do wszystkich innych liczb w tablicy, aby uzyskać pożądany wynik. Podsumowując, użyj klasy Comparator , aby przeciążyć funkcję Compare() . Pomoże Ci to stworzyć własną logikę sortowania i zwrócić wartość dodatnią przy zmianie kolejności pojawiania się w tablicy oraz wartość ujemną lub 0 przy zachowaniu kolejności.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION