Lập trình hướng đối tượng - Chương 1: Ôn tập - Bài tập
Ôn lại các khái niệm, các kiến thức lập
trình cơ bản
Biến toàn cục
Biến cục bộ
Hàm và biến toàn cục
Tham số và hàm
Trừu tượng hóa dữ liệu
Tóm tắt nội dung Lập trình hướng đối tượng - Chương 1: Ôn tập - Bài tập, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5.1 KIẾN TRÚC MỘT CHƢƠNG TRÌNH C ĐƠN GIẢN Khối khai báo Khối hàm main Khối định nghĩa hàm 1 2 3 Chương 01 - 11 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5.1 KIẾN TRÚC MỘT CHƢƠNG TRÌNH C ĐƠN GIẢN Khối khai báo: chứa các khai báo hàm, khai báo biến toàn cục, khai báo sử dụng thư viện, khai báo hằng, khai báo kiểu dữ liệu… Khối hàm main: chứa duy nhất hàm main và thân hàm của nó. Trong thân hàm main chứa các lời gọi hàm cần thiết cho chương trình. Khối định nghĩa hàm: chứa các định nghĩa hàm đã được khai báo trong khối khai báo. Chương 01 - 12 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang Bài toán: Viết chương trình nhập họ tên, điểm toán, điểm văn của một học sinh. Tính điểm trung bình và xuất kết quả. 5.2 CHƢƠNG TRÌNH Chương 01 - 13 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5.2 CHƢƠNG TRÌNH 1. #include 2. #include 3. char hoten[31]; 4. int toan; 5. int van; 6. float dtb; 7. void Nhap(); 8. void XuLy(); 9. void Xuat(); Chương 01 - 14 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5.2 CHƢƠNG TRÌNH 1. void main() 2. { 3. Nhap(); 4. XuLy(); 5. Xuat(); 6. } Chương 01 - 15 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5.2 CHƢƠNG TRÌNH 11.void Xuat() 12.{ 13. printf(“Ho ten:%s”, hoten); 14. printf(“Toan: %d”, toan); 15. printf(“Van: %d:“, van); 16. printf(“DTB: %f”, dtb); 17.} 18.void XuLy() 19.{ 20. dtb=(float)(toan + van)/2; 21.} Chương 01 - 16 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5.2 CHƢƠNG TRÌNH 1. void Nhap() 2. { 3. printf(“Nhap ho ten:”); 4. gets(hoten); 5. printf(“Nhap toan:”); 6. scanf(“%d”,&toan); 7. printf(“Nhap van:”); 8. scanf(“%d”,&van); 9. } Chương 01 - 17 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 6. THAM SỐ VÀ HÀM Khái niệm: Các thông số đầu vào của một hàm đƣợc gọi là tham số của hàm. Phân loại tham số: có 2 loại tham số là tham trị và tham biến. Tham trị: Không đổi. Tham biến: Thay đổi. Cấp phát bộ nhớ: Tham trị: Cấp phát. Tham biến: Không cấp phát bộ nhớ khi hàm được gọi thực hiện mà sử dụng bộ nhớ của đối số tương ứng. Chương 01 - 18 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 6. THAM SỐ VÀ HÀM 1. #include 2. #include 3. void Nhap(char [],int&,int &); 4. void XuLy(int, int, float &); 5. void Xuat(char[],int,int,float); Chương 01 - 19 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 6. THAM SỐ VÀ HÀM 1. void main() 2. { 3. char ht[31]; 4. int t,v; 5. float tb; 6. Nhap(ht,t,v); 7. Xuly(t,v,tb); 8. Xuat(ht,t,v,tb); 9. } Chương 01 - 20 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 6. THAM SỐ VÀ HÀM (tiếp) 11.void Xuat(char hoten[],int toan,int van,float dtb) 12.{ 13. printf(“Ho ten:%s”,hoten); 14. printf(“Toan: %d”,toan); 15. printf(“Van: %d”,van); 16. printf(“DTB: %f”,dtb); 17.} 18.void XuLy(int toan, int van, float&dtb) 19.{ 20. dtb=(float)(toan + van)/2; 21.} Chương 01 - 21 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 6. THAM SỐ VÀ HÀM (tiếp) 1. void Nhap(char hoten[30], int &toan, int &van) 2. { 3. printf(“Nhap ho ten:”); 4. gets(hoten); 5. printf(“Nhap toan:”); 6. scanf(“%d”,&toan); 7. printf(“Nhap van:”); 8. scanf(“%d”,&van); 9. } Chương 01 - 22 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TRỪU TƢỢNG HÓA DỮ LIỆU Khái niệm: Trừu tượng hóa dữ liệu là một phương pháp tích hợp các kiểu dữ liệu đơn, các kiểu dữ liệu có sẵn nhằm mô tả, biểu diễn một khái niệm hay một đối tượng trong thế giới thực. Cú pháp: 1. struct KieuDuLieu 2. { 3. Thành phần 1; 4. Thành phần 2; 5. … 6. }; 7. typedef struct KieuDuLieu KIEUDULIEU; Chương 01 - 23 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TRỪU TƢỢNG HÓA DỮ LIỆU (tiếp) 11.#include 12.#include 13.struct HocSinh 14.{ 15. char hoten[31]; 16. int toan; 17. int van; 18. float dtb; 19.}; 20.typedef struct HocSinh HOCSINH; 21.void Nhap(HOCSINH &); 22.void Xuat(HOCSINH); 23.void XuLy(HOCSINH&); Chương 01 - 24 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TRỪU TƢỢNG HÓA DỮ LIỆU (tiếp) 1. void Nhap(HOCSINH &); 2. void Xuat(HOCSINH); 3. void XuLy(HOCSINH&); 4. void main() 5. { 6. HOCSINH hs; 7. Nhap(hs); 8. XuLy(hs); 9. Xuat(hs); 10.} Chương 01 - 25 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TRỪU TƢỢNG HÓA DỮ LIỆU (tiếp) 1. void Xuat(HOCSINH x) 2. { 3. printf(“Ho ten:%s”,x.hoten); 4. printf(“Toan: %d”,x.toan); 5. printf(“Van: %d”,x.van); 6. printf(“DTB: %f”,x.dtb); 7. } 8. void XuLy(HOCSINH &x) 9. { 10. x.dtb=(float)(x.toan+x.van)/2; 11.} Chương 01 - 26 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TRỪU TƢỢNG HÓA DỮ LIỆU (tiếp) 1. void Nhap(HOCSINH&x) 2. { 3. printf(“Nhap ho ten:”); 4. gets(x.hoten); 5. printf(“Nhap toan:”); 6. scanf(“%d”,&x.toan); 7. printf(“Nhap van:”); 8. scanf(“%d”,&x.van); 9. } Chương 01 - 27 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 8. ỨNG DỤNG 8.1 Ứng dụng 1: Viết chƣơng trình nhập vào một phân số. Rút gọn phân số đó và xuất kết quả. Chương 01 - 28 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 8.1 ỨNG DỤNG 1 11.#include 12.#include 13.struct PhanSo 14.{ 15. int tu; 16. int mau; 17.}; 18.typedef struct PhanSo PHANSO; 19.void Nhap(PHANSO &); 20.void Xuat(PHANSO); 21.void RutGon(PHANSO&); Chương 01 - 29 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 8.1 ỨNG DỤNG 1 1. void Nhap(PHANSO &); 2. void Xuat(PHANSO); 3. void XuLy(PHANSO&); 4. void main() 5. { 6. PHANSO ps; 7. Nhap(ps); 8. RutGon(ps); 9. Xuat(ps); 10.} Chương 01 - 30 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 8.1 ỨNG DỤNG 1 1. void Nhap(PHANSO &x) 2. { 3. printf(“Nhap tu”); 4. scanf(“%d”,&x.tu); 5. printf(“Nhap mau: ”); 6. scanf(“%d”,&x.mau); 7. } 8. void Xuat(PHANSO x) 9. { 10. printf(“\n Tu: %d”,x.tu); 11. printf(“\n Mau: %d”,x.mau); 12.} Chương 01 - 31 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 8.1 ỨNG DỤNG 1 1. void RutGon(PHANSO &x) 2. { 3. int a = abs(x.tu); 4. int b = abs(x.mau); 5. while(a*b!=0) 6. { 7. if(a>b) 8. a = a – b; 9. else 10. b = b – a; 11. } 12. x.tu = x.tu / (a+b); 13. x.mau = x.mau / (a+b); 14.} Chương 01 - 32 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 8.2 ỨNG DỤNG 2 8.2 Ứng dụng 2: Viết chƣơng trình nhập vào tọa độ 2 điểm trong mặt phẳng Oxy. Tính khoảng cách giữa chúng và xuất kết quả Chương 01 - 33 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 8.2 ỨNG DỤNG 2 11.#include 12.#include 13.struct Diem 14.{ 15. float x; 16. float y; 17.}; 18.typedef struct Diem DIEM; 19.void Nhap(DIEM &); 20.void Xuat(DIEM); 21.float KhoangCach(DIEM,DIEM); Chương 01 - 34 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 8.2 ỨNG DỤNG 2 1. void Nhap(DIEM &); 2. void Xuat(DIEM); 3. float KhoangCach(DIEM,DIEM); 4. void main() 5. { 6. DIEM A,B; 7. Nhap(A); 8. Nhap(B); 9. float kq=KhoangCach(A,B); 10. Xuat(A); 11. Xuat(B); 12. printf(“\n …:%f”,kq); 13.} Chương 01 - 35 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 8.2 ỨNG DỤNG 2 1. void Nhap(DIEM &P) 2. { 3. printf(“Nhap x: ”); 4. scanf(“%f”,&P.x); 5. printf(“Nhap y: ”); 6. scanf(“%f”,&P.y); 7. } 8. void Xuat(DIEM P) 9. { 10. printf(“\n x = %f”,P.x); 11. printf(“\n y = %f”,P.y); 12.} Chương 01 - 36 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 8.2 ỨNG DỤNG 2 1. float KhoangCach(DIEM P,DIEM Q) 2. { 3. return sqrt( (Q.x-P.x)*(Q.x-P.x)+ (Q.y-P.y)*(Q.y-P.y)); 4. } Chương 01 - 37 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 9. BÀI TẬP Bài 1: Viết chương trình nhập vào một phân số. Hãy cho biết phân số đó là phân số âm hay dương hay bằng không. Bài 2: Viết chương trình nhập tọa độ hai điểm trong không gian. Tính khoảng cách giữa chúng và xuất kết quả. Chương 01 - 38 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 9. BÀI TẬP Bài 3: Viết chương trình nhập vào 2 phân số. Tìm phân số lớn nhất và xuất kết quả. Bài 4: Viết chương trình nhập vào hai phân số. Tính tổng, hiệu, tích, thương giữa chúng và xuất kết quả. Chương 01 - 39 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 9. BÀI TẬP Bài 5: Viết chương trình nhập vào 2 số phức. Tính tổng, hiệu, tích và xuất kết quả. Bài 6: Viết chương trình nhập vào một ngày. Tìm ngày kế tiếp và xuất kết quả. Chương 01 - 40 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 9. BÀI TẬP Bài 7: Viết chương trình nhập vào một ngày. Tìm ngày hôm qua và xuất kết quả. Bài 8: Viết chương trình nhập toạ độ 3 đỉnh A,B,C của 1 tam giác trong mặt phẳng Oxy. Tính chu vi, diện tích và tìm tọa độ trọng tâm. Chương 01 - 41 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 9. BÀI TẬP Bài 9: Viết chương trình nhập tọa tâm và bán kính của một đường tròn. Tính diện tích và chu vi của đường tròn. Chương 01 - 42 LTHĐTKhoa CNTT GV. Nguyễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 9. BÀI TẬP Yêu cầu chung: Làm tất cả các bài tập trong một workspace có tên là MSSV_BT01. Trong workspace có 9 project tương ứng với từng bài tập. Nộp bài tập lên hệ thống Moodle theo qui định.
File đính kèm:
- Lập trình hướng đối tượng - Chương 1 Ôn tập (Tiếp theo).pdf