Tải FREE Bài Giảng Ngôn Ngữ Lập Trình C C++ PDF - Đại Học Quốc Gia Hà Nội

Tải FREE Bài Giảng Ngôn Ngữ Lập Trình C C++ PDF – Đại Học Quốc Gia Hà Nội

Tải FREE Bài Giảng Ngôn Ngữ Lập Trình C C++ PDF – Đại Học Quốc Gia Hà Nội là một trong những đáng đọc và tham khảo. Hiện Tải FREE Bài Giảng Ngôn Ngữ Lập Trình C C++ PDF – Đại Học Quốc Gia Hà Nội đang được Tư Vấn Tuyển Sinh chia sẻ miễn phí dưới dạng file PDF.

=> Bạn chỉ cần nhấn vào nút “Tải tài liệu” ở phía bên dưới là đã có thể tải được về máy của mình rồi.

Lưu ý quan trọng

Bên dưới đây mình có spoil 1 phần nội dung trong tài liệu để bạn tham khảo trước về nội dung tài liệu / Sách. Để xem được full nội dung thì bạn hãy nhấn vào nút “Link tải PDF” ở trên để tải bản đầy đủ về nhé

1. LỜI NÓI ĐẦU: BỐI CẢNH VÀ MỤC TIÊU BÀI GIẢNG

1.1. Vị trí của Ngôn ngữ C/C++

C/C++ được giới thiệu là một trong những ngôn ngữ lập trình hướng đối tượng mạnh và phổ biến hiện nay1. Ngôn ngữ này nổi bật nhờ tính mềm dẻo và đa năng, được sử dụng rộng rãi không chỉ trong các ứng dụng thông thường mà còn trong hầu hết các chương trình hệ thống lớn2.

1.2. Sự Phát triển từ C sang C++ và Tư duy Hướng đối tượng

C++ được phát triển trên nền tảng của C, đóng vai trò là ngôn ngữ lập trình hướng đối tượng3. C++ không chỉ khắc phục một số nhược điểm của C mà quan trọng hơn, nó cung cấp cho người dùng một phương tiện lập trình theo kỹ thuật mới: lập trình hướng đối tượng (OOP)4. Kỹ thuật OOP là phương pháp lập trình chủ đạo, được sử dụng trong hầu hết các ngôn ngữ mạnh hiện nay, đặc biệt là các ngôn ngữ hoạt động trong môi trường Windows như Microsoft Access, Visual Basic, Visual Foxpro5.

1.3. Phạm vi và Cấu trúc Bài giảng

Bài giảng này được biên soạn nhằm trang bị kiến thức và kỹ năng thực hành cho sinh viên mới bắt đầu học NNLT C/C++6. Để phù hợp với chương trình học, tài liệu này chỉ đề cập một phần nhỏ đến kỹ thuật lập trình hướng đối tượng trong C++7. Các kỹ thuật này bao gồm: đóng gói dữ liệu, phương thức, và định nghĩa mới các toán tử8.

Về bản chất, nội dung của bài giảng là NNLT C được mở rộng với một số đặc điểm mới của C++9. Kỹ thuật lập trình hướng đối tượng chuyên sâu sẽ được trang bị trong một giáo trình khác10. Để đơn giản hóa, tên gọi C/C++ được thay thế bằng C++ trong toàn bộ tài liệu11.

Nội dung bài giảng gồm 8 chương, được chia thành hai phần chính12:

  • Phần đầu (Chương 1 đến 6): Chủ yếu trình bày về NNLT C++ trên nền tảng của kỹ thuật lập trình cấu trúc13.
  • Phần còn lại (Chương 7 và 8): Trình bày các cấu trúc cơ bản trong C++ là kỹ thuật đóng gói (lớp và đối tượng)định nghĩa phép toán mới cho lớp14.

2. CÁC KHÁI NIỆM CƠ BẢN CỦA C++

Chương 1 của giáo trình tập trung vào việc giới thiệu các yếu tố cơ bản và các qui định bắt buộc đơn giản nhất của ngôn ngữ C++15151515.

2.1. Các Yếu tố Cơ bản

2.1.1. Bảng Ký tự của C++

Bảng ký tự được phép dùng để tạo nên các câu lệnh của ngôn ngữ C++ bao gồm16161616:

  • Các chữ cái La tinh: (viết thường và viết hoa: a..zA..Z). Phân biệt chữ thường và chữ hoa (ví dụ: ‘a’ khác với ‘A’)17.
  • Dấu gạch dưới (_)18.
  • Các chữ số thập phân: 0 đến 919.
  • Các ký hiệu toán học: +, -, *, /, %, &, ||, !, >, <, =, v.v.20.
  • Các ký hiệu đặc biệt khác: ,, ;, :, [, ], {, }, #, dấu cách, v.v.21.

