Tổng quan về ngôn ngữ lập trình C/C++
Lịch sử của ngôn ngữ lập trình C/C++
Ngôn ngữ lập trình C được Dennis Ritchie phát triển tại Bell Telephone Laboratories vào năm 1972, nhằm giúp lập trình viên tạo ra các ứng dụng hiệu quả hơn so với các ngôn ngữ lập trình khác thời bấy giờ Sự mạnh mẽ và linh hoạt của C đã cho phép các nhà phát triển tại Bell Labs xây dựng những ứng dụng phức tạp, bao gồm hệ điều hành Unix Năm 1983, học viện chuẩn quốc gia Mỹ (ANSI) đã thành lập một tiểu ban để chuẩn hóa C, dẫn đến sự ra đời của ANSI Standard C, mà tất cả các trình biên dịch C/C++ hiện nay đều tuân theo C++ được phát triển dựa trên nền tảng của ANSI Standard C.
C++ là một ngôn ngữ lập trình hướng đối tượng, bao gồm cả ngôn ngữ C Trong giáo trình này, chúng tôi sẽ không đề cập đến phần lập trình hướng đối tượng của C++.
Phương pháp để giải quyết một bài toán
Một chương trình máy tính được phát triển nhằm giải quyết một bài toán cụ thể Do đó, quy trình tìm kiếm giải pháp cho bài toán này tương tự như quá trình viết một chương trình Các bước thực hiện bao gồm: xác định vấn đề, phân tích yêu cầu, thiết kế giải pháp, lập trình, kiểm tra và tối ưu hóa chương trình.
- Xác định yêu cầu của bài toán
- Nghĩ ra một phương cách (algorithm) để tìm lời giải
- Thực hiện phương cách đó
- Kiểm tra kết quả để xem lời giải có đúng với yêu cầu của bài toán
Khi viết một chương trình trong C/C++, đây là những bước được đề nghị:
1 Xác định mục đích của chương trình
2 Nghĩ ra thuật toán phù hợp để giải quyết bài toán (dùng mã giả, lưu đồ, )
3 Cài đặt (viết) thuật toán dùng ngôn ngữ lập trình C/C++
4 Thực thi chương trình và kiểm thử (testing).
Các bước trong chu trình phát triển chương trình
Chu trình phát triển chương trình bao gồm bốn bước chính Đầu tiên, mã nguồn được nhập vào thông qua một trình soạn thảo văn bản Tiếp theo, mã nguồn này được biên dịch để tạo ra tập tin đối tượng Sau đó, các tập tin đối tượng sẽ được liên kết để hình thành tập tin có thể thực thi Cuối cùng, chương trình được thực hiện để kiểm tra xem nó có hoạt động đúng như mong đợi hay không.
3.1 Soạn thảo mã nguồn ( source code editor )
Mã nguồn là tập hợp các lệnh hướng dẫn máy tính thực hiện các tác vụ cụ thể Tệp mã nguồn thường được lưu trữ với phần mở rộng c cho ngôn ngữ C hoặc cpp cho ngôn ngữ C++.
Tập tin mã nguồn, dù được viết bằng từ ngữ tương tự tiếng Anh, dễ đọc và hiểu nhưng không thể trực tiếp được máy tính nhận biết Để máy tính thực thi, các chỉ dẫn phải ở dạng nhị phân trong ngôn ngữ máy Trước khi chương trình viết bằng ngôn ngữ cấp cao như C/C++ có thể chạy, nó cần được biên dịch từ mã nguồn sang mã máy thông qua trình biên dịch.
Mã đối tượng (object code) là các chỉ dẫn ngôn ngữ máy được tạo ra bởi trình biên dịch, và tập tin chứa mã đối tượng này được gọi là tập tin đối tượng Tập tin đối tượng có tên giống như tập tin mã nguồn nhưng có phần mở rộng là obj.
Compiler không được sử dụng để viết code mà thường là ứng dụng command line Có nhiều loại compiler phục vụ cho lập trình viên, và việc so sánh cũng như đánh giá chúng không nằm trong chương trình học, học viên có thể tự tìm hiểu thêm.
Một số compiler thông dụng: MS Visual C++ Compiler (Windows), GCC (Linux), MingW (Windows), Intel C++ Compiler (Linux, Windows, OS X), Borland C++ Compiler (Windows), …
3.3 Tạo tập tin thực thi ( executable files )
C/C++ cung cấp một thư viện hàm chứa mã đối tượng cho các hàm đã được xây dựng sẵn, cho phép thực hiện các tác vụ phổ biến như xóa màn hình với hàm clrscr() và nhập chuỗi ký tự từ bàn phím.
(gets()), tính căn bậc hai (sqrt()), mà chương trình được viết có thể sử dụng mà không phải viết lại
Tập tin thực thi được tạo ra từ việc kết hợp tập tin đối tượng do trình biên dịch tạo ra với mã đối tượng của các hàm thư viện Quá trình này, được gọi là liên kết, được thực hiện bởi bộ liên kết.
Khi chương trình nguồn được biên dịch và liên kết thành tệp thực thi với phần mở rộng exe, nó có thể được chạy trên máy tính thông qua dấu nhắc hệ thống.
Nếu chương trình không hoạt động đúng yêu cầu, nguyên nhân có thể là do lỗi lập trình Để khắc phục, cần chỉnh sửa mã nguồn, biên dịch lại và liên kết để tạo ra phiên bản mới của tập tin chương trình.
Quá trình bốn bước này được lập đi lập lập cho đến khi tập tin thực thi thực hiện đúng yêu cầu của bài toán
Quá trình biên soạn và thực thi chương trình thường cần đến một công cụ hỗ trợ gỡ lỗi, gọi là debugger Công cụ này giúp phân tích và theo dõi chương trình trong quá trình thực thi, cho phép người dùng thiết lập điểm dừng (breakpoints) để kiểm tra giá trị của các biến trong chương trình.
Khảo sát một chương trình C/C++ đơn giản
Khảo sát một chương trình đơn giản dùng để xuất ra màn hình dòng chữ Hello World!
{ cout >n; remainder = (n % 2); switch(remainder)
{ case 0: cout > operation; switch(operation)
{ case '+': cout