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

คณิตศาสตร์ ตัวห่อหุ้ม และการจัดรูปแบบ · • abs() ใช้ในการหาค่าสัมบูรณ์

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

คณตศาสตร ตวหอหม และการจดรปแบบ

15/02/62 เขยนโปรแกรม Java เบองตน 1

หวขอ

• คลาส Math

• การรบขอมลจากผใช

• ตวหอหม (Wrappers)

• การจดรปแบบ

15/02/62 เขยนโปรแกรม Java เบองตน 2

คลาส Math

15/02/62 เขยนโปรแกรม Java เบองตน 3

การคานวณ

• งาย

– + - * / %

• ซบซอน – คลาส Math

15/02/62 เขยนโปรแกรม Java เบองตน 4

เมธอดในคลาส Math

• sqrt() ใชในการหาคารากทสอง – Math.sqrt(9) จะมคาเทากบ 3

• pow() ใชในการหาคายกกาลง – Math.pow(2, 4) จะเทากบ 24 หรอ 16 นนเอง

• abs() ใชในการหาคาสมบรณ – Math.abs(-4) จะเทากบ 4

15/02/62 เขยนโปรแกรม Java เบองตน 5

เมธอดในคลาส Math

• ceil() ใชในการหาคาเลขจานวนเตมนอยทสดทมากกวาตวเลขทระบไว – Math.ceil(3.27) จะมคาเทากบ 4 – Math.ceil(-3.27) จะมคาเทากบ -3

• floor() ใชในการหาคาเลขจานวนเตมทมากทสดทนอยกวาตวเลขทระบไว – Math.floor(3.27) จะมคาเทากบ 3 – Math.floor(-3.27) จะมคาเทากบ -4

15/02/62 เขยนโปรแกรม Java เบองตน 6

เมธอดในคลาส Math

• round() ใชในการปดเศษทศนยมโดยจะหาเลขจานวนเตมทใกลกบตวเลขทระบมากทสด – Math.round(3.27) จะมคาเทากบ 3 – Math.round(-3.27) จะมคาเทากบ -3

• min() ใชหาคาตวเลขทนอยทสดระหวางเลขสองตวตามทระบไว – Math.min(3, 5) จะไดคาเทากบ 3

• max() ใชหาคาตวเลขทมากทสดระหวางเลขสองตวตามทระบไว – Math.max(3, 5) จะไดคาเทากบ 5

15/02/62 เขยนโปรแกรม Java เบองตน 7

เมธอดในคลาส Math

• toDegrees() แปลงมม radian เปนมม degree – Math.toDegrees(Math.PI) มคาเทากบ 180.0

• toRadians() แปลงมม degree เปนมม radian

– Math.toRadians(180) มคาเทากบ 3.141592653589793

• sin()

– Math.sin(Math.toRadians(90)) มคาเทากบ 1

15/02/62 เขยนโปรแกรม Java เบองตน 8

ปรมาตรวตถทรงกลม

• ปรมาตร = (4÷3) × Π × รศม3 public class BallVolume {

public static void main(String[] args) {

double radius = 10;

double volume = 4.0 / 3.0 *

Math.PI *

Math.pow(radius, 3);

System.out.println(volume);

}

}

15/02/62 เขยนโปรแกรม Java เบองตน 9

เลขสม

• เมธอด random() – return คาสมในชวง 0 เกอบถง 1

for (int i = 0; i < 10; i++) {

double r = Math.random() * 100; int rand = (int) r;

System.out.println(rand);

}

15/02/62 เขยนโปรแกรม Java เบองตน 10

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

15/02/62 เขยนโปรแกรม Java เบองตน 11

คลาส java.util.Scanner

• คอนสตรกเตอร

– java.util.Scanner(InputStream src); • เมธอด

– nextInt(); – nextDouble(); – next();

15/02/62 เขยนโปรแกรม Java เบองตน 12

ตวอยาง

java.util.Scanner sc;

sc = new java.util.Scanner(System.in);

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();

15/02/62 เขยนโปรแกรม Java เบองตน 13

ผลการทางาน

15/02/62 เขยนโปรแกรม Java เบองตน 14

ถาไมอยากใชชอเตม

import java.util.Scanner;

class MyClass {

public static void main(String[] a) { Scanner sc = new Scanner(System.in);

...

}

}

15/02/62 เขยนโปรแกรม Java เบองตน 15

ตวหอหม (Wrappers)

15/02/62 เขยนโปรแกรม Java เบองตน 16

ตวหอหม

