ตัวอย่างโค้ดโปรแกรมหาค่ากลางข้อมูล หาค่ามัธยฐาน
ตัวอย่างโค้ด ตัวอย่างโปรแกรมนี้ เป็นตัวอย่างการหาค่ากลางของข้อมูล ซึ่งค่าที่หาเป็นค่าของมัธยฐาน ซึ่งมัธยฐาน คืออะไรนั้น สามารถอ่านได้จาก http://www.mathmyself.com/M3/P41/ค่าเฉลี่ยเลขคณิต-มัธยฐานและฐานนิยมของข้อมูลที่ยังไม่แจกแจงความถี่.htmตัวอย่างโค้ด
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class UseCode {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
List<Integer> listNumber = new ArrayList<>();
String temp = "";
while(true){
System.out.print("input Number ('exit' For Break) : ");
temp = in.nextLine();
if("exit".equals(temp)) break;
listNumber.add(Integer.valueOf(temp));
}
Collections.sort(listNumber);
System.out.println("Value All : " + listNumber);
if(!listNumber.isEmpty()){
int position = listNumber.size()/2;
double median = listNumber.get(position);
if(listNumber.size()%2 == 0){
median = (median + listNumber.get(position - 1))/2.0;
}
System.out.println("Median : " + median);
}
else{
System.out.println("No Data");
}
}
}
จากโค้ดข้างบน เราใช้ Scanner ในการอ่านค่าจากแป้นพิมพ์ จากนั้น เราจะใช้ nextLine() เพื่อนำค่าที่กรอกเข้ามาเป็น String แล้วนำไปตรวจสอบว่าเป็นคำว่า exit หรือไม่ ถ้าใช้ เราก็ break ออกจาก Loop
เราใช้ Loop while เพื่อวนไม่รู้จบจนกว่าจะพิมพ์คำว่า break จึงจะหยุดจาก Loop เมื่อกรอกเข้ามาเราจะนำค่าที่ได้ไปแปลงเป็น Integer แล้วเก็บไว้ใน ArrayList ที่เก็บชนิดข้อมูลที่เป็น Integer เอาไว้
เมื่อได้ข้อมูลทั้งหมดมาแล้ว เราจะต้องนำข้อมูลทั้งหมดมาเรียงจากน้อยไปหามาก โดยการเรียงข้อมูลใน ArrayList นั้นจะใช้ Collections.sort แล้วส่ง ArrayList เข้าไป จากนั้นเราจะหาตำแหน่งตรงกลาง โดยหาค่าทั้งหมดแล้วหารด้วย 2 เมื่ได้แล้ว เราก็จะเช็คอีกทีว่า ค่าทั้งหมดที่ได้มานั้นเป็นจำนวนที่เป็นคู่หรือคี่ เพราะถ้าเป็นเลขคี่เราจะนำตัวนั้นมาตอบได้เลย แต่ถ้าเป็นตัวคู่เราจะต้องนำตัวตรงกลางสองตัวมาบวกกันก่อน แล้วค่อยหาร 2
ข้อควรระวัง ยังไม่ได้ตรวจสอบความผิดพลาด ซึ่งอาจจะเกิด Exception ได้ อย่างเช่นพิมพ์ค่าที่ไม่ได้เป็นตัวเลขที่นอกเหนือจากคำว่า exit
ไม่มีความคิดเห็น :
แสดงความคิดเห็น