Oppure

Loading
23/11/07 23:55
Iannibelli
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define in(str,x) scanf("%"str,&x);fflush(stdin)

int main(void)
{
 float a,b,c,x1,x2,delta;
 char scelta;

 printf("Equazioni di secondo grado,Versione 2.0, realizzata da N.I");
 printf("\nModello d' equazione : a*x*x + b*x + c = 0\n");
 printf("\nNel programma sottostante dovrai inserire i coeficenti: a,b,c\na non può essere uguale a 0");
 printf("\nSe a = 0, non è più un'equazione di secondo grado.");
 

 do{

    do{

    printf("\n\nInserisci a (deve essere diverso da 0): ");in("f",a);
    }while(a==0); 	 
    printf("Inserisci b: ");in("f",b);
    printf("Inserisci c: ");in("f",c);


    delta = sqrt(b*b - 4*a*c);
    x1 = (-b + delta) / (2*a);
    x2 = (-b - delta) / (2*a);

   
	
    if( delta < 0 ){

	printf("La soluzione è presente solo nei numeri complessi");

    }

    else{
     	
		x1 = -b + sqrt(b*b - 4*a*c) / (2*a);
		x2 = -b - sqrt(b*b - 4*a*c) / (2*a);
	printf("\nx1 = %f",x1);
	printf("\nx2 = %f\n",x2);
	
    }

	printf("\nVuoi risolvere un'altra equazione?");
	      in("c",scelta);

    }while(scelta =='s');
	
      if(scelta !='s'){
	exit(0);
      }
 return 0;
}



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

:)
aaa
24/11/07 9:05
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-|
Ultima modifica effettuata da Navar 24/11/07 9:07
aaa
24/11/07 10:55
Iannibelli
hehehe:)

Ma dipende..forse dal programma..

Tu cosa usi per compilare il codice?
aaa
24/11/07 12:30
WARRIOR
Postato originariamente da Navar:
d= (b*b)-(4*(a*c)); //definisco il delta come 'd';


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

aaa
24/11/07 13:54
Navar
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:
aaa
24/11/07 13:55
Navar
Postato originariamente da WARRIOR:

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 24/11/07 14:00
aaa
24/11/07 16:46
WARRIOR
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.


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

int main(void){
    int a=0,b=0,c=0;
    float r=0;
    double x1=0;
    double x2=0;
    double d=0;   
     
       
    cout<<"Inserire i valori 'a','b' e 'c' di un' equazione canonica di secondo grado:\n"<<endl;
    cin>>a>>b>>c;

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<<"Ecco la soluzione per X1: "<<x1<<endl;
    system ("pause");
    cout<<"Ecco la soluzione per X2: "<<x2<<endl;
    system ("pause");
}   
Ultima modifica effettuata da WARRIOR 24/11/07 16:47
aaa
24/11/07 17:07
Iannibelli
Postato originariamente da Iannibelli:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define in(str,x) scanf("%"str,&x);fflush(stdin)

int main(void)
{
 float a,b,c,x1,x2,delta;
 char scelta;

 printf("Equazioni di secondo grado,Versione 2.0, realizzata da N.I");
 printf("\nModello d' equazione : a*x*x + b*x + c = 0\n");
 printf("\nNel programma sottostante dovrai inserire i coeficenti: a,b,c\na non può essere uguale a 0");
 printf("\nSe a = 0, non è più un'equazione di secondo grado.");
 

 do{

    do{

    printf("\n\nInserisci a (deve essere diverso da 0): ");in("f",a);
    }while(a==0); 	 
    printf("Inserisci b: ");in("f",b);
    printf("Inserisci c: ");in("f",c);


    delta = sqrt(b*b - 4*a*c);
    x1 = (-b + delta) / (2*a);
    x2 = (-b - delta) / (2*a);

   
	
    if( delta < 0 ){

	printf("La soluzione è presente solo nei numeri complessi");

    }

    else{
     	
		x1 = -b + sqrt(b*b - 4*a*c) / (2*a);
		x2 = -b - sqrt(b*b - 4*a*c) / (2*a);
	printf("\nx1 = %f",x1);
	printf("\nx2 = %f\n",x2);
	
    }

	printf("\nVuoi risolvere un'altra equazione?");
	      in("c",scelta);

    }while(scelta =='s');
	
      if(scelta !='s'){
	exit(0);
      }
 return 0;
}



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

:)



Boh..da me va...

Ma con che numeri hai provato?
aaa