Thursday, November 10, 2016

Bà i 4 Toán tử và biểu thức hà m toán học trong Java

Bà i 4 Toán tử và biểu thức hà m toán học trong Java


Bài 4: Toán t? và bi?u th?c, hàm toán h?c trong Java

1, Toán t? s? h?c:

soHoc ?

Ví d?:
PHP:
public class SoHoc {

    public static 
void main(String[] args) {
        
int abdunguyen;
        
10;
        
3;
        
du b;
        
nguyen b;
        
System.out.println("Ph?n d? (a:b) là: " du);
        
System.out.println("Ph?n nguyên (a:b) là: " nguyen);
        
a++;
        
System.out.println("Giá tr? a ?ã t?ng lên 1, giá tr? m?i là: " a);
        
b--;
        
System.out.println("Giá tr? c?a b ?ã gi?m ?i 1, giá tr? m?i là: " b);
        
System.out.println("V?i 2 giá tr? a, b m?i trên, Tích (a x b) = " b);
    }
}
L?u ý: V?i 2 câu l?nh a= a+1 và a++ có k?t qu? là nh? nhau, nh?ng v? b?n ch?t có s? khác bi?t:
a = a+1 là gán a b?ng giá tr? a+1, còn phép a++ là t?ng a lên 1, phép a++ ?? t?n tài nguyên h?n, cú pháp ng?n g?n, các b?n nên ch?n cách này ?? ch??ng trình t?i ?u h?n ;)


2, Toán t? trên quan h?, logic:

logic ?

Ví d?:

PHP:
public class QuanHeLogic {

    public static 
void main(String[] args) {
        
boolean soSanh;
        
int ab;
        
5;
        
10;
        
soSanh = (== b);
        
System.out.println("K?t qu? so sánh " "=" " không? " soSanh);
        
soSanh = (b);
        
System.out.println("K?t qu? so sánh " "<" " không? " soSanh);
        
soSanh = (a!=b);
        
System.out.println("K?t qu? so sánh " "#" " không? " soSanh);
        
soSanh = (>= b);
        
System.out.println("K?t qu? so sánh " ">=" " không? " soSanh);
        
soSanh = (b)||(a==b);
        
System.out.println("K?t qu? so sánh " "<=" " không? " soSanh);
        
soSanh = !true;
        
System.out.println("Bi?n soSanh ???c gán b?ng giá tr? ph? ??nh c?a true, giá tr? ?ó là: "+soSanh);
    }
}

3, Toán t? trên bit:

bit ?

- ? ki?n th?c c? b?n, chúng ta ch?a nghiên c?u sâu vào nh?ng toán t? này, mình ch? chú ý t?i 2 phép ?ó là d?ch trái, d?ch ph?i. Hi?u c? b?n thì d?ch trái d?ch ph?i n bit cho k?t qu? gi?ng vi?c b?n nhân v?i 2^n và chia cho 2^n (d?ch trái – nhân, d?ch ph?i - chia)
- Vd s? 16:
D?ch trái ?i 2 bit thì k?t qu? là nhân 16 x 2^2 = 64
D?ch ph?i ?i 3 bit thì k?t qu? là chia 16 : (2^3) = 2
- V?y t?i sao có phép nhân, phép chia r?i, chúng ta l?i c?n bi?t 2 phép này. Vì 2 phép này ti?t ki?m tài nguyên h? th?ng h?n là b?n dùng phép chia thông th??ng. Nói chung, khi có th?, b?n nên dùng 2 phép này ?? ch??ng trình ch?y nhanh h?n. Nó c?ng th? hi?n tính chuyên nghi?p trong cách l?p trình c?a b?n!
(Ph?n này ?a s? các b?n h?c CNTT c? b?n ??u ???c h?c, mình s? không gi?i thích nhi?u, b?n nào ch?a hi?u có th? tìm trên m?ng xem. N?u th?y không ?n, mình s? vi?t 1 bài vi?t nói v? ph?n này!)
?? bi?t cú pháp và cách s? d?ng 2 phép này, b?n tham kh?o ch??ng trình d??i ?ây:

PHP:
public class PhepDich {

    public static 
void main(String[] args) {
        
int adichPhai1dichPhai2dichTrai1dichTrai2;
        
16;

        
dichTrai1 << 1;
        
dichTrai2 << 2;
        
System.out.println("Giá tr? a ban ??u: " a);
        
System.out.println("Khi a d?ch trái 1 bit thì giá tr? là: " dichTrai1);
        
System.out.println("Khi a d?ch trái 2 bit thì giá tr? là: " dichTrai2);

        
System.out.println(" "); // Xu?ng dòng

        
dichPhai1 >> 1// D?ch ph?i 1 bit
        
dichPhai2 >> 2// D?ch ph?i 2 bit
        
System.out.println("Giá tr? a ban ??u: " a);
        
System.out.println("Khi a d?ch ph?i 1 bit thì giá tr? là: " dichPhai1);
        
System.out.println("Khi a d?ch ph?i 2 bit thì giá tr? là: " dichPhai2);

    }
}

4, Toán t? ép ki?u:

- Ép ki?u r?ng (widening conversion): t? ki?u nh? sang
ki?u l?n (không m?t mát thông tin)
- Ép ki?u h?p (narrow conversion): t? ki?u l?n sang ki?u
nh? (có kh? n?ng m?t mát thông tin)
<tên bi?n> = (ki?u_d?_li?u) <tên_bi?n>;


B?n hãy tham kh?o ch??ng trình nh? sau: