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

pdf42 trang | Chuyên mục: Lập Trình Hướng Đối Tượng | Chia sẻ: dkS00TYs | Lượt xem: 2005 | Lượt tải: 1download
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:

  • pdfLập trình hướng đối tượng - Chương 1 Ôn tập (Tiếp theo).pdf