Bạn theo các bước sau:
- Bước 1: Khai báo lớp songuyento với các thành viên dữ liệu và các hàm thành viên
- Bước 2: Giả sử một constructor của lớp songuyento là songuyento() với tham số là số nguyên
- Bước 3: Gọi hàm calculate() và thực hiện các bước tiếp theo
- Bước 4: Với i=2 tới a/2, bạn thực hiện:
- Bước 5: Kiểm tra nếu a%i==0, sau đó thiết lập k=0 và break
- Bước 6: Nếu không, thiết lập k=1
- Bước 7: Tăng giá trị của i thêm 1
- Bước 8: Kiểm tra giá trị của k là 1 hay là 0
- Bước 9: Nếu là 1 thì hiển thị rằng đó là số nguyên tố
- Bước 10: Nếu là 0, thì hiển thị rằng giá trị đó không phải là nguyên tố
#include<iostream> #include<conio.h> using namespace std; class songuyento { int a,k,i; public: songuyento(int x) { a=x; } void calculate() { k=1; { for(i=2;i<=a/2;i++) if(a%i==0) { k=0; break; } else { k=1; } } } void show() { if(k==1) cout<< "\n\tA la so nguyen to. "; else cout<<"\n\tA khong la so nguyen to."; } }; int main() { int a; cout<<"\n\tNhap so: "; cin>>a; songuyento obj(a); obj.calculate(); obj.show(); return 0; }
Bài tập: Tính giai thừa bởi sử dụng copy constructor
Dưới đây là chương trình C++ để giải bài tập trên.
#include<iostream> #include<conio.h> class copy { int var,fact; public: copy(int temp) { var = temp; } double calculate() { fact=1; for(int i=1;i<=var;i++) { fact = fact * i; } return fact; } }; int main() { int n; std::cout<<"\n\tNhap so : "; std::cin>>n; copy obj(n); copy cpy=obj; std::cout<<"\n\t Giai thua cua " <<n<< "la: "<<obj.calculate(); std::cout<<"\n\t Giai thua cua " <<n<< "la: "<<cpy.calculate(); return 0; }