everything iS nOw!
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.


Ogni Cosa, Dovunque!
 
IndiceUltime immaginiCercaRegistratiAccedi

 

 [C] Conversione Polare ad Algebrica / Algebrica a Polare

Andare in basso 
2 partecipanti
AutoreMessaggio
Apache93
Esperto
Esperto
Apache93


Maschio Messaggi : 126
Occupazione/Hobby : Batterista
Umore : Stay Rock! \m/

[C] Conversione Polare ad Algebrica / Algebrica a Polare Empty
MessaggioTitolo: [C] Conversione Polare ad Algebrica / Algebrica a Polare   [C] Conversione Polare ad Algebrica / Algebrica a Polare Icon_minitime17/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;
 
}
Torna in alto Andare in basso
http://emptyriver.it/
speed
Admin
Admin
speed


Maschio Messaggi : 418
Occupazione/Hobby : Studente di Informatica

[C] Conversione Polare ad Algebrica / Algebrica a Polare Empty
MessaggioTitolo: Re: [C] Conversione Polare ad Algebrica / Algebrica a Polare   [C] Conversione Polare ad Algebrica / Algebrica a Polare Icon_minitime17/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 GRECO

ti 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! Very Happy
con affetto, speed. Smile
Torna in alto Andare in basso
 
[C] Conversione Polare ad Algebrica / Algebrica a Polare
Torna in alto 
Pagina 1 di 1

Permessi in questa sezione del forum:Non puoi rispondere agli argomenti in questo forum.
everything iS nOw! :: Interessi :: Informatica :: Programmazione-
Vai verso: