ươ
Ch
ng 7
ươ
Ph
ứ ng Th c
ươ
ươ
Ch
ng 7: Ph
ứ ng th c
ớ
ứ ng th c. ươ
ươ ồ
ứ
ng th c.
ệ
ệ i thi u ph o Gi ị o Đ nh nghĩa ch ng ph ớ o L p Math. ể ị o Chia đ tr và đ quy.
ị
Đ nh nghĩa
ng th c là m t t p các câu l nh
ộ ậ ằ ệ ệ ự ộ ươ c nhóm l
o Ví d :ụ
ữ ậ
ả
§ Tính giai th a.ừ § Tính di n tích hình ch nh t. ng trình. § Gi
ệ ươ i ph
ộ ứ o M t ph ượ ạ ớ đ i v i nhau nh m th c hi n m t ệ ụ ể công vi c c th nào đó.
ươ
Khai báo ph
ứ ng th c
[static] [public/private/…]
phương thức> <(Danh sách tham số)> { // các câu lệnh. } Kiểu trả về Danh sách tham số Tên phương thức public static long giaiThua(int n) {
long ketQua = 1;
if (n==1) Thân
phương
thức ketQua = 1; else ketQua = giaiThua(n-1)*n; return ketQua;
} Kết quả trả về //Khai báo và g i ph public class TestMax{ public static void main(String[] args){ int i = 5, j = 2; int k = max (i, j); System.out.println(“Max cua “ +i+ “ va “ +j+ “ là “ + k); } // Tim Max cua hai so public static int max(int so1, int so2) { int result; result = so1 > so2 ? so1 : so2; return result; } } //Khai báo và g i ph class Message{ public static void main(String[] args) { String str = "Hello"; int n = 9; nPrintln(str, n); //Goi phuong thuc System.out.println("Goodbye."); } public static void nPrintln(String message, int n) { for (int i = 1; i <= n; i++) System.out.println(i + ": " + message); } } o Chồng phương thức o Ví dụ: Chồng phương thức max là khai báo nhiều
phương thức có cùng tên nhưng có số
và/hoặc kiểu tham số khác nhau. public static double max(double num1,
double num2){ if (num1 > num2) return num1; else return num2; } public class TimSoLonNhat { public static void main(String[] args){ if (num1 > num2) int i = 5, j = 2; return num1; double a =8, b =10; return num2; int k = max (i, j); System.out.println("Max cua " +i+ public static double
max(double num1, double
num2){
else
}
} " va " +j+ " là " + k); double h = max(a,b); System.out.println("Max cua " +a+ " va " +b+ " là " + h); } public static int max(int so1, int so2) { int result; result = so1 > so2 ? so1 : so2; return result; } o Các hằng lớp: § PI § E o Các phương thức lớp: § Các phương thức lượng giác § Các phương thức số mũ § Các phương thức làm tròn § Các phương thức min, max, abs, và random o sin(double rad) o asin(double rad)
o atan(double rad) o cos(double rad) o o o tan(double rad) o acos(double rad) toRadians(double deg)
toDegrees(double rad) ươ ứ
Ph
ng th c
o Math.sin(0)
o Math.sin(Math.PI/6)
o Math.cos(0)
o Math.cos(Math.PI/6)
ị ả ề
Giá tr tr v
> 0.0 > 0.5 > 1.0 > 0.866 o exp (double a) o ươ Ph ứ
ng th c o pow (double a,double b) o sqrt (double a) log (double a) o ea o ị ả ề Giá tr tr v o ab ln(a) o Căn b c 2 c a a ủ ậ public class LopMath { public static void main(String[] args) { double tinhsin; tinhsin = Math.sin(0); System.out.println("sin cua 0 = "+tinhsin); ế ả
System.out.println("k t qu = " + Math.sin(Math.PI/6)); int a = 4, b=5; System.out.println(a + " mũ "+ b + " = "+Math.pow(a,b)); int c = 9; ủ ậ System.out.println("Căn b c 2 c a "+c + " = "+Math.sqrt(c)); } } o Math.ceil(2.1) -> 3.0 o Math.ceil(-2.1) o Math.floor(2.1) -> -2.0 o Math.floor(-2.1) -> 2.0 o Math.rint(2.1) -> 2.0 o Math.rint(-2.1) -> -3.0 o Math.rint(2.5) -> -2.0 o Math.round(2.6f) -> 3 (giá trị int) o Math.round(-2.6) -> 2.0 o Math.round(2.0) -> -3 (giá trị long) -> 2 (giá trị long) max(a, b) và min(a, b) ấ ủ ả ề ị ớ ỏ ấ
o Tr v giá tr l n nh t và nh nh t c a a, b o VD: Math.max(2, 3) = 3 Math.min(2.5, 3) = 2.5 abs(a) ệ ố ủ ả ề ị
o Tr v giá tr tuy t đ i c a a o Math.abs(2.4) = 2.4 random() ả ề ộ ả ẫ ị o Tr v m t giá tr double ng u nhiên trong kho ng [0.0; 1.0) o VD: ⇒ ố ộ 10+(int)(Math.random()*20) S nguyên thu c [10; 30) ⇒ ố ự ộ 10 + (Math.random()*20) S th c thu c [10.0; 30.0) public class LopMath { public static void main(String[] args) { int a, b, solon, sonho; a = 8; b = 10; solon = Math.max(a,b); ố ớ ấ System.out.println("S l n nh t = "+solon); ố ớ ấ System.out.println("S l n nh t = "+Math.min(a, b)); ệ ố ủ ị
System.out.println("Giá tr tuy t đ i c a "+a+" = " + Math.abs(a)); c = Math.random(); ế ả ị System.out.println("Giá tr c trong kho ng 0 đ n 1.0 là " + c); } } Ví d Ph ng th c đ quy countDown() o ứ ự ả ố In ra s nguyên theo th t ầ
gi m d n public static void countDown(int integer) { System.out.println(integer); if (integer > 1) countDown(integer 1); } // end countDown Ví d Ph ng th c đ quy sumOf() ầ ổ ố
o Tính t ng n s nguyên đ u tiên. public static int sumOf(int n){ int sum; if (n = = 1) ườ ợ ơ ở sum = 1; // tr ng h p c s else ờ ọ ệ i g i đ quy sum = sumOf(n 1) + n; // l return sum; } // end sumOfấ
ươ
C u trúc ph
ứ
ng th c
ấ
ươ
C u trúc ph
ứ
ng th c
ấ
ươ
C u trúc ph
ứ
ng th c
Ví dụ
ọ
ươ
ứ
ng th c
Ví dụ
ọ
ươ
ứ
ng th c
Chồng phương thức
Chồng phương thức
Lợi ích của phương thức
Lớp java.lang.Math
Các phương thức lượng giác
Các phương thức số mũ
Ví dụ
Các phương thức làm tròn
Ví dụ
Ví dụ
min, max, abs, random
Đệ quy
Bài toán
ụ ươ
ứ ệ
ươ
ứ ệ
ng th c đ quy
ạ ộ
Ho t đ ng Ph
countDown()
ươ
ứ ệ
ng th c đ quy
ạ ộ
Ho t đ ng Ph
countDown()
ụ ươ
ứ ệ
ươ
ứ ệ
ng th c đ quy
ạ ộ
Ho t đ ng Ph
sumOf()

