โปรแกรม Java ตรวจสอบสามเหลี่ยมมุมฉาก
ที่มา: Mayankvikash บทความนี้สาธิตการพัฒนาโปรแกรม Java เพื่อทดสอบสามเหลี่ยมเพื่อดูว่ามีมุมขวาหรือไม่ สามเหลี่ยมมุมฉากคือรูปสามเหลี่ยมที่มีมุมภายในมุมหนึ่งมีขนาด 90 องศา สามเหลี่ยมมุมฉากมีคุณสมบัติหลายประการ หนึ่งในนั้นคือกำลังสองของด้านตรงข้ามมุมฉากเท่ากับผลรวมของกำลังสองของขา (ตั้งฉากและฐานของสามเหลี่ยม) สิ่งนี้เรียกว่าทฤษฎีบทพีทาโกรัส ด้านตรงข้ามมุมฉากคือด้านที่ยาวที่สุดของรูปสามเหลี่ยม![คอฟฟี่เบรค #170. เรากำลังเขียนโปรแกรม Java เพื่อตรวจสอบสามเหลี่ยมมุมฉาก สร้างอัลกอริทึมการเรียงลำดับของคุณเอง - 1](https://cdn.javarush.com/images/article/73472ecc-6165-4f25-9b99-002c22b43493/800.jpeg)
ตรรกะของโปรแกรม
เนื่องจากกำลังสองของด้านตรงข้ามมุมฉากเท่ากับผลรวมของกำลังสองของอีกสองด้าน เราจึงต้องคำนวณผลรวมนี้ และถ้ามันเท่ากับกำลังสองของด้านตรงข้ามมุมฉาก สามเหลี่ยมนั้นจะเป็นมุมฉาก ภาพหน้าจอของโปรแกรม:![คอฟฟี่เบรค #170. เรากำลังเขียนโปรแกรม Java เพื่อตรวจสอบสามเหลี่ยมมุมฉาก การสร้างอัลกอริทึมการเรียงลำดับของคุณเอง - 2](https://cdn.javarush.com/images/article/8711871e-04f0-4903-824d-a2d04da9b6d6/800.jpeg)
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](https://cdn.javarush.com/images/article/63ab8918-f6a7-4235-acaa-6e5bfd24d31b/1080.jpeg)
![คอฟฟี่เบรค #170. เรากำลังเขียนโปรแกรม Java เพื่อตรวจสอบสามเหลี่ยมมุมฉาก การสร้างอัลกอริทึมการเรียงลำดับของคุณเอง - 4](https://cdn.javarush.com/images/article/848b406b-a48c-4f1e-8632-68d59ca94057/1080.jpeg)
การสร้างอัลกอริทึมการเรียงลำดับของคุณเอง
ที่มา: ปานกลาง ด้วยบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีการเรียงลำดับไม่เฉพาะจากน้อยไปหามากหรือจากมากไปน้อย แต่ยังขึ้นอยู่กับพารามิเตอร์ของคุณเองด้วย![คอฟฟี่เบรค #170. เรากำลังเขียนโปรแกรม Java เพื่อตรวจสอบสามเหลี่ยมมุมฉาก การสร้างอัลกอริทึมการเรียงลำดับของคุณเอง - 5](https://cdn.javarush.com/images/article/cecc0809-d2db-4898-b6e4-bf22fa922462/800.jpeg)
//Например, у нас есть массив
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เมื่อรักษาลำดับไว้
GO TO FULL VERSION