Cú pháp cơ bản của C ++

Khi chúng ta xem xét một chương trình C ++, nó có thể được định nghĩa như một tập hợp các đối tượng giao tiếp thông qua việc gọi các phương thức của nhau. Bây giờ chúng ta hãy xem xét những gì một lớp, đối tượng, phương thức và các biến tức thời có nghĩa là gì.

  • Đối tượng – Đối tượng có các trạng thái và hành vi. Ví dụ: Chó có trạng thái – màu sắc, tên, giống cũng như hành vi – vẫy, sủa, ăn uống. Một đối tượng là một thể hiện của một lớp.
  • Lớp – Một lớp có thể được định nghĩa là một bản mẫu / kế hoạch chi tiết mô tả các hành vi / trạng thái mà đối tượng của kiểu hỗ trợ của nó.
  • Phương pháp – Một phương pháp cơ bản là một hành vi. Một lớp có thể chứa nhiều phương thức. Đó là trong các phương thức mà các logic được viết, dữ liệu được thao tác và tất cả các hành động được thực thi.
  • Instance Variables – Mỗi đối tượng có tập các biến cá thể duy nhất của nó. Trạng thái của đối tượng được tạo bởi các giá trị được gán cho các biến cá thể này.

Cấu trúc chương trình C ++

Chúng ta hãy nhìn vào một mã đơn giản có thể in chữ Hello World .

#include 
using namespace std;

// main() is where program execution begins.
int main() {
   cout << "Hello World"; // prints Hello World
   return 0;
}
Chúng ta hãy xem xét các phần khác nhau của chương trình trên –

  • Ngôn ngữ C ++ định nghĩa một số tiêu đề, chứa các thông tin cần thiết hoặc hữu ích cho chương trình của bạn. Đối với chương trình này, tiêu đề <iostream> là cần thiết.
  • Dòng sử dụng không gian tên std; yêu cầu trình biên dịch sử dụng không gian tên std. Không gian tên là một bổ sung tương đối gần đây cho C ++.
  • Dòng tiếp theo ‘ // main () là nơi bắt đầu thực hiện chương trình. ‘là một chú thích một dòng có sẵn trong C ++. Các chú thích một dòng bắt đầu bằng // và dừng ở cuối dòng.
  • Dòng int main () là hàm chính nơi bắt đầu thực hiện chương trình.
  • Dòng lệnh tiếp theo << “Đây là chương trình C ++ đầu tiên của tôi.”; gây ra thông báo “Đây là chương trình C ++ đầu tiên của tôi” được hiển thị trên màn hình.
  • Dòng tiếp theo trả về 0; chấm dứt hàm main () và làm cho nó trả về giá trị 0 cho quá trình gọi.

Biên dịch và thực thi chương trình C ++

Hãy xem cách lưu tệp, biên dịch và chạy chương trình. Vui lòng làm theo các bước dưới đây –

  • Mở trình soạn thảo văn bản và thêm mã như trên.
  • Lưu tệp dưới dạng: hello.cpp
  • Mở một dấu nhắc lệnh và đi đến thư mục mà bạn đã lưu tệp.
  • Nhập ‘g ++ hello.cpp’ và nhấn enter để biên dịch mã của bạn. Nếu không có lỗi trong mã của bạn, dấu nhắc lệnh sẽ đưa bạn đến dòng tiếp theo và sẽ tạo ra tệp thực thi a.out.
  • Bây giờ, gõ ‘a.out’ để chạy chương trình của bạn.
  • Bạn sẽ có thể nhìn thấy ‘Hello World’ được in trên cửa sổ.
$ g++ hello.cpp
$ ./a.out
Hello World
Đảm bảo rằng g ++ nằm trong đường dẫn của bạn và bạn đang chạy nó trong thư mục chứa tệp hello.cpp.

Dấu chấm phẩy và khối trong C ++

Trong C ++, dấu chấm phẩy là một dấu kết thúc câu lệnh. Tức là, mỗi câu lệnh riêng lẻ phải được kết thúc bằng dấu chấm phẩy. Nó cho biết kết thúc của một thực thể logic.

Ví dụ, sau đây là ba câu lệnh khác nhau –

x = y;
y = y + 1;
add(x, y);
Khối là một tập hợp các câu lệnh được kết nối hợp lý được bao quanh bằng cách mở và đóng niềng răng. Ví dụ –
{
   cout &lt;&lt; "Hello World"; // prints Hello World
   return 0;
}
C ++ không nhận ra sự kết thúc của dòng như một terminator. Vì lý do này, nó không quan trọng nơi bạn đặt một tuyên bố trong một dòng. Ví dụ –
x = y;
y = y + 1;
add(x, y);
giống như
x = y; y = y + 1; add(x, y);

Định danh C ++

Mã định danh C ++ là tên được sử dụng để xác định biến, hàm, lớp, mô-đun hoặc bất kỳ mục nào do người dùng xác định khác. Mã định danh bắt đầu bằng chữ cái A đến Z hoặc từ a đến z hoặc dấu gạch dưới (_) theo sau là 0 hoặc nhiều chữ cái, dấu gạch dưới và chữ số (0 đến 9).

C ++ không cho phép các ký tự dấu câu như @, $ và% trong số nhận dạng. C ++ là một ngôn ngữ lập trình phân biệt chữ hoa chữ thường. Do đó, Nhân lựcvà nhân lực là hai định danh khác nhau trong C ++.

Dưới đây là một số ví dụ về số nhận dạng có thể chấp nhận –

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

Từ khóa C ++

Danh sách sau đây hiển thị các từ dành riêng trong C ++. Các từ dành riêng này có thể không được sử dụng làm hằng số hoặc biến hoặc bất kỳ tên định danh nào khác.

asm else new this
auto enum operator throw
bool explicit private true
break export protected try
case extern public typedef
catch false register typeid
char float reinterpret_cast typename
class for return union
const friend short unsigned
const_cast goto signed using
continue if sizeof virtual
default inline static void
delete int static_cast volatile
do long struct wchar_t
double mutable switch while
dynamic_cast namespace template


Một vài ký tự có một biểu diễn thay thế, được gọi là một chuỗi dấu vết. Một dấu vết là một chuỗi ba ký tự đại diện cho một ký tự đơn và chuỗi luôn bắt đầu bằng hai dấu chấm hỏi.Trigraphs

Trigraphs được mở rộng bất cứ nơi nào chúng xuất hiện, bao gồm trong các chuỗi ký tự và các ký tự chữ, trong các chú thích và các chỉ thị tiền xử lý.

Sau đây là các chuỗi dấu vết được sử dụng thường xuyên nhất –

Trigraph Thay thế
?? = #
?? / \
?? ‘ ^
?? ( [
??) ]
??! |
?? < {
??> }
?? – ~

Tất cả các trình biên dịch không hỗ trợ các dấu vết và chúng không được khuyên dùng vì bản chất khó hiểu của chúng.

Khoảng trống trong C ++

Một dòng chỉ chứa khoảng trắng, có thể với một chú thích, được gọi là một dòng trống, và trình biên dịch C ++ hoàn toàn bỏ qua nó.

Khoảng trống là thuật ngữ được sử dụng trong C ++ để mô tả khoảng trống, tab, ký tự dòng mới và nhận xét. Khoảng trắng phân tách một phần của câu lệnh từ một câu lệnh khác và cho phép trình biên dịch xác định vị trí của một phần tử trong câu lệnh, chẳng hạn như int, kết thúc và phần tử tiếp theo bắt đầu.

Tuyên bố 1

int age;
Trong câu lệnh trên, phải có ít nhất một ký tự khoảng trống (thường là một dấu cách) giữa int và age để trình biên dịch có thể phân biệt chúng.

Tuyên bố 2

fruit = apples + oranges;   // Get the total fruit
Trong câu lệnh trên 2, không có ký tự khoảng trắng nào cần thiết giữa trái cây và = hoặc giữa = và táo, mặc dù bạn được tự do đưa vào một số nếu bạn muốn cho mục đích có thể đọc được.

Hướng dẫn cài đặt và sử dụng Dev-C++

Dev-C++ là một môi trường phát triển tích hợp tự do (IDE) được phân phối dưới hình thức giấy phép Công cộng GNU hỗ trợ việc lập trình bằng C/C++. Nó cũng nằm trong bộ trình dịch mã nguồn mở MinGW. Chương trình IDE này được viết bằng ngôn ngữ Delphi.  Dùng để soạn thảo và biên dịch chương trình viết bằng NNLT C/ C++.

dev-c-yeulaptrinh.pw

Mình khuyên các bạn nên dùng phiên bản: Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup.exe

Link tải trực tiếp từ server Vietnam: Download here

Link tải từ trang chủ:  https://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases/

Link tải các phiên bản khác: http://www.bloodshed.net/dev/devcpp.html

Thực hiện chương trình

B1. Tạo tệp mới và soạn thảo mã nguồn

  • Vào File > New > Source File (Hoặc Project nếu chương trình gồm nhiều file > Chọn “Console Application” > Chọn C project hoặc C++ Project) hoặc nhấn Ctrl+N
  • Soạn thảo mã nguồn
  • Lưu: File/Save/ đặt tên (chọn đường dẫn nếu có) > OK

dev-c-1-yeulaptrinh.pw

B2. Dịch chương trình

Kích Menu Execute > Compile (Ctrl+ F9)

dev-c-2-yeulaptrinh.pw

Nếu xuất hiện lỗi cú pháp, hãy quan sát dòng lệnh được đánh dấu màu nâu trong mã nguồn và các dòng gợi ý nội dung lỗi. Ta xác định lỗi và tự sửa lại, sau đó Cltr+F9 để biên dịch lại đến khi chương trình hết lỗi.

dev-c-3-yeulaptrinh.pw

Một số lỗi hay gặp: thiếu dấu chấm phảy ;, ngoặc tròng (,), ngoặc móc {,}, các phép quan hệ, các lệnh if, for, while không đúng cú pháp …

B3. Chạy chương trình

Kích menu Execute > Run (Ctrl+ F10)

dev-c-4-yeulaptrinh.pw

Nếu không dừng màn hình để xem kết quả ta thêm vào lệnh system(“pause”) trước lệnh return 0; trong hàm main(); hoặc kích menu tools/Enviroment options/ General/ chọn Pause console programs after return

I.7.3. Debug chương trình

Để theo dõi quá trình thực hiện của máy trên từng dòng lệnh và các giá trị thay đổi của biến ta sử dụng chức năng debug của phần mềm DevC++ theo hướng dẫn sau:

Bước 1:  Giả sử ta có chương trình sau:

dev-c-5-yeulaptrinh.pw

  • Tạo Breakpoint để chỉ nơi bắt đầu theo dõi chương trình bằng cách kích chuột vào số thứ tự dòng, xuất hiện nền của dòng đó có màu đỏ, sau đó kích menu

Execute/ Debug (hoặc nhấn phím F5)

  • Để theo dõi máy thực hiện từng dòng lệnh ta nhấn phím F7 hoặc kích nút Next line (dòng có nền xanh là dòng máy đang thực hiện đến đó)
  • Để xem giá trị của biến nào, ta kích nút Add wacth, gõ tên biến vào hộp thoại mới xuất hiện/ OK … như hình dưới đây.

dev-c-6-yeulaptrinh.pw

Giải thích thêm cho hình trên:

  • Đầu tiên tạo Breakpoint tại dòng 11, nhấn F5. Nền xanh tại dòng này x=8, y=3, z là giá trị chưa xácđịnh cụ thể. Nhấn phím F7, dòng xanh nhảy xuống dòng 12. Lệnh z = ++x + y–; được thực hiện:
  • Lệnh ++x thực hiện nên x=9 đến lệnh z = x+y và z=12 sau đó đến y –, khi đó y=2 như kết quả hiện thời trên khung debug.
  • Bằng cách nhấn F7 tiếp cho đến khi kết thúc hoặc kích nút Stop Execute để ngừng debug chương trình.

Lưu ý:

  • Để soạn theo nhanh một tệp C++, tao có thể mở cửa sổ Codeblocks và kích menu File/ New/ Empty file, một file trắng xuất hiện và ta bắt đầu soạn thảo mã nguồn tại đây, lưu, dịch và thực hiện chương trình một cách bình thường và nhanh. Chỉ có tồn tại là làm theo cách này không Debug được mã nguồn. Nếu muốn debug thì phải thêm tệp này vào một project nào đó và debug như cách hướng dẫn ban đầu.
  • Hai trình biên dịch DevC++ và Codeblocks đểu có thể biên soạn, lưu trữ, dịch, debug và thực hiện tốt những chương trình soạn thảo bằng C++. Vậy ta sẽ chọn chương trình nào để thực hành các bài tập trên máy? Điều này có lẽ tùy thuộc vào người sử dụng yêu thích biên dịch nào… Nếu bạn là người bắt đầu cho cả hai loại trên, theo ý tác giả bạn nên chọn Codeblocks vì chỉ một lý do DEBUG!!! Bạn có thể tìm hiểu qua các phương tiện thông tin khác và chọn cho mình một trình biên dịch để bắt đầu ngay.

Hướng dẫn cài đặt, thiết lập và sử dụng Code::Blocks

Cách tải về

Download trực tiếp server Vietnam tại: Download here

Download tải trang chủ Code::Blocks: http://www.codeblocks.org/downloads

Giao diện http://www.codeblocks.org/downloads sẽ như thế này. Click Chọn “Download the binary release

codeblock-1-yeulaptrinh.pw

Chọn phiên bản mình muốn download. Nếu bạn dùng Windows thì hãy chọn phiên bản “codeblocks-16.01mingw-setup.exe” như hình dưới. Click chọn “Sourceforge.net or FossHub” để tải về.

codeblock-2-yeulaptrinh.pw

Rồi ngồi đợi vài phút chờ tải xong 🙂

Cài đặt

Chạy file cài đặt vừa tải về, ở đây tôi chạy file “codeblocks-16.01mingw-setup.exe“.

Cửa sổ cài đặt xuất hiện, bạn cứ chọn “Next” là được thôi 🙂

c-1-yeulaptrinh.pw

c-3-yeulaptrinh.pw

Cài cấu hình ban đầu

Cái này quan rất quan trọng vì nếu bạn chọn cấu hình Code::Blocks sai thì sau này có thể sẽ không thể chạy được.

Nhớ chọn trình biên dịch “GNU GCC Compiler” nhé!

c-6-yeulaptrinh.pw

Sau đó thiết lập các thông số cho 2 trình Compiler (biên dịch) và Debugger (gỡ lỗi).

(For CodeBlocks 13.12 For Windows) – Mở cửa sổ CodeBlocks, kích

“Settings” menu, kích “Compiler…”. Xuất hộp thoại Compiler Settings, tại “Selected Compiler”, chọn “GNU GCC Compiler”, Chọn “Toolchain Executables” và kiểm tra các thông tin “Compiler’s Installation Directory”. Được đặt là “MinGW” tên thư mục con trong thư mục cài đặt CodeBlocks, ví dụ, thư mục của CodeBlocks là “c:\Program Files\codeblocks”, thì trình biên dịch là “c:\Program Files\codeblocks\MinGW”.

Tương tự như vậy, hãy kiểm tra đường dẫn của chương trình Debugger. Kích “Settings” menu, kích “Debugger …” và chọn “GDB / CDB debugger/ Default”. Trong “Executable path”, cung cấp tên đầy đủ đường dẫn của tệp “gdb.exe”, ví dụ, “c : \ Program Files \ CodeBlocks \ MinGW \ bin \ gdb.exe “.

Viết và chạy một chương trình C++

Kích menu File/ New/ Empty file, xuất hiện cửa sổ soạn thảo mới với tên Untitled1… Sau đó kích menu “File/ Save”, đặt tên tệp mới (ví dụ: Tong.cpp) và kích nút Save/ chọn tiếp OK, và tiến hành soạn thảo mã nguồn cho bài toán mới. Trước khi đặt tên ta có thể soạn thảo luôn, nhưng có thể không được cung cấp hỗ trợ về định dạnh, soạn thảo hoặc những rủi do mất file.

Ví dụ: Viết chương trình nhập vào hai số nguyên a và b từ bàn phím, in lên màn hình tổng giá trị của hai số a +b như sau:codeblocks-1-yeulaptrinh.pw

Nhấn Ctrl+F9 để dịch chương trình, nếu xuất hiện lỗi như hình ảnh trên. Ta quan sát dòng đánh dấu (ô vuông nhỏ màu đỏ) và các gợi ý về lỗi tại Biuld messages để xác định lỗi và sửa lại cho đúng, sau đó nhấn Ctrl+F9 để kiểm tra tiếp (đến khi hết lỗi).

Nhấn phím Ctrl+F10 để chạy chương trình và nhập vào 2 số nguyên có giá trị 4 và 5 <enter> xuất hiện như hình dưới đây:

codeblocks-2-yeulaptrinh.pw

Lưu ý:

  • Nhấn phím F9 để vừa dịch và chạy chương trình (tức ban đầu là dịch chương trình, nếu có lỗi (là lỗi cú pháp hay lỗi văn phạm), sẽ dừng lại ở vị trí gây lỗi. Nếu không lỗi, chương trình được thực thi luôn)
  • Nếu soạn thảo và thực hiện chương trình theo cách này, ta sẽ không sử dụng được chương trình Debugger (gỡ lỗi). Cách này thường được sử dụng khi chương trình không còn lỗi về văn phạm nhưng gặp phải lỗi về giải thuật – output sai. Để sử dụng tính năng Debugger ta sẽ nghiên mục tiếp theo.

Tạo file project và file CPP.

Bước 1: Tạo project (dự án) mới:

Project là một file của Codeblocks nó có thể quản lý nhiều file khác. Để tạo một Project ta lần lượt thực hiện theo các bước sau:

  • Kích menu File/ New/ Project …/ Chọn Console Application, kích nút Go/ Chọn C++/ kích Next. Xuất hiện hộp thoại sau:

codeblocks-3-yeulaptrinh.pw

  • Project title: tên tiêu đề cho project
  • Folder to create project in: Gõ hoặc chọn thư mục lưu file.  Project filename: gõ tên project cần tạo

Sau khi hoàn thành, kích nút Next.

codeblocks-4-yeulaptrinh.pw

Xuất hiện hộp thoại chọn trình biên dịch và nơi lưu trữ (thường để mặc định như hình ảnh trên). Kích Next, cửa Codeblocks: project xuất hiện, tệp main.cpp với các dòng lệnh có sẵn:

codeblocks-5-yeulaptrinh.pw

Xuất hiện cửa sổ Codeblocks với tên project (chuong1) vừa tạo và đã sẵn sàng để viết chương trình của bạn. Cần lưu ý rằng mục tiêu là Debug, mà sẽ cho phép bạn sử dụng các trình gỡ lỗi (debugger) để tìm lỗi.

Trong khung Management của màn hình (Shift-F2 để ẩn/hiện), bạn sẽ thấy các file đó là một phần của dự án trong tab Project. Để xem các tập tin nguồn, bấm vào cộng [+] ‘s để mở rộng không gian làm việc và thư mục con của nó, muốn thu nhỏ ta kích vào [-] và muốn hiện nội dung của tệp ta kích đúp vào tên tệp.

Khi tạo một project mới, nó luôn tạo sẵn file Main.cpp chỉ để in ra màn hình Console (Dos- nền đen, chữ màu trắng) dòng chữ “Hello World!” như đã giới thiệu ở phần đầu của giáo trình này.

Bước 2: Dịch và chạy chương trình (đã giới thiệu phần trước).

G/s ta đã soạn thảo xong mã nguồn tệp main.cpp như trên, tiếp theo kích menu Biuld/ chọn Biuld hoặc nhấn tổ hợp phím Ctrl+F9 để dịch chương trình để kiểm tra có lỗi cú pháp hay không. Nếu không có lỗi, tiếp theo nhấn Ctrl+F10 để chạy chương trình như hình dưới đây:

codeblocks-6-yeulaptrinh.pw

Để soạn thảo mã nguồn mới, bạn có thể sửa trực tiếp vào tệp này hoặc tạo tệp mới bằng cách:

Kích menu File/ New/ Empty file, xuất hiện thông báo:

codeblocks-7-yeulaptrinh.pw

