Tự Học C++

#Sponsor Link Tilter
#Sponsor Link Tilter


Máy tính số là một công cụ để giải quyết hàng loạt các bài toán lớn. Một lời giải cho một bài toán nào đó được gọi là một giải thuật (algorithm); nó mô tả một chuỗi các bước cần thực hiện để giải quyết bài toán.
Ví dụ
Bài toán: Sắp xếp một danh sách các số theo thứ tự tăng dần.
Giải thuật:Giả sử danh sách đã cho là  list1; tạo ra một danh sách rỗng, list2,để lưu danh sách đã sắp xếp. Lặp đi lặp lại công việc, tìm số nhỏ nhất trong list1, xóa nó khỏi list1,  và thêm vào phần tử kế tiếp trong danh sách list2, cho đến khi list1 là rỗng.
Giải thuật được diễn giải bằng các thuật ngữ trừu tượng mang tính chất dễ hiểu.
Máy tính chỉ hiểu được ngôn ngữ máy (mã nhị phân). Chương trình được diễn đạt bằng ngôn ngữ máy được gọi là có thể thực thi.
Nếu dùng bất kỳ ngôn ngữ nào khác để viết chương trình thì cần phải dịch sang ngôn ngữ máy để có thể thực thi chương trình.
Ngôn ngữ máy cực kỳ khó hiểu đối với lập trình viên vì thế  không thể sử dụng trực tiếp ngôn ngữ máy để viết chương trình.
Người ta sử dụng ngôn ngữ assembly  để viết chương trình. Đây là ngôn ngữ gần với hệ thống nhất, nó cung cấp các câu lệnh dễ nhớ và các ký hiệu dễ hiểu để biểu diễn dữ liệu. Bộ dịch được gọi là assembler chuyển ngôn ngữ assembly sang ngôn ngữ máy.
Tuy nhiên, ngay cả ngôn ngữ assembly cũng khó sử dụng do đó việc sử dụng ngôn ngữ lập trình cấp cao như C++ sẽ thuận tiện hơn cho việc thi hành các giải thuật.
Ngôn ngữ lập trình C++ là ngôn ngữ lập trình hướng đối tượng. Nó giúp cho lập trình viên không phải nghĩ nhiều về các thuật ngữ cấp thấp và giúp họ chỉ tập trung vào giải thuật.
Trình biên dịch (compiler) sẽ đảm nhiệm việc dịch chương trình viết bằng ngôn ngữ cấp cao sang ngôn ngữ assembly. Mã assembly được tạo ra bởi trình biên dịch sau đó sẽ được tập hợp lại để cho ra một chương trình có thể thực thi.

Chương trình C++ đơn giản

            #include <iostream.h>
                        int main()
            {
                cout<<”Hello Word”;
}

Dòng 1: Sử dụng chỉ thị tiền xử lý #include để chèn nội dung của tập tin header iostream.h  vào trong chương trình. iostream.h là tập tin header chuẩn của C++ chứa đựng các định nghĩa cho xuất và nhập.
Dòng 2: Định nghĩa hàm main. Hàm main có thể có hoặc không có tham số (parameter). Các tham số (nếu có) luôn nằm sau tên hàm và trong cặp ngoặc đơn). Từ void định nghĩa hàm main không có tham số. Hàm có thể có kiểu trả về, kiểu trả về luôn xuất hiện trước tên hàm. Int là kiểu số nguyên.
Tất cả các chương trình C++ phải có một hàm main duy nhất. Việc thực thi chương trình luôn bắt đầu từ hàm main.
Dòng 3: Dấu {} bắt đầu phần thân của hàm main.
Dòng 4: Đây là một câu lệnh. Kết thúc một lệnh luôn được đánh dấu bằng dấu chấm phẩy (;). Câu lệnh này sẽ in ra màn hình dòng chữ Hello World. Ký tự \n là xuống dòng (newline).

Biên dịch một chương trình C++
Biên dịch một chương trình C++ liên quan đến một số bước sau (hầu hết các bước là trong suốt đối với người dùng)
1.Đầu tiên, bộ tiền xử lý C++ xem qua mã trong chương trình và thực hiện
các chỉ thị được chỉ định bởi các chỉ thị tiền xử lý (ví dụ, #include). Kết
quả là một mã chương trình đã sửa đổi mà không còn chứa bất kỳ một chỉ thị tiền xử lý nào cả.
2.Sau đó,  trình biên dịch C++ dịch các mã của chương trình. Trình biên
dịch có thể là một trình biên dịch C++ thật sự phát ra mã assembly hay
mã máy, hoặc chỉ là trình chuyển đổi dịch mã sang C. Ở trường hợp thứ
hai, mã C sau khi được dịch ra sẽ tạo thành mã assembly hay mã máy
thông qua trình biên dịch C. Trong cả hai trường hợp,  đầu ra có thể
không hoàn chỉnh vì chương trình tham khảo tới các thủ tục trong thư
viện còn chưa được định nghĩa như một phần của chương trình.
3.Cuối cùng, trình liên kết hoàn tất mã đối tượng bằng cách liên kết nó với
mã đối tượng của bất kỳ các module thư viện mà chương trình đã tham
khảo tới. Kết quả cuối cùng là một tập tin thực thi