Giáo Trình Ngôn Ngữ Lập Trình C++ Pdf

Giáo Trình Ngôn Ngữ Lập Trình C++ Pdf

Ngôn ngữ lập trình (tiếng Anh: programming language) là ngôn ngữ hình thức bao gồm một tập hợp các lệnh tạo ra nhiều loại đầu ra khác nhau. Ngôn ngữ lập trình được sử dụng trong lập trình máy tính để thực hiện các thuật toán.

Ngôn ngữ lập trình (tiếng Anh: programming language) là ngôn ngữ hình thức bao gồm một tập hợp các lệnh tạo ra nhiều loại đầu ra khác nhau. Ngôn ngữ lập trình được sử dụng trong lập trình máy tính để thực hiện các thuật toán.

Các thành phần của ngôn ngữ lập trình

Ngôn ngữ lập trình được cấu thành bởi các thành phần sau:

Tổng kết lại, các thành phần của ngôn ngữ lập trình bao gồm cú pháp, từ vựng, cú pháp chương trình, thư viện, trình biên dịch, trình thông dịch và các công cụ hỗ trợ.

Giới thiệu ngôn ngữ lập trình C# – Microsoft Visual Studio 2012

Nếu như những lập trình viên Java có thể sử dụng NetBeans, Eclipse để lập trình thì những lập trình viên DotNet sẽ sử dụng IDE là Microsoft Visual Studio. Đây là công cụ cho phép lập trình viên soạn thảo code, biên dịch, debug và thực thi code. Trong phạm vi môn học này chúng ta sẽ sử dụng Microsoft Visual Studio 2012.

Những ngôn ngữ lập trình được hỗ trợ trong Microsoft Visual Studio 2012 là Visual Basic .NET, Visual C#, Visual C++. Hình bên dưới là giao diện Microsoft Visual Studio 2012

Một số thành tố thường thấy khác của một ngôn ngữ lập trình hiện đại

Nhiều ngôn ngữ lập trình hiện đại, nhất là các ngôn ngữ viết cho Windows, thường có cung cấp thêm một số lượng rất lớn các thư viện bao gồm nhiều hàm để hỗ trợ giao diện người dùng và các thiết bị đầu cuối.

Các ngôn ngữ chuẩn thường không đề cập tới sự cung cấp thư viện giúp cho việc thiết lập giao diện đồ họa (graphic interface). Nhưng hầu hết trong các ngôn ngữ hiện đại mà nhà sản xuất cung cấp cho các hệ điều hành đều có thêm thư viện các hàm và các biến toàn cục có thể dùng để nhanh chóng viết mã có giao diện phù hợp.

Tương tự trên, triết lý đằng sau của việc điều khiển theo sự kiện là để hỗ trợ cho việc đồng bộ sử dụng cùng lúc nhiều thiết bị đầu cuối như là chuột, bàn phím, máy in,... Việc nhận một mệnh lệnh từ chuột hay từ bàn phím phải được lập tức đồng bộ và thay đổi giao diện tức thời để cập nhật hoá.

Bản thân một ngôn ngữ sẽ không nói rõ là có hỗ trợ cho tính năng này hay không. Phản ứng và cập nhật dữ liệu theo thời gian thực là một hướng phát triển nhằm đáp ứng các nhu cầu đồng bộ hoá nhanh dữ liệu mà chúng có thể chia sẻ cho nhiều nơi hay là để thỏa mãn nhu cầu cần thiết đồng bộ hóa dữ liệu của các dịch vụ (ngân hàng, hàng không và quân sự chẳng hạn).

Ngoài các hỗ trợ cho các giao diện thì ngày nay hầu hết các hệ điều hành (Linux/UNIX, Netware và Windows) đều có khả năng đa luồng (multithreading) hay đa nhiệm (multitasking). Những khả năng này nâng cao hiệu quả của máy tính. Các ngôn ngữ, do đó thường có thêm các hàm, thủ tục hay các biến cho phép người lập trình tận dụng chúng. Việc viết mã cho kiến trúc đa luồng và đa nhiệm không đơn giản như viết mã cho các hệ thống thông thường. Người lập trình ngoài kỹ năng viết mã, còn phải luyện tập cách xử lý và đồng bộ nhiều thao tác được thi hành đồng thời trong một chương trình mà không gây ra ách tắc hay vi phạm các nguyên tắc quản lý bộ nhớ hay các quy tắc lập trình theo đa luồng hay đa nhiệm.

Lưu ý: Hầu hết các hệ điều hành hỗ trợ kiến trúc đa luồng hay đa nhiệm đều có khả năng thực thi những chương trình được tạo ra từ mã viết theo kiểu thông thường mà không đá động tới các chức năng đa luồng hay đa nhiệm. Điểm khác nhau là khi không dùng tới các ưu điểm đa luồng hay đa nhiệm thì chương trình đó sẽ không tận dụng được ưu thế phần cứng và phần mềm hỗ trợ (thường thì chương trình đó chạy chậm hơn).

Một phương ngữ (tiếng Anh: dialect) của một ngôn ngữ lập trình hay ngôn ngữ trao đổi dữ liệu là một biến thể (tương đổi nhỏ) hay phần mở rộng của ngôn ngữ đó mà không làm thay đổi bản chất bên trong của nó.

Giới thiệu ngôn ngữ lập trình C#. C# hay Csharp là một trong những ngôn ngữ lập trình trong họ DotNet của Microsoft và khi lập trình C# người lập trình phải chuẩn bị và cài đặt .NET Framework.

Hai thành phần cốt lõi của .NET Framework không thể thiếu cho bất kỳ ứng dụng hoặc dịch vụ được phát triển trên nền tảng này là Common Language Runtime (CLR) và .NET Framework Class Library (FCL).

Trong đó Common Language Runtime (CLR) có nhiệm vụ quản lý bộ nhớ, thực thi code, xử lý lỗi,….NET Framework Class Library (FCL) được sử dụng để phát triển các ứng dụng từ command line đến Graphical User Interface (GUI).

Đặc điểm chung của các ngôn ngữ lập trình

Ngôn ngữ lập trình là các bộ từ vựng, cú pháp và quy tắc để viết chương trình máy tính. Các đặc điểm chung của các ngôn ngữ lập trình bao gồm:

Giới thiệu ngôn ngữ lập trình C# – Chuyển đổi kiểu dữ liệu

Phương thức Console.ReadLine() cũng có thể được sử dụng để nhập dữ liệu kiểu số. Dữ liệu được nhập vào là một string và sau đó được chuyển đổi thành int hoặc float. C# hỗ trợ lớp Convert để thực hiện chuyển đổi từ kiểu dữ liệu cơ sở này sang kiểu dữ liệu cơ sở khác.

Đoạn code sau thực hiện nhập name, age và salary sử dụng Console.ReadLine() và sau đó thực hiện chuyển đổi age sang int và salary sang double bằng cách sử dụng những phương thước thích hợp của lớp Convert.

Giới thiệu ngôn ngữ lập trình C# – Chương trình mẫu về input và output

Tạo lớp tên InputOutputExample với xử lý sau

Hướng dẫn thiết lập lớp thực thi đầu tiên

Chuột phải project -> chọn Properties

Chọn class thực thi tại Startup object

Chọn biểu tượng Start để chạy chương trình, ngoài ra chúng ta có thể chọn Debug để chạy chương trình ở chế độ gỡ rối như hình bên dưới

Kết quả sau khi thực thi chương trình mẫu ở trên

Ngôn ngữ máy (machine language)

Ngôn ngữ máy (machine language) là một tập các chỉ thị được CPU của máy tính trực tiếp thực thi. Mỗi chỉ thị sẽ thực hiện một chức năng xác định. Các chuỗi chỉ thị chính là tất cả các chương trình được thực thi trực tiếp bởi CPU.

Ngôn ngữ máy chính là ngôn ngữ cơ sở cho bộ vi xử lý và được hiển thị hoàn toàn theo dạng mã nhị phân. Các loại ngôn ngữ lập trình khác cuối cùng sẽ được chuyển thành ngôn ngữ máy trước khi hoàn thiện chương trình.

