SlideShare a Scribd company logo
1 of 3
Đề bài 2 - KHTN 2010.
Xem mã nguồn C++ được viết trong bảng sau đây (chú ý các phương thức ảo).
PHP Code:
#include <iostream>
using namespace std;
class ListItem{
protected:
int Index;
ListItem* nextItem;
public:
ListItem (int idx = 0){
Index = idx;
nextItem = NULL;
}
ListItem* addFront (int idxNew){
ListItem* anItem = create(idxNew);
anItem->nextItem = this;
return anItem;
}
void outFromThis (ostream& oDev){
ListItem* pItem = this;
while (pItem != NULL){
pItem->outItem(oDev);
pItem = pItem->nextItem;
}
}
virtual void outItem (ostream& outDev){
outDev << Index <<"";
}
virtual ListItem* create (int idxNew){
return new ListItem(idxNew);
}
ListItem* searchFromThis(int idx);//sẽ cài đặt....
};
class LinkedList{
protected:
ListItem* firstItem;
public:
LinkedList (ListItem* head = NULL){
firstItem = head;
}
ListItem* add (int idxNew){
if (firstItem != NULL)
firstItem = firstItem->addFront(idxNew);
else
firstItem = new ListItem(idxNew);
return firstItem;
}
void out (ostream& oDev){
if (firstItem != NULL)
firstItem->outFromThis(oDev);
}
bool isEmpty(){
return (firstItem == NULL);
}
ListItem* search(int idx); //sẽ cài đặt....
};
void main(){
LinkedList* myList = new LinkedList();
int indices[] = {8, 9, 9, 1, 0, 1, 0, 2};
int n = sizeof(indices)/sizeof(indices[0]);
for (int i = 0; i < n; i++)
myList->add(indices[i]);
myList->out(cout);
}
Mỗi đối tượng thuộc lớp ListItem có trường nextItem bằng NULL (nghĩa là đừng) hay là trỏ đến một phàn tử kế tiếp
cũng là một đối tượng thuộc lớp này, tức là mỗi đối tượng như vậy cũng là phần tử đầu tiên của một danh sách liên
kết (phần tử đầu một xâu).
a/ Không kể hai phương thức chưa cài đặt searchFromThis(), search() trong hai lớp ListItem, LinkedList, hãy cho
biết kết quả chạy của chương trình.
b/ Dựa vào cách viết phương thức outFromThis(), hãy cài đặt phương thức searchFromThis() của lớp ListItem theo
hướng dẫn như sau:
PHP Code:
ListItem* ListItem::searchFromThis (int idx){
//Bạn viết thêm các dòng mã nguồn tại đây....
//
}
để tìm và trả về phần tử đầu tiên trong xâu (khởi đầu từ đối tượng đang xét của lớp ListItem) có trường Index bằng
với giá trị của tham số idx (trả về NULL nếu tìm không có).
c/ Viết phương thức search() của lớp LinkedList để tìm và trả về phần tử đầu tiên trong xâu (khởi đầu từ đối tượng
đang xét của lớp ListItem) có trường Index bằng với giá trị của tham số idx (trả về NULL nếu tìm không có).
Xem mã nguồn của lớp Point (tọa độ điểm trong mặt phẳng) và lớp Polygon (đa giác) kế thừa từ các lớp ListItem,
LinkedList bên trên và hàm main() được viết lại như sau:
PHP Code:
class Point:public ListItem{
double x, y;
public:
Point (int idxNew): ListItem(idxNew){}
Point(double xx = 0, double yy = 0, int idx = 0):ListItem(idx){
set(xx, yy);
}
void set(double xx, double yy){
x = xx; y = yy;
}
virtual ListItem* create(int idxNew){
return new Point(idxNew);
}
virtual void outItem(ostream& outDev){
outDev <<"(" << x << ","<<y<<")";
}
};
class Polygon: public LinkedList{
int nVer;
public:
Polygon(double xfirst = 0, double yfirst = 0):
LinkedList(new Point(xfirst, yfirst)){
nVer = 1;
}
Point* addVer(double x, double y){
Point* p = (Point*)add(nVer);
p->set(x,y);
nVer++;
return p;
}
static Polygon* read(istream& inDev);//sẽ cài đặt ....
};
void main(){
Polygon pg(1.9, 8.4);
pg.addVer(1.9, 8.9);
pg.addVer(1.7, 6.8);
pg.addVer(2.5, 1.1);
pg.out(cout);
}
d/ Hãy cho biết kết quả chạy của chương trình.
e/ Phương thức read() của lớp polygon là một phương thức tĩnh có nhiệm vụ nhập dãy các đỉnh của đa giác từ thiết
bị nhập (mỗi đỉnh gồm một hoành độ và tung độ là các số thực, các số cách nhau bởi dấu khoảng trống hay kí tự
ngắt) và trả về một đối tượng của lớp Polygon. Hãy viết mã nguồn đầy đủ của phương thức này theo hướng dẫn
sau:
PHP Code:
Polygon* Polygon::read(ítream& inDev){
Polygon* poly;
//Bạn viết thêm các dòng mã nguồn tại đây....
//..........
return poly;
}

More Related Content

What's hot

Ctdl C05
Ctdl C05Ctdl C05
Ctdl C05giang
 
Ctdl C02
Ctdl C02Ctdl C02
Ctdl C02giang
 
Ctdl C01
Ctdl C01Ctdl C01
Ctdl C01giang
 
Gioi Thieu
Gioi ThieuGioi Thieu
Gioi Thieugiang
 
Ctdl C04
Ctdl C04Ctdl C04
Ctdl C04giang
 
Fortran cơ sở
Fortran cơ sởFortran cơ sở
Fortran cơ sởHajunior9x
 
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ nataliej4
 
Code và sơ đồ khối môn Phương pháp số và lập trình Fortran
Code và sơ đồ khối môn Phương pháp số và lập trình FortranCode và sơ đồ khối môn Phương pháp số và lập trình Fortran
Code và sơ đồ khối môn Phương pháp số và lập trình FortranLee Ein
 
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
 
Local sakainame 501127 ktl_trình hlmt1 a01 fall 2013 _ modules
Local sakainame   501127 ktl_trình hlmt1 a01 fall 2013 _ modulesLocal sakainame   501127 ktl_trình hlmt1 a01 fall 2013 _ modules
Local sakainame 501127 ktl_trình hlmt1 a01 fall 2013 _ modulesTrần Văn Nam
 

What's hot (18)

Ctdl C05
Ctdl C05Ctdl C05
Ctdl C05
 
Linq net
Linq net Linq net
Linq net
 
Session 11
Session 11Session 11
Session 11
 
Tut6 solution
Tut6 solutionTut6 solution
Tut6 solution
 
Ctdl C02
Ctdl C02Ctdl C02
Ctdl C02
 
Ktlt lab full
Ktlt lab fullKtlt lab full
Ktlt lab full
 
Ctdl C01
Ctdl C01Ctdl C01
Ctdl C01
 
Gioi Thieu
Gioi ThieuGioi Thieu
Gioi Thieu
 
Ctdl C04
Ctdl C04Ctdl C04
Ctdl C04
 
Fortran cơ sở
Fortran cơ sởFortran cơ sở
Fortran cơ sở
 
Tut5 solution
Tut5 solutionTut5 solution
Tut5 solution
 
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ
Bài Giảng Ngôn Ngữ Lập Trình CC++ - Con Trỏ Và Số Học Địa Chỉ
 
Code và sơ đồ khối môn Phương pháp số và lập trình Fortran
Code và sơ đồ khối môn Phương pháp số và lập trình FortranCode và sơ đồ khối môn Phương pháp số và lập trình Fortran
Code và sơ đồ khối môn Phương pháp số và lập trình Fortran
 
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
 
Local sakainame 501127 ktl_trình hlmt1 a01 fall 2013 _ modules
Local sakainame   501127 ktl_trình hlmt1 a01 fall 2013 _ modulesLocal sakainame   501127 ktl_trình hlmt1 a01 fall 2013 _ modules
Local sakainame 501127 ktl_trình hlmt1 a01 fall 2013 _ modules
 
0 mo dau
0 mo dau0 mo dau
0 mo dau
 
Dethi c++ -lt
Dethi c++ -ltDethi c++ -lt
Dethi c++ -lt
 
Nang cao c++
Nang cao c++Nang cao c++
Nang cao c++
 

Viewers also liked

Chương 3 - Hàng đợi
Chương 3 - Hàng đợi Chương 3 - Hàng đợi
Chương 3 - Hàng đợi Hồ Lợi
 
Ctdl 2005 chuong 2
Ctdl 2005 chuong 2Ctdl 2005 chuong 2
Ctdl 2005 chuong 2Hồ Lợi
 
C5 classes and objects
C5 classes and objectsC5 classes and objects
C5 classes and objectsHồ Lợi
 
Ctdl 2005 chuong 4
Ctdl 2005 chuong 4Ctdl 2005 chuong 4
Ctdl 2005 chuong 4Hồ Lợi
 
Bài tập CTDL và GT 2
Bài tập CTDL và GT 2Bài tập CTDL và GT 2
Bài tập CTDL và GT 2Hồ Lợi
 
C4 data structures
C4 data structuresC4 data structures
C4 data structuresHồ Lợi
 
Phân tích một số thuật toán
Phân tích một số thuật toánPhân tích một số thuật toán
Phân tích một số thuật toánHồ Lợi
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Hồ Lợi
 
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
 

Viewers also liked (20)

Bai1 kdl
Bai1 kdlBai1 kdl
Bai1 kdl
 
Bai6 stacks
Bai6 stacksBai6 stacks
Bai6 stacks
 
C9 templates
C9 templatesC9 templates
C9 templates
 
Chương 3 - Hàng đợi
Chương 3 - Hàng đợi Chương 3 - Hàng đợi
Chương 3 - Hàng đợi
 
Ctdl 2005 chuong 2
Ctdl 2005 chuong 2Ctdl 2005 chuong 2
Ctdl 2005 chuong 2
 
Gtrinh oop
Gtrinh oopGtrinh oop
Gtrinh oop
 
Ctdl lab01
Ctdl lab01Ctdl lab01
Ctdl lab01
 
C5 classes and objects
C5 classes and objectsC5 classes and objects
C5 classes and objects
 
Ctdl 2005 chuong 4
Ctdl 2005 chuong 4Ctdl 2005 chuong 4
Ctdl 2005 chuong 4
 
Bài tập CTDL và GT 2
Bài tập CTDL và GT 2Bài tập CTDL và GT 2
Bài tập CTDL và GT 2
 
C4 data structures
C4 data structuresC4 data structures
C4 data structures
 
Debug trong c
Debug trong cDebug trong c
Debug trong c
 
Phân tích một số thuật toán
Phân tích một số thuật toánPhân tích một số thuật toán
Phân tích một số thuật toán
 
Chuong4 (2)
Chuong4 (2)Chuong4 (2)
Chuong4 (2)
 
Chuong8 (2)
Chuong8 (2)Chuong8 (2)
Chuong8 (2)
 
Chuong5 (2)
Chuong5 (2)Chuong5 (2)
Chuong5 (2)
 
Chuong2 c
Chuong2 c Chuong2 c
Chuong2 c
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12
 
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
 

Similar to Cau 2

Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Hồ Lợi
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07xcode_esvn
 
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
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátTráng Hà Viết
 
Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database
Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, databaseBáo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database
Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, databaseDlinh Truong
 
Java ease learning(1)
Java ease learning(1)Java ease learning(1)
Java ease learning(1)Nguyen Xuan
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1htpsccbb159
 
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...MasterCode.vn
 
Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Dũng Đinh
 

Similar to Cau 2 (20)

Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Bài tập CTDL và GT 1
Bài tập CTDL và GT 1
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
 
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
 
Lesson07
Lesson07Lesson07
Lesson07
 
Chuong3 c
Chuong3 c Chuong3 c
Chuong3 c
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quát
 
