Arithmetic/Complex: Difference between revisions
Content deleted Content added
Add Seed7 example |
→{{header|PureBasic}}: Added PureBasic |
||
Line 1,458: | Line 1,458: | ||
a/b => |
a/b => |
||
a/a =></lang> |
a/a =></lang> |
||
=={{header|PureBasic}}== |
|||
<lang PureBasic>Structure Complex |
|||
real.d |
|||
imag.d |
|||
EndStructure |
|||
Procedure Add_Complex(*A.Complex, *B.Complex) |
|||
Protected *R.Complex=AllocateMemory(SizeOf(Complex)) |
|||
If *R |
|||
*R\real=*A\real+*B\real |
|||
*R\imag=*A\imag+*B\imag |
|||
EndIf |
|||
ProcedureReturn *R |
|||
EndProcedure |
|||
Procedure Inv_Complex(*A.Complex) |
|||
Protected *R.Complex=AllocateMemory(SizeOf(Complex)), denom.d |
|||
If *R |
|||
denom = *A\real * *A\real + *A\imag * *A\imag |
|||
*R\real= *A\real / denom |
|||
*R\imag=-*A\imag / denom |
|||
EndIf |
|||
ProcedureReturn *R |
|||
EndProcedure |
|||
Procedure Mul_Complex(*A.Complex, *B.Complex) |
|||
Protected *R.Complex=AllocateMemory(SizeOf(Complex)) |
|||
If *R |
|||
*R\real=*A\real * *B\real - *A\imag * *B\imag |
|||
*R\imag=*A\real * *B\imag + *A\imag * *B\real |
|||
EndIf |
|||
ProcedureReturn *R |
|||
EndProcedure |
|||
Procedure Neg_Complex(*A.Complex) |
|||
Protected *R.Complex=AllocateMemory(SizeOf(Complex)) |
|||
If *R |
|||
*R\real=-*A\real |
|||
*R\imag=-*A\imag |
|||
EndIf |
|||
ProcedureReturn *R |
|||
EndProcedure |
|||
Procedure ShowAndFree(Header$, *Complex.Complex) |
|||
If *Complex |
|||
Protected.d i=*Complex\imag, r=*Complex\real |
|||
Print(LSet(Header$,7)) |
|||
Print("= "+StrD(r,3)) |
|||
If i>=0: Print(" + ") |
|||
Else: Print(" - ") |
|||
EndIf |
|||
PrintN(StrD(Abs(i),3)+"i") |
|||
FreeMemory(*Complex) |
|||
EndIf |
|||
EndProcedure |
|||
If OpenConsole() |
|||
Define.Complex a, b, *c |
|||
a\real=1.0: a\imag=1.0 |
|||
b\real=#PI: b\imag=1.2 |
|||
*c=Add_Complex(a,b): ShowAndFree("a+b", *c) |
|||
*c=Mul_Complex(a,b): ShowAndFree("a*b", *c) |
|||
*c=Inv_Complex(a): ShowAndFree("Inv(a)", *c) |
|||
*c=Neg_Complex(a): ShowAndFree("-a", *c) |
|||
Print(#CRLF$+"Press ENTER to exit"):Input() |
|||
EndIf</lang> |
|||
=={{header|Python}}== |
=={{header|Python}}== |