Slide bài giảng Cơ sở lập trình Ngôn ngữ Java Phép toán và kiểu dữ liệu Cấu trúc chương trình đơn giản Kiểu dữ liệu Slide bài giảng Cơ sở lập trình Ngôn ngữ Java Phép toán và kiểu dữ liệu Cấu trúc chương trình đơn giản Kiểu dữ liệu
Ngơn ngữ Java (Phép tốn – kiểu liệu) Mơn học: Cơ sở lập trình [Buổi 3-4] GV: Cấu trúc chương trình đơn giản Bao gồm phần • Khai báo thư viện, module: import ; package ; • Class & hàm main public class { public static void main(String[] args) { … // - Mã nguồn dạng lệnh cần thực thi … } } Cấu trúc chương trình Khai báo class với từ khóa public Khai báo: package, import, … public class phải có hàm main, khai báo public static void Lệnh thực dựa vào Class, Object & Method Trong trường hợp trên, ta gọi đối tượng out lớp System, thông qua phương thức println để xuất chuỗi hình System.out.printf System.out.printf lệnh dùng cho việc in liệu hình máy tính Cú pháp: System.out.printf(“Chuỗi thơng báo”, tham số, …); - “Chuỗi thông báo”: Thông tin cần xuất hình - Tham số, … : Các giá trị liệu cần đưa vào, thể chuỗi thông báo System.out.print Đây phương thức xuất chuẩn java, dùng phép in thơng báo hình Tuy nhiên, tham số hàm khác với printf chỗ: đối tượng ghé nối với toán tử “+” Cú pháp: System.out.print(tham số + tham số + …); Ký tự đặc biệt – Escape characters Kiểu liệu Java cung cấp kiểu liệu nguyên thủy “primitive data”, hay gọi built-in data type Bao gồm: • kiểu dùng cho chứa số nguyên: byte, short, int, long • kiểu chứa số thực, có dấu chấm động: float, double • kiểu chứa liệu logic : boolean • kiểu chứa ký tự: char Primitive data types Range of numeric data types in Java Biến & Hằng – (Variable - Constant) Biến – Variable Biến xem đối tượng khai báo chương trình để lưu trữ liệu thuộc “kiểu xác định” (Theo quy ước người lập trình) Nội dung biến bị thay đổi tuỳ thuộc vào thuật tốn & thời điểm mà ta truy xuất đến Cú pháp khai báo biến C mô tả sau ; < kiểu_dữ_liệu> = ; Ví dụ: int n,s; [1] short bcc = 5; [2] long gt = 0, i, a = 12, b = 7, c = -11; [3] Ghi chú: [1] – Khai báo biến n s thuộc kiểu nguyên, độ lớn biến bytes, chứa giá trị khoảng từ -32768 … + 32767 [2] – Khai b áo biến bcc thuộc kiểu short khởi gán giá trị ban đầu [3] – Khai báo biến gt, i, a, b, c kiểu long tiến hành khởi gán giá trị ban đầu cho biến gt, a, b, c * Định danh – (Identifier) Đây khái niệm quan trọng chương trình, để đặt tên cho thành phần chương trình mình, lập trình viên cần phải đặt tên cho thành phần tương ứng (VD: Tên biến, tên hằng, tên hàm, tên kiểu liệu, …), sau đặt tên, bạn gọi sử dụng chúng (Truy xuất) phạm vi chương trình Tuy nhiên, việc đặt tên cho thành phần chương trình phải thoả mãn vấn đề sau: Không trùng tên, phải (Nếu trùng sẽ: Thiếu tường minh) Khơng phép sử dụng ký tự đặc biệt khoảng trống, phép sử dụng ký tự bảng chữ [a,b,…z;A,B,…Z], ký số [0,1,…9] dấu gạch “_” (Underscore) Không trùng tên với từ khố quy ước ngơn ngữ lập trình Luôn phải bắt đầu ký tự bẳng chữ dấu gạch Quy ước đặt tên Camel case - Tuân theo nguyên tắc đặt tên cho Identified lập trình java - Bắt đầu từ phải viết chữ hoa, ký tự lại phải chữ thường, từ phải viết chữ thường toàn VD iPhone, eBay, fedEx, chieuDai, tyGia, … Đối tượng “scanner” - Tạo đối tượng: scanner - Phương thức nhận liệu - nextBoolean() - nextByte() - nextDouble() - nextFloat() - nextInt() - nextLine() - nextLong() - nextShort() - Đóng, giải phóng vùng nhớ - close() Các phép tốn Để phục vụ cho việc tính tốn (Xử lý chương trình), ngơn ngữ lập trình cung cấp phép toán: Số học (Arithmetic), luận lý (Logic), Quan hệ (Relative), Gán (Asignment), … phép toán C thường chia làm dạng - Phép toán ngơi - Phép tốn hai ngơi Trong đó, thành phần tên gọi (biến, hằng, hàm, …) tham gia phép toán gọi hạng thức (hoặc toán hạng), kí hiệu dùng để biểu diễn phép tốn gọi tốn tử Ví dụ: • a+b: phép tốn số học, a, b toán hạng ký hiệu “+” toán tử số học biểu diễn cho ý nghĩa phép toán cộng Lưu ý: Số ngơi phép tốn số toán hạng tham gia phép toán tương ứng Trong ví dụ trên, ta có phép tốn hai ngơi Phép tốn số học – Arithmetic operators Phép tốn quan hệ - elational operators Toán tử tăng, giảm – Increment and Decrement operators Toán tử gán – Assignment operators Toán tử logic – Logical operators Chuyển kiểu, “Ép kiểu” – Casting Khi khai báo biến để sử dụng chương trình mình, đồng nghĩa với việc bạn “Đề nghị cấp phát vùng nhớ dùng cho mục đích lưu trữ liệu với khơng gian … - tuỳ thuộc vào kiểu khai báo”, chương trình bạn đơi lại phải đối mặt với số vấn đề xử lý Hãy xét đoạn chương trình sau int a = 7, b = 2; float c = a / b; printf(“%d / %d = %2.1f”, a,b,c); Câu hỏi đặt kết in hình ? Câu trả lời là: / = 3.0 Chắc bạn ngạc nhiên, lẽ biết chia phải 3.5 !? Chuyển kiểu, “Ép kiểu” – Casting Như vậy, để linh hoạt tình đặc biệt, ngơn ngữ C (Hoặc ngơn ngữ lập trình “Tựa C” Java, C Sharp, …) cung cấp kỹ thuật, gọi “Chuyển kiểu” hay “Ép kiểu” liệu biến chương trình, đoạn chương trình viết lại sau int a = 7, b = 2; float c = (float) a / b; printf(“%d / %d = %2.1f”, a,b,c); Lúc này, kết in hình bạn muốn / = 3.5 Cú pháp: (kiểu_dữ_liệu) ; (kiểu_dữ_liệu) ; Chuyển kiểu, “Ép kiểu” – Casting Trong C, việc ép kiểu phân làm loại Ép kiểu ngầm định float v = 23; // - Tự động chuyển v = 23.0 int f = 7.23; // - Tự động chuyển f = Ép kiểu tường minh int a=10, b=4; float c = (float) a/b; // - Chuyển giá trị a thành số thực // - sau thực phép chia a cho b // - Lúc này, b tạm thời // - chuyển thành số thực (một cách tạm thời) Thứ tự ưu tiên phép toán Ghi nhớ Primitive data types: boolean, char, int, float, … Identifier ?, quy ước liên quan đến identifier Camel case ? Đối tượng Scanner dùng để làm ? Nhớ phương thức Scanner object (nextInt, nextFloat, nextLine, …) Có loại phép tốn, độ ưu tiên phép toán Hiểu casting ? Tham khảo Primitive Data Types, The JavaTM Tutorials, Oracle Document (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html) Java Scanner Class, Java point (https://www.javatpoint.com/Scanner-class ) Class scanner, Oracle document (https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html) Formatting (https://docs.oracle.com/javase/tutorial/essential/io/formatting.html) ... pháp: (kiểu_ dữ_ liệu) ; (kiểu_ dữ_ liệu) ; Chuyển kiểu, “Ép kiểu? ?? – Casting Trong C, việc ép kiểu phân làm loại Ép kiểu ngầm định float v = 23; // - Tự... Số ngơi phép tốn số toán hạng tham gia phép toán tương ứng Trong ví dụ trên, ta có phép tốn hai ngơi Phép toán số học – Arithmetic operators Phép toán quan hệ - elational operators Toán tử tăng,... Chuyển kiểu, “Ép kiểu? ?? – Casting Như vậy, để linh hoạt tình đặc biệt, ngơn ngữ C (Hoặc ngơn ngữ lập trình “Tựa C” Java, C Sharp, …) cung cấp kỹ thuật, gọi “Chuyển kiểu? ?? hay “Ép kiểu? ?? liệu biến