Hợp ngữ (assembly language) được xem là một trong những loại ngôn ngữ lập trình bậc thấp. Hợp ngữ là loại ngôn ngữ lập trình phức tạp, khó nhớ, phụ thuộc vào các loại vi xử lý khác nhau và cần công cụ hợp dịch để có thể dịch ra ngôn ngữ máy.

Mặc dù hợp ngữ được viết bằng từ viết tắt tiếng Anh nhưng hợp ngữ vẫn thua kém các loại ngôn ngữ lập trình khác về mặt vị thế.

Quy tắc đặt tên trong ngôn ngữ lập trình

Trong lập trình, việc đặt tên cho biến, hàm, lớp, module hay các thành phần khác rất quan trọng vì nó ảnh hưởng đến độ dễ đọc, dễ hiểu và dễ bảo trì của mã nguồn. Sau đây là một số quy tắc đặt tên thông dụng:

Những quy tắc này giúp cho mã nguồn trở nên dễ đọc, dễ hiểu và dễ bảo trì hơn trong quá trình phát triển phần mềm.

Ngôn ngữ lập trình bậc cao (High-level programming language)

Ngôn ngữ lập trình bậc cao là ngôn ngữ lập trình hiện đại, tự nhiên, độc lập và không phụ thuộc vào công cụ dịch hay thiết bị sử dụng. Ví dụ về một số loại ngôn ngữ lập trình bậc cao có thể kể đến là: Java, PHP, C, C++,…

Mặt khác, ngôn ngữ lập trình bậc cao có thể được phân loại theo phương pháp xây dựng và thực hiện chương trình như:

Giới thiệu ngôn ngữ lập trình C# – Kiểu dữ liệu

C# hỗ trợ nhiều kiểu dữ liệu như số, ký tự hoặc chuỗi. Khi khai báo một biến, một kiểu dữ liệu được gán cho biến đó.

Bảng bên dưới trình bày các kiểu dữ liệu trong C#

Ví dụ về khai báo biến và hằng số

Top 10 ngôn ngữ lập trình phổ biến

Năm 2022 đánh dấu năm thứ 10 liên tiếp JavaScript trở thành ngôn ngữ lập trình được sử dụng phổ biến nhất.

Theo khảo sát của Stack Overflow, số lượng nhà phát triển chương trình chuyên nghiệp (professional developer) sử dụng Javascript trong năm 2022 rơi vào khoảng 67.9% tổng số người được hỏi.

Lý do để Javascript trở thành ngôn ngữ lập trình được ưa chuộng nhất là nhờ vào tính thân thiện với hầu hết các trình duyệt website, có nhiều cú pháp linh hoạt.

Mặc dù, đây là ngôn ngữ dành cho Front-end nhưng Javascript vẫn được sử dụng cho Back-end thông qua Node.js.

Bên cạnh đó, Javascript giúp tăng độ mượt cho người dùng khi tương tác trên website. Ngoài ra, cơ hội việc làm cho người học Javascript được xem là rất rộng mở.

Ưu điểm của ngôn ngữ Javascript:

Các công ty hàng đầu sử dụng JavaScript là Microsoft, Uber, PayPal, Google, Walmart, v.v.

Python được ra mắt lần đầu vào năm 1991 bởi Guido van Rossum. Theo khảo sát của Stack Overflow, Python là một trong những ngôn ngữ lập trình được yêu thích bởi những developer chuyên nghiệp cũng như những người đang học code.

Đây là ngôn ngữ lập trình bậc cao dễ học, dễ đọc, tất cả các cú pháp đều rõ ràng, trực quan. Ngoài ra, Python cũng thân thiện với người dùng, dễ nhớ bởi vì ngôn ngữ này được đánh giá là tương đồng với tiếng Anh.

Với tính ứng dụng cao trong phát triển phần mềm 3D, trí tuệ nhân tạo, lập trình game bằng Python cũng phổ biến hơn bao giờ hết. Vì vậy, với những ai có định hướng theo đuổi con đường trở thành Back-end developer thì Python là một sự lựa chọn thông minh.

