คณิตศาสตร์ ตัวห่อหุ้ม และการ...
Transcript of คณิตศาสตร์ ตัวห่อหุ้ม และการ...
คณติศาสตร ์ตวัหอ่หุม้และการจัดรปูแบบ
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 1
วรเศรษฐ สุวรรณิก
หวัขอ้
� คลาส Math� การรับขอ้มลูจากผูใ้ช ้� ตวัหอ่หุม้ (Wrappers)
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 2
� ตวัหอ่หุม้ (Wrappers)� การจัดรปูแบบ
คลาส Math
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 3
การคํานวณ
� งา่ย� + - * / %
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 4
� ซบัซอ้น� คลาส Math
เมธอดในคลาส Math
� sqrt() ใชใ้นการหาคา่รากทีGสอง � Math.sqrt(9) จะมคีา่เทา่กบั 3
� pow() ใชใ้นการหาคา่ยกกําลัง
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 5
pow() ใชใ้นการหาคา่ยกกําลัง � Math.pow(2, 4) จะเทา่กบั 24 หรอื 16 นัGนเอง
� abs() ใชใ้นการหาคา่สมับรูณ์ � Math.abs(-4) จะเทา่กบั 4
เมธอดในคลาส Math
� ceil() ใชใ้นการหาคา่เลขจํานวนเต็มนอ้ยทีGสดุทีGมากกวา่ตัวเลขทีGระบไุว ้� Math.ceil(3.27) จะมคีา่เทา่กบั 4
Math.ceil(-3.27) จะมคีา่เทา่กบั -3
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 6
� Math.ceil(-3.27) จะมคีา่เทา่กบั -3
� floor() ใชใ้นการหาคา่เลขจํานวนเต็มทีGมากทีGสดุทีGนอ้ยกวา่ตัวเลขทีGระบไุว ้� Math.floor(3.27) จะมคีา่เทา่กบั 3 � Math.floor(-3.27) จะมคีา่เทา่กบั -4
เมธอดในคลาส Math
� round() ใชใ้นการปัดเศษทศนยิมโดยจะหาเลขจํานวนเต็มทีGใกลก้บัตวัเลขทีGระบมุากทีGสดุ � Math.round(3.27) จะมคีา่เทา่กบั 3 � Math.round(-3.27) จะมคีา่เทา่กบั -3
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 7
� Math.round(-3.27) จะมคีา่เทา่กบั -3
� min() ใชห้าคา่ตวัเลขทีGนอ้ยทีGสดุระหวา่งเลขสองตวัตามทีGระบไุว ้� Math.min(3, 5) จะไดค้า่เทา่กบั 3
� max() ใชห้าคา่ตวัเลขทีGมากทีGสดุระหวา่งเลขสองตวัตามทีGระบไุว ้� Math.max(3, 5) จะไดค้า่เทา่กบั 5
เมธอดในคลาส Math
� toDegrees() แปลงมมุ radian เป็นมมุ degree� Math.toDegrees(Math.PI) มคีา่เทา่กบั 180.0
� toRadians() แปลงมมุ degree เป็นมมุ radian � Math.toRadians(180) มคีา่เทา่กบั 3.141592653589793
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 8
� Math.toRadians(180) มคีา่เทา่กบั 3.141592653589793
� sin() � Math.sin(Math.toRadians(90)) มคีา่เทา่กบั 1
ปรมิาตรวตัถทุรงกลม
� ปรมิาตร = (4÷3) × Π × รัศม3ี
public class BallVolume {
public static void main(String[] args) {double radius = 10;
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 9
double radius = 10;double volume = 4.0 / 3.0 *
Math.PI *Math.pow(radius, 3);
System.out.println(volume);}
}
เลขสุม่
� เมธอด random() � return คา่สุม่ในชว่ง 0 เกอืบถงึ 1
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 10
for (int i = 0; i < 10; i++) {double r = Math.random() * 100;
int rand = (int) r;
System.out.println(rand);
}
การรับขอ้มลูจากผูใ้ช ้
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 11
คลาส java.util.Scanner
� คอนสตรักเตอร์� java.util.Scanner(InputStream src);
� เมธอด
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 12
� เมธอด� nextInt();� nextDouble();� next();
ตวัอยา่งjava.util.Scanner sc;sc = new java.util.Scanner(System.in);
System.out.print("Please enter an integer : ");
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 13
System.out.print("Please enter an integer : ");int i = sc.nextInt();
System.out.print("Please enter a double : ");double d = sc.nextDouble();
System.out.print("Please enter a string : ");String s = sc.next();
ผลการทํางาน
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 14
ถา้ไมอ่ยากใชช้ืGอเต็ม
import java.util.Scanner;
class MyClass {
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 15
class MyClass {
public static void main(String[] a) {
Scanner sc = new Scanner(System.in);...
}
}
ตวัหอ่หุม้ (Wrappers)
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 16
ตวัหอ่หุม้
� หอ่ชนดิขอ้มลูพื,นฐาน� เพืGอใสใ่น Collection
� แปลง String เป็นชนดิขอ้มลูพื,นฐาน
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 17
� แปลง String เป็นชนดิขอ้มลูพื,นฐาน� แปลงจากชนดิขอ้มลูพื,นฐานเป็น String� มคีา่คงทีGของคา่ทีGมากสดุและนอ้ยของชนดิ
ขอ้มลูพื,นฐาน
คลาสทีGเป็นตวัหอ่หุม้
ชนดิขอ้มลูพื,นฐาน คลาสในกลุม่ Wrapper
boolean Booleanchar Character
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 18
byte Byteshort Shortint Integerlong Longfloat Floatdouble Double
การสรา้งวตัถุ Wrapper Boolean bo = new Boolean(true);
Boolean bo = new Boolean("true");
Character c = new Character('c');
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 19
Byte by = new Byte((byte)20);
Byte by = new Byte("20");
Short s = new Short((short)20);
Short s = new Short("20");
การแปลง Wrapper กลบัเป็นชนดิขอ้มลูพื,นฐาน
� รปูแบบ� ตวัแปรชนดิขอ้มลูพื,นฐาน = ตวัหอ่หุม้.ชนดิขอ้มลูพื,นฐานValue();
� ตวัอยา่ง
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 20
� ตวัอยา่งString s = "20";
Integer i = new Integer(s);
int number = i.intValue();
ตวัอยา่งScanner sc = new Scanner(System.in);
System.out.print("Please enter a number : ");String s = sc.next();
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 21
String s = sc.next();
Integer i = new Integer(s);
int number = i.intValue();
System.out.print("Your number plus 10 equals ");System.out.println(number + 10);
การแปลง Wrapper เป็นสตรงิ
� รปูแบบ� เรฟเฟอรเ์รนซส์ตรงิ = ตวัหอ่หุม้.toString();
� ตวัอยา่ง
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 22
� ตวัอยา่งint number = 20;
Integer i = new Integer(number);
String s = i.toString();
การแปลงสตรงิเป็นชนดิขอ้มลูพื,นฐาน
� รปูแบบ� ตวัแปรชนดิขอ้มลูพื,นฐาน = คลาสหอ่หุม้.parseชนดิขอ้มลูพื,นฐาน();
� ตวัอยา่ง
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 23
� ตวัอยา่งScanner sc = new Scanner(System.in);
System.out.print("Please enter a number : ");
int number = Integer.parseInt(sc.next());
การแปลงชนดิขอ้มลูพื,นฐาน เป็นสตรงิ
� รปูแบบ� เรฟเฟอรเ์รนซส์ตรงิ = คลาสหอ่หุม้.toString(ขอ้มลูพื,นฐาน);
� ตวัอยา่ง
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 24
� ตวัอยา่งScanner sc = new Scanner(System.in);
System.out.print("Please enter a number : ");
String s = Integer.toString(sc.nextInt());
คา่คงทีGในคลาส Wrapper
� Integer� Integer.MIN_VALUE = -2147483648 � Integer.MAX_VALUE = 2147483647
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 25
� Integer.MAX_VALUE = 2147483647
� Double� Double.MIN_VALUE = 4.9E-324 � Double.MAX_VALUE =
1.7976931348623157E308
การจัดรปูแบบ
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 26
การจัดรปูแบบดว้ยเมธอด printf()
� รปูแบบ� ตวัแสดงผล.printf("รปูแบบ", ตวัแปร1, ตวัแปร2, ...);
� ตวัอยา่ง
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 27
� ตวัอยา่งint i = 3277;
double d = 132324.25;
System.out.printf("%d\n", i);
System.out.printf("%x\n", i);
System.out.printf("%f\n", d);
System.out.printf("%16f\n", d);
System.out.printf("%16.2f\n", d);
System.out.printf("%,16.2f\n", d);
การจัดรปูแบบดว้ยคลาสในกลุม่ Format
double d = 37625.72558;
NumberFormat nf;
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 28
nf = NumberFormat.getCurrencyInstance();
System.out.println(nf.format(d)); // ฿37,625.73
nf = NumberFormat.getIntegerInstance();
System.out.println(nf.format(d)); // 37,625
สรปุ
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 29
สรปุ
� คลาส Math มเีมธอดสําหรับการคํานวณทางดา้นคณติศาสตรช์ั ,นสงู
� คลาสประเภท Wrapper ใชแ้ปลงตวัแปรชนดิขอ้มลูพื,นฐานไปเป็นขอ้ความ และกลบักนั
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 30
พื,นฐานไปเป็นขอ้ความ และกลบักนั� การแปลงวัตถุ String ไปเป็นจํานวนเต็มใชเ้มธอด
Integer.parseInt()� การแปลงจํานวนเต็มไปเป็นวัตถุ String ใชเ้มธอด
Integer.toString()
สรปุ
� เมธอด println() ใชส้ําหรับแสดงผลลัพธ์ออกทางหนา้จอ
� เมธอด printf() ใชแ้สดงผลลัพธเ์ชน่เดยีวกบั
07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 31
� เมธอด printf() ใชแ้สดงผลลัพธเ์ชน่เดยีวกบัเมธอด println() แตส่ามารถจัดรปูแบบการแสดงผลไดห้ลากหลาย
� คลาส NumberFormat ชว่ยจัดรปูแบบการแสดงผลได ้