24/05/2018, 22:13

Giới thiệu về C++

C++ là một ngôn ngữ lập trình tiến tiến, mạnh trong các ngôn ngữ lập trình hiện nay, nó được sử dụng bởi hàng triệu lập trình viên trên thế giới. Nó là một trong những ngôn ngữ phổ biến để viết các ứng dụng máy tính – và ngôn ngữ thông dụng nhất để lập ...

C++ là một ngôn ngữ lập trình tiến tiến, mạnh trong các ngôn ngữ lập trình hiện nay, nó được sử dụng bởi hàng triệu lập trình viên trên thế giới. Nó là một trong những ngôn ngữ phổ biến để viết các ứng dụng máy tính – và ngôn ngữ thông dụng nhất để lập trình games. Được sáng tạo bởi Bjarne Stroustrup, C++ là thế hệ sau của ngôn ngữ C. Thực tế, C++ giữ lại hầu hết các đặc điểm của C. Như thế nào đi nữa, C++ đem đến cho chúng ta những thuận lợi hơn trong việc lập trình.

C++ là ngôn ngữ được các lập trình viên games lựa chọn. Hầu hết các games được giới thiệu hiện nay đều được viết bởi C++. Có nhiều lí do khác nhau để giải thích vì sao những người lập trình games sử dụng C++. Đây là một vài lí do:

Nhanh: Nếu bạn rành C++ thì bạn có thể lập trình nhanh. Một trong những mục tiêu của C++ là khả năng thực thi. Và nếu bạn cần thêm các tính năng cho chương trình, C++ cho phép bạn dùng ngôn ngữ Assembly (Hợp ngữ) – Ngôn ngữ lập trình bậc thấp nhất – để giao tiếp trực tiếp với phần cứng của máy tính.

Dễ điều khiển: C++ là một ngôn ngữ biến hóa, nó hỗ trợ các phong cách lập trình khác nhau, bao gồm lập trình hướng đối tượng. Không giống các ngôn ngữ khác, C++ không ép buộc lập trình viên phải đi theo một phong cách nào cả.

Hỗ trợ nhiều: Vì nó là ngôn ngữ vượt trội các ngôn ngữ khác, có rất nhiều tài nguyên cho người lập trình bằng C++, bao gồm đồ họa API và 2D, 3D, vật lý, các thiết bị âm thanh chính vì điều này đã giúp cho lập trình viên tăng tốc độ lập trình games.

File mà bạn dùng để chạy chương trình – dù bạn đang nói đến game hay các ứng dụng windows – gọi là file thực thi (Executable File). Có rất nhiều bước để tạo một file thực thi từ mã nguồn của C++ (tập hợp các lệnh trong ngôn ngữ C++). Quá trình này được mô tả ở hình 1.1.

1. Đầu tiên, người lập trình dùng editor (trình soạn thảo) để viết mã nguồn C++, file đó thường có đuôi .cpp. Trình soạn thảo giống như bộ xử lý ngôn ngữ cho chương trình, nó cho phép lập trình viên tạo, chỉnh sửa, và lưu trữ mã nguồn.

2. Sau khi lập trình viên lưu lại mã nguồn, anh (chị) ta sẽ gọi compiler (trình biên dịch) – một ứng dụng có chức năng đọc mã nguồn và dịch nó sang file đối tượng (object file). Object files thường có đuôi mở rộng là .obj.

3. Tiếp theo, bộ phận kết nối (Linker) sẽ kết nối file object đến những file ngoài nếu cần thiết, sau đó tạo file thực thi (executable file), thường có đuôi mở rộng là .exe. Đến lúc này, người dùng có thể chạy chương trình bằng cách chạy file thực thi.

Lưu ý: Quá trình tôi miêu tả ở trên chỉ là một trường hợp đơn giản. Để tạo nên một ứng dụng phức tạp trong C++ thường liên quan đến rất nhiều file mã nguồn được viết bởi lập trình viên (hay một nhóm lập trình viên).

