我需要帮助弄清楚如何在计算复数时修复输出
I need help figuring out how to fix the output when compute complex numbers
JavaScript代码:
function ImaginaryNumbers(realNum, imaginary) {
this.realNum = 0;
this.imaginary = 0;
this.realNum = (typeof realNum === 'undefined') ? this.realNum : parseFloat(realNum);
this.imaginary = (typeof imaginary === 'undefined') ? this.imaginary : parseFloat(imaginary);
}
ImaginaryNumbers.transform = function(num) {
var imaginaryNumbers;
imaginaryNumbers = (num instanceof ImaginaryNumbers) ? num : imaginaryNumbers;
imaginaryNumbers = (typeof num === 'number') ? new ImaginaryNumbers(num, 0) : num;
return imaginaryNumbers;
};
function display_complex(re, im) {
if(im === '0') return '' + re;
if(re === 0) return '' + im + 'i';
if(im < 0) return '' + re + im + 'i';
return '' + re + '+' + im + 'i';
}
function addingComplexNumbers(first, second) {
var num1;
var num2;
var first = parseInt(document.getElementById("firstComplexNumber").value) + parseInt(document.getElementById("secondComplexNumber").value);
var second = parseInt(document.getElementById("thirdComplexNumber").value) + parseInt(document.getElementById("fourthComplexNumber").value);
num1 = ImaginaryNumbers.transform(first);
num2 = ImaginaryNumbers.transform(second);
var realNum = num1.realNum + num2.realNum;
var imaginary = num1.imaginary + num2.imaginary;
return document.getElementById("result8").innerHTML = display_complex(realNum, imaginary);
/******************************************** *************/
HTML Code:
<form>
<h1>Computing Imaginary Numbers</h1>
<fieldset>
<p>Input the first real number : <input type="text" id="firstComplexNumber" /></p>
<p>Input the first imaginary complex number: <input type="text" id="secondComplexNumber" /></p>
</fieldset>
<br>
<fieldset>
<p>Input the second real number: <input type="text" id="thirdComplexNumber" /></p>
<p>Input the second imaginary complex number : <input type="text" id="fourthComplexNumber" /></p>
</fieldset>
<input type="button" onclick="addingComplexNumbers()" value="Add">
<input type="button" onclick="subtractingComplexNumbers()" value="Subtract">
<input type="button" onclick="multiplyingComplexNumbers()" value="Multiply">
<input type="button" onclick="dividingComplexNumbers()" value="Divide">
<p>Result: <br>
<span id="result8"></span>
</p>
</form>
我使用 (2, -7) 和 (4,3) 作为数字,但程序吐出 2+0i。这不是答案。正确答案是 6-4i。我不确定我应该在哪里寻找修复计算的方法。任何帮助都会很好!
您错误地初始化了虚数,请参阅更改 addingComplexNumbers
函数。
有几种方法可以解决这个问题,但我只是将这些对传递给 ImaginaryNumbers
构造函数
function ImaginaryNumbers(realNum, imaginary) {
this.realNum = 0;
this.imaginary = 0;
this.realNum = (typeof realNum === 'undefined') ? this.realNum : parseFloat(realNum);
this.imaginary = (typeof imaginary === 'undefined') ? this.imaginary : parseFloat(imaginary);
}
ImaginaryNumbers.transform = function(num) {
var imaginaryNumbers;
imaginaryNumbers = (num instanceof ImaginaryNumbers) ? num : imaginaryNumbers;
imaginaryNumbers = (typeof num === 'number') ? new ImaginaryNumbers(num, 0) : num;
return imaginaryNumbers;
};
function display_complex(re, im) {
if (im === '0') return '' + re;
if (re === 0) return '' + im + 'i';
if (im < 0) return '' + re + im + 'i';
return '' + re + '+' + im + 'i';
}
function addingComplexNumbers() {
var first = new ImaginaryNumbers(parseInt(document.getElementById("firstComplexNumber").value) || 0, parseInt(document.getElementById("secondComplexNumber").value) || 0);
var second = new ImaginaryNumbers(parseInt(document.getElementById("thirdComplexNumber").value) || 0, parseInt(document.getElementById("fourthComplexNumber").value) || 0);
var realNum = first.realNum + second.realNum;
var imaginary = first.imaginary + second.imaginary;
var result = display_complex(realNum, imaginary);
document.getElementById("result8").innerHTML = result;
return result;
}
<form>
<h1>Computing Imaginary Numbers</h1>
<fieldset>
<p>Input the first real number : <input type="text" id="firstComplexNumber" /></p>
<p>Input the first imaginary complex number: <input type="text" id="secondComplexNumber" /></p>
</fieldset>
<br>
<fieldset>
<p>Input the second real number: <input type="text" id="thirdComplexNumber"/></p>
<p>Input the second imaginary complex number : <input type="text" id="fourthComplexNumber" /></p>
</fieldset>
<input type="button" onclick="addingComplexNumbers()" value="Add">
<input type="button" onclick="subtractingComplexNumbers()" value="Subtract">
<input type="button" onclick="multiplyingComplexNumbers()" value="Multiply">
<input type="button" onclick="dividingComplexNumbers()" value="Divide">
<p>Result: <br>
<span id="result8"></span>
</p>
</form>
JavaScript代码:
function ImaginaryNumbers(realNum, imaginary) {
this.realNum = 0;
this.imaginary = 0;
this.realNum = (typeof realNum === 'undefined') ? this.realNum : parseFloat(realNum);
this.imaginary = (typeof imaginary === 'undefined') ? this.imaginary : parseFloat(imaginary);
}
ImaginaryNumbers.transform = function(num) {
var imaginaryNumbers;
imaginaryNumbers = (num instanceof ImaginaryNumbers) ? num : imaginaryNumbers;
imaginaryNumbers = (typeof num === 'number') ? new ImaginaryNumbers(num, 0) : num;
return imaginaryNumbers;
};
function display_complex(re, im) {
if(im === '0') return '' + re;
if(re === 0) return '' + im + 'i';
if(im < 0) return '' + re + im + 'i';
return '' + re + '+' + im + 'i';
}
function addingComplexNumbers(first, second) {
var num1;
var num2;
var first = parseInt(document.getElementById("firstComplexNumber").value) + parseInt(document.getElementById("secondComplexNumber").value);
var second = parseInt(document.getElementById("thirdComplexNumber").value) + parseInt(document.getElementById("fourthComplexNumber").value);
num1 = ImaginaryNumbers.transform(first);
num2 = ImaginaryNumbers.transform(second);
var realNum = num1.realNum + num2.realNum;
var imaginary = num1.imaginary + num2.imaginary;
return document.getElementById("result8").innerHTML = display_complex(realNum, imaginary);
/******************************************** *************/
HTML Code:
<form>
<h1>Computing Imaginary Numbers</h1>
<fieldset>
<p>Input the first real number : <input type="text" id="firstComplexNumber" /></p>
<p>Input the first imaginary complex number: <input type="text" id="secondComplexNumber" /></p>
</fieldset>
<br>
<fieldset>
<p>Input the second real number: <input type="text" id="thirdComplexNumber" /></p>
<p>Input the second imaginary complex number : <input type="text" id="fourthComplexNumber" /></p>
</fieldset>
<input type="button" onclick="addingComplexNumbers()" value="Add">
<input type="button" onclick="subtractingComplexNumbers()" value="Subtract">
<input type="button" onclick="multiplyingComplexNumbers()" value="Multiply">
<input type="button" onclick="dividingComplexNumbers()" value="Divide">
<p>Result: <br>
<span id="result8"></span>
</p>
</form>
我使用 (2, -7) 和 (4,3) 作为数字,但程序吐出 2+0i。这不是答案。正确答案是 6-4i。我不确定我应该在哪里寻找修复计算的方法。任何帮助都会很好!
您错误地初始化了虚数,请参阅更改 addingComplexNumbers
函数。
有几种方法可以解决这个问题,但我只是将这些对传递给 ImaginaryNumbers
构造函数
function ImaginaryNumbers(realNum, imaginary) {
this.realNum = 0;
this.imaginary = 0;
this.realNum = (typeof realNum === 'undefined') ? this.realNum : parseFloat(realNum);
this.imaginary = (typeof imaginary === 'undefined') ? this.imaginary : parseFloat(imaginary);
}
ImaginaryNumbers.transform = function(num) {
var imaginaryNumbers;
imaginaryNumbers = (num instanceof ImaginaryNumbers) ? num : imaginaryNumbers;
imaginaryNumbers = (typeof num === 'number') ? new ImaginaryNumbers(num, 0) : num;
return imaginaryNumbers;
};
function display_complex(re, im) {
if (im === '0') return '' + re;
if (re === 0) return '' + im + 'i';
if (im < 0) return '' + re + im + 'i';
return '' + re + '+' + im + 'i';
}
function addingComplexNumbers() {
var first = new ImaginaryNumbers(parseInt(document.getElementById("firstComplexNumber").value) || 0, parseInt(document.getElementById("secondComplexNumber").value) || 0);
var second = new ImaginaryNumbers(parseInt(document.getElementById("thirdComplexNumber").value) || 0, parseInt(document.getElementById("fourthComplexNumber").value) || 0);
var realNum = first.realNum + second.realNum;
var imaginary = first.imaginary + second.imaginary;
var result = display_complex(realNum, imaginary);
document.getElementById("result8").innerHTML = result;
return result;
}
<form>
<h1>Computing Imaginary Numbers</h1>
<fieldset>
<p>Input the first real number : <input type="text" id="firstComplexNumber" /></p>
<p>Input the first imaginary complex number: <input type="text" id="secondComplexNumber" /></p>
</fieldset>
<br>
<fieldset>
<p>Input the second real number: <input type="text" id="thirdComplexNumber"/></p>
<p>Input the second imaginary complex number : <input type="text" id="fourthComplexNumber" /></p>
</fieldset>
<input type="button" onclick="addingComplexNumbers()" value="Add">
<input type="button" onclick="subtractingComplexNumbers()" value="Subtract">
<input type="button" onclick="multiplyingComplexNumbers()" value="Multiply">
<input type="button" onclick="dividingComplexNumbers()" value="Divide">
<p>Result: <br>
<span id="result8"></span>
</p>
</form>