Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
463,08 KB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KHOA HỌC MÁY TÍNH BÁO CÁO ĐỒ ÁN MÔN NGUYÊN LÝ VÀ PHƯƠNG PHÁP LẬPTRÌNH – CS111.J11 ĐỀ TÀI: BIẾNTRONGNGƠNNGỮLẬPTRÌNH GIÁO VIÊN HƯỚNG DẪN ThS TRỊNH QUỐC SƠN SINH VIÊN THỰC HIỆN (nhóm 2) Trần Phước Lợi – 16521723 Nguyễn Xuân Duy Hiển – 16521670 Thành phố Hồ Chí Minh, tháng 12 năm 2018 Lời mở đầu Môn học Nguyên lý pháp lậptrình cung cấp cho chúng em kiến thức ngơnngữlập trình, ngun lý, phương pháp và kỹ thuật ngônngữlập trình, dòng ngơnngữlậptrình Đờng thời cung cấp kiến thức giúp chúng em hiểu rõ các chế xử lý thành phần cấu thành nên ngônngữlậptrình Đề tài Biếnngơnngữlậptrình chủ để quen thuộc với nhiều sinh viên IT, để hiểu rõ chế biếnlậptrình chúng em định tìm hiểu sâu Biến chế hoạt bên với vấn để liên quan Đây là chủ để chúng em thích, chúng em chọn đề tài này cho đồ án ći kì Trong quá trình hoàn thành đề tài, chúng em tìm hiểu khái niệm biến nói chung sớ khái niệm, đặc điểm biếnngơnngữlậptrình phổ biến như: C#, C++ Java, Golang, Javasprit…vv kỹ tìm hiểu tham khảo tài liệu làm việc nhóm thuyết trình Chúng em xin trân trọng cám ơn hướng dẫn tận tình thầy Trịnh Q́c Sơn mặc chun mơn định hướng Vì kiến thức hạn hẹp nên q trình thực đề tài khơng thể tránh khỏi sai sót Vì mong nhận góp ý thầy để đề tài hồn thiện Mục Lục Tìm hiểu chung biến 1.1 Biến 1.2 Đặc trưng biến 1.3 Kiểu liệu biếnBiếnngônngữ C# 2.1 Giới thiệu biếnngônngữ C# 2.2 Kiểu liệu biến C# 2.3 Khai báo biến C# 2.4 Một số trường hợp đặt biệnbiến C# Biếnngônngữ Java 12 3.1 Giới thiệu biếnngônngữ Java 12 3.2 Khai báo biếnngônngữ Java 12 3.3 Kiểu liệu biếnngônngữ Java 13 3.4 Các loại biến Java 14 3.4.1 Biến local Java 14 3.4.2 Biếnbiến instance (biến toàn cục) java 15 3.4.3 Biến static java 17 Biếnngônngữ C++ 18 4.1 Giới thiệu biếnngônngữ C++ 18 4.2 Khai báo biếnngônngữ C++ 18 4.3 Kiểu liệu C++ 22 Biếnngônngữ Javascript 23 5.1 Giới thiệu biến JS 23 5.2 Khai báo biến JavaScript 23 5.2.1 Gán giá trị cho biến 23 5.2.2 Gán kiểu giá trị cho biến 24 5.3 Một số toán tử, kết hợp toán tử JavaScript 24 5.4 Quy tắc đặt tên biến 24 5.5 Một số vấn đề khác JavaScriptPhá vỡ chuỗi JavaScript 25 Biếnngônngữ GoLang 25 6.1 Giới thiệu biếnngônngữ GoLang 25 6.2 Khai báo biến Go 25 6.3 Các kiểu liệu Go 26 6.4 Một số toán tử Go 26 6.5 Quy tắt đặt tên biến Go 27 6.6 Một số vấn đề khác Go 27 So Sánh điểm khác ngônngữ C#, Java, C++, Go, JS 28 7.1 Sự khác biệt cú pháp kiểu liệu ngônngữ 28 7.2 Sự khác biệt quy tắt đặt tên ngônngữ 28 7.3 Sự khác biệt phạm vi thời gian tồn ngơnngữ 29 Tìm hiểu chung biến 1.1 Biến Khái niệm biếnlậptrình gần giống với khái niệm biến số Toán học Biến (variable) tên biểu thị cho số lượng, ký hiệu hay đối tượng biến dành sẵn chỗ (phần nhớ) để chứa số lượng, ký hiệu hay đới tượng - Biến chương trình thay đổi giá trị khơng thay đổi biến bị thay đổi lượng nhớ mà chiếm lấy - Biến khơng gán giá trị hay có gán giá trị khơng sử dụng chiếm chỗ nhớ - Mỗi biến có tên có kiểu xác định Tùy theo ngơn ngữ, biến khai báo vị trí mã nguồn tùy ngơn ngữ, tùy phần mềm dịch cách thức lậptrình mà biến tạo nên (cùng với chỗ chứa) hay bị xóa bỏ thời điểm lúc thực thi chương trình 1.2 Đặc trưng biến Một biến nói chung phải có đặc trưng sau: – Tên biến – Kiểu liệu: kiểu biến – Giá trị lưu giữ – giá trị biến( có ) Trongngơnngữlậptrìnhbiến phải có tên, tên biến hay nói chung tên (gồm tên biến, tên hằng, tên hàm, từ khoá) xâu kí tự phải tuân theo quy định ngơnngữlậptrình Việc biến bị xóa bỏ để tiết kiệm nhớ làm tốt việc quản lý phần nhớ mà đơi chương trình cấp đăng ký với hệ điều hành Quá trình tồn biến gọi đời sống biếnTrong nhiều trường hợp đời sống biến xảy nội hàm, thủ tục hay khối mã 1.3 Kiểu liệu biến Kiểu liệu biến Kiểu liệu Ví dụ Kiểu số nguyên sbyte, byte, short, ushort, int, uint, long, ulong, char Kiểu số thực dấu chấm động float double Kiểu thập phân decimal Kiểu Boolean true false Kiểu Nullable Kiểu liệu Nullable Các ngônngữ cho phép định nghĩa kiểu giá trị khác biến kiểu enum kiểu tham chiếu biến class, tùy theo ngônngữ có các khai báo khác Các kiểu giá trị ngơnngữlậptrình phổ biến phân chia thành: Biếnngônngữ C# 2.1 Giới thiệu biếnngônngữ C# Biến tên cung cấp cho khu vực lưu giữ mà chương trình thao tác Mỗi biến C# có kiểu cụ thể, mà định kích cỡ cách bố trí nhớ biến đó, cách dãy giá trị lưu giữ nhớ đó, cách tập hợp hoạt động áp dụng tới biến Cấu trúc nhớ bao gồm ô nhớ liên tiếp ô nhớ có địa riêng, sử dung phải biết địa chúng, điều gây khó khăn nhiều đến việc lậptrình Thay vào ta sử dụng biến để tham chiếu đến vùng nhớ mà ta đặt ko cần đến địa ô nhớ Vậy nên sử dụng biến để thao tác với nhớ cách dễ dàng lưu diệu tái sử dụng lại chúng cho việc lậptrình tiện lợi 2.2 Kiểu liệu biến C# Các kiểu giá trị C# phân chia thành: Kiểu liệu Ví dụ Kiểu số nguyên sbyte, byte, short, ushort, int, uint, long, ulong, char Kiểu số thực dấu chấm động float double Kiểu thập phân decimal Kiểu Boolean true false Kiểu Nullable Kiểu liệu Nullable C# cho phép định nghĩa kiểu giá trị khác biến kiểu enum kiểu tham chiếu biến class, bàn luận chương tới 2.3 Khai báo biến C# Định nghĩa biến C# Cú pháp để định nghĩa biến C# là: ; Ở đây, kiểu_dữ_liệu phải kiểu liệu hợp lệ C#, gồm: char, int, double kiểu liệu tự định nghĩa (user-defined) danh_sách_biến chứa nhiều tên định danh phân biệt dấu phẩy 2.4 Một số trường hợp đặt biệnbiến C# Dưới số định nghĩa biến hợp lệ C#: int i, j, k; char c, ch; float f, salary; double d; Bạn khởi tạo biến thời điểm định nghĩa, sau: int i = 100; Khởi tạo biến C# Biến khởi tạo (được gán giá trị) với dấu theo sau biểu thức Form chung cho khởi tạo biến C# là: tên_biến = giá_trị; Các biến khởi tạo khai báo chúng Phần khởi tạo gồm dấu theo sau biểu thức hằng, sau: = giá_trị; Một số ví dụ khởi tạo biến C# là: int d = 3, f = 5; /* khai báo và khởi tạo biến d và f */ byte z = 22; /* khai báo và khởi tạo biến z */ double pi = 3.14159; /* khai báo và khởi tạo biến pi */ char x = 'x'; /* khai báo và khởi tạo biến ký tự x */ Việc khởi tạo biến cách xác thực hành tốt cho bạn, khơng chương trình tạo kết khơng mong đợi Ví dụ sau sử dụng kiểu biến đa dạng C#: using System; namespace Nhom2 { class TestCsharp { static void Main(string[] args) { Console.WriteLine("Khai bao va khoi tao bien C#"); Console.WriteLine(" "); //khai bao bien short a; int b; double c; /* khoi tao bien */ a = 10; b = 20; c = a + b; Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c); Console.ReadLine(); Console.ReadKey(); } } } Biên dịch chạy chương trình C# cho kết sau: Nhận giá trị từ người dùng C# Lớp Console System namespace cung cấp hàm ReadLine() để nhận đầu vào từ người dùng (chẳng hạn nhập từ bàn phím) lưu vào biến Ví dụ: int num; num = Convert.ToInt32(Console.ReadLine()); Hàm Convert.ToInt32() chuyển đổi liệu nhập người dùng thành kiểu liệu int, Console.ReadLine() chấp nhận liệu định dạng chuỗi Biểu thức lvalue rvalue C# Có hai loại biểu thức C#: lvalue: Một biểu thức mà lvalue xuất bên trái bên phải phép gán C# rvalue: Một biểu thức mà rvalue xuất bên phải khơng thể bên trái phép gán C# Các biến lvalue chúng xuất bên trái phép gán Các số rvalue chúng khơng thể gán xuất bên trái phép gán Sau lệnh hợp lệ C#: int g = 20; Nhưng lệnh sau không hợp lệ tạo Compile-time error C#: 10 = 20; Phạm vi hoạt động biến vùng đoạn mã mà từ biến truy xuất Trong phạm vi hoạt động (scope), khơng thể có hai biến mang tên trùng Thí dụ ta khơng thể làm sau : int x = 20; // số câu lệnh int x = 30; Xét ví dụ sau: 10 public static void main(String args[]) { Sinhvien sv = new Sinhvien("Nguyen Van A"); sv.setTuoi(21); sv.showStudent(); } } Kết quả: Ten : Nguyen Van A Tuoi : 21 3.4.3 Biến static java Biến static khai báo class với từ khóa “static”, phía bên ngồi phương thức, constructor block • • • • • • Sẽ có biến static tạo ra, dù bạn tạo đối tượng từ lớp tương ứng Biến static lưu trữ nhớ static riêng Biến static tạo chương trình bắt đầu chạy bị phá hủy chương trình dừng Giá trị mặc định biến static phụ thuộc vào kiểu liệu bạn khai báo tương tự biến instance Biến static truy cập thông qua tên class chứa nó, với cú pháp: TenClass.tenBien Trong class, phương thức sử dụng biến static cách gọi tên phương thức khai báo với từ khóa “static” Ví dụ biến static java: public class Sinhvien { // biến static 'ten' public static String ten = "Nguyen Van A"; // biến static 'tuoi' public static int tuoi = 21; public static void main(String args[]) { 17 // Sử dụng biến static cách gọi trực tiếp System.out.println("Ten : " + ten); // Sử dụng biến static cách gọi thông qua tên class System.out.println("Ten : " + Sinhvien.tuoi); } } Kết quả: Ten : Nguyen Van A Ten : 21 Biếnngônngữ C++ 4.1 Giới thiệu biếnngônngữ C++ Biến dùng để lưu trữ giá trị Bạn tưởng tượng giả sử bạn có bao bạn sử dụng bao với nhiều mục đích khác dùng để chứa gạo, chưa ngô, chứa khoai, lúc bao ví biến C++ Đó ví dụ thực tế lậptrìnhbiến lưu trữ vị trí nhớ máy tính, sau muốn sử biến hệ thống tìm nhớ xem có tồn biến khơng? Nếu tồn sử dụng bình thường, ngược lại chương trình bị lỗi bạn sử dụng biến chưa khởi tạo 4.2 Khai báo biếnngônngữ C++ Vì chưa học kiểu liệu C++ nên bạn khơng hiểu ví dụ đọc sơ lược quay lại Để khai báo biến C++ ta sử dụng cú pháp sau: < ten_bien>; Ví dụ: Khai báo biến kiểu number (tức là kiểu int, int là viết tắt interger) int namsinh; 18 Để gán giá trị cho biến ta sử dụng tốn tử gán = Ví dụ: Gán giá trị 1990 cho biến namsinh int namsinh; namsinh = 1990; Ngồi ta gán giá trị cho biến lúc khởi tạo Với ví dụ ta viết lại sau: int namsinh = 1990; Biến cục C++ Các biến khai báo bên hàm khối biến cục (local) Chúng sử dụng lệnh bên hàm khối code Các biến cục khơng biết bên ngồi hàm (tức sử dụng bên hàm khối code đó) Dưới ví dụ sử dụng biến cục bộ: #include using namespace std; int main () { // phan khai bao bien cuc bo: int a, b; int c; // phan khoi tao bien a = 10; b = 20; c = a + b; 19 cout = ++ += -= *= /= … 26 Trong Go khơng cho phép kết hợp tốn từ + = var a = + + // var a = “Ta” + // Lỗi khơng tương thích kiểu liệu 6.5 Quy tắt đặt tên biến Go - Các kí tự cho phép bao gồm: chữ cái, số dấu gạch - Kí tự phải bắt đầu là: chữ dấu gạch - Có phân biệt chữ hoa – thường - Không đặt tên trùng lặp với từ khóa: var, if, else,… - Chấp nhận kí tự từ bảng mã Unicode Phạm vi, thời gian tồn biến Go Tương tự ngơnngữlậptrình khác, biến cục khai báo hàm khối (thơng qua từ khóa let) tồn hàm khối Biến tồn cục: biến tạo thân chương trình – tồn suốt trình thực chương trình 6.6 Một số vấn đề khác Go Định nghĩa kiểu liệu mới: type [tên_kiểu] [chi_tiết] VD: type tuoi int Ta định nghĩa kiểu dạng cấu trúc: type [tên-kiểu] struct { [chi-tiết] } VD: type nguoi struct { ten string tuoi int } Biến lưu mảng: var tên_mảng [chỉ_số]kiểu_dữ_liệu VD: var a [3]string // mảng có phần tử string 27 So Sánh điểm khác ngônngữ C#, Java, C++, Go, JS 7.1 Sự khác biệt cú pháp kiểu liệu ngônngữ Cú pháp khai báo Kiểu liệu C# Java C++ JavaScript Go int i, j, k; int i, j, k; int i, j, k; char c, ch; char c, ch; char c, ch; float f; float f; float f; double d; double d; double d; var a bool Số thực, số nguyên, ký tự, chuỗi, luận lý… Số thực, số nguyên, ký tự, chuỗi, luận lý… Số thực, số nguyên, ký tự, chuỗi, luận lý… Số thực, số nguyên, ký tự, chuỗi, luận lý… var a int var a; Số, chuỗi luận lý var a string 7.2 Sự khác biệt quy tắt đặt tên ngônngữ C# Giống Java C++ JavaScript Go Cho phép kí tự số dấu gạch Khơng trùng với từ khóa, có phân biệt hoa – thường 28 Khác Phải bắt đầu kí tự Không thể bắt đầu số Cho phép sử dụng $ Không thể bắt đầu số Không thể bắt đầu số Cho phép sử dụng $ Không thể bắt đầu số Cho phép sử dụng kí tự Unicode 7.3 Sự khác biệt phạm vi thời gian tồn ngônngữ C# Java C++ JavaScript Go -Biến cục dùng hàm khối lệnh Phạm vi Thời gian tồn -Biến toàn cục dùng toàn chương trình -Biến cục bộ: tồn hàm/khối lệnh -Biến tồn cục: tồn suốt q trình thực thi chương trình 29 Tài liệu kham khảo: [1] Cao Hồng Trụ Ngun lý ngơnngữlập trình, Nhà xuất Đại học Quốc gia TP.HCM, 2005 [2] Robert W Sebesta Concepts of Programming Languages, Addison-Wesley, Seventh Edition [3] Kenneth C.Louden, Programming Languages, Principles and Practice, Second edition, Thomson Brooks/Cole, 2003 [4] https://courses.uit.edu.vn/mod/resource/view.php?id=64468 Lời Cảm Ơn /**/ Nhóm Chúng em xin chân thành cảm ơn kiến thức bổ ích từ thầy - ThS Trịnh Quốc Sơn với là giúp đỡ tận tình bảo thầy Đã giúp chúng em đạt kết ngày hơm Tuy khơng q hồn hảo để xứng đáng với mà bọn em truyền đạt từ phía thầy Nhưng chúng em mong góp ý bảo thầy để chúng em rút kinh nghiệm học tập cho môn học sau Trân trọng cảm ơn thầy! 30 Nhận xét giảng viên hướng dẫn: 31 ... thành phần cấu thành nên ngôn ngữ lập trình Đề tài Biến ngơn ngữ lập trình chủ để quen thuộc với nhiều sinh viên IT, để hiểu rõ chế biến lập trình chúng em định tìm hiểu sâu Biến chế hoạt bên với... 17 Biến ngôn ngữ C++ 18 4.1 Giới thiệu biến ngôn ngữ C++ 18 4.2 Khai báo biến ngôn ngữ C++ 18 4.3 Kiểu liệu C++ 22 Biến ngôn ngữ Javascript... chương trình 1.2 Đặc trưng biến Một biến nói chung phải có đặc trưng sau: – Tên biến – Kiểu liệu: kiểu biến – Giá trị lưu giữ – giá trị biến( có ) Trong ngơn ngữ lập trình biến phải có tên, tên biến