Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.02 MB, 18 trang )
<span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">
IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
B ng 1 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Nhap() ... 7
B ng 2 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Xuat() ... 7
B ng 3 N i dung bên trong cả ộ ủa hướng giải quyết phương thức NgayThangNamTiepTheo() ... 7
B ng 4 K t qu ả ế ả chạy th ử chương trình bài tập 1 ... 8
B ng 5 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Nhap() ... 9
B ng 6 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Xuat() ... 9
B ng 7 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức RutGon() ... 10
B ng 8 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức RutGon(int iTu, int iMau) ... 10
B ng 9 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Tong(PhanSo ps1, PhanSo ps2) ... 10
B ng 10 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Hieu(PhanSo ps1, PhanSo ps2) ... 11
B ng 11 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Tich(PhanSo ps1, PhanSo ps2) ... 11
B ng 12 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Thuong(PhanSo ps1, PhanSo ps2) ... 12
B ng 13 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức SoSanh(PhanSo ps1, PhanSo ps2) ... 12
B ng 14 K t qu ả ế ả chạy th ử chương trình bài tập 2 ... 12
B ng 15 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Nhap() ... 13
B ng 16 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Xuat() ... 14
B ng 17 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Tong(SoPhuc sp1, SoPhuc sp2) ... 14
B ng 18 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Hieu(SoPhuc sp1, SoPhuc sp2) ... 14
B ng 19 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Tich(SoPhuc sp1, SoPhuc sp2) ... 15
B ng 20 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Thuong(SoPhuc sp1, SoPhuc sp2) ... 15
B ng 21 K t qu ả ế ả chạy th ử chương trình bài tập 3 ... 15
B ng 22 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Nhap() ... 16
B ng 23 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Xuat() ... 17
B ng 24 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức TinhCongThemMotGiay() ... 17
B ng 25 K t qu ả ế ả chạy th ử chương trình bài tập 4 ... 17
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
Hình 1 Class diagram c a l p NgayThangNam ... 6 ủ ớHình 2 Th c hi n xây d ng l p, khai báo các thuự ệ ự ớ ộc tính, phương thức c a lủ ớp NgayThangNam ... 6 Hình 3 Class diagram c a l p PhanSo ... 8 ủ ớHình 4 Th c hi n xây d ng l p, khai báo các thuự ệ ự ớ ộc tính, phương thức c a l p PhanSo .... 9 ủ ớHình 5 Class diagram c a l p SoPhuc ... 13 ủ ớHình 6 Th c hi n xây d ng l p, khai báo các thuự ệ ự ớ ộc tính, phương thức c a l p SoPhuc .. 13 ủ ớHình 7 Class diagram c a l p GioPhutGiay ... 16 ủ ớHình 8 Th c hi n xây d ng l p, khai báo các thuự ệ ự ớ ộc tính, phương thức c a l p GioPhutGiayủ ớ ... 16
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
• Thuộc tính: iNgay, iThang, iNam
• Phương thức: Nhap(), Xuat(), NgayThangNamTiepTheo()
<small>Hình 1 Class diagram c a l p NgayThangNam </small><i><small>ủ ớ</small></i>
<small>Hình 2 </small><i><small>Thự</small></i><small>c hi n xây d ng l p, khai báo các thu</small><i><small>ệựớộc tính, phương thứ</small></i><small>c c a l p NgayThangNam </small><i><small>ủ ớ</small></i>
Phương thức của class NgayThangNam: - Phương thức Nhap():
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
<i><small>Bảng 1 N i dung bên trong cộủa hướng giải quyết phương thứ</small></i><small>c Nhap() </small>
<small>void NgayThangNam::Nhap() { cout << "Nhap ngay thang nam: "; cin >> iNgay >> iThang >> iNam; } </small>
- Phương thức Xuat();
<i><small>Bảng 2 N i dung bên trong cộủa hướng giải quyết phương thức </small></i><small>Xuat() </small>
<small>void NgayThangNam::Xuat() { cout << "Ngay, Thang, Nam:"; </small>
<small> cout << iNgay << << iThang << << iNam << "/""/""\n"; } </small>
- Phương thức NgayThangNamTiepTheo():
• Output (đầu ra): Ngày tháng năm được cộng thêm một ngày.
iNam.
<i><small>Bảng 3 N i dung bên trong cộủa hướng giải quyết phương thức </small></i><small>NgayThangNamTiepTheo() </small>
<small>void NgayThangNam::NgayThangNamTiepTheo() { ngay = 0; int</small>
<small> switch (iThang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: ngay = 31; break; case 4: case 6: case 9: case 11: ngay = 30; break; case 2: </small>
<small> (iNam % 400 == || (iNam % 4 == 0 && iNam % 100 != if0 0)) </small>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
<small> ngay = 29; else ngay = 28; } </small>
<small> (iNgay <= 0 || iNgay > ngay) {if cout << "Ngay Thang Nam khong hop le"; return; </small>
<small> } iNgay++; </small>
<small> (iNgay > ngay) iNgay = , iThang++;if1 (iThang > 12) iThang = , iNam++;if1 NgayThangNam::Xuat(); } </small>
- K t qu ế ả chạy th ử chương trình:
<i><small>Bảng 4 K t quếả chạy thử chương trình bài tập 1 </small></i>
<small>Nhap ngay thang nam: 20 2 2000 Ngay, Thang, Nam:20/2/2000 Ngay, Thang, Nam:21/2/2000</small>
Bài t p 2: Xây d ng l p phân s <b>ậựớố</b>
• Thuộc tính: iTu, iMau
• Phương thức: Nhap(), Xuat(), RutGon(), Tong(), Hieu(), Tich(), Thuong(), SoSanh()
<small>Hình 3 Class diagram c a l p PhanSo </small><i><small>ủ ớ</small></i>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
<small>Hình 4 </small><i><small>Thự</small></i><small>c hi n xây d ng l p, khai báo các thu</small><i><small>ệựớộc tính, phương thứ</small></i><small>c c a l</small><i><small>ủ ớp </small></i><small>PhanSo </small>
Phương thức của class PhanSo: - Phương thức Nhap():
<i><small>Bảng 5 N i dung bên trong cộủa hướng giải quyết phương thức </small></i><small>Nhap() </small>
<small>void PhanSo::Nhap() { </small>
<small>cout << "Nhap tu va mau: "; cin >> iTu >> iMau; if(iMau == 0) { </small>
<small>; cout << "Phan so khong hop le \n"</small>
<small>PhanSo::Nhap();} </small>
<small>} </small>
- Phương thức Xuat();
<i><small>Bảng 6 N i dung bên trong cộủa hướng giải quyết phương thức </small></i><small>Xuat() </small>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
• Hướng giải quyết: Ta chỉ việc chia iTu và iMau cho GCD(iTu, iMau)
<i><small>Bảng 7 N i dung bên trong cộủa hướng giải quyết phương thứ</small></i><small>c RutGon() </small>
<small>void PhanSo::RutGon() { int gcd = __gcd(iTu, iMau); iTu = iTu / gcd; iMau = iMau / gcd; cout << "Phan so rut gon la: "; PhanSo::Xuat(); </small>
<small>} </small>
<i><small>Bảng 8 N i dung bên trong cộủa hướng giải quyết phương thứ</small></i><small>c RutGon(int iTu, int iMau) </small>
<small>void PhanSo::RutGon( iTu, intint iMau) { int gcd = __gcd(iTu, iMau); this->iTu = iTu / gcd; this->iMau = iMau / gcd; PhanSo::Xuat(); } </small>
- Phương thức Tong(PhanSo ps1, PhanSo ps2):
• Output (đầu ra): Tổng của 2 phân số.
<i><small>Bảng 9 N i dung bên trong cộủa hướng giải quyết phương thứ</small></i><small>c Tong(PhanSo ps1, PhanSo ps2) </small>
<small>void PhanSo::Tong(PhanSo ps1, PhanSo ps2) { iTu = ps1.iTu * ps2.iMau + ps2.iTu * ps1.iMau; iMau = ps1.iMau * ps2.iMau; </small>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
<small> cout << "Tong 2 phan : "so la; PhanSo::RutGon(iTu, iMau); } </small>
- Phương thức Hieu(PhanSo ps1, PhanSo ps2):
• Output (đầu ra): Hiệu của 2 phân số.
<i><small>Bảng 10 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c Hieu(PhanSo ps1, PhanSo ps2) </small>
<small>void PhanSo::Hieu(PhanSo ps1, PhanSo ps2) { iTu = ps1.iTu * ps2.iMau ps2.iTu * ps1.iMau;- iMau = ps1.iMau * ps2.iMau; </small>
<small> cout << "Hieu 2 phan so la : "; PhanSo::RutGon(iTu, iMau); } </small>
- Phương thức Tich(PhanSo ps1, PhanSo ps2):
• Output (đầu ra): Tích của 2 phân số.
<i><small>Bảng 11 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c Tich(PhanSo ps1, PhanSo ps2) </small>
<small>void PhanSo::Tich(PhanSo ps1, PhanSo ps2) { iTu = ps1.iTu * ps2.iTu; </small>
<small> iMau = ps1.iMau * ps2.iMau; cout << "Tich 2 phan so la : "; PhanSo::RutGon(iTu, iMau); } </small>
- Phương thức Thuong(PhanSo ps1, PhanSo ps2):
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
<i><small>Bảng 12 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c Thuong(PhanSo ps1, PhanSo ps2) </small>
<small>void PhanSo::Thuong(PhanSo ps1, PhanSo ps2) { iTu = ps1.iTu * ps2.iMau; </small>
<small> iMau = ps1.iMau * ps2.iTu; cout << "Thuong 2 phan so la : "; PhanSo::RutGon(iTu, iMau); } </small>
- Phương thức SoSanh(PhanSo ps1, PhanSo ps2):
• Output (đầu ra): Kết quả so sánh của 2 phân số.
* c và b * d.
<i><small>Bảng 13 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c SoSanh(PhanSo ps1, PhanSo ps2) </small>
<small>void PhanSo::SoSanh(PhanSo ps1, PhanSo ps2) { </small>
<small>if(ps1.iTu * ps2.iMau == ps1.iMau * ps2.iTu) cout << "2 phan so bang nhau\n"; </small>
<small>else (ps1.iTu * ps2.iMau < ps1.iMau * ps2.iTu) cout << ifps1.iTu << << ps2.iMau << "/"" be hon " << ps2.iTu << << "/"</small>
<small>ps2.iMau << "\n"; </small>
<small>else (ps1.iTu * ps2.iMau > ps1.iMau * ps2.iTu) cout << ifps1.iTu << << ps2.iMau << "/"" lon hon " << ps2.iTu << << "/"</small>
<small>ps2.iMau << "\n"; } </small>
<i><small>Bảng 14 K t quếả chạy thử chương trình bài tập 2 </small></i>
<small>Nhap tu va mau: 3 4 Nhap tu va mau: 5 6 Phan so rut gon la: 3/4 Phan so rut gon la: 5/6 Tong 2 phan so la : 19/12 Hieu 2 phan so la : 1/-12 Tich 2 phan so la : 5/8 Thuong 2 phan so la : 9/10 3/6 be hon 5/6 </small>
<b> Bài tập 3: Xây dựng số phức </b>bao g m <b>ồ</b>
• Thuộc tính: iThuc, iAo
• Phương thức: Nhap(), Xuat(), Tong(), Hieu(), Tich(), Thuong()
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
<small>Hình 5 Class diagram c a l</small><i><small>ủ ớp </small></i><small>SoPhuc</small>
<small>Hình 6 </small><i><small>Thự</small></i><small>c hi n xây d ng l p, khai báo các thu</small><i><small>ệựớộc tính, phương thứ</small></i><small>c c a l p SoPhuc</small><i><small>ủ ớ</small></i>
Phương thức của class SoPhuc: - Phương thức Nhap():
<i><small>Bảng 15 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c Nhap() </small>
<small>void SoPhuc::Nhap() { cout << "Nhap so phuc: "; cin >> iThuc >> iAo; } </small>
- Phương thức Xuat();
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
<i><small>Bảng 16 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c Xuat() </small>
<small>void SoPhuc::Xuat() { </small>
<small>cout << iThuc << " + " << iAo << "i\n"; } </small>
- Phương thức Tong():
• Output (đầu ra): Tổng 2 số phức
<i><small>Bảng 17 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c Tong(SoPhuc sp1, SoPhuc sp2) </small>
<small>void SoPhuc::Tong(SoPhuc sp1, SoPhuc sp2) { iThuc = sp1.iThuc + sp2.iThuc; iAo = sp1.iAo + sp2.iAo; cout << "Tong 2 so phuc la: "; SoPhuc::Xuat(); </small>
<small>} </small>
- Phương thức Hieu():
• Output (đầu ra): Hiệu 2 số phức
<i><small>Bảng 18 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c Hieu(SoPhuc sp1, SoPhuc sp2) </small>
<small>void SoPhuc::Hieu(SoPhuc sp1, SoPhuc sp2) { iThuc = sp1.iThuc - sp2.iThuc; iAo = sp1.iAo - sp2.iAo; cout << "Hieu 2 so phuc la: "; SoPhuc::Xuat(); } </small>
- Phương thức Tich():
• Output (đầu ra): Tích 2 số phức
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
•Hướng giải quyết Cho hai số phức A(a1, a2), B(b1, b2), A * B = (a: <small>1</small>*b<small>1</small> – a *b<small>22</small>, a *b<small>12</small>+a<small>2</small>*b ) <small>1</small>
<i><small>Bảng 19 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c Tich(SoPhuc sp1, SoPhuc sp2) </small>
<small>void SoPhuc::Tich(SoPhuc sp1, SoPhuc sp2) { iThuc = sp1.iThuc * sp2.iThuc - sp1.iAo * sp2.iAo; iAo = sp1.iThuc * sp2.iAo + sp2.iThuc * sp1.iAo; cout << "Tich 2 so phuc la: "; </small>
<small> SoPhuc::Xuat(); } </small>
- Phương thức Thuong():
• Hướng giải quyết: Cho hai số phức A(a1, a2), B(b1, b2), A / B =
<i><small>Bảng 20 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c Thuong(SoPhuc sp1, SoPhuc sp2) </small>
<small>void SoPhuc::Thuong(SoPhuc sp1, SoPhuc sp2) { </small>
<small>iThuc = (sp1.iThuc * sp2.iThuc + sp1.iAo * sp2.iAo) / (sp2.iThuc * sp2.iThuc + sp2.iAo * sp2.iAo); </small>
<small> iAo = (sp1.iAo * sp2.iThuc - sp1.iThuc * sp2.iAo) / (sp2.iThuc * sp2.iThuc + sp2.iAo * sp2.iAo); </small>
<small> cout << "Thuong 2 so phuc la: "; SoPhuc::Xuat(); </small>
<small>} </small>
<i><small>Bảng 21 K t quếả chạy thử chương trình bài tập 3 </small></i>
<small>Nhap so phuc: 3 4 Nhap so phuc: 4 5 Tong 2 so phuc la: 7 + 9i Hieu 2 so phuc la: -1 + -1i Tich 2 so phuc la: -8 + 31i </small>
<small>Thuong 2 so phuc la: 0.780488 + 0.0243902i </small>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG Bài tập 4: Xây dựng p gilớờ</b> phút giây
• Phương thức: Nhap(), Xuat(), TinhCongThemMotGiay()
<small>Hình 7 Class diagram c a l</small><i><small>ủ ớp </small></i><small>GioPhutGiay</small>
<small>Hình 8 </small><i><small>Thự</small></i><small>c hi n xây d ng l p, khai báo các thu</small><i><small>ệựớộc tính, phương thứ</small></i><small>c c a l</small><i><small>ủ ớp </small></i><small>GioPhutGiay</small>
Phương thức của class GioPhutGiay: - Phương thức Nhap():
<i><small>Bảng 22 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c Nhap() </small>
<small>void GioPhutGiay::Nhap() { cout << "Nhap gio phut giay: "; cin >> iGio >> iPhut >> iGiay; </small>
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>
<small>} </small>
- Phương thức Xuat();
<i><small>Bảng 23 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thức </small></i><small>Xuat() </small>
<small>void GioPhutGiay::Xuat() { </small>
<small>cout << iGio << << iPhut << << iGiay << ":"":""\n"; } </small>
- Phương thức TinhCongThemMotGiay():
• Output (đầu ra): Giờ phút giây tính cộng thêm một giây.
<i><small>Bảng 24 N i dung bên trong cộủa hướ</small></i><small>ng gi i quy</small><i><small>ảết phương thứ</small></i><small>c TinhCongThemMotGiay() </small>
<small>void GioPhutGiay::TinhCongThemMotGiay() { iGiay++; </small>
<small>if(iGiay >= 60) iPhut++, iGiay = 0; if(iPhut >= 60) iGio++, iPhut = 0; </small>
<small>cout << "Gio phut giay sau khi cong them 1 giay la: "; GioPhutGiay::Xuat(); </small>
<small>} </small>
<i><small>Bảng 25 K t quếả chạy thử chương trình bài tập 4 </small></i>
<small>Nhap gio phut giay: 20 59 59 20:59:59 </small>
<small>Gio phut giay sau khi cong them 1 giay la: 21:0:0 </small>
IT002 L<b>– ẬP TRÌNH HƯỚNG ĐỐ</b>I T<b>ƯỢNG </b>