คณิตศาสตร์ ตัวห่อหุ้ม และการ...

31
คณิตศาสตร์ ตัวห่อหุ ้ม และการจัดรูปแบบ 07/10/58 เขียนโปรแกรม Java เบื,องต้น 1 วรเศรษฐ สุวรรณิก

Transcript of คณิตศาสตร์ ตัวห่อหุ้ม และการ...

Page 1: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

คณติศาสตร ์ตวัหอ่หุม้และการจัดรปูแบบ

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 1

วรเศรษฐ สุวรรณิก

Page 2: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

หวัขอ้

� คลาส Math� การรับขอ้มลูจากผูใ้ช ้� ตวัหอ่หุม้ (Wrappers)

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 2

� ตวัหอ่หุม้ (Wrappers)� การจัดรปูแบบ

Page 3: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

คลาส Math

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 3

Page 4: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

การคํานวณ

� งา่ย� + - * / %

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 4

� ซบัซอ้น� คลาส Math

Page 5: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

เมธอดในคลาส 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

Page 6: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

เมธอดในคลาส 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

Page 7: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

เมธอดในคลาส 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

Page 8: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

เมธอดในคลาส 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

Page 9: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

ปรมิาตรวตัถทุรงกลม

� ปรมิาตร = (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);}

}

Page 10: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

เลขสุม่

� เมธอด 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);

}

Page 11: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

การรับขอ้มลูจากผูใ้ช ้

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 11

Page 12: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

คลาส java.util.Scanner

� คอนสตรักเตอร์� java.util.Scanner(InputStream src);

� เมธอด

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 12

� เมธอด� nextInt();� nextDouble();� next();

Page 13: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

ตวัอยา่ง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();

Page 14: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

ผลการทํางาน

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 14

Page 15: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

ถา้ไมอ่ยากใชช้ื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);...

}

}

Page 16: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

ตวัหอ่หุม้ (Wrappers)

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 16

Page 17: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

ตวัหอ่หุม้

� หอ่ชนดิขอ้มลูพื,นฐาน� เพืGอใสใ่น Collection

� แปลง String เป็นชนดิขอ้มลูพื,นฐาน

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 17

� แปลง String เป็นชนดิขอ้มลูพื,นฐาน� แปลงจากชนดิขอ้มลูพื,นฐานเป็น String� มคีา่คงทีGของคา่ทีGมากสดุและนอ้ยของชนดิ

ขอ้มลูพื,นฐาน

Page 18: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

คลาสทีGเป็นตวัหอ่หุม้

ชนดิขอ้มลูพื,นฐาน คลาสในกลุม่ Wrapper

boolean Booleanchar Character

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 18

byte Byteshort Shortint Integerlong Longfloat Floatdouble Double

Page 19: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

การสรา้งวตัถุ 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");

Page 20: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

การแปลง Wrapper กลบัเป็นชนดิขอ้มลูพื,นฐาน

� รปูแบบ� ตวัแปรชนดิขอ้มลูพื,นฐาน = ตวัหอ่หุม้.ชนดิขอ้มลูพื,นฐานValue();

� ตวัอยา่ง

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 20

� ตวัอยา่งString s = "20";

Integer i = new Integer(s);

int number = i.intValue();

Page 21: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

ตวัอยา่ง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);

Page 22: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

การแปลง Wrapper เป็นสตรงิ

� รปูแบบ� เรฟเฟอรเ์รนซส์ตรงิ = ตวัหอ่หุม้.toString();

� ตวัอยา่ง

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 22

� ตวัอยา่งint number = 20;

Integer i = new Integer(number);

String s = i.toString();

Page 23: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

การแปลงสตรงิเป็นชนดิขอ้มลูพื,นฐาน

� รปูแบบ� ตวัแปรชนดิขอ้มลูพื,นฐาน = คลาสหอ่หุม้.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());

Page 24: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

การแปลงชนดิขอ้มลูพื,นฐาน เป็นสตรงิ

� รปูแบบ� เรฟเฟอรเ์รนซส์ตรงิ = คลาสหอ่หุม้.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());

Page 25: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

คา่คงที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

Page 26: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

การจัดรปูแบบ

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 26

Page 27: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

การจัดรปูแบบดว้ยเมธอด 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);

Page 28: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

การจัดรปูแบบดว้ยคลาสในกลุม่ 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

Page 29: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

สรปุ

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 29

Page 30: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

สรปุ

� คลาส Math มเีมธอดสําหรับการคํานวณทางดา้นคณติศาสตรช์ั ,นสงู

� คลาสประเภท Wrapper ใชแ้ปลงตวัแปรชนดิขอ้มลูพื,นฐานไปเป็นขอ้ความ และกลบักนั

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 30

พื,นฐานไปเป็นขอ้ความ และกลบักนั� การแปลงวัตถุ String ไปเป็นจํานวนเต็มใชเ้มธอด

Integer.parseInt()� การแปลงจํานวนเต็มไปเป็นวัตถุ String ใชเ้มธอด

Integer.toString()

Page 31: คณิตศาสตร์ ตัวห่อหุ้ม และการ ...orawan.net/Slide/418215/5 Math.pdffloor() ใชในการหาค าเลขจ านวนเต

สรปุ

� เมธอด println() ใชส้ําหรับแสดงผลลัพธ์ออกทางหนา้จอ

� เมธอด printf() ใชแ้สดงผลลัพธเ์ชน่เดยีวกบั

07/10/58 เขยีนโปรแกรม Java เบื,องตน้ 31

� เมธอด printf() ใชแ้สดงผลลัพธเ์ชน่เดยีวกบัเมธอด println() แตส่ามารถจัดรปูแบบการแสดงผลไดห้ลากหลาย

� คลาส NumberFormat ชว่ยจัดรปูแบบการแสดงผลได ้