JavaRush /จาวาบล็อก /Random-TH /คอฟฟี่เบรค #170. เรากำลังเขียนโปรแกรม Java เพื่อตรวจสอบสา...

คอฟฟี่เบรค #170. เรากำลังเขียนโปรแกรม Java เพื่อตรวจสอบสามเหลี่ยมมุมฉาก การสร้างอัลกอริทึมการเรียงลำดับของคุณเอง

เผยแพร่ในกลุ่ม

โปรแกรม Java ตรวจสอบสามเหลี่ยมมุมฉาก

ที่มา: Mayankvikash บทความนี้สาธิตการพัฒนาโปรแกรม Java เพื่อทดสอบสามเหลี่ยมเพื่อดูว่ามีมุมขวาหรือไม่ สามเหลี่ยมมุมฉากคือรูปสามเหลี่ยมที่มีมุมภายในมุมหนึ่งมีขนาด 90 องศา สามเหลี่ยมมุมฉากมีคุณสมบัติหลายประการ หนึ่งในนั้นคือกำลังสองของด้านตรงข้ามมุมฉากเท่ากับผลรวมของกำลังสองของขา (ตั้งฉากและฐานของสามเหลี่ยม) สิ่งนี้เรียกว่าทฤษฎีบทพีทาโกรัส ด้านตรงข้ามมุมฉากคือด้านที่ยาวที่สุดของรูปสามเหลี่ยม คอฟฟี่เบรค #170.  เรากำลังเขียนโปรแกรม Java เพื่อตรวจสอบสามเหลี่ยมมุมฉาก  สร้างอัลกอริทึมการเรียงลำดับของคุณเอง - 1

ตรรกะของโปรแกรม

เนื่องจากกำลังสองของด้านตรงข้ามมุมฉากเท่ากับผลรวมของกำลังสองของอีกสองด้าน เราจึงต้องคำนวณผลรวมนี้ และถ้ามันเท่ากับกำลังสองของด้านตรงข้ามมุมฉาก สามเหลี่ยมนั้นจะเป็นมุมฉาก ภาพหน้าจอของโปรแกรม: คอฟฟี่เบรค #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

การสร้างอัลกอริทึมการเรียงลำดับของคุณเอง

ที่มา: ปานกลาง ด้วยบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีการเรียงลำดับไม่เฉพาะจากน้อยไปหามากหรือจากมากไปน้อย แต่ยังขึ้นอยู่กับพารามิเตอร์ของคุณเองด้วย คอฟฟี่เบรค #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}ฟังก์ชันตัวเปรียบเทียบจะยอมรับองค์ประกอบเหล่านั้นดังนี้:
public int compare(item 1, item2){

}
หากฟังก์ชันให้ค่าบวก ฟังก์ชัน sort จะสลับองค์ประกอบ นั่นคือผลลัพธ์ในคอลเลกชันจะเป็น{item2,item1 } หากฟังก์ชันส่งผลลัพธ์เป็นลบหรือเป็นศูนย์ ลำดับจะไม่เปลี่ยนแปลง ผลลัพธ์จะยังคงเหมือนเดิม: {item1,item2 } ตรรกะนี้ใช้ซ้ำกับสมาชิกทั้งหมดของอาร์เรย์ ดังนั้น กลับมาที่คำถามเดิม เราจะกำหนดตรรกะของเราในคลาสตัวเปรียบเทียบโดยการโอเวอร์โหลด ฟังก์ชัน comparison()เช่นนี้
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เพื่อโอเวอร์โหลด ฟังก์ชัน comparison( ) ซึ่งจะช่วยให้คุณสร้างตรรกะการเรียงลำดับของคุณเองและส่งกลับค่าบวกเมื่อเปลี่ยนลำดับการปรากฏในอาร์เรย์และส่งกลับค่าลบหรือ0เมื่อรักษาลำดับไว้
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION