Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Programma che risolve le equazioni di secondo grad
Forum - C/C++ - Programma che risolve le equazioni di secondo grad

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Iannibelli (Normal User)
Rookie


Messaggi: 26
Iscritto: 24/11/2007

Segnala al moderatore
Postato alle 0:55
Sabato, 24/11/2007
Codice sorgente - presumibilmente C++

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4. #define in(str,x) scanf("%"str,&x);fflush(stdin)
  5.  
  6. int main(void)
  7. {
  8.  float a,b,c,x1,x2,delta;
  9.  char scelta;
  10.  
  11.  printf("Equazioni di secondo grado,Versione 2.0, realizzata da N.I");
  12.  printf("\nModello d' equazione : a*x*x + b*x + c = 0\n");
  13.  printf("\nNel programma sottostante dovrai inserire i coeficenti: a,b,c\na non può essere uguale a 0");
  14.  printf("\nSe a = 0, non è più un'equazione di secondo grado.");
  15.  
  16.  
  17.  do{
  18.  
  19.     do{
  20.  
  21.     printf("\n\nInserisci a (deve essere diverso da 0): ");in("f",a);
  22.     }while(a==0);        
  23.     printf("Inserisci b: ");in("f",b);
  24.     printf("Inserisci c: ");in("f",c);
  25.  
  26.  
  27.     delta = sqrt(b*b - 4*a*c);
  28.     x1 = (-b + delta) / (2*a);
  29.     x2 = (-b - delta) / (2*a);
  30.  
  31.    
  32.        
  33.     if( delta < 0 ){
  34.  
  35.         printf("La soluzione è presente solo nei numeri complessi");
  36.  
  37.     }
  38.  
  39.     else{
  40.        
  41.                 x1 = -b + sqrt(b*b - 4*a*c) / (2*a);
  42.                 x2 = -b - sqrt(b*b - 4*a*c) / (2*a);
  43.         printf("\nx1 = %f",x1);
  44.         printf("\nx2 = %f\n",x2);
  45.        
  46.     }
  47.  
  48.         printf("\nVuoi risolvere un'altra equazione?");
  49.               in("c",scelta);
  50.  
  51.     }while(scelta =='s');
  52.        
  53.       if(scelta !='s'){
  54.         exit(0);
  55.       }
  56.  return 0;
  57. }




Voi cosa ne pensate? posso migliorare il codice..??

:)

PM Quote
Avatar
Navar (Normal User)
Newbie


Messaggi: 10
Iscritto: 30/10/2007

Segnala al moderatore
Postato alle 10:05
Sabato, 24/11/2007
Guarda, io ho provato il tuo codice ma non funziona correttamente (cioè mi restituisce dei valori per x1 e x2 errati):(
Anche io avevo provato a creare questo tipo di programma (che ti riporto, magari puoi aiutarmi o può servirti!):

#include<iostream>
using namespace std;
#include <math.h>

int main(void){
    int a,b,c;
    float r;
    double x1;
    double x2;
    double d;  
    
    
    d= (b*b)-(4*(a*c)); //definisco il delta come 'd';
    
    r= sqrt(d);//chiamo 'r' la radice del delta 'd';
    
    x1= (-b-r)/(2*a);
    
    x2= (-b+r)/(2*a);
    
    
    cout<<"Inserire i valori 'a','b' e 'c' di un' equazione canonica di secondo grado:\n"<<endl;
    cin>>a>>b>>c;
    cout<<d<<"    "<<r<<"    "<<endl; //mi visualizza il delta e la radice del delta;
    cout<<"Ecco la soluzione per X1: "<<x1<<endl;
    system ("pause");
    cout<<"Ecco la soluzione per X2: "<<x2<<endl;
    system ("pause");
}    

ma neanche a me funziona come dovrebbe!:-|
Mi sa che siamo colleghi di sventura!8-|

Ultima modifica effettuata da Navar il 24/11/2007 alle 10:07
PM Quote
Avatar
Iannibelli (Normal User)
Rookie


Messaggi: 26
Iscritto: 24/11/2007

Segnala al moderatore
Postato alle 11:55
Sabato, 24/11/2007
hehehe:)

Ma dipende..forse dal programma..

Tu cosa usi per compilare il codice?

PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 13:30
Sabato, 24/11/2007
Testo quotato

Postato originariamente da Navar:
d= (b*b)-(4*(a*c)); //definisco il delta come 'd';



d = (b*b)-4*(a*c);


PM Quote
Avatar
Navar (Normal User)
Newbie


Messaggi: 10
Iscritto: 30/10/2007

Segnala al moderatore
Postato alle 14:54
Sabato, 24/11/2007
Testo quotato

Postato originariamente da Iannibelli:

hehehe:)

Ma dipende..forse dal programma..

Tu cosa usi per compilare il codice?




:D
Io uso il DEV C++ (Bloodshed Software)!!

:k:

PM Quote
Avatar
Navar (Normal User)
Newbie


Messaggi: 10
Iscritto: 30/10/2007

Segnala al moderatore
Postato alle 14:55
Sabato, 24/11/2007
Testo quotato

Postato originariamente da WARRIOR:

Testo quotato

Postato originariamente da Navar:
d= (b*b)-(4*(a*c)); //definisco il delta come 'd';



d = (b*b)-4*(a*c);




Sia lodato Warrior!:k:
...
Niente...continua a non funzionare!:d
I valori di X1 e X2 sono assolutamente errati..8-|

Ultima modifica effettuata da Navar il 24/11/2007 alle 15:00
PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 17:46
Sabato, 24/11/2007
Testo quotato

Postato originariamente da Navar:

Guarda, io ho provato il tuo codice ma non funziona correttamente (cioè mi restituisce dei valori per x1 e x2 errati):(
Anche io avevo provato a creare questo tipo di programma (che ti riporto, magari puoi aiutarmi o può servirti!):

#include<iostream>
using namespace std;
#include <math.h>

int main(void){
    int a,b,c;
    float r;
    double x1;
    double x2;
    double d;  
    
    
    d= (b*b)-(4*(a*c)); //definisco il delta come 'd';
    
    r= sqrt(d);//chiamo 'r' la radice del delta 'd';
    
    x1= (-b-r)/(2*a);
    
    x2= (-b+r)/(2*a);
    
    
    cout<<"Inserire i valori 'a','b' e 'c' di un' equazione canonica di secondo grado:\n"<<endl;
    cin>>a>>b>>c;
    cout<<d<<"    "<<r<<"    "<<endl; //mi visualizza il delta e la radice del delta;
    cout<<"Ecco la soluzione per X1: "<<x1<<endl;
    system ("pause");
    cout<<"Ecco la soluzione per X2: "<<x2<<endl;
    system ("pause");
}    

ma neanche a me funziona come dovrebbe!:-|
Mi sa che siamo colleghi di sventura!8-|



Scusa, ma prima calcoli le soluzioni e poi chiedi in input le variabili? :-|
Ti da soluzioni a caso, perché non hai nemmeno inizializzato le variabili.

Codice sorgente - presumibilmente C#

  1. #include<iostream>
  2. using namespace std;
  3. #include <math.h>
  4.  
  5. int main(void){
  6.     int a=0,b=0,c=0;
  7.     float r=0;
  8.     double x1=0;
  9.     double x2=0;
  10.     double d=0;  
  11.      
  12.        
  13.     cout<<"Inserire i valori 'a','b' e 'c' di un' equazione canonica di secondo grado:\n"<<endl;
  14.     cin>>a>>b>>c;
  15.  
  16. d= (b*b)-4*(a*c)); //definisco il delta come 'd';
  17. r= sqrt(d);//chiamo 'r' la radice del delta 'd';
  18.    
  19.     x1= (-b-r)/(2*a);
  20.    
  21.     x2= (-b+r)/(2*a);
  22.  
  23.     cout<<"Ecco la soluzione per X1: "<<x1<<endl;
  24.     system ("pause");
  25.     cout<<"Ecco la soluzione per X2: "<<x2<<endl;
  26.     system ("pause");
  27. }


Ultima modifica effettuata da WARRIOR il 24/11/2007 alle 17:47
PM Quote
Avatar
Iannibelli (Normal User)
Rookie


Messaggi: 26
Iscritto: 24/11/2007

Segnala al moderatore
Postato alle 18:07
Sabato, 24/11/2007
Testo quotato

Postato originariamente da Iannibelli:

Codice sorgente - presumibilmente C++

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4. #define in(str,x) scanf("%"str,&x);fflush(stdin)
  5.  
  6. int main(void)
  7. {
  8.  float a,b,c,x1,x2,delta;
  9.  char scelta;
  10.  
  11.  printf("Equazioni di secondo grado,Versione 2.0, realizzata da N.I");
  12.  printf("\nModello d' equazione : a*x*x + b*x + c = 0\n");
  13.  printf("\nNel programma sottostante dovrai inserire i coeficenti: a,b,c\na non può essere uguale a 0");
  14.  printf("\nSe a = 0, non è più un'equazione di secondo grado.");
  15.  
  16.  
  17.  do{
  18.  
  19.     do{
  20.  
  21.     printf("\n\nInserisci a (deve essere diverso da 0): ");in("f",a);
  22.     }while(a==0);        
  23.     printf("Inserisci b: ");in("f",b);
  24.     printf("Inserisci c: ");in("f",c);
  25.  
  26.  
  27.     delta = sqrt(b*b - 4*a*c);
  28.     x1 = (-b + delta) / (2*a);
  29.     x2 = (-b - delta) / (2*a);
  30.  
  31.    
  32.        
  33.     if( delta < 0 ){
  34.  
  35.         printf("La soluzione è presente solo nei numeri complessi");
  36.  
  37.     }
  38.  
  39.     else{
  40.        
  41.                 x1 = -b + sqrt(b*b - 4*a*c) / (2*a);
  42.                 x2 = -b - sqrt(b*b - 4*a*c) / (2*a);
  43.         printf("\nx1 = %f",x1);
  44.         printf("\nx2 = %f\n",x2);
  45.        
  46.     }
  47.  
  48.         printf("\nVuoi risolvere un'altra equazione?");
  49.               in("c",scelta);
  50.  
  51.     }while(scelta =='s');
  52.        
  53.       if(scelta !='s'){
  54.         exit(0);
  55.       }
  56.  return 0;
  57. }




Voi cosa ne pensate? posso migliorare il codice..??

:)




Boh..da me va...

Ma con che numeri hai provato?

PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 18:53
Sabato, 24/11/2007
Mi riferivo al codice di Navar.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo