Giáo trình Lập trình hướng đối tượng - Chương 10: Mảng một chiều căn bản
− Bài toán: Viết chương trình thực hiện
các yêu cầu sau bằng phương pháp
lập trình hướng đối tượng
+ Nhập mảng một chiều các số nguyên
+ Xuất mảng một chiều các số nguyên
+ Tính tổng các giá trị trong mảng
− Chương trình
7. } 18.} LTHĐTKhoa CNTT Chương 10- 23GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 3. VÍ DỤ DẪN NHẬP 3 11.int CMangPhanSo::DemDuong() 12.{ 13. int dem = 0; 14. for (int i=0;i<n;i++) 15. if (a[i].KtDuong()==1) 16. dem = dem + 1; 17. return dem; 18.} LTHĐTKhoa CNTT Chương 10- 24GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN − Hãy xây dựng lớp số nguyên với các phương thức như sau: + Phương thức nhập mảng + Phương thức xuất mảng + Phương thức liệt kê các giá trị chẵn trong mảng + Phương thức tính tổng các phần tử trong mảng + Phương thức tính tổng các giá trị cực đại trong mảng + Phương thức đếm số lượng giá trị lẻ có trong mảng + Phương thức đếm số lần xuất hiện của giá trị x trong mảng LTHĐTKhoa CNTT Chương 10- 25GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN − Hãy xây dựng lớp số nguyên với các phương thức như sau: + Phương thức kiểm tra mảng có tồn tại giá trị 0 hay không? + Phương thức kiểm tra mảng có toàn chẵn hay không? + Phương thức kiểm tra mảng có tăng dần hay không? + Phương thức sắp xếp các giá trị trong mảng tăng dần + Phương thức sắp xếp các giá trị trong mảng giảm dần + Phương thức sắp xếp các giá trị lẻ trong mảng tăng dần LTHĐTKhoa CNTT Chương 10- 26GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.class CMangNguyen 12.{ 13. private: 14. int a[100]; 15. int n; 16. public: 17. void Nhap(); 18. void Xuat(); 19. void LietKeChan(); 20. int TinhTong(); 21. int LonNhat(); 22. int TongCucDai(); 23. int DemLe(); 24. int TanSuat(int); 25. int KTTonTaiKhong(); 26. int KTToanChan(); 27. int KTTangDan(); LTHĐTKhoa CNTT Chương 10- 27GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.class CMangNguyen 12.{ 13. private: 14. int a[100]; 15. int n; 16. public: 17. void SapTang(); 18. void SapGiam(); 19. void SapLeTang(); 20.}; LTHĐTKhoa CNTT Chương 10- 28GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.void CMangNguyen::Nhap() 12.{ 13. cout<<"Nhap n : "; 14. cin>>n; 15. for (int i=0 ; i<n ; i++) 16. { 17. cout<<"a["<<i<< "]:"; 18. cin >> a[i]; 19. } 20.} LTHĐTKhoa CNTT Chương 10- 29GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.void CMangNguyen::Xuat() 12.{ 13. for (int i=0;i<n;i++) 14. cout <<a[i]<<" "; 15.} LTHĐTKhoa CNTT Chương 10- 30GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.void CMangNguyen::LietKeChan() 12.{ 13. for (int i=0; i<n; i++) 14. if (a[i]%2 == 0) 15. cout << a[i] << " "; 16.} LTHĐTKhoa CNTT Chương 10- 31GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.int CMangNguyen::TinhTong() 12.{ 13. int s = 0; 14. for (int i=0;i<n;i++) 15. s = s + a[i]; 16. return S; 17.} LTHĐTKhoa CNTT Chương 10- 32GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.int CMangNguyen::LonNhat() 12.{ 13. int lc = a[0]; 14. for (int i=0;i<n;i++) 15. if (a[i] > lc) 16. lc = a[i]; 17. return lc; 18.} LTHĐTKhoa CNTT Chương 10- 33GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.int CMangNguyen::TongCucDai() 12.{ 13. if(n<=1) 14. return 0; 15. int s = 0; 16. if(a[0]>a[1]) 17. s = s + a[0]; 18. for(int i=1;i<=n-2;i++) 19. if(a[i]>a[i-1]&& 20. a[i]>a[i+1]) 21. s = s + a[i]; 22. if(a[n-1]>a[n-2]) 23. s = s + a[n-1]; 24. return s; 25.} LTHĐTKhoa CNTT Chương 10- 34GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.int CMangNguyen::DemLe() 12.{ 13. int dem = 0; 14. for (int i=0; i<n; i++) 15. if (a[i]%2!=0) 16. dem = dem + 1; 17. return dem; 18.} LTHĐTKhoa CNTT Chương 10- 35GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.int CMangNguyen::TanSuat(int x) 12.{ 13. int dem = 0; 14. for (int i=0; i<n; i++) 15. if (a[i]==x) 16. dem = dem + 1; 17. return dem; 18.} LTHĐTKhoa CNTT Chương 10- 36GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11. int CMangNguyen::KTTonTaiKhong() 12.{ 13. int flag = 0; 14. for (int i=0; i<n; i++) 15. if (a[i]==0) 16. flag = 1; 17. return flag; 18.} LTHĐTKhoa CNTT Chương 10- 37GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.int CMangNguyen::KTToanChan() 12.{ 13. int flag = 1; 14. for (int i=0; i<n; i++) 15. if (a[i]%2!=0) 16. flag = 0; 17. return flag; 18.} LTHĐTKhoa CNTT Chương 10- 38GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.int CMangNguyen::KTTangDan() 12.{ 13. int flag = 1; 14. for (int i=0;i<=n-2;i++) 15. if (a[i]>a[i+1]) 16. flag = 0; 17. return flag; 18.} LTHĐTKhoa CNTT Chương 10- 39GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.void CMangNguyen::SapTang() 12.{ 13. for (int i=0;i<=n-2;i++) 14. for (int j=i+1;j<=n-1;j++) 15. if (a[i]>a[j]) 16. { 17. int temp = a[i]; 18. a[i] = a[j]; 19. a[j] = temp; 20. } 21.} LTHĐTKhoa CNTT Chương 10- 40GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.void CMangNguyen::SapGiam() 12.{ 13. for (int i=0;i<=n-2;i++) 14. for (int j=i+1;j<=n-1;j++) 15. if (a[i]<a[j]) 16. { 17. int temp = a[i]; 18. a[i] = a[j]; 19. a[j] = temp; 20. } 21.} LTHĐTKhoa CNTT Chương 10- 41GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 4. XÂY DỰNG LỚP MẢNG SỐ NGUYÊN 11.void CMangNguyen::SapLeTang() 12.{ 13. for (int i=0;i<=n-2;i++) 14. for (int j=i+1;j<=n-1;j++) 15. if(a[i] < a[j] && 16. a[i]%2!=0 && 17. a[j]%2!=0) 18. { 19. int temp = a[i]; 20. a[i] = a[j]; 21. a[j] = temp; 22. } 23.} LTHĐTKhoa CNTT Chương 10- 42GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC − Hãy xây dựng lớp số thực với các phương thức như sau: + Phương thức nhập mảng + Phương thức xuất mảng + Phương thức tính tổng các phần tử trong mảng + Phương thức tìm phần tử nhỏ nhất trong mảng + Phương thức tính tổng các giá trị cực tiểu trong mảng + Phương thức đếm số lần xuất hiện của giá trị x trong mảng LTHĐTKhoa CNTT Chương 10- 43GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC − Hãy xây dựng lớp số thực với các phương thức như sau: + Phương thức kiểm tra mảng có tồn tại giá trị 0 hay không? + Phương thức kiểm tra mảng có tăng dần hay không? + Phương thức sắp xếp các giá trị trong mảng tăng dần + Phương thức sắp xếp các giá trị trong mảng giảm dần LTHĐTKhoa CNTT Chương 10- 44GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC 11.class CMangThuc 12.{ 13. private: 14. float a[100]; 15. int n; 16. public: 17. void Nhap(); 18. void Xuat(); 19. float TinhTong(); 20. float NhoNhat(); 21. float TongCucTieu(); 22. int DemXuatHien(float); 23. int KTTonTaiKhong(); 24. int KTTangDan(); 25. void SapTang(); 26. void SapGiam(); 27.}; LTHĐTKhoa CNTT Chương 10- 45GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC 11.void CMangThuc::Nhap() 12.{ 13. cout << "Nhap n : "; 14. cin >> n; 15. for (int i=0 ; i<n ; i++) 16. { 17. cout<<“a[”<<i<< “]:”; 18. cin >> a[i]; 19. } 20.} LTHĐTKhoa CNTT Chương 10- 46GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC 11.void CMangThuc::Xuat() 12.{ 13. for (int i=0;i<n;i++) 14. cout<<a[i]<<" "; 15.} LTHĐTKhoa CNTT Chương 10- 47GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC 11.float CMangThuc::TinhTong() 12.{ 13. float s = 0; 14. for (int i=0; i<n; i++) 15. s = s + a[i]; 16. return s; 17.} LTHĐTKhoa CNTT Chương 10- 48GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC 11.float CMangThuc::NhoNhat() 12.{ 13. float lc = a[0]; 14. for (int i=0;i<n;i++) 15. if (a[i]<lc) 16. lc = a[i]; 17. return lc; 18.} LTHĐTKhoa CNTT Chương 10- 49GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC 11.int CMangThuc::TanSuat(float x) 12.{ 13. int dem = 0; 14. for (int i=0; i<n; i++) 15. if (a[i]==x) 16. dem = dem + 1; 17. return dem; 18.} LTHĐTKhoa CNTT Chương 10- 50GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC 11.int CMangThuc::KTTonTaiKhong() 12.{ 13. for (int i=0;i<n;i++) 14. if (a[i]==0) 15. return 1; 16. return 0; 17.} LTHĐTKhoa CNTT Chương 10- 51GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC 11.int CMangThuc::KTTangDan() 12.{ 13. for (int i=1; i<n; i++) 14. if (a[i-1]<a[i]) 15. return 1; 16. return 0; 17.} LTHĐTKhoa CNTT Chương 10- 52GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC 11.void CMangThuc::SapTang() 12.{ 13. for(int i=0;i<=n-2;i++) 14. for(int j=i+1;j<=n-1;j++) 15. if(a[i]>a[j]) 16. { 17. float temp = a[i]; 18. a[i] = a[j]; 19. a[j] = temp; 20. } 21.} LTHĐTKhoa CNTT Chương 10- 53GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. XÂY DỰNG LỚP MẢNG SỐ THỰC 11.void CMangThuc::SapGiam() 12.{ 13. for(int i=0;i<=n-2;i++) 14. for(int j=i+1;j<=n-1;j++) 15. if(a[i]>a[j]) 16. { 17. float temp = a[i]; 18. a[i] = a[j]; 19. a[j] = temp; 20. } 21.}
File đính kèm:
- Giáo trình Lập trình hướng đối tượng - Chương 10 Mảng một chiều căn bản.pdf