[Lập trình] Bài 1: Giới thiệu tổng quan về C++ | Trung Tâm Phát Triển Công Nghệ Thông Tin – CITD


Xin chào những bạn đến với chuỗi bài viết Nhập môn lập trình với ngôn ngữ C / C + + .
Chuỗi bài sẽ tập trung chuyên sâu đến đối tượng người tiêu dùng là những bạn muốn khám phá về lập trình nhưng chưa có phương hướng để tiếp cận nó như thế nào cho hài hòa và hợp lý. Còn so với những bạn đã có kiến thức và kỹ năng nền tảng về lập trình, đây hoàn toàn có thể xem như tài liệu được tổng hợp từ nhiều nguồn giúp cổng cố kỹ năng và kiến thức hiện .

Lưu ý:

– Như đã đề cập phía trên, nội dung bài viết sẽ hướng đến những bạn mới khởi đầu học lập trình nên ngôn từ sẽ thông dụng và đơn thuần nhất hoàn toàn có thể để những bạn đọc hiểu được toàn vẹn .

– Thay vì lý thuyết khô khan và cứng nhắc, nội dung sẽ tập trung vào thực hành đồng thời luyện tập cho các bạn về tư duy của một lập trình viên.

– Cuối mỗi bài viết sẽ đi kèm với bài tập tự luyện để những bạn củng cố kỹ năng và kiến thức và nâng cao kiến thức và kỹ năng lập trình của mình hơn .

HẠN CHẾ VIỆC COPY/PASTE CODE VÌ CÓ THỂ DẪN ĐẾN NHỮNG HẬU QUẢ KHÔNG LƯỜNG VỀ SAU.

– Mọi vướng mắc và góp ý của những bạn sẽ được ghi nhận để cải tổ bài viết hơn .

– Cuối cùng là điều quan trọng nhất: Think Twice, Code Once

Nguồn ảnh : Devian Art

Nội dung bài viết:

  1. Giới thiệu về ngôn ngữ lập trình C/C++
  2. Các đặc điểm của C/C++ và tại sao chọn C/C++ để học?
  3. Công đoạn để phát triển một chương trình C/C++
  4. Các bước cài đặt môi trường phát triển chương trình (IDE) cho C/C++
    Kết luận

1) Giới thiệu về ngôn ngữ lập trình C/C++:

Trước C++, ngôn ngữ lập trình C được phát triển trong năm 1972 bởi Dennis Ritchie tại phòng thí nghiệm Bell Telephone, C chủ yếu là một ngôn ngữ lập trình hệ thống, một ngôn ngữ để viết ra hệ điều hành. Hệ điều hành nổi tiếng Windows cũng được viết bằng C/C++

Dennis Ritchie
Nguồn ảnh: Wikipedia

C++ là một loại ngôn ngữ lập trình bậc trung (middle-level). Đây là ngôn ngữ lập trình đa năng được tạo ra bởi Bjarne Stroustrup.

Từ thập niên 1990, C++ đã trở thành một trong những ngôn ngữ thương mại ưa thích và phổ biến của lập trình viên.

Bjarne Stroustrup
Nguồn ảnh: Chu.cam.ac.uk

– C++ là một phiên bản mở rộng của ngôn ngữ lập trình C. Những bản cập nhật gần đây nhất là C++ 14 và C++ 17, và sắp tới là C++ 20 (đang trong quá trình phát triển), đã và đang mang đến những tính năng hỗ trợ rất lớn cho lập trình viên C++.

Các phiên bản và sự phát triển của C++ qua các năm, các bạn có thể tham khảo thêm tại đây.
Nguồn ảnh: Modernescpp

2) Các đặc điểm của C/C++ và tại sao chọn C/C++ để học?

2.1) Các đặc điểm của C/C++:

  • Ngôn ngữ lập trinh bậc trung : Các bạn có thể sử dụng C/C++ để phát triển những chương trình bậc cao, và kể cả những chương trình bậc thấp hoạt động tốt trên hầu hết phần cứng.
  • Đơn giản và hiệu quả: Cú pháp của C/C++ rất dễ hiểu và khá giống Tiếng Anh. Ta thậm chí có thể dùng C/C++ để thiết kế những ứng dụng dù trước đó đã được viết bằng hợp ngữ ( Assembly language).
  • Hỗ trợ đa nền tảng: C/C++ được hỗ trợ trên bất kỳ các nền tảng, hệ điều hành nào. Ta có thể viết một chương trình C/C++ trên Linux, biên dịch nó trên Windows và chạy trên Mac OS.
  • Lập trình hướng đối tượng ( Object-oriented programming): Lí do cho sự phổ biến của C++ chính là nó hỗ trợ vô cùng hiệu quả việc lập trình hướng đối tượng, bao gồm việc trường tựu hóa dữ liệu (data abstraction), đóng gói dữ liệu (data encapsulation ), kế thừa ( inheritance ) và đa hình ( polymorphism ). Những khái niệm này khá phức tạp, nên nếu bạn chưa hiểu về chúng, đừng lo lắng, chúng ta sẽ lần lượt làm rõ từng khái niệm trong chuỗi bài về Lập trình hướng đối tượng.
  • Con trỏ: Ngôn ngữ C/C++ cung cấp cho chúng ta một công cụ vô cùng tiện lợi là con trỏ (pointer), một con trỏ có nhiệm vụ lưu địa chỉ bộ nhớ làm giá trị của nó, đồng thời lưu trữ và truy cập dữ liệu từ bộ nhớ. Khái niệm về con trỏ khá quan trọng và nó sẽ liên quan rất nhiều đến các môn học khác, nên chúng ta sẽ có một bài viết đầy đủ hơn ở các bài học sau.

2.2) Tại sao chọn C/C++ để học:

  • Hiện nay trong giới lập trình có rất nhiều loại ngôn ngữ lập trình khác nhau, tùy theo mục đích sử dụng của người dùng mà lựa chọn chúng phù hợp nhu cầu của chúng ta. Vậy thì C/C++ có ưu điểm gì mà nhiều người, ngay cả nhiều trường đại học chọn nó để học và giảng dạy khi mới bước chân vào con đường lập trình này.
  • Để trả lời câu hỏi này, trước tiên chúng ta cần biết C/C++ có thể làm được gì ?
  • Theo câu trả lời của Thiên Anh cho câu hỏi Why would you use C++ :
    • C/C++ được thiết kế để viết những hệ thống lớn thậm chí cực lớn, ngoài ra C/C++ còn được dùng để tạo hệ điều hành máy tính, nổi tiếng nhất là hệ điều hành Windows của Microsoft.

Hệ điều hành Windows 10
Nguồn ảnh : Microsoft

  • Bên cạnh đó C/C++ còn được dùng trong các ngành Hệ thống nhúng công nghiệp (Industrial Embedded Systems) , dây chuyền robot trong các nhà máy, xí nghiệp, các bảng mạch điện tử, thậm chí là hệ thống điện trong các dãy nhà, đồ điện gia dụng đều được viết bằng C/C++

Nguồn ảnh: Medium

  • Những tựa game nổi tiếng từng làm mưa làm gió của hãng Blizzard có thể ví dụ như World of Warcraft, Diablo series, Starcraft series đều được viết bằng C/C++.

Những tựa game đình đám của Blizzard đều được viết bằng C/C++
Nguồn ảnh: Opiumpulses

  • Có thể thấy C/C++ đã thâm niên lâu đời trong ngành công nghiệp game, bên cạnh đó các loại máy chơi game như Playstation, Xbox, Wii, Nintendo,… đều được phát triển bằng C/C++

Các hệ máy game console
Nguồn ảnh : Express.co.uk

  • Qua đây các bạn có thể thấy C/C++ có ứng dụng vô cùng to lớn và đa dạng trong nhiều lĩnh vực khác nhau. Nếu hướng đi trong lập trình của các bạn có liên quan đến các công việc trên, C/C++ có thể là một lựa chọn tốt cho bạn.
  • Bên cạnh việc C/C++ có thể áp dụng trên đa lĩnh vực thì một trong lí do khác để học C/C++ có thể đề cập đến là nhu cầu việc làm. Rất nhiều công ty tuyển dụng các lập trình viên C/C++ cho các vị trí khác nhau kèm với mức lương rất đáng kể.

Các mẩu tin tuyển dụng lập trình viên C/C++ trên website itviec.com

  • Sự lên ngôi của các ngôn ngữ lập trình khác như Python, C#,Java, Javascript, đã khiến C/C++ đánh mất vị trí thế của mình, tuy vậy C/C++ vẫn nhưng có chỗ đứng rất lớn trong giới lập trình.

Top các ngôn ngữ lập trình được sử dụng nhiều nhất theo khảo sát của Indeed
Nguồn ảnh: Indeed

  • C++ chiếm được thị phần sử dụng cao cho đến bây giờ phải kể đến nhờ những đóng góp rất lớn từ phía cộng đồng người dùng. Những cộng đồng này được tạo ra nhằm mục đích hỗ trợ và tương tác giữa các lập trình viên với nhau.
  • Một trong những cộng đồng C/C++ nói riêng và lập trình nói chung phải kể đến stackoverflow, đa số các lỗi phát sinh trong quá trình chúng ta lập trình đều được hướng dẫn khắc phục ở đây. Vì đây là một cộng đồng quốc tế, thế nên ngôn ngữ sử dụng chủ yếu sẽ là Tiếng Anh, các bạn nên trang bị cho mình một vốn ngoại ngữ cần thiết để có thể đọc hiểu được trọn vẹn nhất.

Nguồn ảnh : stackoverflow

  • Ngoài ra có rất nhiều cộng đồng khác nhưng với quy mô nhỏ hơn so với StackOverflow , nhưng cũng rất đáng để các bạn tham khảo thêm. Ví dụ có thể kể đến như là  GeeksforGeeks , cppreference.com, Standard C++, daynhauhoc.com,v.v

3) Công đoạn để phát triển một chương trình C/C++ :

Chương này được tham khảo từ trang web daynhauhoc.com

Trong chương này, tất cả chúng ta sẽ cùng nói về những bước để tăng trưởng / tiến hành một chương trình C / C + + trước khi những bạn mở màn thao tác với chương trình tiên phong của mình .
Một chương trình máy tính ( ứng dụng ) được tạo ra với những mục tiêu khác nhau ví dụ hoàn toàn có thể kể đến như Thống kê, dạy học, y tế, vui chơi, hay thậm chí còn ứng dụng được tạo ra để hổ trợ lập trình viên tạo ra những ứng dụng .
Nguồn ảnh : SpringBoard
Để viết được một chương trình là một quy trình nhỏ trong quy trình sản xuất ứng dụng ( vì một ứng dụng thường là tập hợp của nhiều chương trình nhỏ ) nhưng nó cũng được thực thi trải qua những quy trình tựa như như tăng trưởng một ứng dụng lớn .

Chúng ta bắt đầu làm rõ từng bước trong quá trình phát triển chương trình phần mềm (hay cụ thể là chương trình C/C++).

Nguồn ảnh : freedesignfile.com

Bước 1: Xác định vấn đề cần giải quyết (Brainstorming):

Công đoạn này quyết định hành động hầu hết đến việc chương trình của bạn được triển khai một cách khó khăn vất vả hay thuận tiện. Nhưng trên kim chỉ nan, nó khá đơn thuần. Tất cả những gì bạn cần là một sáng tạo độc đáo hoàn toàn có thể thuận tiện xác lập. Để dễ hiểu hơn, tất cả chúng ta cùng đặt một câu hỏi : Bạn đang gặp phải yếu tố gì ?
Nguồn ảnh : freepik.com
Chúng ta xin đưa ra 1 số ít trường hợp đơn cử :

  • Chúng ta muốn có một chương trình cho phép nhập vào năm sinh, sau đó tính ra số tuổi hiện tại của bạn.
  • Chúng ta muốn viết một chương trình tìm ra đường đi ngắn nhất để đi từ nhà đến trường.
  • Chúng ta cần một chương trình giúp mình hoàn tất đống sổ sách một cách nhanh chóng hơn.

Trên đây là ba trường hợp ngẫu nhiên tất cả chúng ta nghĩ đến vì cần vận dụng nó trong đời sống. Vì cần máy tính giúp tất cả chúng ta xử lý những thứ tựa như như trên, nên tất cả chúng ta đã xác lập yếu tố của riêng mình .

  • Trường hợp 1: Mình muốn có một chương trình cho phép nhập vào năm sinh, sau đó tính ra số tuổi hiện tại của bạn.

Ví dụ về một chương trình tính số tuổi
Nguồn ảnh : Internet

  • Có lẽ đây là một vấn đề quá đơn giản so với một số người, nhưng trước khi làm cho máy tính hiểu được vấn đề, bản thân chúng ta phải hiểu được vấn đề trước.
  • Chúng ta phải tự đặt câu hỏi với bản thân : “Hiện tại, mình đang cần biết điều gì?”. Sau đó tự trả lời với bản thân là: “Mình muốn biết năm nay mình bao nhiêu tuổi ?”.
  • Trường hợp 2: Mình muốn viết một chương trình tìm ra đường đi ngắn nhất để đi từ một điểm này đến một điểm khác

Nguồn ảnh : Internet
Câu hỏi bản thân mình tự đặt ra : “ Làm thế nào để tiết kiệm chi phí xăng giờ đây ? ” Tự vấn đáp luôn : “ Để kiếm coi đường nào ngắn nhất để đi tới trường mới được ”, hay là “ tuyến đường nào giao thông vận tải thông thoáng nhất ? ”

  • Trường hợp 3: Mình cần một chương trình giúp mình hoàn tất đống sổ sách một cách nhanh chóng hơn.

Nguồn ảnh : daynhauhoc.com
Câu hỏi : “ Với cái đống sổ sách này, làm thế nào mình hoàn toàn có thể dành thời hạn thao tác khác được ? ” Trả lời : “ Phải tìm cách để quản trị nó thôi, tiện thể đưa cho máy tính làm luôn cho khỏe ” .
Có thể trong đời sống những bạn gặp phải những yếu tố không giống với mình đưa ra ở trên. Có thể đó là một bài toán khó, một trường hợp khó xử lý, và bạn cần cái máy tính của bạn giúp sức, đó là lúc mà bạn phải tự tìm ra câu vấn đáp cho bản thân .

Bước 2: Thiết kế giải pháp

Đây là lúc mà bạn cần đặt ra câu hỏi: “Làm thế nào” để giải quyết những vấn đề trên?

Nguồn ảnh: Internet
Vấn đề nan giải là một trường hợp ở trên đều có nhiều hơn 1 cách xử lý. Một trong số chúng tốt, số còn lại phần lớn là không tốt. Thường thì trong bước này, một số ít lập trình viên tồi sẽ thực thi một cách lôi thôi, cẩu thả nhất trong toàn bộ những quy trình. Mình đã thấy nhiều người mới học lập trình, sau khi nhìn ra được yếu tố, họ ngồi xuống và khởi đầu code những gì họ đang tưởng tượng. Đa phần, hiệu quả sinh ra không như mong đợi .
Điển hình, một giải pháp tốt thường có những đặc thù sau :

  • Nó có tính minh bạch, rõ ràng.
  • Nó có thể sử dụng lại và dễ thay đổi trong tương lai.
  • Tính hiệu quả.
  • Thực hiện tốt công đoạn này, bạn sẽ giảm được tối đa khả năng phát sinh lỗi trong chương trình (sẽ tiết kiệm được khối thời gian cho việc sửa lỗi).


Ở những bài sau, những bạn sẽ được học cách tự mình đưa ra giải pháp cho từng trường hợp đơn cử .

Bước 3: Viết chương trình ( Write program) :

Để viết được chương trình, bạn cần biết :

  • Ngôn ngữ lập trình bạn đang sử dụng.

Nguồn ảnh : cbronline

  • IDE (môi trường phát triển ứng dụng).

Màn hình làm việc của IDE Dev-C++
Màn hình làm việc của Visual Studio 2019

Trong chuỗi bài này chúng ta sẽ sử dụng một IDE khá nhẹ và dễ sử dụng là Dev C++, rất phù hợp cho các bạn mới bước chân vào lập trình đồng thời tích hợp sẵn các tính năng như highlight (giúp phân biệt hàm, biến…), auto complete (gợi ý code), tự động lưu code (autosave), compile và run trực tiếp,…

File chứa mã nguồn C + + của bạn cần được đặt tên và lưu với phần lan rộng ra là. cpp còn C sẽ là. c, điều này giúp cho hệ quản lý hoàn toàn có thể hiểu được đó là file mã nguồn C / C + +. Sau này bạn hoàn toàn có thể gặp 1 số ít file C / C + + có định dạng phần lan rộng ra khác như. h ,. hpp … nhưng tất cả chúng ta sẽ nói về yếu tố này sau .

  • Các bạn hoàn toàn có thể viết chương trình trên một số công cụ soản thảo văn bản như Notepad++, Sublime Text, Atom, hay một số IDE khác như Visual Studio, Codeblock, Eclipse, …
  • Nhưng trong khóa học này, mình khuyên các bạn nên sử dụng IDE, vì nó hổ trợ khá nhiều cho các bạn trong việc compile chương trình và liên kết các file đối tượng.

Bước 4: Biên dịch chương trình ( Compile program):

Để biên dịch một chương trình C + +, tất cả chúng ta cần một trình biên dịch ( compiler ) .
Nguồn ảnh: medium
Mục đích của compile chương trình là biến những file mã nguồn có đuôi. cpp, … thành những file object. o, nhưng vì tất cả chúng ta sử dụng Dev C + + nên không cần chăm sóc lắm về yếu tố này .

Bước 5: Liên kết các file object

  • Các files object sau khi được compiler biên dịch vẫn còn nằm tách biệt với nhau. Nên quá trình này sẽ thực hiện liên kết chúng thành một file duy nhất, gọi là executable file (file .exe).

Bước 6: Chạy chương trình và kiểm lỗi

  • Trong công đoạn này, bạn hoặc ai đó chạy chương trình mà bạn đã tạo ra, với nhiều giá trị khác nhau được đưa vào nhằm chắc chắn rằng chương trình hoạt động như ý muốn.

Chương trình sau khi chạy thành công

  • Ở chương tiếp thao, chúng ta sẽ nói về IDE (môi trường tích hợp phát triển) và cách cài đặt chúng.

4) Các bước cài đặt môi trường phát triển chương (IDE) cho C/C++:

  • Trước tiên các bạn tải phần mềm Dev C++ tại đây , nhấn vào nút Download như hình bên dưới để tải xuống.
  • Nếu các bạn không thích sử dụng Dev C++, thì có thể lựa chọn IDE khác như Visual Studio, Codeblock, v.v. Để cài đặt Visual Studio bạn có làm theo hướng dẫn tại đây, hoặc dành cho Codeblock tại đây

Nhấn nút download để tiến hành tải xuống Dev C++

  • Xong khi tải xuống thành công, chúng ta mở file installer của Dev C++ lên và nhấn OK để tiếp tục

  • Nhấn I Agree để tiếp tục

  • Lựa chọn phiên bản cài đặt cho Dev C++, mình khuyên các bạn nên chọn Full để trải nghiệm được tốt nhất.

