(* Calcula la potencia de un número complejo en forma binómica, pasándolo previamente a polar*)
(* Hay que introducir la llamada a la función con el número complejo en forma binómica y el índice de la potencia *)
(* La potencia del complejo que da de resultado se convierte a binómica *)
(* llamamos a la rutina cálculo BinomicaPolar[Complejo_, Exponente_] *)
(* Si introducimos el complejo directamente la i tiene que ir con mayúscula *)

Clear["Global`*"];

BinomicaPolar[Complejo_,Exponente_]:=
	      Module[{Modulo=0,ArgRadIni=0, ArgGradIni=0,ArgRad=0, ArgGrad=0, NumeroPolar= 0,NumeroTrig=0, AnguloCal=0,Angulo=0,AnguloRad=0, ParteReal =0,ParteImaginaria=0, Lista={}},
		              Modulo=Abs[Complejo];
                            ArgRadIni=Arg[Complejo];
                            ArgGradIni=Arg[Complejo]*(180/π);
                            ParteReal =Re[Complejo];
                            ParteImaginaria=Im[Complejo];
                          
                    (* CLASIFICACIÓN DEL CUADRANTE QUE OCUPA EL COMPLEJO *)
                   If[ParteReal≥0&&ParteImaginaria≥0,Print["EL COMPLEJO ESTÁ EN EL PRIMER PRIMER CUADRANTE"];  (* COMPLEJO EN PRIMER CUADRANTE *)
                        ArgRad=ArgRadIni;
                        ArgGrad=ArgGradIni,

                   If[ParteReal<0&&ParteImaginaria⩾0,Print["EL COMPLEJO ESTÁ EN EL SEGUNDO CUADRANTE"];              (* COMPLEJO EN SEGUNDO CUADRANTE *)
                        ArgRad=ArgRadIni;
                        ArgGrad=ArgGradIni,
                         
                     If[ParteReal<0&&ParteImaginaria<0,Print["EL COMPLEJO ESTÁ EN EL TERCER CUADRANTE"];               (* COMPLEJO EN TERCER CUADRANTE *)
                         ArgRad=2π+ArgRadIni;
                       ArgGrad=360 + ArgGradIni,
                          
                     If[ParteReal≥0&&ParteImaginaria<0,Print["EL COMPLEJO ESTÁ EN EL CUARTO CUADRANTE"];             (* COMPLEJO EN CUARTO CUADRANTE *)
                       ArgRad=2π+ArgRadIni;
                       ArgGrad=360 + ArgGradIni
             
                      ]]]];

                            NumeroPolar=Modulo Exp[ArgRad];
                            AnguloCal=ArgGrad*Exponente;
                            Angulo= Mod[AnguloCal,360];
                            AnguloRad=Angulo*(π/180);
                            NumeroTrig=  (Modulo^Exponente)[Cos[Angulo]+I  Sin[Angulo]];  
                             AppendTo[Lista, {ParteReal,ParteImaginaria}];
                             Print["Módulo inicial es = ",Modulo];
                             Print["El argumento en radianes inicial= ", ArgRadIni];
                             Print["El argumento en grados inicial= ",ArgGradIni ];
                             Print["El argumento en final radianes= ", ArgRad];
                             Print["El argumento final en grados= ",ArgGrad];
		               Print["El número complejo en polar es= ",NumeroPolar];
                             Print["La potencia del complejo es = ",(((NumeroPolar))^Exponente)];
                             Print["El ángulo del complejo potencia es = ",AnguloCal];
                             Print["El ángulo del complejo potencia, eliminando las vueltas es = ",Angulo];
                             Print["El complejo en forma trigonométrica es = ",NumeroTrig];
                             Print["El complejo calculado es = ",N[(Modulo^Exponente)]* N[Cos[AnguloRad]]," + ", N[(Modulo^Exponente)]* N[Sin[AnguloRad]],"I"];
                             g1=ListPlot[Lista, AxesLabel->{Re,Im},
                                                                      PlotLabel->"Representación del complejo",
                                                                      AspectRatio->Automatic,    
                                                                      PlotRange->Automatic, 
                                                                      PlotStyle->PointSize[0.02],
                                                                      ImageSize->Large]; 
                            g2=Graphics[Arrow[{{0,0},{ParteReal,ParteImaginaria}}]];                  
                           Show[g1,g2]
			   ]

BinomicaPolar[-1-I,5]

BinomicaPolar[-2(Sqrt[3])+2I,6]

BinomicaPolar[4-4I,3]

BinomicaPolar[1+(Sqrt[3])I,5]

BinomicaPolar[1-(Sqrt[3])I,5]

BinomicaPolar[-1,3]