Chọn “Yes” để thêm tệp mới vào project hiện tại và đặt tên tệp/ Save, xuuast hiện hộp thoại Multiple selection, đánh dấu vào hai mục Debugg và Release và kích OK, cửa sổ soạn thảo tệp vừa đặt tên xuất hiện. NLT bắt đầu soạn thảo mã nguồn, dịch và chạy chương trình.

Để xóa tệp khỏi cửa sổ Management: kích chuột phải vào tên tệp/ chon remove file from project hoặc kích menu Project/ chọn Remove file…/ bỏ dấu tích tại tên tệp muốn xóa/ chọn nút OK.

Nếu ta đã có sẵn tệp trên máy, để thêm vào project hiện tại dịch và chạy chương trình ta thực hiện: Kích menu Project/ chọn Add file…/ Chọn đến tệp cần thêm/ kích Open, sau đó tiến hành dịch và chạy bình thường.

Hướng dẫn Debug chương trình (trình gỡ lỗi – debugger)

Thiết lập thông số của Debug, kích menu Project/ Biuld Option/ và đảm bảo đặt dấu tích vào dòng “produce debugging symbols [-g]” như hình dưới đây và kích nút OK:

codeblocks-8-yeulaptrinh.pw

Soạn thảo tệp mới hoặc Add file có sẵn vào project hiện thời. Ví dụ tệp Tong2.cpp như hình dưới đây. Nếu trong trường hợp tồn tại hai tệp CPP trở lên thì NLT phải loại bỏ các tệp khác, chỉ giữ lại duy nhất tệp muôn debug.

Để loại bỏ tệp khỏi project hiện thời ta làm như sau:

  • Kích file lên tên tệp CPP tại khung trái – project/ chọn Remove file from project.
  • Kích phải vào nền trắng trong khung trái – project/ chọn clean workspace để đảm bảo xóa các thông tin, dữ liệu đã debug trước đó.

codeblocks-9-yeulaptrinh.pw

Trước tiên, hãy đặt trỏ văn bản tại nơi chương trình debug bắt đầu (dòng 11). Kích menu Debug/ chọn Run to cursor (hoặc nhấn phím F4), nếu xuất hiện thông báo … ta chọn Yes để tiếp tục.

Hoặc

Đánh dấu vị trí bắt đầu và kết thúc Debug: đặt trỏ văn bản vào vị trí, kích Debug/ Toggle breakpoint (phím F5).

Sau đó kích menu Debug/ Start/ Continue (phím F8) để bắt đầu quá trình Debugger.

codeblocks-10-yeulaptrinh.pw

Xuất hiện hình tam giác nhỏ màu vàng (gọi là breakpoint) tại dòng bắt đầu debug và cửa số Watches (new) để theo dõi giá trị của các biến trong chương trình khi ta đi qua từng dòng lệnh trong chương trình nguồn. Trong trường hợp cửa sổ này chưa xuất hiện thì kích menu Debug/ Dubugging Windows/ Watchs. Và màn hình Console – nền đen (có thể sẽ ẩn sau cửa sổ Codeblocks).

Bắt đầu quá trình debugging, máy tính tính thực hiện dòng lệnh hiện thời và xem giá trị các biến thay đổi ta nhấn phím F7 con trỏ và Breakpoint sẽ lần lượt nhảy xuồng các dòng tiếp theo (mỗi lần nhấn phím F7, hãy dừng lại một chút để kiểm tra việc thực hiện lệnh và giá trị các biến có tương ứng hay không trên cửa sổ Watches).

codeblocks-11-yeulaptrinh.pw

Nhấn phím F7 lần 1.Nhấn phím F7 lần 2.

Máy thực hiện dòng lệnh 12. Dòng  lệnh này xuất ra màn hình Console:

codeblocks-12-yeulaptrinh.pw

Máy thực hiện dòng lệnh 11 gồm:

++x, x=x+y, y– nên (x=9,y=2 và z=12)

Tiếp tục nhấn phím F7 đến dòng lệnh 19, ta được kết quả trên cửa sổ Watches là:

codeblocks-13-yeulaptrinh.pw

Để kết thúc debug, kích menu Debug/ Stop debugger

 

Có gì chưa hiểu rất mong nhận được sự góp ý của quý bạn!