Các công ty làm việc trên Python là Intel, Facebook, Spotify, Netflix, v.v.

Java là một ngôn ngữ lập trình hướng đối tượng, được phát hành vào năm 1995 bởi James Gosling. Ngôn ngữ này có thể chạy trên những nền tảng hỗ trợ Java mà không cần dịch lại.

Khi đã được cài đặt Java Runtime Environment thì code Java sẽ làm việc lý tưởng trên tất cả các hệ điều hành và thiết bị. Ngoài ra, ngôn ngữ Java còn được ứng dụng rộng rãi trong phát triển ứng dụng website, big data, mobile,…

Ngôn ngữ Java còn được sử dụng trên phần phụ trợ của một số website phổ biến như là: Amazon, Google, YouTube. LinkedIn là một website nổi tiếng sử dụng ngôn ngữ Java.

Ngôn ngữ C# là ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft vào năm 2000. C# là bước đệm khởi đầu cho kế hoạch .NET của Microsoft. C# có nhiều tính năng đa dạng, thuận tiện cho người mới bắt đầu.

C# đã chứng minh được sức mạnh của mình khi được chọn để phát triển ứng dụng website, phát triển game thực tế ảo (VR), 2D và 3D. Theo Anders hejlsberg, ông là người tạo ra C# đã phát biểu rằng ngôn ngữ C# này giống với C++ hơn là Java.

Bên cạnh đó, ngôn ngữ C# được sử dụng ở backend của một vài website phổ biến chẳng hạn như: Dell, Visual Studio. C# cũng phù hợp cho các app trên Windows, Android và iOS.

Ngôn ngữ C là một ngôn ngữ lập trình ra mắt vào cuối 1970, vận hành gần với phần cứng và gần giống với ngôn ngữ bậc thấp hơn là các ngôn ngữ bậc cao khác. Nhưng ngôn ngữ C đã cho thấy được sự khác nhau giữa chính mình với ngôn ngữ bậc thấp khác.

Điều làm nên sự khác biệt chính là việc mã C có thể được dịch và thực thi trong hầu hết các máy tính. Trong khi đó, các ngôn ngữ bậc thấp thì chỉ có thể chạy trong một số máy tính đặc biệt. Vì vậy, ngôn ngữ C được xem là ngôn ngữ bậc trung.

Ngôn ngữ C là nguồn cảm hứng cho sự ra đời của hàng loạt các loại ngôn ngữ lập trình khác như: C#, Java, Objective-C,…

Ngôn ngữ C++ là ngôn ngữ lập trình hướng đối tượng được phát triển dựa trên ngôn ngữ C. C++ thường được dùng để phát triển các ứng dụng thực tế ảo (VR), đồ họa máy tính, gaming,…

Cả 2 ngôn ngữ C và C++ đều được sử dụng rộng rãi trong lập trình và khoa học máy tính. Điển hình là việc được ứng dụng cao trong phát triển các ứng dụng mà đòi hỏi yêu cầu cao về hiệu suất, ví dụ như: server app, trò chơi điện tử,…

PHP – viết tắt hồi quy của “Hypertext Preprocessor” là một ngôn ngữ lập trình kịch bản mã nguồn mở, được tạo ra vào năm 1994. Ngoài ra, PHP cũng là một loại mã lệnh chủ yếu dùng để phát triển các ứng dụng viết cho máy chủ, dùng cho mục đích tổng quát.

Mã lệnh của PHP có thể được nhúng vào trang HTML một cách dễ dàng nhờ vào việc sử dụng cặp thẻ PHP. Bên cạnh đó, ngôn ngữ PHP còn được tối ưu hóa cho các ứng dụng website, tốc độ nhanh và cú pháp giống C và Java.

Chính vì vậy, ngôn ngữ PHP tương đối dễ học và thời gian tạo sản phẩm cũng khá ngắn so với các loại ngôn ngữ khác nên PHP đã nhanh chóng trở thành một trong những ngôn ngữ lập trình website phổ biến nhất thế giới.

Tính đến nay, 83% trong tổng số 10 triệu website trên thế giới sử dụng PHP. Các lập trình viên dùng PHP để viết server-side-script và command-line-script và thậm chí là phát triển các ứng dụng desktop.

Ngôn ngữ Kotlin là một ngôn ngữ lập trình đa nền tảng, được phát triển bởi JetBrains vào năm 2011. Kotlin có thể tương tác với ngôn ngữ Java và hỗ trợ các ngôn ngữ lập trình khác.

Ngôn ngữ này được sử dụng rộng rãi cho các ứng dụng Android, ứng dụng web và phát triển ứng dụng bên server. Một số công ty sử dụng Kotlin làm ngôn ngữ lập trình chính là Pinterest, Coursera, Trello,…

Kotlin nổi bật bởi vì sở hữu các tính năng như: tính năng bảo mật tốt, tính tương tác cao, code có cấu trúc, ngắn gọn.

Go (Golang) là ngôn ngữ lập trình được Google phát triển vào năm 2007 cho các API và ứng dụng web. Ngôn ngữ này ra đời nhằm đáp ứng nhu cầu của các lập trình viên trong các dự án lớn.

Nhờ vào khả năng xử lý các hệ thống multicore, codebase và mạng lưới rộng lớn, Go đã và đang trở thành một trong những ngôn ngữ lập trình phát triển rất nhanh.

Bên cạnh đó, ngôn ngữ này phổ biến trong nhiều công ty hoạt động trong lĩnh vực công nghệ thông tin lớn nhờ vào cấu trúc đơn giản, hiện đại, nền tảng đa lõi của bộ vi xử lý và hoạt động đa nhiệm.

Một số công ty dùng ngôn ngữ Go làm ngôn ngữ lập trình của mình bao gồm: Google, Twitch, Uber, Dropbox.

Swift là một ngôn ngữ lập trình hướng đối tượng, được Apple phát triển vào năm 2014 cho các ứng dụng Mac và Linux. Đây là một loại ngôn ngữ lập trình mã nguồn mở dễ học, yêu cầu ít kỹ năng viết code hơn so với các ngôn ngữ lập trình khác.

Ngôn ngữ Swift được các nhà thiết kế lấy ý tưởng từ nhiều ngôn ngữ phổ biến khác như Objective-C, Rust, Haskell, Ruby, Python, C # và CLU. Swift được sử dụng để xây dựng ứng dụng cho iOS, macOS, watchOS và tvOS.

Các ứng dụng iOS phổ biến được phát triển từ ngôn ngữ Swift bao gồm: SoundCloud, WordPress, Mozilla Firefox và một tựa game nổi tiếng – Flappy Bird. Ngoài ra, Swift được thiết kế là một ngôn ngữ có khả năng phòng chống lỗi cao.

Ngôn ngữ Ruby là một ngôn ngữ lập trình hướng đối tượng, được phát triển bởi Yukihiro Matz Matsumoto vào năm 1993. Ruby là ngôn ngữ được lựa chọn hàng đầu bởi các công ty lập trình khởi nghiệp.

Ruby được phát triển và thiết kế với cú pháp đơn giản, thân thiện với người dùng trong khi vẫn linh hoạt theo quan điểm kiến trúc hướng đối tượng, hỗ trợ lập trình thủ tục và chức năng.

Ruby phổ biến hơn là nhờ Ruby on Rails (RoR) – một framework mã nguồn mở được tạo ra để phát triển các ứng dụng và cho phép chạy như một trang web thực. Nhờ vào tính dễ học và thời gian học tương đối ngắn nên ngôn ngữ Ruby nhận được rất nhiều sự quan tâm.

Tuy nhiên, ngôn ngữ Ruby thường được các nhà phát triển lựa chọn ở giai đoạn đầu và về sau họ sẽ chọn một loại ngôn ngữ bậc cao khác.

Một nhược điểm rất lớn của Ruby là khó bảo trì. Ngoài ra, tốc độ của Ruby cũng chậm hơn những ngôn ngữ khác (chẳng hạn như: PHP, Java).