Calcolatrice in c++
Buonasera,ho dei problemi con questo programma che mi calcoli le disequaioni di primo e secondo grado. In quelle di primo grado mi dice che utilizzo la variabile x senza inizializzarla; in quelle di secondo nel momento in cui metto a<0 nelle soluzioni mi porta l'intervallo sbagliato.Potete aiutarmi a trovare l'errore? Sono ore che ci sbatto ma niente,grazie mille per l'attenzione.
#include <iostream> #include <math.h> #include <time.h> #include <stdlib.h> #include <cstdlib> #include <string> using namespace std; void dis_di_primo_grado() { float a,b,x1,x; cout << "Inserisci il coefficiente"<<endl; cin >> a; cout << "Inserisci il termine noto "<<endl; cin >> b; if(a*x>-b) { if(a>0) { x1 >-b/a; cout << "il risultato è x> " << x1 <<endl; } else if (a<0) { x1 <b/a; cout<<"il risultato è x<"<< x1 <<endl; } } if(a*x<-b) { if(a>0) { x <-b/a; cout << "il risultato è : " << x <<endl; } else if (a<0) { x >-b/a; cout<<"il risultato è:"<< x <<endl; } } system ("pause"); } void dis_di_secondo_grado() { float a, b, c, delta,delta1, x1, x2,x ; cout<<"inserisci a"<<endl; cin>>a; cout<<"inserisci b"<<endl; cin>>b; cout<<"inserisci c"<<endl; cin>>c; delta=(b*b - 4.*a*c); cout<<"il delta è:"<<delta<<delta1<<endl; cout<<"Disequazione generale di riferimento: ax^2 + bx + c > 0"<<endl; if(a>0) { if( delta < 0 ) { cout<<"la disequazione assume tutti valori reali di x"<<endl; } else if(delta>0) { x1 = (-b - sqrt(delta)) / (2.*a); x2 = (-b + sqrt(delta)) / (2.*a); cout<<"le soluzioni sono x < " << x1 << " x >"<<x2<<endl; } else if(delta==0) { x=-b/2.*a; cout<<"ogni X appartenete a R - "<<x<<endl; } } if(a<0) { if(b>0 && c>0) { x1 = (b - sqrt(delta)) / (-2.*a); x2 = (b + sqrt(delta)) / (-2.*a); cout<< x1 << "<x<" << x2 <<endl; } if(b<0 && c>0) { x1 = (b - sqrt(delta)) / (-2.*a); x2 = (b + sqrt(delta)) / (-2.*a); cout<< x1 << " < x <" << x2 <<endl; } } system("pause"); }
Risposte
Allora io non sono un esperto.
Per prima cosa quando scrivi un codice ti conviene includerlo nei
Per prima cosa quando scrivi un codice ti conviene includerlo nei
[/code] che si capisce meglio.<br /> <br /> Per il primo è vero non hai inizializato x e quindi quando fai if(ax>b) va in palla.<br /> Daltronde non credo sia necessaria una cosa del genere (o meglio dipende dal programma che vuoi fare).<br /> <br /> Io farei una cosa del tipo:<br /> <br /> [code] cout "Questo progr risolve le diseq di primo nella forma ax>b \n" Inserisci a b if a>0 l'insieme delle sol è x>b/a if ....
mmm capito,ma come la dovrei inizializzare allora? volevo fare così per essere ordinato
"the world":
mmm capito,ma come la dovrei inizializzare allora? volevo fare così per essere ordinato
C'é il pulsante Code se sei nella modalità avanzata. Altrimenti lo puoi fare manualmente come scritto sotto.
[code]scrivi qui dentro il tuo codice. P.S: L'indentazione la devi fare tu con gli spazi.[/code]
Non ho capito; io mi riferivo a fare ordinato il programma!
E a cosa pensi mi sia riferito io? Ti ho detto qual'è il tag da usare.
Non ho capito...
"the world":
Non ho capito...
vict85 ti consigliava (te lo consiglio pure io) di circondare il tuo codice del primo post con i tag [code], così da renderlo almeno leggibile. Se lo lasci così, come puoi vedere anche te, è inguardabile e non mantiene l'indentazione. E' per aiutare chi cerca di aiutarti a non perder ore a capire dove inizia uno scoping e finisce l'altro.
Ah, scusate.... per identazione che si intende??
Per una definizione: http://it.wikipedia.org/wiki/Indentazione
Comunque il tuo codice ha poco senso. A mio avviso ti conviene passare ad un problema più piccolo come risolvere equazioni di primo grado, renderlo compilabile e poi passare alle disequazioni. Comunque manca il main.
Comunque il tuo codice ha poco senso. A mio avviso ti conviene passare ad un problema più piccolo come risolvere equazioni di primo grado, renderlo compilabile e poi passare alle disequazioni. Comunque manca il main.
Le soluzioni delle disequazioni di primo grado escono a metà perché non riesco a far scegliere quale risolvere se quella ax+b>0 o
"the world":
Le soluzioni delle disequazioni di primo grado escono a metà perché non riesco a far scegliere quale risolvere se quella ax+b>0 o
Ci sono vari metodi: usare un enumerazione per esempio in input (che è meglio di usare i vari cout a mio avviso per qualcosa che sembra una libreria). Un altro consiste nel caricare in una stringa quello che scrive l'utente e “analizzarla”. Ma ce ne sono altri.
ad esempio cin>>premi1 per risolvere ax+b>0,2 per risolvereax+b<2;?
Si, quello era un metodo... Anche se ci metterei un cout per quello e un cin per leggere il numero.
P.S: Di tutte quelle librerie usi solamente iostream e stdlib (e quest'ultimo solo per il pressoché inutile system("pause"))...
P.S: Di tutte quelle librerie usi solamente iostream e stdlib (e quest'ultimo solo per il pressoché inutile system("pause"))...
mettendo il cout e il cin non mi funziona....devo percaso mettere qualcosa vicino a "if(ax+b)" affinché funzioni il cout??
Ciao! Sono il tuo Tutor AI, il compagno ideale per uno studio interattivo. Utilizzo il metodo maieutico per affinare il tuo ragionamento e la comprensione. Insieme possiamo:
- Risolvere un problema di matematica
- Riassumere un testo
- Tradurre una frase
- E molto altro ancora...
Il Tutor AI di Skuola.net usa un modello AI di Chat GPT.
Per termini, condizioni e privacy, visita la relativa pagina.
Per termini, condizioni e privacy, visita la relativa pagina.