|  | 
|   | 
 | 
  p.specht
 
   | Anm.: Ergänzungen wünschenswert, z.B. Wurzel aus einer Komplexen Zahl u.dgl.
 WindowTitle "Rechnen mit Komplexen Zahlen (auf 2D-Vektorbasis)"
'Pre-Alpha Version = (CR) Crashware 2013-01 by P. Specht, Wien
'Ohne jedwede Gewähr! Nutzung auf alleinige Gefahr des Anwenders!
Font 2:Randomize:cls rnd(8^8):print
set("decimals",18)
declare a![1],b![1]'Komplex![] = real[=0]+j%*imaginär[=1]
a![]=cGET(0)
b![]=cGET(1)
print " A   = ";:cPRINT(a![],3)
print " B   = ";:cPRINT(b![],3)
'cPRINT(0,cGET(2))
waitinput
print " cADD= ";:cPRINT(cADD(a![],b![]),3)
print " cSUB= ";:cPRINT(cSUB(a![],b![]),3)
print " cMUL= ";:cPRINT(cMUL(a![],b![]),3)
print " cDIV= ";:cPRINT(cDIV(a![],b![]),3)
waitinput
End
proc cGET :parameters v%:declare xpl$[],k![1]
    ' "  1.22,-3.3   ,   4.4,2.66   , -10,5.5  ",",")
    ' "  10,10   ,   1,1   ,  -1,-1  ",",")
    ' "  10,10   ,   1,1   ,  -1,-1  ",",")
    ' "  10,10   ,   1,-1   ,  -1,-1  ",",")
    xpl$[]=explode(\
    "  10,10   ,   1.414,1.414   ,  -1,-1  ",",")
    k![0]=val(xpl$[2*v%]):k![1]=val(xpl$[2*v%+1])
    return k![]
endproc
proc cADD
    parameters a![],b![]
    declare k![1]
    'Komplexe Addition
    MAT k![]=a![]
    MAT k![]+b![]
    return k![]
endproc
proc cSUB
    parameters a![],b![]
    'Komplexe Subtraktion
    declare k![1]
    MAT k![]=a![]
    MAT k![]-b![]
    return k![]
endproc
proc cMUL
    parameters a![],b![]
    declare m![1]
    'Komplexe Multiplikation
    m![0]=a![0]*b![0]-a![1]*b![1]
    m![1]=a![0]*b![1]+a![1]*b![0]
    return m![]
endproc
proc cDIV
    parameters a![],b![]
    declare d![1],nenner!
    'Komplexe Division
    nenner!=b![0]*b![0]+b![1]*b![1]
    if nenner!<>0
        d![0]=(a![0]*b![0]+a![1]*b![1])/nenner!
        d![1]=(a![1]*b![0]-a![0]*b![1])/nenner!
    else
        print " ###Division nicht possibile!### ";
        d![0]=0
        d![1]=0
    endif
    return d![]
endproc
proc cKON
    parameters k![]
    'Konjugiere
    k![1]= -1*k![1]
    return k![]
endproc
proc cPRINT :parameters k![],v%
    print cFORM(k![]);
    case v%=0:print " ";
    case v%=1:print "  \ ";
    case v%=2:print " "
    case v%=3:print " \n"
    case v%=4:print " \n\n"
endproc
proc cFORM :parameters k![]:declare k$
    k$=format$(" #######0.00000;#######0.00000;    0    ",k![0])
    k$=k$+format$(" +j* #######0.00000; -j* #######0.00000;         ",k![1])
    return k$
endproc
 |  
  | 
|   | 
 | XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...   | 08.05.2021  ▲ |  
  | 
|   | 
 
 
  |