Để tự động hóa quá trình này, lập trình viên dùng một công cụ tổng hợp, đó là IDE (Integrated Development Environment – môi trường tương thích khai triển). IDE thường bao gồm editor, compiler, linker và một số công cụ khác. Phiên bản thương mại IDE cho Windows bao gồm Visual Studio.NET và C++ Builder Studio. Dev-C++ là một ngôn ngữ mà nguồn mở miễn phí cho Windows (hyutar: strong CD ROM kèm quyển sách gốc có cái Dev-C++, nhưng sách này là đồ lậu nên hổng có, mọi người có thể tải cái này từ trên net về, hoặc dùng C++ 6.0 hay Visual C++ cũng được, mình nghĩ hầu hết mọi người đều có bản thương mại của C rồi).

Khi miêu tả quá trình tạo file thực thi từ mã nguồn C++, tôi đã bỏ qua một chi tiết nhỏ: đó là lỗi. Lỗi là một chuyện hay gặp của các chương trình máy tính. Lập trình viên chính là người thường xuyên mắc lỗi nhất. Ngay cả lập trình viên giỏi nhất đều có thể mắc lỗi ở lần thứ 1 (hoặc nhiều hơn) chạy chương trình. Lập trình viên phải sửa lỗi và chạy lại quá trình tạo file thực thi. Sau đây là một vài loại lỗi cơ bản bạn thường mắc phải khi chạy chương trình:

Lỗi biên dịch (Compile Errors): Nó xảy ra trong quá trình biên dịch. Kết quả, file object không được tạo ra. Lỗi này thường do lỗi cú pháp, có nghĩa là trình biên dịch không hiểu cái gì đó. Nó có thể đơn giản như gõ sai lệnh chẳng hạn, hay thiếu dấu “;”. Trình biên dịch còn đưa ra những cảnh báo (warning). Mặc dù bạn thường không cần phải chú ý đến warning, nhưng bạn nên giải quyết nó như là lỗi, sữa chửa, sau đó biên dịch lại, đây là một thói quen tốt đấy ^^.

Lỗi liên kết (Link Errors): Nó xảy ra trong quá trình kết nối và có thể cho biết có vài thứ mà chương trình liên kết đến không thể tìm thấy. Lỗi này thường được giải quyết bằng cách đặt đúng vị trí các liên kết và bắt đầu quá trình biên dịch/kết nối lần nữa.

Lỗi Run-time (Run-time errors): Nó xảy ra khi đang chạy file thực thi. Nếu chương trình làm một cái gì đó không hợp lý, nó có thể phá hủy hệ thống. Nhưng một dạng lỗi tinh vi, khó phát hiện hơn của lỗi run-time: logical error (lỗi logic), có thể làm chương trình làm những việc mà ta không định trước. Nếu bạn đã từng chơi game mà trong đó nhân vật có thể bước trên không khí (trong kịch bản nhân vật không thể bước trên không khí), khi đó bạn đã thấy lỗi logical trong hành động.

Trong thực tế: Như các nhà tạo phần mềm, công ty game thường gặp rắc rối với các sản phẩm bị lỗi. Biện pháp khắc phục của họ là trước khi đem ra ngoài thị trường, họ thuê những người chơi game thử (game testers). Những người này chỉ chơi games, nhưng công việc của họ không thú vị như bạn tưởng đâu. Họ phải chơi đi chơi lại một phần nào đó của game – có thể lên đến hàng trăm – cố gắng tìm xem có lỗi nào không. Và với công việc buồn tẻ này, lương của họ cũng bèo nhèo. Nhưng trở thành game testers là một nấc thang để bạn có thể vào làm việc tại công ty làm games.

Ví dụ:

#include <stdio.h>

#include <conio.h>

void main()

{

printf(“chao cac ban”);

getch();

}

0