Bài giảng Lập trình Java cơ bản - Chương 4: Các kiểu số và biểu thức

ppt 23 trang hapham 2230
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Java cơ bản - Chương 4: Các kiểu số và biểu thức", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_lap_trinh_java_co_ban_chuong_4_cac_kieu_so_va_bieu.ppt

Nội dung text: Bài giảng Lập trình Java cơ bản - Chương 4: Các kiểu số và biểu thức

  1. LẬPLẬP TRÌNHTRÌNH JAVAJAVA CƠCƠ BẢNBẢN Chương 4 CÁC KIỂU SỐ VÀ BIỂU THỨC Lê Tân Bộ môn: Lập trình máy tính 1
  2. Nội dung chương 4 n Tổng quan về các kiểu dữ liệu Java n Các kiểu dữ liệu số n Khai báo các kiểu số n Các biểu thức số học đơn giản n Chuyển đổi kiểu (ép kiểu) n Các phương thức của lớp Math (toán học) n Các phương thức của lớp String (chuỗi) 2
  3. 4.1 Tổng quan về các kiểu dữ liệu Java n Các kiểu dữ liệu Java: Có hai dạng là dạng nguyên thuỷ và dạng tham chiếu. • Dạng nguyên thuỷ: Gồm các kiểu số nguyên, kiểu Boolean, và kiểu số thực. • Dạng tham chiếu: Chứa số các phần tử khác nhau, thường là quá lớn để có thể chứa vừa trong một vị trí nhớ đơn. n Java lưu đối tượng đó vào một hoặc vài vị trí trong phần khác của bộ nhớ n Vị trí đã chọn cho biến tham chiếu sẽ lưu địa chỉ mà ở đó đối tượng có thể được tìm thấy. 3
  4. 4.1 Tổng quan về các kiểu dữ liệu Java 4
  5. 4.2 Các kiểu dữ liệu số n Kiểu số nguyên (integral number) • Kiểu số nguyên có thể biểu diễn các số nguyên khi khai báo với từ khoá byte, short, int, hoặc long; • Cũng có thể biểu diễn các ký tự đơn khi khai báo với từ khoá char. • Các kiểu số nguyên có độ dài như sau: byte có độ dài 8 bits short có độ dài 16 bits int có độ dài 32 bits long có độ dài 64 bits 5
  6. 4.2 Các kiểu dữ liệu số n Kiểu số thực: biểu diễn các số thực với dấu chấm thập phân, khai báo với từ khoá float, hoặc double. n Độ dài như sau: float có độ dài 32 bits double có độ dài 64 bits n Kiểu chấm động gồm có phần nguyên và phần thập phân. Ví dụ: 18.4; 500.; .8; -127.358 n Kiểu chấm động có thể có phần mũ, ở dạng khoa học. Phần số sau ký tự E không có dấu chấm thập phân. Ví dụ: 1.84E1, 5E2, 8E-1, -.127358E3 6
  7. 4.3 Khai báo các kiểu số n Khai báo hằng • Cú pháp: Modifiers final dataType name = value; • Trong đó: Modifiers là phần tuỳ chọn, xác định phạm vi tác dụng của hằng; final là từ khoá bắt buộc; dataType xác định kiểu dữ liệu của hằng; name là tên hằng; value là giá trị của hằng. • Ví dụ: final double PI = 3.14159; //Hằng số thực PI final float E = 2.72; // Hằng số thực E final long MAX_TEMP = 1000000L; //Hằng nguyên final int MIN_TEMP = -273; //Hằng số nguyên final char LETTER = ‘W’; //Hằng ký tự final String NAME = “Elisa”; //Hằng chuỗi ký tự 7
  8. 4.3 Khai báo các kiểu số n Khai báo biến • Cú pháp: Modifiers dataType name1, name2, . . . ; • Trong đó: Modifiers là phần tuỳ chọn; dataType xác định kiểu dữ liệu của biến; name1, name2, là tên biến. • Ví dụ: int studentCount, age;//Các biến studentCount, age long sumofSquares; //Khai báo biến sumofSquares kiểu long String stuName; //Khai báo biến stuName kiểu String • Khai báo biến và khởi tạo giá trị trong 1 lệnh: Modifiers dataType name1= value1, name12 = value 2, . . . ; Ví dụ: int i = 1, j = 5; double d = 1.4; float pi = 3.1416f; 8
  9. 4.4 Các biểu thức số học đơn giản n Biểu thức: • Là một dãy các lời gọi phương thức, biến, hằng, các toán tử và dấu ngoặc • Có thể được ước lượng để tính một giá trị thuộc một kiểu dữ liệu cho trước. n Biểu thức số học: • Là một dãy các lời gọi phương thức kiểu số, biến và hằng kiểu số, các toán tử số học và dấu ngoặc. • Một biểu thức số học có thể được ước lượng để tính một giá trị thuộc kiểu dữ liệu số cho trước, ví dụ giá trị của biểu thức 9.3 * 4.5 là 41.85, và thuộc kiểu số thực. 9
  10. 4.4 Các biểu thức số học đơn giản n Một số toán tử Java và độ ưu tiên của chúng theo thứ tự giảm dần: • Dấu ngoặc () • +, - (dấu dương, âm) • (type) Casting (ép kiểu) • *, /, % (nhân, chia thường, chia lấy phần dư) • +, - (cộng, trừ) • = (phép gán) 10
  11. 4.4 Các biểu thức số học đơn giản n Các toán tử khác: • Toán tử tăng dạng tiền tố: Tăng giá trị của biến trước, sử dụng sau. • Toán tử tăng dạng hậu tố: Sử dụng trước, tăng giá trị của biến sau. • Toán tử giảm dạng hậu tố: Sử dụng trước, giảm giá trị của biến sau. • Toán tử tăng/giảm dạng tiền tố: Tăng/giảm trước, sử dụng sau • Toán tử tăng/giảm dạng hậu tố: Sử dụng trước, tăng/giảm sau 11
  12. 4.4 Các biểu thức số học đơn giản 12
  13. 4.5 Chuyển đổi kiểu (ép kiểu) n Phép gán: • Cú pháp: tên_biến = biểu_thức; • Biểu thức bên phải sẽ được tính toán • Kết quả được lưu vào vị trí nhớ của biến bên trái • Nếu kiểu của biểu thức và biến khác nhau → chuyển kiểu tự động sau khi tính giá trị của biểu thức nhưng trước khi giá trị đó được lưu. 13
  14. 4.5 Chuyển đổi kiểu (ép kiểu) n Luật chuyển kiểu: • Nếu một toán hạng kiểu double, toán hạng khác được chuyển đổi thành kiểu double. • Nếu không thì, nếu một toán hạng kiểu float, toán hạng khác được chuyển đổi thành kiểu float. • Nếu không thì, nếu một toán hạng kiểu long, toán hạng khác được chuyển đổi thành kiểu long. • Nếu không thì cả hai toán hạng được chuyển đổi thành kiểu int. 14
  15. 4.5 Chuyển đổi kiểu (ép kiểu) n Ép kiểu mở rộng: Là sự chuyển kiểu không làm mất thông tin. • Ví dụ: phép gán double someDouble = 3 sẽ thực hiện chuyển kiểu số nguyên thành số thực nhưng không làm mất thông tin. n Ép kiểu thu hẹp: Là sự chuyển kiểu có mất thông tin • Ví dụ: int someInt = (int)3.6; //(thu hẹp kiểu) n Chuyển kiểu tường minh (Type casting): Là sự chuyển kiểu một cách tường minh, do người lập trình xác định. • Ví dụ: phép gán int someInt = (int) (5.2 / someDouble) → chuyển giá trị biểu thức từ số thực sang số nguyên. 15
  16. 4.6 Các phương thức của lớp Math (toán học) n Một lời gọi phương thức sẽ tạm thời chuyển điều khiển đến mã phương thức được gọi để thực hiện. n Khi mã của phương thức đó đã được thực hiện xong, điều khiển sẽ được trả về cho khối gọi. n Các phương thức của Java được lưu trữ trong các gói (tưong tự khái niệm folder của Windows), hoặc được viết bởi người sử dụng n Phương thức toán học là các phương thức được sử dụng để tính toán các hàm toán học và được khai báo trong lớp Math. 16
  17. 4.6 Các phương thức của lớp Math (toán học) n Phương thức trả về một giá trị (value-returning): Được gọi như một phần của biểu thức, thực hiện một nhiệm vụ nào đó và trả về một giá trị. n Phương thức không trả về giá trị (void): Được gọi như một chỉ thị (lệnh) riêng biệt, thực hiện một nhiệm vụ nào đó và không trả giá trị về cho bộ phận gọi nó. n Cú pháp gọi phương thức: tên_phương_thức(danh sách đối số) • Danh sách đối số được sử dụng để trao đổi các giá trị với phương thức qua việc truyền thông tin. • Danh sách đối số có thể chứa 0, 1 hoặc nhiều hơn các đối số, và được tách biệt nhau bởi các dấu phẩy (,) 17
  18. 4.6 Các phương thức của lớp Math (toán học) Phương thức Ý nghĩa sin(double rad) Trả về giá trị sin của rad (rad theo radian) cos(double rad) Trả về giá trị cos của rad (rad theo radian) tan(double rad) Trả về giá trị tan của rad (rad theo radian) acos(double a) Trả về giá trị acos của a (tính theo radian) asin(double a) Trả về giá trị asin của a (tính theo radian) atan(double a) Trả về giá trị atan của a (tính theo radian) toRadians(double deg) Đổi từ độ sang radian toDegrees(double rad) Đổi từ radian sang độ exp(double a) Trả về ea log(double a) Trả về ln(a) pow(double a, double b) Trả về ab sqrt(double a) Trả về căn bậc hai của a double ceil(double x) Làm tròn x lên giá trị nguyên gần nhất double floor(double x) Làm tròn x xuống giá trị nguyên gần nhất double rint(double x) Làm tròn x đến giá trị nguyên gần nhất int round(float x) Trả về (int)Math.floor(x+0.5) long round(double x) Trả về (long)Math.floor(x+0.5) max(a, b) Trả về giá trị lớn nhất của hai số a, b min(a, b) Trả về giá trị nhỏ nhất của hai số a, b abs(a) Trả về giá trị tuyệt đối của a double random() Trả về giá trị ngẫu nhiên thuộc [0.0, 1.0) 18
  19. 4.7 Các phương thức của lớp String (chuỗi) n Phương thức length: trả về số các ký tự có trong chuỗi. • Ví dụ: Nếu myName là một đối tượng chuỗi, ta gọi myName.length(); n Phương thức indexOf: trả về một số nguyên là vị trí bắt đầu của lần xuất hiện đầu tiên của chuỗi con trong chuỗi đã cho. Nếu không tìm thấy chuỗi con, phương thức trả về giá trị -1. • Ví dụ: Để tìm vị trí của lần xuất hiện đầu tiên của ký tự “a” trong myName, ta gọi myName.indexOf(“a”); n Phương thức substring: trả về chuỗi con của một chuỗi. Tham số đầu tiên chỉ ra vị trí bắt đầu trong chuỗi. Tham số thứ hai lớn hơn 1 so với vị trí kết thúc của chuỗi con. • Ví dụ: Để lấy ra các ký tự thứ hai và thứ ba của myName, ta gọi myName.substring(1, 3); 19
  20. 4.7 Các phương thức của lớp String (chuỗi) n Ví dụ về các phương thức length, indexOf, substring String stateName = “Mississippi” ; stateName.length( ) stateName.indexOf(“is”) stateName.substring( 0, 4 ) stateName.substring( 4, 6 ) stateName.substring( 9, 11 ) stateName.indexOf(“si”) stateName.indexOf(“as”) 20
  21. Câu hỏi và bài tập 1. Hãy viết một khai báo hằng Java cục bộ để truyền giá trị 3.14159 cho tên PI. 2. Hãy khai báo một biến count kiểu int và một biến sum kiểu double. 3. Ta muốn chia 9 cho 5. Ta sẽ viết biểu thức như thế nào nếu muốn kết quả là giá trị chấm động? Ta sẽ viết biểu thức như thế nào nếu muốn kết quả là phần nguyên của thương? 4. Giá trị của biểu thức Java sau là gì? 5 % 2 21
  22. Câu hỏi và bài tập 1. Kết quả của phép tính biểu thức sau là gì? (1 + 2 * 2) / 2 + 1 2. Nếu alpha và beta là các biến int với alpha = 4 và beta = 9, giá trị nào được lưu trữ vào alpha sau mỗi lệnh dưới đây? Các lời giải của mỗi phần là độc lập lẫn nhau. alpha = 3 * beta; alpha = alpha + beta; alpha ++; alpha = alpha / beta; alpha ; alpha = alpha + alpha; alpha = beta % 6; 3. Hãy tính giá trị của các biểu thức hợp lệ dưới đây và nói rõ giá trị đó là số nguyên hay số chấm động. Nếu biểu thức là chưa hợp lệ, hãy giải thích tại sao. 4. Hãy chuyển mã Java sau sang dạng đại số. (Tất cả các biến đều thuộc kiểu double) y = -b + sqrt(b * b – 4.0 * a * c); 22
  23. Câu hỏi và bài tập 1. Hãy viết một lệnh gán để tính tổng của các số từ 1 đến n sử dụng công thức Gauss sau: sum = n(n + 1) / 2 2. Hãy viết chương trình chuyển đổi độ Celsius sang độ Fahrenheit theo công thức sau: Fahrenheit = 9/5 Celsius + 32 Trong đó độ Celsius là hằng. Chương trình sẽ xuất ra hai giá trị là độ Celsius và độ Fahrenheit tương ứng. 3. Viết chương trình tính đường kính, chu vi và diện tích của một đường tròn bán kính 6.75. Khai báo hằng PI với giá trị 3.14159. Chương trình sẽ đưa ra đường kính, chu vi, và diện tích trên từng dòng riêng biệt, cùng với nhãn của chúng. Mỗi giá trị trên có năm vị trí phần thập phân trong một trường chung có độ dài là mười. 23