• หอชนดขอมลพนฐาน

– เพอใสใน Collection

• แปลง String เปนชนดขอมลพนฐาน

• แปลงจากชนดขอมลพนฐานเปน String • มคาคงทของคาทมากสดและนอยของชนดขอมลพนฐาน

15/02/62 เขยนโปรแกรม Java เบองตน 17

คลาสทเปนตวหอหม

15/02/62 เขยนโปรแกรม Java เบองตน 18

ชนดขอมลพนฐาน คลาสในกลม Wrapper

boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double

การสรางวตถ Wrapper

Boolean bo = new Boolean(true);

Boolean bo = new Boolean("true");

Character c = new Character('c');

Byte by = new Byte((byte)20);

Byte by = new Byte("20");

Short s = new Short((short)20);

Short s = new Short("20");

15/02/62 เขยนโปรแกรม Java เบองตน 19

การแปลง Wrapper กลบเปนชนดขอมลพนฐาน

• รปแบบ – ตวแปรชนดขอมลพนฐาน = ตวหอหม.ชนดขอมลพนฐานValue();

• ตวอยาง String s = "20";

Integer i = new Integer(s); int number = i.intValue();

15/02/62 เขยนโปรแกรม Java เบองตน 20

ตวอยาง

Scanner sc = new Scanner(System.in);

System.out.print("Please enter a number : ");

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);

15/02/62 เขยนโปรแกรม Java เบองตน 21

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

• รปแบบ

– เรฟเฟอรเรนซสตรง = ตวหอหม.toString(); • ตวอยาง int number = 20;

Integer i = new Integer(number); String s = i.toString();

15/02/62 เขยนโปรแกรม Java เบองตน 22

การแปลงสตรงเปนชนดขอมลพนฐาน

• รปแบบ – ตวแปรชนดขอมลพนฐาน = คลาสหอหม.parseชนดขอมลพนฐาน();

• ตวอยาง Scanner sc = new Scanner(System.in);

System.out.print("Please enter a number : ");

int number = Integer.parseInt(sc.next());

15/02/62 เขยนโปรแกรม Java เบองตน 23

การแปลงชนดขอมลพนฐาน เปนสตรง

• รปแบบ – เรฟเฟอรเรนซสตรง = คลาสหอหม.toString(ขอมลพนฐาน);

• ตวอยาง Scanner sc = new Scanner(System.in);

System.out.print("Please enter a number : ");

String s = Integer.toString(sc.nextInt());

15/02/62 เขยนโปรแกรม Java เบองตน 24

คาคงทในคลาส Wrapper

• Integer – Integer.MIN_VALUE = -2147483648 – Integer.MAX_VALUE = 2147483647

• Double – Double.MIN_VALUE = 4.9E-324 – Double.MAX_VALUE = 1.7976931348623157E308

15/02/62 เขยนโปรแกรม Java เบองตน 25

การจดรปแบบ

15/02/62 เขยนโปรแกรม Java เบองตน 26

การจดรปแบบดวยเมธอด printf()

• รปแบบ

– ตวแสดงผล.printf("รปแบบ", ตวแปร1, ตวแปร2, ...);

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

15/02/62 เขยนโปรแกรม Java เบองตน 27

การจดรปแบบดวยคลาสในกลม Format double d = 37625.72558;

NumberFormat nf;

nf = NumberFormat.getCurrencyInstance();

System.out.println(nf.format(d)); // ฿37,625.73

nf = NumberFormat.getIntegerInstance(); System.out.println(nf.format(d)); // 37,625

15/02/62 เขยนโปรแกรม Java เบองตน 28

สรป

15/02/62 เขยนโปรแกรม Java เบองตน 29

สรป

• คลาส Math มเมธอดสาหรบการคานวณทางดานคณตศาสตรชนสง

• คลาสประเภท Wrapper ใชแปลงตวแปรชนดขอมลพนฐานไปเปนขอความ และกลบกน

• การแปลงวตถ String ไปเปนจานวนเตมใชเมธอด Integer.parseInt() • การแปลงจานวนเตมไปเปนวตถ String ใชเมธอด Integer.toString()

15/02/62 เขยนโปรแกรม Java เบองตน 30

สรป

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

• เมธอด printf() ใชแสดงผลลพธเชนเดยวกบเมธอด println() แตสามารถจดรปแบบการแสดงผลไดหลากหลาย

• คลาส NumberFormat ชวยจดรปแบบการแสดงผลได

15/02/62 เขยนโปรแกรม Java เบองตน 31