Lựa chọn phiên bản cài đặt cho Dev C++

  • Chờ đợi khoảng 1 phút để chương trình cài đặt

  • Nhấn vào ô Run Dev-C++ 5.11 để khởi động chương trình sau khi cài đặt thành công, nhấn Finish để đóng của sổ cài đặt.

Nhấn Finish để đóng cửa sổ cài đặt.

  • Lựa chọn ngôn ngữ hiển thị

Lựa chọn ngôn ngữ hiển thị

  • Tùy chỉnh màu sắc, font chữ, v.v. Nhấn Next để tiếp tục

  • Sau khi thiết lập thành công, nhấn OK để tiếp tục.

  • Màn hình khởi dộng của Dev C++

Màn hình khởi dộng của Dev C++

  • Okay, vậy chúng ta đã cài đặt thành công Dev C++, để các bạn không phải chờ đợi lâu chúng ta sẽ bắt tay vào viết chương trình C/C++ đầu tiên nhé.
  • Chọn File/New/Source File (Hoặc ấn tổ hợp phím Ctrl+N) để tạo file
  • Copy nội dung sau vào file vừa tạo:
  • Dành cho các bạn dùng C:
123456 #include int main(){printf("Hello World");return 0;}
  • Dành cho các bạn dùng C++:
1234567 #include using namespace std;int main(){cout << "Hello World";return 0;}
  • Nhấn F9 hoặc chọn Execute/Compile để biên dịch chương trình, nếu trong quá trình biên dịch không có lỗi phát sinh ta sẽ bảng thông báo như ví dụ dưới đây

Thông báo biên dịch chương trình thành công.

  • Nhấn F10 hoặc chọn Execute/Run để chạy chương trình. Bạn có thể tự động chạy chương trình ngay sau khi biên dịch bằng cách nhấn F11 hoặc chọn Execute/Compile & Run

Màn hình sau khi chạy chương trình thành công.

5) Kết luận:

Chúng ta đã đi qua bốn chương trong bài viết tiên phong về C / C + +, hãy cùng tổng hợp lại kiến thức và kỹ năng cần nắm rõ :

  • Lịch sử hình thành và phát triển của C/C++
  • Các đặc điểm và lí do tại sao nên học C/C++
  • Các bước để tạo nên một chương trình bằng C/C++ nói riêng và các ngôn ngữ khác nói chung
  • Hướng dẫn cài đặt IDE và chạy chương trinhf C/C++ đầu tiên.

Ở bài tiếp theo tất cả chúng ta sẽ nói về những thành phần chính trong một file cpp thông dụng, những kiểu tài liệu thường dùng và hướng dẫn nhập xuất tài liệu. Mọi quan điểm, vướng mắc, góp phần những bạn hoàn toàn có thể phản hồi phía dưới bài đăng, nhằm mục đích mục tiêu cải tổ và nâng cao chất lượng, mình sẽ rất vui nếu được nghe thắc mắc từ phía những bạn. Peace <3 Tài liệu tìm hiểu thêm : [ 1 ] https://www.programiz.com/cpp-programming [ 2 ] https://www.geeksforgeeks.org/writing-first-c-program-hello-world-example/ [ 3 ] https://cpp.daynhauhoc.com/ [ 4 ] https://www.howkteam.vn/course/khoa-hoc-lap-trinh-c-can-ban-4 [ 5 ] https://www.quora.com/What-can-someone-do-using-C++

[6] https://codecute.com/c/huong-dan-cai-dat-ide-dev-c-lap-trinh-c-c.html

Tác giả bài viết :
Nguyễn Lê Anh Quân – KHCL2019. 3
Nguồn : http://tutorials.mmlab.uit.edu.vn/index.php/2020/06/04/bai-1-gioi-thieu-tong-quan-ve-c/