Multiplizieren, Addieren und Dividieren mit komplexen Zahlen; Polarkoordinaten

Manipulate[
z1=p[[1]]+I p[[2]];
z2=u[[1]]+I u[[2]];
z3=z1+z2; 
z4=z1*z2;
z5=z1/z2;
z6=Abs[z1];
z7=Arg[z1];
CalcTable={{"(Subscript[z, 1])+(Subscript[z, 2])",z3},{"(Subscript[z, 1])*(Subscript[z, 2])",z4},{"((Subscript[z, 1])/(Subscript[z, 2]))",z5},{"r(z1)=|z1|",z6},{"φ(z1)",z7}};
Grid[{{Show[ListPlot[{f[z1]},PlotRange-> 5,AspectRatio-> Automatic,ImageSize->700],
Graphics[{
AnnotatedArrow[u,StringJoin["(Subscript[Z, 2]) = ",ToString[z2]]],
AnnotatedArrow[p,StringJoin["(Subscript[Z, 1]) = ",ToString[z1]]],
Blue,AnnotatedArrow[f[z3],StringJoin["(Subscript[Z, 1])+(Subscript[Z, 2]) = ",ToString[f[z3][[1]]+I* f[z3][[2]]]]],
Red,AnnotatedArrow[f[z4],StringJoin["(Subscript[Z, 1])*(Subscript[Z, 2]) = ",ToString[f[z4][[1]]+I *f[z4][[2]]]]],
Orange, AnnotatedArrow[f[z5],StringJoin["(Subscript[Z, 1])/(Subscript[Z, 2]) = ",ToString[f[z5][[1]]+I* f[z5][[2]]]]]
}],Frame-> True],
Framed[TableForm[CalcTable],FrameStyle->{Red},RoundingRadius->4]}}],
{{p,{1,1}},Locator},{{u,{1,-1}},Locator},Initialization:> {f[compl_]:={Re[compl],Im[compl]},h[x_]:=x^2,
AnnotatedArrow[q_,label_]:={Arrowheads[{{Automatic,1},{.08,.5,Graphics[Inset[Style[label,13],{0,.3}]]}}],Arrow[{{0,0},q}]}}]

Program by Stefan Funkner.