Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Code C++ | Tính toán trên phân số, các bạn sửa giúp mình?

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    3

    Mặc định Code C++ | Tính toán trên phân số, các bạn sửa giúp mình?

    Xem giúp mình với,mình compile thì ko báo lỗi nhưng khi chạy thì mình ko thể nào nhập 1 mảng được,cứ nhập tới tử số cửa phần tử thứ nhất là bị văng ra
    *ah bạn nào biết cách nhập 2 lớp này lại xài template ko chỉ mình với

    Code:
    #include "iostream"
    using namespace std;
    
    class PhanSo
    {
    private:
    	int m_iTu;
    	int m_iMau;
    public:
    	void Nhap();
    };
    
    class Array
    {
    private:
    	PhanSo *m_pData;
    	int m_iSize;
    public:
    	void Nhap();
    	
    	Array();
    	Array(int iSize);
    
    	~Array();
    	Array(const Array &m);
    	Array &operator = (const Array &m);
    };
    
    void PhanSo::Nhap()
    {
    	cout<<"Nhap Tu: ";
    	cin>>m_iTu;
    	cout<<"Nhap Mau: ";
    	cin>>m_iMau;
    }
    
    Array::Array()
    {
    }
    Array::Array(int iSize)
    {
    	m_iSize = iSize;
    	m_pData = new PhanSo[m_iSize];
    }
    Array::~Array()
    {
    	delete m_pData;
    }
    Array::Array(const Array &m)
    {
    	m_iSize = m.m_iSize;
    	m_pData = new PhanSo[m_iSize]; 
    	for(int i = 0; i < m_iSize; i++)
    		m_pData[i] = m.m_pData[i];
    }
    
    Array & Array::operator = (const Array &a)
    {
    	delete m_pData;
    
    	m_iSize = a.m_iSize;
    	m_pData = new PhanSo [m_iSize];
    
    	for (int i = 0; i < m_iSize; i++)
    	{
    		m_pData[i] = a.m_pData[i];
    	}
    
    	return *this;
    }
    void Array::Nhap()
    {
    	cout<<"Nhap kich thuoc Array: ";
    	cin>>m_iSize;
    
    	for(int i = 0; i < m_iSize; i++)
    	{
    		cout<<"Nhap phan tu thu "<<i+1;
    		cout<<endl;
    		m_pData[i].Nhap();
    		cout<<endl;
            }
    }
    
    void main()
    {
    	Array a;
    	a.Nhap();
    }

  2. #2
    Ngày gia nhập
    10 2008
    Bài viết
    178

    bạn chưa cấp phát cho PhanSo *m_pdata trong hàm nhập

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi rua_con Xem bài viết
    bạn chưa cấp phát cho PhanSo *m_pdata trong hàm nhập
    Array::Array()
    {
    m_iSize =0;
    m_pData = NULL;
    }
    Mình sửa lại rùi vẫn bị văng ra bạn ơi

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    178

    Trích dẫn Nguyên bản được gửi bởi ntvhuy0891990 Xem bài viết
    Array::Array()
    {
    m_iSize =0;
    m_pData = NULL;
    }
    Mình sửa lại rùi vẫn bị văng ra bạn ơi
    hàm nhập sửa thành
    PHP Code:
    void Array::Nhap()
    {
        
    cout<<"Nhap kich thuoc Array: ";
        
    cin>>m_iSize;
        
    m_pData = new PhanSo[m_iSize];//ban thieu cho nay
        
    for(int i 0m_iSizei++)
        {
            
    cout<<"Nhap phan tu thu "<<i+1;
            
    cout<<endl;
            
    m_pData[i].Nhap();
            
    cout<<endl;
        }


  5. #5
    Ngày gia nhập
    04 2009
    Bài viết
    5

    m_pData = NULL có nghĩa là con trỏ trỏ tới vùng nhớ không xác định thì làm sao có thể gọi m_pData[i]? Trong hàm Array::Nhap() bạn cần thêm dòng lệnh sau:
    m_pData = new Phanso[m_iSize];

  6. #6
    Ngày gia nhập
    04 2009
    Bài viết
    3

    Mặc định Code C++ | Tính toán trên phân số, các bạn sửa giúp mình?

    vậy có bạn nào có biết đoạn mã để rút gọn phân số ko,mình nghĩ miết mà ko ra

  7. #7
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Trích dẫn Nguyên bản được gửi bởi quangtruong Xem bài viết
    vậy có bạn nào có biết đoạn mã để rút gọn phân số ko,mình nghĩ miết mà ko ra
    Rút gọn phân số thì quy về hàm tìm ước chung lớn nhất của 2 số, sau đó chia cả tử và mẫu cho ước chung lớn nhất đó. Hàm tìm ước chung lớn nhất của a và b có thể mô phỏng như sau

    int ucln(int a, int b) {
    if ((a==0) && (b==0)) return ?
    if (a==0) return b;
    if (b==0) return a;
    a = abs(a);
    b = abs(b); -> lấy trị tuyệt đối của a và b, chỉ xét a và b đều dương
    if (a<b) swap(a,b); -> đổi chỗ để a luôn lớn hơn b
    if (a%b == 0) return 1;
    else return (a%b, b);
    }

  8. #8
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Trích dẫn Nguyên bản được gửi bởi quangtruong Xem bài viết
    vậy có bạn nào có biết đoạn mã để rút gọn phân số ko,mình nghĩ miết mà ko ra
    Rút gọn phân số thì quy về hàm tìm ước chung lớn nhất của 2 số, sau đó chia cả tử và mẫu cho ước chung lớn nhất đó. Hàm tìm ước chung lớn nhất của a và b có thể mô phỏng như sau

    Code:
    int ucln(int a, int b) {
     if ((a==0) && (b==0)) return ?
     if (a==0) return b;
     if (b==0) return a; 
     a = abs(a);
     b = abs(b); -> lấy trị tuyệt đối của a và b, chỉ xét a và b đều dương
     if (a<b) swap(a,b); -> đổi chỗ để a luôn lớn hơn b
     if (a%b == 0) return 1;
     else return (a%b, b);
    }
    Đoạn code này tớ chưa test bạn test lại xem:d
    Tớ gửi nhầm 2 bài, mod xóa hộ tớ bài trên

  9. #9
    Ngày gia nhập
    01 2009
    Bài viết
    165

    sao hàm khởi tạo của bạn ko có câu lệnh nào vậy?

  10. #10
    Ngày gia nhập
    01 2009
    Bài viết
    165

    Trích dẫn Nguyên bản được gửi bởi rua_con Xem bài viết
    bạn chưa cấp phát cho PhanSo *m_pdata trong hàm nhập
    nếu trong hàm khởi tạo đã cấp phát rồi thì ko cần cấp phát trong hàm nhập.

Các đề tài tương tự

  1. Đoạn code về dịch bit trên C++. Có ai giúp mình hiểu về nó không?
    Gửi bởi tatyasurai trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 13
    Bài viết cuối: 10-10-2011, 03:47 PM
  2. code về mảng trên C#. Giúp mình hiểu?
    Gửi bởi [kunz] trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 14-09-2011, 07:48 PM
  3. Đoạn code về linked trên C bị lỗi khi build trên Dev C++. Xem giúp mình
    Gửi bởi birthis trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 4
    Bài viết cuối: 06-05-2010, 01:17 PM
  4. Code in ra số nguyên tố và số chính phương của một dãy trên C. Giúp mình kiểm tra code?
    Gửi bởi lavender trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 7
    Bài viết cuối: 07-06-2009, 01:52 PM
  5. Code đa hình trên C#, giúp mình sửa lỗi?
    Gửi bởi namroyal88 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 29-04-2009, 10:29 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn