Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Định nghĩa chồng toán tử sắp xếp trong mảng 1 chiều

  1. #1
    Ngày gia nhập
    05 2010
    Bài viết
    59

    Mặc định Định nghĩa chồng toán tử sắp xếp trong mảng 1 chiều

    Mình có đề bài như sau:

    Ta định nghĩa phương thức toán tử sắp xếp mảng 1 chiều như sau:
    - Phương thức (++) sắp xếp mảng theo chiều tăng dần.
    - Phương thức (--) sắp xếp mảng theo chiều giảm dần.
    Hãy định nghĩa một lớp Mảng gồm: thuộc tính a[100] kiểu float, biến kích thước mảng n kiểu nguyên và các phương thức:
    - Phương thức Nhập: nhập kích thước mảng và các giá trị cho mảng.
    - Phương thức Xuất: Xuất các giá trị của mảng ra màn hình.
    - Phương thức toán tử -- và ++ như trên để sắp xếp mảng.
    Viết chương trình chính sử dụng lớp trên để nhập vào một mảng n phần tử thực, sau đó sắp xếp mảng theo chiều giảm dần, tăng dần và in các mảng đã sắp lên màn hình.


    Sau khi ngâm cứu, mình đã code ví dụ với phương thức (++) sắp tăng. Mình chạy thấy sai, mong mọi người chỉ giúp. Hoặc mọi người có cách khác thì chỉ giúp mình với. Bài này rất quan trong với mình. Thanks

    Code

    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <iostream.h>
    
    class Mang
    {
    	int n, M[100];
    	public:
    		Mang operator++();
    		friend istream &operator>>(istream &is, Mang &p);
    		friend ostream &operator<<(ostream &os, Mang p);
    };
    
    Mang Mang::operator++()
    {
    	Mang p;
    		for(int i=1;i<n;i++)
    			for(int j=i+1;j<n;j++)
    				if(p.M[i]>p.M[j])
    				{
    					int tg = p.M[i];
    					p.M[i] = p.M[j];
    					p.M[j] = tg;
    				}
    	return p;
    }
    
    istream &operator>>(istream &is, Mang &p)
    {
    	int n;
    	cout<<"n="; is>>n;
    	for(int i=0;i<p.n;i++)
    	{
    		cout<<"M["<<i<<"]=";
    		is>>p.M[i];
    	}
    	return is;
    }
    
    ostream &operator<<(ostream &os, Mang p)
    {
    	os<<"n="<<p.n<<endl;
    	for(int i=0;i<p.n;i++)
    	os<<p.M[i]<<"\t";
    	os<<endl;
    	return os;
    }
    
    void main()
    {
    	clrscr();
    	Mang a,b;
    	cout<<"nhap a:"; cin>>a;
    	b=++a;
    	cout<<"sap xep:"<<b<<endl;
    	getch();
    }

  2. #2
    Ngày gia nhập
    12 2010
    Nơi ở
    Hà Nội
    Bài viết
    137

    Mặc định DingPhonh

    Trong >> : is >> p.n mới đúng nhé.
    Trong ++ : Mang p là chưa khởi tạo thì đâu đã có thể xử lý với p.M[i]. Thế này:
    C++ Code:
    1. Mang Mang::operator++()
    2. {
    3.     Mang p = *this;
    4.         for(int i=0;i<n-1;i++)
    5.             for(int j=i+1;j<n;j++)
    6.                 if(p.M[i]>p.M[j])
    7.                 {
    8.                     int tg = p.M[i];
    9.                     p.M[i] = p.M[j];
    10.                     p.M[j] = tg;
    11.                 }
    12.     return p;
    13. }
    Freelancer, free coder, free tester.
    Nhận hợp tác viết app, viết midlet khi free time.
    Tình trạng: Siêu bận!

  3. #3
    Ngày gia nhập
    05 2010
    Bài viết
    59

    Thanks Dinhphonh. Mình làm được rồi, nhưng chỗ Mang p=*this; mình chưa hiểu lắm. Có thể giúp mình không. Bình thường thì mình chỉ gọi Mang p;

  4. #4
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    Trích dẫn Nguyên bản được gửi bởi canhkho Xem bài viết
    Thanks Dinhphonh. Mình làm được rồi, nhưng chỗ Mang p=*this; mình chưa hiểu lắm. Có thể giúp mình không. Bình thường thì mình chỉ gọi Mang p;

    khởi tạo đối tượng Mang p gán = đối tượng được gọi phương thức.
    dùng từ không chuẩn thì các pro chỉnh lại ngen hehe

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

  1. Trả lời: 1
    Bài viết cuối: 28-04-2012, 09:43 PM
  2. Lập trình C Con trỏ và mảng nhiều chiều, (float*)a+i*50+j có ý nghĩa gì?
    Gửi bởi rimberry trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 12-02-2012, 09:34 PM
  3. Cùng nhau suy nghĩ & chia sẻ những thuật toán hay, bổ ích nào các bạn!
    Gửi bởi mrvu.mlt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 15-07-2011, 05:48 PM
  4. chuỗi khai báo 2 chiều a[][] ý nghĩa như thế nào?
    Gửi bởi tamthientai trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 11-03-2010, 11:12 PM

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