Lý do dùng C++ để viết game và phần mềm:
+ Tốc độ cao nhất chỉ sau hợp ngữ. Cho phép sử dụng trực tiếp các API của hệ điều hành.
+ Cho phép viết kèm hợp ngữ. Thứ này là quan trọng nhất này. API không phải lúc nào cũng là tốt nhất, đôi lúc phải tự viết nhiều thứ bằng hợp ngữ.
+ Lệnh tuy lằng nhằng nhưng nó rất hợp logic, rất thuận tiện cho những coder giỏi, ngược lại là trở ngại rất lớn với các coder khả năng hạn chế.
+ Dich ngược thì nó ra hợp ngữ, rất rất khó đọc và mất thời gian, vì vậy bỏa mật tốt.
+ Can thiệp sâu vào hệ điều hành.
+ D3D không có đối thủ.
Lời khuyên khi học C++:
+ Không học của người Việt, không đọc sách tiếng Việt.
+ Tự nghiên cứu vì mỗi coder đều có sở trường riêng, có những kiến thức riêng về 1 mảng nào đó. Những kiến thức đó không thể học của người khác, vì không có mà học, mổi người có cách suy nghĩ và làm khác nhau.
+ Mọi thứ không có gì là tuyệt đối, không phải cứ code đúng là đúng, nó còn phụ thuộc vào nhiều điều kiện, là kinh nghiệm riêng của từng coder.
+Riêng với JX: Học C++ làm Jx không khó, thực tế chỉ cần trình độ hạn chế là được, vì JX xây dựng sẵn các hàm, trên thực tế là code trên các thư viện hàm chứ ít khi tự xây dựng. Cái khó là ở thời gian và đầu óc hệ thống, tất nhiên muốn Fix những lỗi lớn hay viết tính năng lớn phải viết lại phần code nguồn, cần trình độ mức trung bình khá thôi. link Virtual C++ 6.0
Trong chương 1, bạn đã học được các khái niệm sau đây:
- C++ là ngôn ngữ lập trình bậc cao, nhanh, mạnh, được sử dụng phổ biến để lập trình games.
- Chương trình là một dãy các câu lệnh trong C++.
- Các yếu tố của ngôn ngữ C++ là ý tưởng, kế hoạch, mã nguồn, file object, thực thi.
- Lỗi chương trình thường rơi vào các trường hợp: lỗi compile (biên dịch), lỗi link (liên kết), và lỗi run-time.
- Chỉ thị #include ra lệnh bộ chọn trước include (bao gồm) một file vào file hiện hành.
- Thư viện chuẩn là một tập hợp các file mà bạn include vào file chương trình để làm một số chức năng (hàm) gì đó.
- Hàm (function) là một nhóm code có chức năng thực hiện công việc nào đó và sau đó trả về (return) một giá trị.
- Mọi chương trình phải có hàm main(), đây là điểm bắt đầu của chương trình.
- iostream - một phần của thư viện chuẩn, là một file chứa code giúp cho việc nhập xuất.
- Namespace std chứa các công cụ từ thư viện chuẩn. Để truy cập đến các yếu tố từ namespace, bạn cần đặt tiền tố std:: ở phía trước hoặc dùng using.
- cout là một object, định nghĩa trong file iostream, nó dùng để gửi dữ liệu đến lối ra (thường là màn hình máy tính).
- cin là một object, định nghĩa trong file iostream, nó dùng để lấy dữ liệu từ lối vào (thường là bàn phím).
- C++ được cài đặt sẵn các toán tử số học, như phép cộng, trừ, nhân, chia – và các toán tử không quen thuộc lắm nếu bạn chưa học lập trình .
- C++ có các kiểu dữ liệu cơ bản là Boolean, char, integer, và double, float.
- Thư viện chuẩn của C++ cung cấp object string dùng cho các chuỗi.
- Bạn có thể dùng typedef để tạo tên mới cho kiểu dữ liệu đã có.
- Hằng số là tên đại diện của một giá trị không đổi.
- Enumeration là một chuỗi các hằng số kiểu unsigned int.
Hỏi Đáp:
Hỏi:
1. Tại sao các công ty games dùng C++?
2. C++ khác C chỗ nào?
3. Tại sao tôi nên dùng chú thích (comments)?
4. Khối chương trình là gì? (Programming block)
5. Cảnh báo của trình biên dịch là gì? (compiler warning)
6. Tôi có thể bỏ qua compiler warnings được không?
7. Khoảng trắng (white space) là gì?
8. Tại sao hàm main() của chương trình trả lại giá trị kiểu int?
9. Literals là gì?
10. Tại sao tôi luôn nên khởi tạo một biến mới với một giá trị?
11. Tại sao lập trình viên nhiều khi dùng tên biến như myInt hay myFloat?
12. Biến kiểu bool dùng làm cái gì?
13. Tên “bool” bắt nguồn từ đâu?
14. Có phải bắt buộc đặt tên bằng chữ hoa cho các hằng số không?
15. Làm thế nào để tôi có thể lưu giữ nhiều hơn 1 kí tự trong một biến?
Đáp:
1. C++ có tốc độ cao, truy cập được đến các phần cứng bậc thấp, nó hữu dụng hơn các ngôn ngữ khác. Thêm nữa, đa số các công ty games có rất nhiều resources (tài nguyên) của C++ (chẳng hạn như code có thể dùng lại được và kinh nghiệm của lập trình viên).
2. C++ là bản cải tiến của C. C++ có tất cả những gì mà C có. Như thế nào đi nữa, C++ cung cấp cho chúng ta những phương pháp mới để làm một công việc nào đó, thay thế các phương pháp cổ điển máy móc trong C. Thêm nữa, C++ cung cấp thêm khả năng viết chương trình theo hướng đối tượng.
3. Để giải thích cho các đoạn code khó hiểu. Bạn không nên chú thích những thứ đã quá rõ ràng.
4. Là một hay nhiều câu lệnh được bao gộp bởi hai dấu { } tạo thành một khối thống nhất.
5. Là một thông báo từ trình biên dịch của bạn về lỗi tiềm tàng. Warning sẽ không dừng quá trình biên dịch.
6. Bạn có thể, nhưng bạn không nên. Bạn nên tìm những warning và sửa nó.
7. Một tập hợp các kí tự khô
Câu hỏi thảo luận:
1. Những đặc điểm hữu ích của C++ giúp cho các lập trình viên?
2. Ưu điểm và khuyết điểm của việc dùng chỉ thị using?
3. Ưu điểm của việc định nghĩa một tên mới cho kiểu dữ liệu có sẵn?
4. Có hai cách viết (trước, sau) của toán từ tăng/giảm (++/--), sự khác biệt giữa chúng là gì?
5. Hằng số giúp ích cho chương trình của bạn như thế nào?
Bài tập:
Trích:
1. Hãy tạo một list 6 tên biến hợp lệ - 3 tốt và 3 xấu. Giải thích vì sao tên đó xấu/tốt.
2. Kết quả xuất ra ở mỗi dòng của đoạn code sau đây là gì? Giải thích?
cout << "Seven divided by three is " << cout 7 / 3 << endl;
cout << "Seven divided by three is " << cout 7.0 / 3 << endl;
cout << "Seven divided by three is " << cout 7.0 / 3.0 << endl;
3. Viết một chương trình có chức năng lấy điểm số của 3 người chơi (nhập từ bàn phím), sau đó xuất ra màn hình số trung bình của nó.
Kết thúc chương I
Các bạn ai thích thì down ebook về đọc nhé, mình chỉ tóm tắt bấy nhiêu thôi