01/10/2018, 10:03

Không return được module của số phức khi code OOP C++

mọi người giúp với ạ.mình không biết sai chỗ nào mà chạy k ra được cái module.
link đây ạ.

using namespace std;
#include<iostream>
#include<math.h>
class sophuc
{
	private:
		int a,b;
	public:
		sophuc()
		{
			a=b=0;
		}
		sophuc(int x,int y)
		{
			a=x;
			b=y;
		}
		friend istream& operator >>(istream& is,sophuc &p )
		{
			cout<<"nhap a:";
			is>>p.a;
			cout<<"nhap b:";
			is>>p.b;
			return is;
		}
		friend ostream& operator <<(ostream& os,sophuc p)
		{
			os<<"so phuc la:"<<p.a<<"+"<<p.b<<"i"<<endl;
			return os;
		}
		sophuc module(sophuc x)
		{
			float z;
			z=sqrt(x.a*x.a+x.b*x.b);
			return x;	
		}
		~sophuc()
		{
		}
};
main()
{
	sophuc p1,p2,c,d,x;
	cin>>p1;
    cout<<"
so phuc 1:"<<p1;
    cout<<"
module la:"<<p1.module();
    cin>>p2;
    cout<<"
so phuc 2:"<<p2;
    cout<<"
module la:"<<p2.module();
    return 0;
 
};

Ideone.com

Ideone.com

Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.

HK boy viết 12:13 ngày 01/10/2018

Sao code của bạn là code C++ mà up lên language Java?

Trọng Hoàng viết 12:18 ngày 01/10/2018

Mk chỉ để đấy để lấy code thui bạn.bạn biết k giúp mk với

rogp10 viết 12:11 ngày 01/10/2018

Haizzz, ko chạy được là ntn, biên dịch ko đc (ideone sai ngôn ngữ kìa) hay sai kết quả, mà sai ntn.
Cái modulus đó là unary thì nó là đặc tính của số đó rồi mà modulus bao h cũng là số thực.

Trọng Hoàng viết 12:09 ngày 01/10/2018

mk viết lên ấy chỉ để lấy code thui bạn.bạn sửa giúp mk với

David Teo viết 12:17 ngày 01/10/2018

Ai cho khai báo như thế này.
int a = b = 0;

Trọng Hoàng viết 12:16 ngày 01/10/2018

sao vậy bạn…

rogp10 viết 12:11 ngày 01/10/2018

Trong đấy chỉ có câu a=b=0; thôi.

Trọng Hoàng viết 12:04 ngày 01/10/2018

bạn nó chỗ nào vây…

Phạm Minh Anh Hữu viết 12:10 ngày 01/10/2018

Bạn viết sai cái phương thức module. Nó phải return giá trị thực, ở đây bạn cho nó return sophuc, rồi khi bạn gọi phương thức module ở main bạn lại không truyền cho nó giá trị nào nên lỗi (bạn viết phương thức này như 1 cái hàm độc lập vậy? , tại sao phải truyền cho nó 1 sophuc ??). Bạn có thể sửa lại phương thức module như này là được:

float module()
{
	float result;
	result = sqrt(this->a * this->a + this->b * this->b);
	return result;	
}

p/s: Lần sau post bài ghi câu hỏi, tiêu đề rõ ràng, kèm theo format code và lỗi.

Trọng Hoàng viết 12:15 ngày 01/10/2018

ok bạn cái ấy mk xong rùi.giờ mk tới phần sắp xếp số phức theo module sử dụng toán tử ><.bạn giúp mk với

Phạm Minh Anh Hữu viết 12:12 ngày 01/10/2018

Bạn phải tập làm đi chứ, cái này dùng toán tử >, <, >=, <=, == đơn giản mà, những thứ này bạn không tự làm được thì rốt cục bạn đang học cái [spoiler]mẹ[/spoiler] gì vậy? Lúc nào cũng ở trong thế bị động như này thì đến bao giờ mới phát triển được ạ?

HK boy viết 12:12 ngày 01/10/2018

Khoan đã, số phức đâu có toán tử so sánh (>, <) đâu? Đấy là về mặt toán học thôi đấy nhé.

Phạm Minh Anh Hữu viết 12:09 ngày 01/10/2018

Chắc là so sánh theo giá trị module của nó ấy anh, em nghĩ vậy.

Trọng Hoàng viết 12:12 ngày 01/10/2018

mk dùng đc mấy cái ấy nhưng chưa biết hướng đi từ đâu.mk khó cái đoạn so sánh theo module ý.mk mới học bạn thông cảm

Trọng Hoàng viết 12:10 ngày 01/10/2018

so sánh theo giá trị module của số phức ý

HK boy viết 12:11 ngày 01/10/2018

Điều kiện so sánh của bạn là gì, ngoài cái chỉ so sánh số phức theo module?
[spoiler](Quả này hơi bị nhảm về mặt toán học)[/spoiler]

Trọng Hoàng viết 12:17 ngày 01/10/2018
  • Nạp chồng các toán tử: = (gán), > (so sánh lớn hơn theo module), < (so sánh nhỏ
    hơn theo module), == (so sánh bằng).
  • Viết chương trình chính ứng dụng lớp số phức 2 để nhập một danh sách các đối
    tượng là các số phức (tối đa 10 phần tử). Sắp xếp lại danh sách đã nhập theo trật tự
    giảm dần, tăng dần của module, tìm số phức lớn nhất, nhỏ nhất theo module.
    Đây là cả đề bài của mk.bạn có thể cho mk hướng đc k.
Phạm Minh Anh Hữu viết 12:16 ngày 01/10/2018

Bạn có thể thử.

friend const bool operator>(const sophuc &soPhuc1, const sophuc &soPhuc2)
{
    //Code so sánh...
}
HK boy viết 12:09 ngày 01/10/2018
  • Ý 1: Bạn biết gì về số phức? 2 số phức bằng nhau là như thế nào? Bạn có so sánh được module 2 số phức không?
  • Ý 2: đề nhảm vãi -_- so sánh theo module thì sqrt(2), 1+i1-i có module bằng nhau, thế thì cái nào nhỏ nhất, cái nào lớn nhất? Nếu bây giờ mình cho cả dãy là cộng trừ sqrt(2) (2 phần tử), cộng trừ sqrt(2) * i (2 phần tử), cộng trừ 1 + cộng trừ i (4 phần tử), tức là 8 số, rồi mình nhồi thêm 0 và 1 vào, tức là có đến 8 số có module lớn nhất, thế thì số nào là số phức lớn nhất đây??

Bài dễ mà… chỉ cần bạn viết ra giấy là làm được.

rogp10 viết 12:14 ngày 01/10/2018

Cái này chắc cũng giống sắp xếp điểm thôi chứ gì đâu phải bằng điểm là một người

Bài liên quan
0