Bai tap java
Bai tap javaBai tap java
Bai tap java
 
Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database
Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, databaseBáo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database
Báo cáo tuần 5- Xây dựng các class liên quan Đơn hàng, sản phẩm, database
 
Lesson08
Lesson08Lesson08
Lesson08
 
Lesson08
Lesson08Lesson08
Lesson08
 
Java ease learning(1)
Java ease learning(1)Java ease learning(1)
Java ease learning(1)
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1
 
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
 
Stack &amp; queue
Stack &amp; queueStack &amp; queue
Stack &amp; queue
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Ctdl c2
Ctdl c2Ctdl c2
Ctdl c2
 
Lập trình hướng đối tượng - p3
Lập trình hướng đối tượng - p3Lập trình hướng đối tượng - p3
Lập trình hướng đối tượng - p3
 
Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1
 
C đến C++ phần 1
C đến C++ phần 1C đến C++ phần 1
C đến C++ phần 1
 

More from Hồ Lợi

Tóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cTóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cHồ Lợi
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functionsHồ Lợi
 
Ky thuatkhudequy
Ky thuatkhudequyKy thuatkhudequy
Ky thuatkhudequyHồ Lợi
 
Itt epc assignment
Itt epc assignmentItt epc assignment
Itt epc assignmentHồ Lợi
 
Huong danontapc
Huong danontapcHuong danontapc
Huong danontapcHồ Lợi
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitapHồ Lợi
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhHồ Lợi
 
Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2Hồ Lợi
 
Giao trinh c c++
Giao trinh c c++Giao trinh c c++
Giao trinh c c++Hồ Lợi
 
Epc assignment
Epc assignmentEpc assignment
Epc assignmentHồ Lợi
 
Epc test practical
Epc test practicalEpc test practical
Epc test practicalHồ Lợi
 
De thic++ --th
De thic++ --thDe thic++ --th
De thic++ --thHồ Lợi
 

More from Hồ Lợi (20)

Xu ly chuoi
Xu ly chuoiXu ly chuoi
Xu ly chuoi
 
Tóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của cTóm tắt các hàm chuẩn của c
Tóm tắt các hàm chuẩn của c
 
T4
T4T4
T4
 
Nguyen lyoop
Nguyen lyoopNguyen lyoop
Nguyen lyoop
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functions
 
Ky thuatkhudequy
Ky thuatkhudequyKy thuatkhudequy
Ky thuatkhudequy
 
Itt epc assignment
Itt epc assignmentItt epc assignment
Itt epc assignment
 
Huong danontapc
Huong danontapcHuong danontapc
Huong danontapc
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitap
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
Giaotrinhbaitapkythuatlaptrinh
 
Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2
 
Giao trinh c c++
Giao trinh c c++Giao trinh c c++
Giao trinh c c++
 
File trong c_
File trong c_File trong c_
File trong c_
 
Epc assignment
Epc assignmentEpc assignment
Epc assignment
 
Epc test practical
Epc test practicalEpc test practical
Epc test practical
 
De thic++ --th
De thic++ --thDe thic++ --th
De thic++ --th
 
D05 stl
D05 stlD05 stl
D05 stl
 
Cpl test3
Cpl test3Cpl test3
Cpl test3
 
Cpl test2
Cpl test2Cpl test2
Cpl test2
 
Cpl test1
Cpl test1Cpl test1
Cpl test1
 

Cau 2

  • 1. Đề bài 2 - KHTN 2010. Xem mã nguồn C++ được viết trong bảng sau đây (chú ý các phương thức ảo). PHP Code: #include <iostream> using namespace std; class ListItem{ protected: int Index; ListItem* nextItem; public: ListItem (int idx = 0){ Index = idx; nextItem = NULL; } ListItem* addFront (int idxNew){ ListItem* anItem = create(idxNew); anItem->nextItem = this; return anItem; } void outFromThis (ostream& oDev){ ListItem* pItem = this; while (pItem != NULL){ pItem->outItem(oDev); pItem = pItem->nextItem; } } virtual void outItem (ostream& outDev){ outDev << Index <<""; } virtual ListItem* create (int idxNew){ return new ListItem(idxNew); } ListItem* searchFromThis(int idx);//sẽ cài đặt.... }; class LinkedList{ protected: ListItem* firstItem; public: LinkedList (ListItem* head = NULL){ firstItem = head; } ListItem* add (int idxNew){ if (firstItem != NULL) firstItem = firstItem->addFront(idxNew); else firstItem = new ListItem(idxNew); return firstItem; } void out (ostream& oDev){ if (firstItem != NULL) firstItem->outFromThis(oDev); } bool isEmpty(){ return (firstItem == NULL); } ListItem* search(int idx); //sẽ cài đặt.... }; void main(){
  • 2. LinkedList* myList = new LinkedList(); int indices[] = {8, 9, 9, 1, 0, 1, 0, 2}; int n = sizeof(indices)/sizeof(indices[0]); for (int i = 0; i < n; i++) myList->add(indices[i]); myList->out(cout); } Mỗi đối tượng thuộc lớp ListItem có trường nextItem bằng NULL (nghĩa là đừng) hay là trỏ đến một phàn tử kế tiếp cũng là một đối tượng thuộc lớp này, tức là mỗi đối tượng như vậy cũng là phần tử đầu tiên của một danh sách liên kết (phần tử đầu một xâu). a/ Không kể hai phương thức chưa cài đặt searchFromThis(), search() trong hai lớp ListItem, LinkedList, hãy cho biết kết quả chạy của chương trình. b/ Dựa vào cách viết phương thức outFromThis(), hãy cài đặt phương thức searchFromThis() của lớp ListItem theo hướng dẫn như sau: PHP Code: ListItem* ListItem::searchFromThis (int idx){ //Bạn viết thêm các dòng mã nguồn tại đây.... // } để tìm và trả về phần tử đầu tiên trong xâu (khởi đầu từ đối tượng đang xét của lớp ListItem) có trường Index bằng với giá trị của tham số idx (trả về NULL nếu tìm không có). c/ Viết phương thức search() của lớp LinkedList để tìm và trả về phần tử đầu tiên trong xâu (khởi đầu từ đối tượng đang xét của lớp ListItem) có trường Index bằng với giá trị của tham số idx (trả về NULL nếu tìm không có). Xem mã nguồn của lớp Point (tọa độ điểm trong mặt phẳng) và lớp Polygon (đa giác) kế thừa từ các lớp ListItem, LinkedList bên trên và hàm main() được viết lại như sau: PHP Code: class Point:public ListItem{ double x, y; public: Point (int idxNew): ListItem(idxNew){} Point(double xx = 0, double yy = 0, int idx = 0):ListItem(idx){ set(xx, yy); } void set(double xx, double yy){ x = xx; y = yy; } virtual ListItem* create(int idxNew){ return new Point(idxNew); } virtual void outItem(ostream& outDev){ outDev <<"(" << x << ","<<y<<")"; } }; class Polygon: public LinkedList{ int nVer; public: Polygon(double xfirst = 0, double yfirst = 0): LinkedList(new Point(xfirst, yfirst)){ nVer = 1; } Point* addVer(double x, double y){ Point* p = (Point*)add(nVer); p->set(x,y); nVer++; return p; } static Polygon* read(istream& inDev);//sẽ cài đặt .... }; void main(){
  • 3. Polygon pg(1.9, 8.4); pg.addVer(1.9, 8.9); pg.addVer(1.7, 6.8); pg.addVer(2.5, 1.1); pg.out(cout); } d/ Hãy cho biết kết quả chạy của chương trình. e/ Phương thức read() của lớp polygon là một phương thức tĩnh có nhiệm vụ nhập dãy các đỉnh của đa giác từ thiết bị nhập (mỗi đỉnh gồm một hoành độ và tung độ là các số thực, các số cách nhau bởi dấu khoảng trống hay kí tự ngắt) và trả về một đối tượng của lớp Polygon. Hãy viết mã nguồn đầy đủ của phương thức này theo hướng dẫn sau: PHP Code: Polygon* Polygon::read(ítream& inDev){ Polygon* poly; //Bạn viết thêm các dòng mã nguồn tại đây.... //.......... return poly; }