2.1.2. Từ Khoá (Keywords)

Từ khoá là những từ đã được qui định trước trong NNLT với ý nghĩa cố định, thường dùng để chỉ các loại dữ liệu hoặc kết hợp thành câu lệnh22.

  • Người dùng (NSD) không được phép đặt tên đối tượng trùng với từ khoá23.
  • Một đặc trưng của C++ là các từ khoá luôn luôn được viết bằng chữ thường24.
  • Một số từ khoá thường gặp được liệt kê: auto, break, case, char, continue, default, do, double, else, extern, float, for, goto, if, int, long, register, return, short, sizeof, static, struct, switch, typedef, union, unsigned, while25.

2.1.3. Tên Gọi (Identifiers)

Tên gọi dùng để phân biệt các đối tượng trong chương trình (hằng, biến, kiểu, hàm, v.v.) do NSD tự đặt26. Các quy tắc đặt tên bao gồm27:

  • Là một dãy ký tự liên tiếp (không chứa dấu cách).
  • Phải bắt đầu bằng chữ cái hoặc dấu gạch dưới.
  • Phân biệt ký tự in hoathường (ví dụ: ha_noi khác HA_NOI)28.
  • Không được trùng với từ khoá.

Nếu NSD đặt tên sai, máy sẽ báo lỗi văn phạm trong quá trình xử lý sơ bộ (trước khi chạy chương trình)29.

2.1.4. Chú Thích trong Chương trình (Comments)

Chú thích (ghi chú, giải thích) được phép viết vào chương trình để làm rõ nghĩa, giúp chương trình sáng sủa, dễ đọc, dễ hiểu và dễ bảo trì30. Các đoạn chú thích sẽ được máy bỏ qua31.

C++ cung cấp 2 cách báo cho chương trình biết một đoạn chú thích32:

  • Chú thích khối: Đặt đoạn ký tự bất kỳ giữa cặp dấu /* (mở) và */ (đóng)33. Chú ý: Cặp dấu chú thích này không được phép viết lồng nhau34.
  • Chú thích một dòng: Đặt dấu // ở vị trí bắt đầu chú thích cho đến hết dòng35.

2.2. Môi Trường Làm Việc Của C++

Môi trường làm việc của C++ được giới thiệu thông qua các trình biên dịch quen thuộc lúc bấy giờ như Turbo C hoặc Borland C36.

2.2.1. Khởi động và Thoát

Chương trình được khởi động bằng cách nhấp đúp chuột lên biểu tượng, hiện ra giao diện gồm menu công việc và khung cửa sổ soạn thảo37. Để kết thúc làm việc và quay về môi trường Windows, người dùng ấn tổ hợp phím Alt-X383838.

2.2.2. Giao diện và Các Chức năng Soạn thảo

Giao diện bao gồm một menu xổ xuống và một cửa sổ soạn thảo39. Menu gồm các nhóm chức năng chính như File, Edit, Search, Run, Compile, Debug, Project, Options, Window, Help40. Người dùng có thể kích hoạt bằng Alt + chữ cái đại diện (ví dụ: Alt+F cho File)41.

Bộ soạn thảo hỗ trợ các chức năng cơ bản42:

  • Dịch chuyển con trỏ: Phím mũi tên, Home, End, PgUp, PgDn. Có thể kết hợp với Control (Ctrl hoặc ^) để dịch chuyển xa hơn (ví dụ: ^PgUp về đầu tệp)43.
  • Chèn, xoá, sửa: Insert (chuyển chế độ chèn/đè), Delete (xoá ký tự tại vị trí con trỏ), Backspace (xoá lùi)44.
  • Thao tác với khối dòng: Đánh dấu khối bằng Ctrl-KB (vị trí đầu) và Ctrl-KK (vị trí cuối) hoặc giữ Shift và dùng phím dịch chuyển45.
    • Cắt: Shift-Delete (xoá và lưu vào bộ nhớ đệm)46464646.
    • Dán: Shift-Insert (dán nội dung từ bộ nhớ đệm)47.
    • Xoá không lưu: Ctrl-Delete (xoá khối mà không lưu vào bộ nhớ đệm)48.
    • Đánh dấu toàn bộ: Ctrl-A49.
  • Chức năng tìm kiếm và thay thế: Tìm kiếm bằng Ctrl-QF, tìm kiếm và thay thế bằng Ctrl-QA50.

2.2.3. Các Chức năng Liên quan đến Tệp và Chương trình

  • Ghi tệp: File\Save hoặc phím F251515151. Phần mở rộng mặc định là .CPP52.
  • Soạn thảo tệp mới: File\New (tên tạm thời là Noname.cpp)53.
  • Soạn thảo tệp cũ: File\Open hoặc phím F354545454.
  • Dịch và Chạy:
    • Ctrl-F9: Khởi động chức năng dịch và chạy toàn bộ chương trình555555555555.
    • F9: Dịch và liên kết chương trình (thường dùng để tìm lỗi cú pháp)5656.
    • F4: Chạy chương trình từ đầu đến dòng lệnh hiện tại57575757.
    • F7: Chạy từng lệnh một của hàm main(), kể cả các lệnh con trong hàm58585858.
    • F8: Chạy từng lệnh một của hàm main(), xem mỗi lời gọi hàm là một lệnh59595959.
    • Alt-F5: Chuyển sang cửa sổ xem kết quả của chương trình vừa chạy xong60.

2.3. Cấu Trúc một Chương trình trong C++

Một chương trình C++ được tổ chức thành nhiều hàm, trong đó có một hàm duy nhất tên là main()61. Khi chương trình chạy, các câu lệnh trong hàm main() sẽ được thực hiện đầu tiên62.

Một chương trình C++ thông thường gồm các nội dung sau63:

  • Phần khai báo các tệp nguyên mẫu: Khai báo các tệp chứa các thành phần có sẵn (hằng chuẩn, kiểu chuẩn, hàm chuẩn) mà NSD sẽ dùng, ví dụ: #include <iostream.h>64646464.
  • Phần khai báo các kiểu dữ liệu, biến, hằng… do NSD định nghĩa và được dùng chung trong toàn bộ chương trình65.
  • Danh sách các hàm của chương trình (bao gồm cả hàm main())66.

Mọi hàm (kể cả main()) phải bắt đầu tập hợp các câu lệnh của mình bằng dấu { và kết thúc bằng dấu }67. Tập các lệnh bên trong cặp dấu này được gọi là khối lệnh68.


3. CÁC BƯỚC TẠO VÀ THỰC HIỆN CHƯƠNG TRÌNH

Quy trình viết và thực hiện một chương trình thông thường bao gồm 5 bước sau đây69:

3.1. Xác Định Yêu cầu

Bước đầu tiên là xác định rõ yêu cầu của chương trình, bao gồm70:

  • Dữ liệu đầu vào (input): Cung cấp cho chương trình.
  • Dữ liệu đầu ra (output): Tập các dữ liệu cần đạt được.
  • Cần xác định tên gọikiểu của các tập hợp dữ liệu này (ví dụ: giải phương trình bậc 2 cần xác định kiểu số thực cho $a, b, c, x1, x2$)71.

3.2. Xác Định Thuật Toán Giải

Sau khi xác định yêu cầu, cần xác định thuật toán giải cho bài toán72.

3.3. Viết Chương trình Nguồn

Cụ thể hoá các khai báo kiểu và thuật toán thành dãy các lệnh, tức là viết thành chương trình, thông thường là trên giấy, sau đó soạn thảo vào trong máy73737373.

  • Soạn thảo chương trình nguồn là quá trình gõ nội dung vào máy và lưu lại lên đĩa7474.
  • Văn bản chương trình cần được trình bày sáng sủa, rõ ràng, các câu lệnh cần gióng thẳng cột theo cấu trúc của lệnh, và các chú thích nên ghi ngắn gọn, rõ nghĩa75757575.

3.4. Dịch Chương trình (Compile)

Dịch chương trình nguồn (sử dụng phím Alt-F9 hoặc chọn menu Compile) để tìm và sửa các lỗi gọi là lỗi cú pháp76767676. Mục đích là để máy dịch văn bản chương trình thành chương trình máy có thể thực hiện được77.

3.5. Chạy Chương trình

Chạy chương trình (sử dụng phím Ctrl-F9) và kiểm tra kết quả in ra trên màn hình787878787878787878.

  • Nếu kết quả sai, cần sửa lại chương trình, dịch và chạy lại để kiểm tra79.
  • Quá trình này được thực hiện lặp đi lặp lại cho đến khi chương trình chạy tốt theo yêu cầu đề ra80.

4. VÀO/RA (I/O) TRONG C++

C++ sử dụng các toán tử cincout để thực hiện các thao tác nhập/xuất chuẩn. Để sử dụng các câu lệnh này, đầu chương trình bắt buộc phải có dòng khai báo #include <iostream.h>81818181.

4.1. Vào Dữ liệu từ Bàn phím (Input)

4.1.1. Sử dụng Toán tử cin

Để nhập dữ liệu vào cho các biến, sử dụng toán tử cin >>82.

  • Cú pháp: cin >> biến_1 ;83.
  • Có thể nhập nhiều biến trong cùng một câu lệnh (nhập xếp tầng): cin >> biến_1 >> biến_2 >> biến_3 ;84.

