Apache93 Esperto
Messaggi : 126 Occupazione/Hobby : Batterista Umore : Stay Rock! \m/
| Titolo: [C] Conversione Polare ad Algebrica / Algebrica a Polare 17/1/2012, 2:58 pm | |
| Ciao ragazzi eccomi tornato! Volevo sapere se riuscivate a risolvermi questo quesito! Questo è il codice prodotto da me e ovviamente non funzionante! - Codice:
-
#include <conio.h> #include <stdio.h> #include <math.h>
int main(){ int scelta; while(scelta!=0){ printf("\n\n§§§ Cambio di Base §§§"); printf("\n[0] Esci "); printf("\n[1] Da Forma Algebrica a Polare "); printf("\n[2] Da Forma Polare ad Algebrica "); printf("\nInserisci Scelta: "); scanf("%i",&scelta); if (scelta==1){ float num1; float num2; float ris1; float ris2; printf("\nInserisci Parte Reale:"); scanf("%f",&num1); printf("\nInserisci Parte Immaginaria [La Parte con J]:"); scanf("%f",&num2); ris1=sqrt(((num1*num1)+(num2*num2))); ris2=atan(3.14); printf("\nNumero in Forma Polare: %f e^J %f",ris1,ris2); } else if (scelta==2){ float num1; float num2; float ris1; float ris2; float aus1; float aus2; printf("\nInserisci Base:"); scanf("%f",&num1); printf("\nInserisci Esponente [La Parte con J]:"); scanf("%f",&num2); aus1=cos(num2); aus2=sin(num2); ris1=num1*aus1; ris2=num1*aus2; printf("\nNumero in Forma Algebrica: %f + J%f",ris1,ris2); } else if(scelta==0){ break; } else{ printf("\nScelta Non Valida. Riprovare."); }
} getch(); return 0; }
| |
|
speed Admin
Messaggi : 418 Occupazione/Hobby : Studente di Informatica
| Titolo: Re: [C] Conversione Polare ad Algebrica / Algebrica a Polare 17/1/2012, 3:50 pm | |
| dunque, sicuramente fai riferimento agli errori che ci sono nelle conversioni, non è vero? il problema è molto "easy": devi sapere che il C, per operare con angoli, usa sempre i radianti, perciò per ogni operazione sui gradi che compi, devi convertire l'input in radianti e l'output in gradi. la formula è la seguente: X : 180 = MISURA : PI GRECOti ho perciò inserito la formula sull'output della prima conversione, sull'input e sull'output della seconda. inoltre ti ho commentato il getch, perchè, come ho scritto a commento, è più efficiente per uscire dal menù. - Codice:
-
#include <conio.h> #include <stdio.h> #include <math.h>
int main(){ int scelta; while(scelta!=0){ printf("\n\n§§§ Cambio di Base §§§"); printf("\n[0] Esci "); printf("\n[1] Da Forma Algebrica a Polare "); printf("\n[2] Da Forma Polare ad Algebrica "); printf("\nInserisci Scelta: "); scanf("%i",&scelta); if (scelta==1){ float num1; float num2; float ris1; float ris2; printf("\nInserisci Parte Reale:"); scanf("%f",&num1); printf("\nInserisci Parte Immaginaria [La Parte con J]:"); scanf("%f",&num2); ris1=sqrt(((num1*num1)+(num2*num2))); // trasformo il risultato 2 in gradi per poter effettuare l'arcotangente. ris2=180*atan(num2/num1)/M_PI; printf("\nNumero in Forma Polare: %f e^J %.0f",ris1,ris2); } else if (scelta==2){ float num1; float num2; float ris1; float ris2; float aus1; float aus2; printf("\nInserisci Base:"); scanf("%f",&num1); printf("\nInserisci Esponente [La Parte con J]:"); scanf("%f",&num2); // trasformo i due numeri in radianti per poter effettuare il seno ed il coseno. num1=M_PI*num1/180; num2=M_PI*num2/180; aus1=cos(num2); aus2=sin(num2); ris1=num1*aus1; ris2=num1*aus2; // trasformo i risultati così ottenuti in gradi per poterli visualizzare. ris1=180*ris1/M_PI; ris2=180*ris2/M_PI; printf("\nNumero in Forma Algebrica: %f + J%f",ris1,ris2); } else if(scelta==0){ break; } else{ printf("\nScelta Non Valida. Riprovare."); }
} // ho commentato il GETCH() al solo fine di migliorare il menù; // getch(); return 0; }
spero di esserti stato d'aiuto, se qualcosa non ti è chiaro, domandami pure! con affetto, speed. | |
|