SlideShare a Scribd company logo
1 of 4
Download to read offline
Kỹ thuật lập trình 501127 – HK2/2011-2012 1 
Ỹ UẬ LẬ Ì 
ài p 6 – ầ 15 
Lớp, thao tác đối tượng và tính kế thừa 
ài p bắ b ộ : 
Bài 1. 
Cho class biểu diễn số phức a + bi như sau: 
class Complex{ 
protected: 
float a,b; 
public: 
... 
} 
Yêu cầu: 
- Tạo constructor khởi trị a = b = 0. 
- Tạo hàm set giá trị a, b. 
- Viết hàm in ra số phức dạng x+iy 
- Hiện thực các operator =; +; -; *; /, ^(luỹ thừa) 
- Viết hàm tính magnitude 
- Viết các operator ==, !=, <=, >=, <, > dựa trên độ lớn magnitude. 
Bài 2. 
Hiện thực lớp hình chữ nhật Rectangle theo các miêu tả về thuộc tính dữ liệu và hàm thành viên như sau: 
Có hai thuộc tính chiều dài (length) và chiều rộng (width). 
Định nghĩa hàm khởi tạo có hai thông số ứng với hai thông tin chiều dài và chiều rộng, 
giá trị mặc định cho hai thông số này lần lượt là 20 và 10. 
Định nghĩa thủ tục display để hiển thị các thuộc tính ra màn h.nh. 
Định nghĩa thủ tục getInfo để yêu cầu người dùng nhập các thông tin cho thuộc tính. 
Định nghĩa các thủ rục set để gán giá trị cho các thuộc tính. 
Định nghĩa các hàm get để truy xuất giá trị của các thuộc tính. 
Định nghĩa hàm area để tính diện tích của h.nh chữ nhật. 
Hiện thực lớp hình hộp Box theo miêu tả sau: 
Thừa kế lớp Rectangle ở trên. 
Có thêm thuộc tính chiều sâu depth. 
Định nghĩa đè (override) các thủ tục display, getInfo và hàm area của lớp Rectangle. 
Bài 3. 
Cho biết giá trị của *p, *q, m và n tương ứng với các dòng lệnh sau khi chương trình thực thi.Kiểm tra lại bằng chương trình. 
Ví dụ: 
int*p,*q, n; 
n = 1; //1 
p = &n; //2
Kỹ thuật lập trình 501127 – HK2/2011-2012 2 
q = new int; //3 
*q = 2; //4 
deleteq; //5 
Trả lời: 
Lệnh 
p 
*p 
q 
*q 
n 
1 
Không xác định 
Không xác định 
Không xác định 
Không xác định 
1 
2 
xác định 
1 
Không xác định 
Không xác định 
1 
3 
xác định 
1 
xác định 
Không xác định 
1 
4 
xác định 
1 
xác định 
2 
1 
5 
xác định 
1 
Không xác định 
Không xác định 
1 
a) 
int*p, *q, n; 
n = 1; //1 
q = &n; //2 
p = q; //3 
*q = *p + 1; //4 
p = new int; //5 
q = p; //6 
*p = n; //7 
n = *q + 1; //8 
b) 
int*p, m, n; 
n = 1; //1 
m = 2; //2 
p = new int; //3 
*p = n + 1; //4 
p = &n; //5 
*p = m + 1; //6 
c) 
int*p, *q, n, m; 
p = new int; //1 
*p = 1; //2 
q = p; //3 
p = &m; //4 
m = *q; //5 
n = 1; //6 
deleteq; //7 
m = *q + *p; //8 
Bài p làm thêm 
Bài 4.Class Array quản lý mảng 2 chiều như sau. 
classArray{ 
protected: 
int m,n; 
int** a;
Kỹ thuật lập trình 501127 – HK2/2011-2012 3 
static int nAssignment ; 
static int nCopy; 
public: 
static int getNumberAss(){ 
returnnAssignment; 
} 
static int getNumberCopy(); 
voidoperator=(const Array& arr){ 
Array::nAssignment ++; 
} 
... 
} 
intArray::nAssignment = 0; 
... 
Yêu cầu: 
- Hiện thực constructor, destructor. 
- Hiện thực set/get M/N, và set/get 1 phần tử at(int m, int n, int value) 
- Hiện thực operator =/copy constructor. 
- 2 biến static dùng để lưu lại tổng số lần gọi các tác vụ operator= và copy constructor 
- Viết một chương trình sử dụng mảng bằng class Array. Khi kết thúc in ra màn hình số lần các hàm operator và copy constructor được chạy. 
Bài 5. 
Cho biết giá trị của *p, *q, m và n tương ứng với các dòng lệnh sau khi chương trình thực thi.Kiểm tra lại bằng chương trình. 
a) 
int*p, m, n; 
n = 1; //1 
m = 2; //2 
p = new int; //3 
n = *p; //4 
p = &m; //5 
n = *p + 1; //6 
b) 
int*p, m, n; 
n = 1; //1 
m = 2; //2 
p = new int; //3 
*p = m + 1; //4 
deletep; //5 
n = *p + 1; //6 
c) 
int*p, *q, n; 
n = 1; //1 
q = &n; //2 
p = new int; //3 
*p = n + 1; //4 
q = p; //5
Kỹ thuật lập trình 501127 – HK2/2011-2012 4 
n = *q + 1; //6 
deleteq; //7 
n = *p + 1; //8 
d) 
int *p, m, n; 
n = 3; //1 
m = 2; //2 
p = &m; //3 
*p = n + 1; //4 
p = &n; //5 
*p = m + 1; //6 
e) 
int*p, *q, n, m; 
n = 1; //1 
m = 2; //2 
p = &n; //3 
q = &m; //4 
n++; //5 
m--; //6 
p = q; //7 
q = &n; //8 
-- ế -

More Related Content

What's hot

Ctdl C05
Ctdl C05Ctdl C05
Ctdl C05giang
 
Ctdl C01
Ctdl C01Ctdl C01
Ctdl C01giang
 
Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Minh Ngoc Tran
 
Bai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocBai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocHồ Lợi
 
giao trinh c++ Chuong1
giao trinh c++ Chuong1giao trinh c++ Chuong1
giao trinh c++ Chuong1Bễ Nguyễn
 
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Thanh Minh Hoang
 
Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Minh Ngoc Tran
 
Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3Minh Ngoc Tran
 
Nmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoNmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoMinh Ngoc Tran
 
Powerpoint dạy hoc
Powerpoint dạy hocPowerpoint dạy hoc
Powerpoint dạy hocLong Tibbers
 
Ctdl C02
Ctdl C02Ctdl C02
Ctdl C02giang
 

What's hot (19)

Tut4 solution
Tut4 solutionTut4 solution
Tut4 solution
 
Bai de quy
Bai de quyBai de quy
Bai de quy
 
Ctdl C05
Ctdl C05Ctdl C05
Ctdl C05
 
Ctdl C01
Ctdl C01Ctdl C01
Ctdl C01
 
Nmlt c06 ham
Nmlt c06 hamNmlt c06 ham
Nmlt c06 ham
 
Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1
 
Bai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocBai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hoc
 
C đến C++ phần 1
C đến C++ phần 1C đến C++ phần 1
C đến C++ phần 1
 
giao trinh c++ Chuong1
giao trinh c++ Chuong1giao trinh c++ Chuong1
giao trinh c++ Chuong1
 
Nmlt c05 cau_lenhlap
Nmlt c05 cau_lenhlapNmlt c05 cau_lenhlap
Nmlt c05 cau_lenhlap
 
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
 
Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-
 
Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3
 
Nmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoNmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucoso
 
Nmlt c06 ham_in
Nmlt c06 ham_inNmlt c06 ham_in
Nmlt c06 ham_in
 
Nmlt c11 con_trocoban
Nmlt c11 con_trocobanNmlt c11 con_trocoban
Nmlt c11 con_trocoban
 
Nmlt c12 quan_lybonho
Nmlt c12 quan_lybonhoNmlt c12 quan_lybonho
Nmlt c12 quan_lybonho
 
Powerpoint dạy hoc
Powerpoint dạy hocPowerpoint dạy hoc
Powerpoint dạy hoc
 
Ctdl C02
Ctdl C02Ctdl C02
Ctdl C02
 

Similar to Tut6

K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11Tin5VungTau
 
Ctdl C04
Ctdl C04Ctdl C04
Ctdl C04giang
 
C3 functions and_library
C3 functions and_libraryC3 functions and_library
C3 functions and_libraryHồ Lợi
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08xcode_esvn
 
Bài tập thực hành số 1
Bài tập thực hành số 1Bài tập thực hành số 1
Bài tập thực hành số 1Tran Trung Dung
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04. .
 
Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)Kieu Anh Nguyen
 
Bai toan va thuat toan
Bai toan va thuat toanBai toan va thuat toan
Bai toan va thuat toanlethilien1993
 
Nmlt c15 ham_nangcao_phan2_in
Nmlt c15 ham_nangcao_phan2_inNmlt c15 ham_nangcao_phan2_in
Nmlt c15 ham_nangcao_phan2_inHuy Nguyễn
 
Bài tập ôn lập trình
Bài tập ôn lập trìnhBài tập ôn lập trình
Bài tập ôn lập trìnhThai Hoc Vu
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Kuli An
 

Similar to Tut6 (20)

K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Ctdl C04
Ctdl C04Ctdl C04
Ctdl C04
 
C3 functions and_library
C3 functions and_libraryC3 functions and_library
C3 functions and_library
 
C3 functions and_library
C3 functions and_libraryC3 functions and_library
C3 functions and_library
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08Lap trinh huong_doi_tuong_cpp_dhct_lesson08
Lap trinh huong_doi_tuong_cpp_dhct_lesson08
 
Bài tập thực hành số 1
Bài tập thực hành số 1Bài tập thực hành số 1
Bài tập thực hành số 1
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04
 
Ctdl lab01
Ctdl lab01Ctdl lab01
Ctdl lab01
 
Bai 18
Bai 18Bai 18
Bai 18
 
Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)
 
Chương Trình Con
Chương Trình Con Chương Trình Con
Chương Trình Con
 
Bai toan va thuat toan
Bai toan va thuat toanBai toan va thuat toan
Bai toan va thuat toan
 
C9 templates
C9 templatesC9 templates
C9 templates
 
C9 templates
C9 templatesC9 templates
C9 templates
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Nmlt c15 ham_nangcao_phan2_in
Nmlt c15 ham_nangcao_phan2_inNmlt c15 ham_nangcao_phan2_in
Nmlt c15 ham_nangcao_phan2_in
 
Bài tập ôn lập trình
Bài tập ôn lập trìnhBài tập ôn lập trình
Bài tập ôn lập trình
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#
 
Lesson08
Lesson08Lesson08
Lesson08
 

More from Trần Văn Nam

Phan 2 chuong 8 (chuoi ky tu)
Phan 2   chuong 8 (chuoi ky tu)Phan 2   chuong 8 (chuoi ky tu)
Phan 2 chuong 8 (chuoi ky tu)Trần Văn Nam
 
Phan 2 chuong 9 (cau truc)
Phan 2   chuong 9 (cau truc)Phan 2   chuong 9 (cau truc)
Phan 2 chuong 9 (cau truc)Trần Văn Nam
 
Phan 2 chuong 10 (tap tin)
Phan 2   chuong 10 (tap tin)Phan 2   chuong 10 (tap tin)
Phan 2 chuong 10 (tap tin)Trần Văn Nam
 
Giáo trình cấu trúc dữ liệu và giải thuật phần 1 tài liệu, ebook, giáo trình
Giáo trình cấu trúc dữ liệu và giải thuật phần 1   tài liệu, ebook, giáo trìnhGiáo trình cấu trúc dữ liệu và giải thuật phần 1   tài liệu, ebook, giáo trình
Giáo trình cấu trúc dữ liệu và giải thuật phần 1 tài liệu, ebook, giáo trìnhTrần Văn Nam
 
Bg chuong trinh dich chuong 3
Bg chuong trinh dich chuong 3Bg chuong trinh dich chuong 3
Bg chuong trinh dich chuong 3Trần Văn Nam
 
Bài giảng ngôn ngữ lập trình c++ chương 7 ra vào dữ liệu tài liệu, ebook, ...
Bài giảng ngôn ngữ lập trình c++ chương 7  ra vào dữ liệu   tài liệu, ebook, ...Bài giảng ngôn ngữ lập trình c++ chương 7  ra vào dữ liệu   tài liệu, ebook, ...
Bài giảng ngôn ngữ lập trình c++ chương 7 ra vào dữ liệu tài liệu, ebook, ...Trần Văn Nam
 

More from Trần Văn Nam (19)

Pointer
PointerPointer
Pointer
 
Phan 2 chuong 8 (chuoi ky tu)
Phan 2   chuong 8 (chuoi ky tu)Phan 2   chuong 8 (chuoi ky tu)
Phan 2 chuong 8 (chuoi ky tu)
 
Phan 2 chuong 9 (cau truc)
Phan 2   chuong 9 (cau truc)Phan 2   chuong 9 (cau truc)
Phan 2 chuong 9 (cau truc)
 
Phan 2 chuong 10 (tap tin)
Phan 2   chuong 10 (tap tin)Phan 2   chuong 10 (tap tin)
Phan 2 chuong 10 (tap tin)
 
Lect09 string
Lect09 stringLect09 string
Lect09 string
 
Lect05 array
Lect05 arrayLect05 array
Lect05 array
 
Huong dan thao_tac_file
Huong dan thao_tac_fileHuong dan thao_tac_file
Huong dan thao_tac_file
 
Cam bien gia toc
Cam bien gia tocCam bien gia toc
Cam bien gia toc
 
Bai tap c
Bai tap cBai tap c
Bai tap c
 
Giáo trình cấu trúc dữ liệu và giải thuật phần 1 tài liệu, ebook, giáo trình
Giáo trình cấu trúc dữ liệu và giải thuật phần 1   tài liệu, ebook, giáo trìnhGiáo trình cấu trúc dữ liệu và giải thuật phần 1   tài liệu, ebook, giáo trình
Giáo trình cấu trúc dữ liệu và giải thuật phần 1 tài liệu, ebook, giáo trình
 
Ctdlgt
CtdlgtCtdlgt
Ctdlgt
 
Chuong 05
Chuong 05Chuong 05
Chuong 05
 
Bg chuong trinh dich chuong 3
Bg chuong trinh dich chuong 3Bg chuong trinh dich chuong 3
Bg chuong trinh dich chuong 3
 
Chapter07 io
Chapter07 ioChapter07 io
Chapter07 io
 
C++ 2011 april_draft
C++ 2011 april_draftC++ 2011 april_draft
C++ 2011 april_draft
 
Bài giảng ngôn ngữ lập trình c++ chương 7 ra vào dữ liệu tài liệu, ebook, ...
Bài giảng ngôn ngữ lập trình c++ chương 7  ra vào dữ liệu   tài liệu, ebook, ...Bài giảng ngôn ngữ lập trình c++ chương 7  ra vào dữ liệu   tài liệu, ebook, ...
Bài giảng ngôn ngữ lập trình c++ chương 7 ra vào dữ liệu tài liệu, ebook, ...
 
Tailieuvkt hk3
Tailieuvkt hk3Tailieuvkt hk3
Tailieuvkt hk3
 
Lenh tat auto_cad hk3
Lenh tat auto_cad hk3Lenh tat auto_cad hk3
Lenh tat auto_cad hk3
 
Nhung ad
Nhung adNhung ad
Nhung ad
 

Tut6

  • 1. Kỹ thuật lập trình 501127 – HK2/2011-2012 1 Ỹ UẬ LẬ Ì ài p 6 – ầ 15 Lớp, thao tác đối tượng và tính kế thừa ài p bắ b ộ : Bài 1. Cho class biểu diễn số phức a + bi như sau: class Complex{ protected: float a,b; public: ... } Yêu cầu: - Tạo constructor khởi trị a = b = 0. - Tạo hàm set giá trị a, b. - Viết hàm in ra số phức dạng x+iy - Hiện thực các operator =; +; -; *; /, ^(luỹ thừa) - Viết hàm tính magnitude - Viết các operator ==, !=, <=, >=, <, > dựa trên độ lớn magnitude. Bài 2. Hiện thực lớp hình chữ nhật Rectangle theo các miêu tả về thuộc tính dữ liệu và hàm thành viên như sau: Có hai thuộc tính chiều dài (length) và chiều rộng (width). Định nghĩa hàm khởi tạo có hai thông số ứng với hai thông tin chiều dài và chiều rộng, giá trị mặc định cho hai thông số này lần lượt là 20 và 10. Định nghĩa thủ tục display để hiển thị các thuộc tính ra màn h.nh. Định nghĩa thủ tục getInfo để yêu cầu người dùng nhập các thông tin cho thuộc tính. Định nghĩa các thủ rục set để gán giá trị cho các thuộc tính. Định nghĩa các hàm get để truy xuất giá trị của các thuộc tính. Định nghĩa hàm area để tính diện tích của h.nh chữ nhật. Hiện thực lớp hình hộp Box theo miêu tả sau: Thừa kế lớp Rectangle ở trên. Có thêm thuộc tính chiều sâu depth. Định nghĩa đè (override) các thủ tục display, getInfo và hàm area của lớp Rectangle. Bài 3. Cho biết giá trị của *p, *q, m và n tương ứng với các dòng lệnh sau khi chương trình thực thi.Kiểm tra lại bằng chương trình. Ví dụ: int*p,*q, n; n = 1; //1 p = &n; //2
  • 2. Kỹ thuật lập trình 501127 – HK2/2011-2012 2 q = new int; //3 *q = 2; //4 deleteq; //5 Trả lời: Lệnh p *p q *q n 1 Không xác định Không xác định Không xác định Không xác định 1 2 xác định 1 Không xác định Không xác định 1 3 xác định 1 xác định Không xác định 1 4 xác định 1 xác định 2 1 5 xác định 1 Không xác định Không xác định 1 a) int*p, *q, n; n = 1; //1 q = &n; //2 p = q; //3 *q = *p + 1; //4 p = new int; //5 q = p; //6 *p = n; //7 n = *q + 1; //8 b) int*p, m, n; n = 1; //1 m = 2; //2 p = new int; //3 *p = n + 1; //4 p = &n; //5 *p = m + 1; //6 c) int*p, *q, n, m; p = new int; //1 *p = 1; //2 q = p; //3 p = &m; //4 m = *q; //5 n = 1; //6 deleteq; //7 m = *q + *p; //8 Bài p làm thêm Bài 4.Class Array quản lý mảng 2 chiều như sau. classArray{ protected: int m,n; int** a;
  • 3. Kỹ thuật lập trình 501127 – HK2/2011-2012 3 static int nAssignment ; static int nCopy; public: static int getNumberAss(){ returnnAssignment; } static int getNumberCopy(); voidoperator=(const Array& arr){ Array::nAssignment ++; } ... } intArray::nAssignment = 0; ... Yêu cầu: - Hiện thực constructor, destructor. - Hiện thực set/get M/N, và set/get 1 phần tử at(int m, int n, int value) - Hiện thực operator =/copy constructor. - 2 biến static dùng để lưu lại tổng số lần gọi các tác vụ operator= và copy constructor - Viết một chương trình sử dụng mảng bằng class Array. Khi kết thúc in ra màn hình số lần các hàm operator và copy constructor được chạy. Bài 5. Cho biết giá trị của *p, *q, m và n tương ứng với các dòng lệnh sau khi chương trình thực thi.Kiểm tra lại bằng chương trình. a) int*p, m, n; n = 1; //1 m = 2; //2 p = new int; //3 n = *p; //4 p = &m; //5 n = *p + 1; //6 b) int*p, m, n; n = 1; //1 m = 2; //2 p = new int; //3 *p = m + 1; //4 deletep; //5 n = *p + 1; //6 c) int*p, *q, n; n = 1; //1 q = &n; //2 p = new int; //3 *p = n + 1; //4 q = p; //5
  • 4. Kỹ thuật lập trình 501127 – HK2/2011-2012 4 n = *q + 1; //6 deleteq; //7 n = *p + 1; //8 d) int *p, m, n; n = 3; //1 m = 2; //2 p = &m; //3 *p = n + 1; //4 p = &n; //5 *p = m + 1; //6 e) int*p, *q, n, m; n = 1; //1 m = 2; //2 p = &n; //3 q = &m; //4 n++; //5 m--; //6 p = q; //7 q = &n; //8 -- ế -