4.1.2. Các Phương thức Nhập Ký tự và Xâu Ký tự

Toán tử cin >> chủ yếu làm việc với dữ liệu kiểu số85. Để nhập ký tự hoặc xâu ký tự, C++ cung cấp các phương thức (hàm) sau86:

  • cin.get(c): Cho phép nhập một ký tự vào biến ký tự c.
  • cin.getline(s, n): Cho phép nhập tối đa $n-1$ ký tự vào xâu s.

Lưu ý quan trọng về bộ nhớ đệm (buffer): Khi toán tử cin >> x thực hiện xong, nó thường để lại ký tự xuống dòng trong bộ đệm87. Ký tự này có thể làm trôi các lệnh cin.get(c) hoặc cin.getline(s, n) sau đó (máy không dừng để nhập)88. Vì vậy, trước khi sử dụng các phương thức này, nên sử dụng phương thức cin.ignore(1) để lấy ra ký tự xuống dòng còn sót lại trong bộ đệm89.

4.2. In Dữ liệu ra Màn hình (Output)

Để in các giá trị hoặc chuỗi ký tự ra màn hình, sử dụng toán tử cout <<909090.

  • Cú pháp: cout << biểu_thức_1 << biểu_thức_2 ... ;91.
  • Thông thường, lệnh in được sử dụng để in câu thông báo nhắc NSD nhập dữ liệu trước khi có câu lệnh nhập cin92.

4.3. Định dạng Thông tin Cần In ra Màn hình

Để định dạng thông tin in ra, cần khai báo tệp nguyên mẫu #include <iomanip.h> ở đầu chương trình93. Các phương thức định dạng đơn giản bao gồm94:

  • endl: Tương đương với ký tự xuống dòng \n95.
  • setw(n): Qui định độ rộng dành để in ra các giá trị là $n$ cột màn hình96. Nếu $n$ lớn hơn độ dài thực của giá trị, giá trị sẽ in ra theo lề phải, để trống phần thừa (dấu cách) ở trước97.
  • setprecision(n): Chỉ định số chữ số của phần thập phân in ra là $n$. Số sẽ được làm tròn trước khi in ra98.
  • setiosflags(ios::showpoint): Dùng để cố định các giá trị định dạng đã đặt cho mọi dòng in, thay vì chỉ có tác dụng trên một dòng in như setprecision99.

4.4. Các Hàm Vào/Ra (I/O) của Ngôn ngữ C Cũ

Giáo trình cũng cung cấp thông tin về các câu lệnh vào/ra trong ngôn ngữ C cũ (printfscanf) làm giá trị tham khảo100.

  • Hàm printf (In kết quả): Cú pháp là printf(dòng định dạng, bt_1, bt_2, ..., bt_n);101. Dòng định dạng quy định khuôn dạng cần in của các giá trị102.
    • Các ký tự định dạng (Format Specifiers) được dùng kèm dấu % (ví dụ: %d cho số nguyên, %f cho số thực, %s cho xâu ký tự)103.
    • Có thể chỉ định độ rộng in ra (dương cho gióng phải, âm cho gióng trái) và số lẻ phần thập phân (ví dụ: %0.2f in số thực với 2 số lẻ)104104104104.
  • Hàm scanf (Nhập dữ liệu): Cú pháp là scanf(dòng định dạng, &biến_1, &biến_2, ...);105.
    • Dùng các ký tự định dạng tương tự printf để quy định kiểu dữ liệu sẽ được nhập106.
    • Lưu ý: Cần có dấu & trước tên biến (trừ biến xâu ký tự) để chỉ địa chỉ của biến cần nhập107. Có thể chỉ định số ký tự tối đa sẽ được nhập cho một biến (ví dụ: %2d nhập số nguyên 2 chữ số)108.

Tóm lại, bài giảng “Ngôn ngữ Lập Trình C/C++” tập trung vào các khái niệm cơ bản của C++, bao gồm cấu trúc chương trình dựa trên lập trình cấu trúc, các yếu tố ngôn ngữ (bảng ký tự, từ khoá, tên gọi, chú thích), các bước cơ bản để viết và thực hiện chương trình, và giới thiệu chi tiết về các thao tác nhập/xuất chuẩn của C++ (cin, cout) cùng với các phương thức định dạng cơ bản (iomanip.h), đồng thời cung cấp các kiến thức tham khảo về I/O kiểu C (printf, scanf). Tài liệu được thiết kế để làm nền tảng vững chắc cho sinh viên trước khi tiếp cận sâu hơn với lập trình hướng đối tượng.