Tuần 1 : Một số khái niệm cơ bản về C++ và các kiểu dữ liệu trong C++
Hình
thức Thời gian Địa điểm Nội dung chính Yêu cầu sinh viên
LT 1 giờ
Mở đầu
- Khái niệm về lập trình, - Các phương pháp lập trình, ưu
điểm của lập trình có cấu trúc - Các bước xây dựng chương trình - Ngôn ngữ lập trình, đặc điểm của
C++,
- Bảng chữ cái, tên,quy tắc đặt tên trong C++, từ khoá
- Đọc: [3] chương 1; [1] trang 7 -13
1 giờ - Các kiểu dữ liệu cơ bản: tên, kích thước, miền giá trị, quy tắc chuyển kiểu tự động - Các phép toán của C++: phép gán, các phép toán số học, so sánh, logic, 45 -58 Tư
vấn Chudung tuẩn bị các câu hỏi về nội ần 1
Tuần 2: Các kiểu dữ liệu, cấu trúc chương trình
LT 1 giờ
Các kiểu dữ liệu và các phép toán
- Các phép toán của C++: Các phép toán thao tác trên bit, các phép toán tích luỹ, toán tử điều kiện, toán tử tăng/giảm 1, toán tử &, *, độ ưu tiên của các toán tử
- Khái niệm biến, hằng, biểu thức - Lệnh khai báo biến, hằng
- Đọc: [1] trang 45 -58 LT 1 giờ Cấu trúc chương trình - Cấu trúc, ý nghĩa các thành phần - Lệnh và khối lệnh;
- Biên dịch và thực hiện chương trình
- Ví dụ chương trình đơn giản để minh hoạ
- Đọc: [1] trang 32 , 17- 20
Tư
vấn Chudung tuẩn bị các câu hỏi về nội ần 2
Tuần 3: Nhập xuất dữ liệu; Cấu trúc điều khiển
LT 0.5 giờ
Xuất nhập dữ liệu đơn giản:
- Sử dụng luồng nhập xuất cin, cout (cách dùng, ý nghĩa các cờ, định dạng dữ liệu nhập xuất)
- Ví dụ: nhập 2 số nguyên, in thông báo số lớn
- Giới thiệu cách sử dụng một số hàm thông dụng trong thư viện
Đọc: [3] trang 230-261 Đọc: [2] trang 15-18; 265- 273 - LT 0.5 giờ
Các cấu trúc điều khiển (1)
- Cấu trúc tuần tự
- Cấu trúc rẽ nhánh if: cú pháp, sơ đồ khối của cấu trúc, ý nghĩa - Ví dụ 1: chương trình nhập số
nguyên dương, kiểm tra số đó có là số chính phương hay không; - Ví dụ 2: chương trình tìm nghiệm
- Đọc [1], trang 85 -88 - Làm bài tập về nhà
của phương trình bậc 2
Bài tập về nhà:
- B1-Giải hệ phương trình bậc nhất; - B2- Nhập ba số thực a,b,c, kiểm
tra nếu thoả mãn điều kiện là 3 cạnh của tam giác tính diện tích của tam giác đó;
- B3- Nhập toạ độ 4 điểm A, B,C,D, kiểm tra D nằm trong hay ngoài tam giác ABCD
LT 1 giờ
Các cấu trúc điều khiển (2)
- Bài tập: Hướng dẫn và chữa bài tập về nhà của bài trước
- Cấu trúc rẽ nhánh switch: cú pháp, ý nghĩa
- Ví dụ (minh hoạ cấu trúc switch): nhập biểu thức đơn giản dạng a ⊗b (⊗: có thể là phép toán số học, hoặc quy ước x, : ) tính giá trị của biểu thức đó
- Cấu trúc lặp while: cú pháp,sơ đồ khối của cấu trúc, ý nghĩa (chú tới điều kiện trước)
- Ví dụ 1 (minh hoạ cấu trúc while): tính n!; ví dụ 2: tính tổng (-1)i1/2i, với i = 1 → n; ví dụ 3: kiểm tra số nguyên tố Bài tập về nhà: - B4- viết chương trình nhập số n, tìm và in các số nguyên tố thuộc 2..n - B5: kiểm tra số fibonaxi - B6: kiểm tra số hoàn chỉnh - B7: tính sin(x) theo công thức
khai triển Taylor với độ chính xác cho trước - Đọc [1], trang 88-111 - Làm bài tập về nhà - Làm thêm các bài tập (tham khảo) o C1: tính cos(x) theo công thức khai triển Taylor o C2: Tính tổng 1/(i!) với i: 1→n o C3: Tìm n số nguyên tố đầu tiên o C4: Nhập n số thực, tìm và in giá trị lớn nhất, nhỏ nhất KT- ĐG
Yêu cầu sinh viên hoàn thành và nộp cho giáo viên 3 bài (do giáo viên chỉ định) trong 7 bài tập về nhà
Tư
vấn Chugiải đáp ẩn bị các câu hỏi cần
Tuần 4: Thực hành
TH
tín chỉ (4 giờ PM hợp
- Soạn thảo, ghi, mở file chương trình
- Biên dịch và thực hiện chương trình, nhập dữ liệu vào, xem kết quả
- Cách tra cứu hàm thư viện, - Sửa một số lỗi cú pháp phổ biến - Chạy từng bước, gỡ rối chương
trình, theo dõi giá trị các biến - Thực hành các bài tập B4, B5,B7
C3)
Tư
vấn Chugiải đáp ẩn bị các câu hỏi cần
Tuần 5 : Các cấu trúc điều khiển
LT 1 giờ
Các cấu trúc điều khiển (3)
- Cấu trúc lặp do while:cú pháp,sơ đồ khối của cấu trúc, ý nghĩa (phân biệt điều kiện lặp với while) - Ví dụ 1 (minh hoạ cấu trúc do
while): Viết chương trình nhập dãy các số nguyên dương từ bàn phím, cho tới khi nhập số âm thì kết thúc nhập, in giá trị lớn nhất; - Ví dụ 2: Tính sin (x) theo công
thức khai triển Taylor với độ chính xác cho trước (dùng điều kiện sau)
- Ví dụ 3: (sử dụng switch, do..while) cho lặp việc chọn và thực hiện 1 trong 3 chức năng: tính diện tích hình tròn, hình chữ nhật, hình thang cho tới khi trả lời kết thúc. - Đọc [1], trang 88-111 - Làm bài tập về nhà - Làm thêm các bài tập (tham khảo) o C5: Viết chương trình nhập dãy các số nguyên dương từ bàn phím, cho tới khi nhập số âm thì kết thúc nhập, tìm giá trị lớn nhất và số phần tử bằng giá trị lớn nhất đó o C6: Viết chương trình chọn ngẫu nhiên một kí tự c nào đó, cho phép lặp nhập một kí tự từ bàn phím, nếu trùng với c thì thông báo chọn đúng và kết thúc LT 1 giờ
Các cấu trúc điều khiển (4)
- Cấu trúc lặp for: cú pháp,sơ đồ khối của cấu trúc, ý nghĩa (chú tới trường hợp các biểu thức rỗng, nhiều biều thức cách nhau bởi dấu phẩy)
- Ví dụ 1: In các kí tự từ A - Z - Ví dụ 2: Giải bài toán vui trăm
trâu trăm cỏ - Ví dụ 3: Nhập số n, in các số hoàn - Đọc [1], trang 88-111 - Làm bài tập về nhà - Làm thêm các bài tập (tham khảo) o C8: Viết chương in bảng cửu chương ra màn hình
chỉnh <= n
- Câu lệnh break, continue, kết thúc sớm vòng lặp
Bài tập về nhà:
- B8: Nhập dãy có n số thực, hãy xác định trật tự của dãy đó (tăng, giảm, điều hay không có thứ tự) - B9: Nhập n, in n số fibonaxi đầu tiên - B10: Nhập số n, in các số nguyên tố 2..n - B11: Viết chương trình nhập dãy các số nguyên dương từ bàn phím, cho tới khi nhập số âm thì kết thúc nhập, tìm giá trị lớn nhất và số phần tử bằng giá trị lớn KT-
ĐG Thu bài tập tuần 3 Nđịnh tuần 3 ộp bài tập do giáo viên chỉ
Tư
Vấn Chuẩn bị các câu hỏi
Tuần 6: Thực hành TH 2 giờ tín chỉ (4 giờ PM Phòng máy Thực hành 2
- Các cấu trúc điều khiển
- Thực hành các bài tập B5,B7,B8, C1,C3, C5,C6
- Kỹ năng chạy từng bước và gỡ rối
Chuẩn bị các bài tập ở nhà, các bài tập: C1 C2, C3, C5, C6
Tư
Vấn Chuẩn bị các câu hỏi
Tuần 7: Bài tâp; Mảng và con trỏ
BT
1 giờ Chữa các bài tập: B8,B9, B7, B11 Chuẩn bị các bài tập về nhà
LT 1 giờ
Mảng, con trỏ và xâu ký tự (1)
3. Mảng 1 chiều
o Khái niệm, lệnh khai báo mảng 1 chiều, truy xuất các phần tử, lưu ý trường hợp truy xuất vượt chỉ số, bố trí các phần tử trong bộ nhớ, giá trị khởi đầu các phần tử o Ví dụ 1: Nhập mảng có n phần tử kiểu nguyên, in các phần tử của mảng o Ví dụ 2: Nhập 2 mảng có n - Đọc [1], trang 29-30; 120-132 - Làm bài tập về nhà - Làm thêm các bài tập (tham khảo) o C9: Nhập mảng có n phần tử kiểu nguyên theo trật tự tăng dần, in các phần tử khác nhau của mảng o C10: Nhập 2 mảng theo trật tự tăng dần,
phần tử kiểu nguyên, tính và in mảng tổng
4. Mảng 2 chiều
o Khái niệm, lệnh khai báo mảng 1 chiều, truy xuất các phần tử, lưu ý trường hợp truy xuất vượt chỉ số dòng, cột, sắp xếp các phần tử trong bộ nhớ, liên hệ giữa chỉ số dòng, cột với số thứ tự o Ví dụ 1: Nhập mảng có n dòng, m cột các phần tử kiểu nguyên, in các phần tử của mảng ra màn hình o Ví dụ 2: Nhập 2 mảng A,B có n, m cột các phần tử kiểu nguyên, tính và in mảng C=A+B Bài tập về nhà o B12: Nhập 2 vector có n phần tử kiểu nguyên, kiểm tra 2 vector đó có vuông góc với nhau hay không
o B13: Sắp xếp mảng 1 chiều bằng phương pháp chọn (đổi chỗ, nổi bọt) o B14: Nhập 2 mảng A(n,m),B(m,n) phần tử kiểu số thực, tính và in mảng C=A*B o B15: Nhập 2 mảng A(n,m),B(m,n) phần tử kiểu số thực, kiểm tra A có là hoán vị của B hay không
trộn 2 mảng để được có thứ tự tăng dần o C11: Nhập mảng có n phần tử kiểu nguyên, in các phần tử khác nhau của mảng o C12: Tìm kiếm bằng phương pháp chia đôi trên mảng có thứ tự o C13: Nhập A(n,n), kiểm tra A có là ma trận đối xứng hay không KT- ĐG
Yêu cầu sinh viên hoàn thành và nộp cho giáo viên 2 bài (do giáo viên chỉ định) trong các bài B14,C5, C9, C11, C12 bài tập về nhà
Tư
Vấn Chuẩn bị các câu hỏi
Tuần 8: Thực hành TH 2 giờ tín chỉ Phòng máy Thực hành 3
- Các cấu trúc điều khiển - Mảng
(4 giờ PM
B13,B15, C10
- Thiết lập một số tham số của trình biên dịch
Tư
Vấn Chuẩn bị các câu hỏi
Tuần 9: Mảng và con trỏ (tiếp)
LT 1 giờ
Mảng, con trỏ và xâu ký tự (2)
- Giới thiệu mảng nhiều chiều - Con trỏ và các phép toán trên con
trỏ: Khai báo con trỏ, phép gán con trỏ, truy xuất giá trị qua con trỏ, số học địa chỉ
- Cấp phát vùng nhớ cho con trỏ (giới thiệu qua về cấp phát động
new, và giải phóng vùng nhớ
delete)
- Liên hệ giữa con trỏ và mảng - Ví dụ: Cấp phát động mảng 1
chiều, nhập và in mảng đó bằng các dùng con trỏ
Bài tập về nhà
o B16: Nhập A(n,n) với n không giới hạn trước, kiểm tra A có là ma trận đơn vị không?
o B17: Xây dụng ma trận A(n,m), sao cho các phần tử có giá trị theo dạng xoắn ốc (n, m không giới hạn trước)
- Đọc [2], trang 35-39 - Làm bài tập về nhà - Làm thêm các bài tập (tham khảo) o C14: Nhập mảng có A(n,m) các phần tử kiểu số thực, tìm và in điểm yên ngựa (nếu có)
LT 0.5 giờ
Mảng, con trỏ và xâu ký tự (3)
- Xâu kí tự: Kháiniệm, khai báo xâu kí tự
- Giới thiệu một số hàm làm việc với xâu kí tự: nhập, in, so sánh, sao chép, tìm kiếm, chuyển đổi chữ hoa/ chữ thường
- Ví dụ: Nhập mảng các xâu kí tự dài không quá 30, sắp xếp theo thứ tự tăng, in mảng sau khi sắp xếp.
Bài tập về nhà
o B18: Nhập xâu họ tên (không quá 40 kí tự), chuẩn hoá xâu đó (kí tự đầu từ viết hoa, các kí tự khác viết thường, các từ
- Làm bài tập về nhà - Tra cứu một số hàm thư
cách nhau 1 dấu cách) o B19: Nhập 3 xâu s1,s2,s3
(không quá 40 kí tự), thay xâu s2 bằng s3 trong s1
LT 0.5 giờ
Cơ bản về hàm (1)
- Khái niệm hàm, ý nghĩa ưu điểm của việc sử dụng hàm
- Nguyên mẫu hàm, định nghĩa hàm
- Lời gọi hàm
- Ví dụ 1: viết hàm kiểm tra số nguyên tố, sử dụng hàm đó để in n số nguyên tố đầu tiên
- Đọc [2] trang 13,21-32; [1] trang 113-116 - Làm bài tập về nhà - Tra cứu một số hàm thư
viện string
KT-
ĐG Thu bài tuần 7 Nđịnh tuần 5 ộp bài tập do giáo viên chỉ Tư
vấn Chuẩn bị các câu hỏi
Tuần 10: Thực hành TH 2 x 2 giờ Thực hành 4 - Mảng và con trỏ - Cấp phát động - Thực hành các bài tập B12, B16,B17,B18 Tư
vấn Chuẩn bị các câu hỏi
Tuần 11: Bài tập; Cơ bản về hàm
BT
1 giờ Chữa các bài tập:B14, B16, B17
LT 1 giờ
Cơ bản về hàm (2)
- Truyền tham số: tham trị, tham chiếu,
- Tham số có giá trị ngầm định - Biến cục bộ
- Ví dụ 2: viết hàm nhập mảng 1 chiều, hàm in mảng, hàm tích vô hướng 2 vector; sử dụng các hàm trên để kiểm tra 2 vector có vuông góc với nhau hay không?
- Đọc [2] trang 13,21-32; [1] trang 113-116 - Làm bài tập về nhà
Tư
vấn Chuẩn bị các câu hỏi
Tuần 12: Thực hành
2 giờ tín chỉ (4 giờ PM
máy - Hàm và truyền tham số - Thực hành các bài tập B19,
C13,C14
Tư
vấn Chuẩn bị các câu hỏi
Tuần 13: Cơ bản về hàm (tiếp); Lập trình HĐT
LT 1 giờ
Cơ bản về hàm (3)
- Hàm đệ quy
- Giới thiệu về hàm inline - Nạp chồng các hàm - Ví dụ 3: Tìm ước số chung lớn nhất bằng hàm đệ quy - Ví dụ 4: Nạp chồng các hàm tìm min của 2 số, 3 số, mảng các số Bài tập về nhà - B19: Xây dựng hàm tìm kiếm phần tử trong mảng có thứ tự bằng phương pháp chia đôi - B20: Viết hàm nhập mảng, in
mảng, hàm sắp xếp mảng bằng phương pháp chia đôi; hàm main sử dụng các hàm trên. - B21: Viết hàm nhập ma trận, in ma trận, hàm nhân 2 ma trận, hàm kiểm tra ma trận đơn vị; hàm main sử dụng các hàm trên để nhập và kiểm tra 2 ma trận có là nghịch đảo của nhau hay không.
- Đọc [3] trang 38-57 - Làm bài tập về nhà
LT 1 giờ
Giới thiệu lập trình hướng đối tượng (1)
- Khái niệm về hướng đối tượng - Đóng gói và che dấu thông tin - Lớp và đối tượng: Xây dựng lớp,
khai báo đối tượng
- Thuộc tính: dữ liệu và phương thức
- Ví dụ 1: Xây dựng lớp phân số (PS1) gồm: Tử số, mẫu số; các hàm: nhập, in, tối giản
- Ví dụ 2: Xây dựng lớp Sinh viên
- Đọc [3] chương 1, chương 3 (trang 72 -87)
KT-
ĐG Giao bài tập Thực hiện các bài được giao
Vấn
Tuần 14: Lập trình HĐT (tiếp)
LT 1 giờ
Giới thiệu lập trình hướng đối tượng (2)
- Khởi tạo đối tượng, huỷ đối tượng, hàm khởi tạo, khởi tạo sao chép, hàm huỷ
- Kế thừa và đa hình: khái niệm kế thừa, xây dựng lớp dẫn xuất, phương thức ảo và đa hình - Ví dụ 3: Xây dựng lớp Phân số 2
(PS2) kế thừa lớp PS1 ở ví dụ 1 và bổ sung thêm các phương thức công, trừ, nhân, chia
- Ví dụ 2: Xây dựng lớp cơ sở People với các phương thức nhập, in là ảo, 2 lớp dẫn xuất Student, Teacher; hàm main nhập danh sách các đối tượng (có thể là People, Student hoặc Teacher), in