Newsgroup: it.comp.lang.c++
Titolo: Aiuto programmino Newbies

Scusate il disturbo, sono un newbies e per imparare ho tentato di fare un
rpogrammino per risolvere equazioni di grado secondo inserendo i tre
coefficenti.
Problema
1) Eseguendolo l'istruzione if non ha alcun risultato
2)Come si indica la radice quadrata?
Vi allego il programma dateci un occhio,  e ditemi cos'è che sbaglio
Grazie
#include <iostream.h> /*Inclusione Classe input/output(stream)*/
main() /*Inizio metodo main*/
{
 int A, B, C, X1, X2, Delta; /*dichiarazioni variabili*/
 cout<<"Inserisci il coefficente A\n"; /*Output scritta per inserimento
coefficente A*/
    cin>> A; /*Input variabile A*/
 cout<<"Inserisci il coefficente B\n"; /*Output scritta per inserimento
coefficente B*/
    cin>> B; /*Input variabile B*/
 cout<<"Inserisci il coefficente C\n"; /*Output scritta per inserimento
coefficente C*/
    cin>> C; /*Input variabile C*/
 Delta=B*B-4*A*C; /*Definizione Delta*/
 cout<< Delta <<"\n";
 if (Delta=0){
  X1=X2=-B/2*A; /*Definizione X1 e X2 nel caso Delta=0*/
        cout<< X1 <<"\n"; /*Output valore variabile X1*/
        cout<< X2 <<"\n"; /*Output valore variabile X2*/
 }
 else if (Delta>0){
  X1=(-B+Delta)/2*A; /*Definizione valore di X1 nel caso Delta>0*/
        X2=(-B-Delta)/2*A; /*Definizione valore di X2 nel caso Delta>0*/
        cout<< X1 <<"\n"; /*Output valore variabile X1*/
        cout<< X2 <<"\n"; /*Output valore variabile X2*/
 }
 else if
lta<0){ 
    cout<<"Le radici sono complesse immaginarie"; /*Out put in caso Delta<0*/
 }
 
 return 0;
}

 2)Come si indica la radice quadrata?
sqrt().  E` dichiarata in math.h e ha double sia come
argomento sia come valore di ritorno.
Alex

Scusa ancora il disturbo mi puoi dare il codice per ottenere la radice
usando la funzione sqrt().
Grazie mille

 usando la funzione sqrt().
#include <math.h>
double laradice(double checchessia)
{
    return sqrt(checchessia);
}
Che altro intendi per "ottenere la radice usando la funzione
sqrt"...?  E` un po' come chiedere come ottenere la somma
usando l'operatore +, non di pare...?
Alex


A dire il vero a norma di standard mi sembra che tutte le funzioni
matematiche debbano essere definite per float e double tramite
overloading.
Peccato che alla Borland se ne freghino.
(Come pare se ne freghino degli utenti C++ visto
 la poca cura con cui hanno adattato la libreria della
Rogue Wave al loro compilatore.)
Come è messo il Visual C++?
Manlio Perillo

 Come è messo il Visual C++?
Simile.  Se non definisci _MSC_EXTENSIONS, ottieni da
math.h della roba come:
inline long double __cdecl sqrt(long double _X)
        {return (sqrtl(_X)); }
(sqrtl e` il nome non-standard che altrimenti verrebbe
usato) e similmente per float.  Ma la documentazione
non si degna neppure di menzionare questo fatto, ne`
di spiegare il perche` dell'interazione con il #define
_MSC_EXTENSIONS.  E per fortuna che la libreria standard
la supporta Plauger (Dinkumware), perche` la Microsoft
non ha neppure distribuito alcuni bug-fix importanti
dai tempi della 5.0...!
Alex

 
Ha i suoi "acciacchi" ma funziona bene.
Fausto

 usando l'operatore +, non di pare...?
Intendevo come utilizzare la funzione sqrt() per ottenere la radici di una
variabile come "numero" e assegnarla ad un'altra come "radice".

 Perché vc++ mi dice: 'fRadice' : local function definitions are illegal
Perche` le definizioni locali di funzione sono illegali.  Dunque, non
farle!
#include <math.h>
int main()
{
    double numero = 9;
    double radice = sqrt(numero);
    return 0;
}
questo calcola la radice e non fa nulla col risultato calcolato; se
vuoi emetterlo, includi anche <iostream>, *NON* <iostream.h>, e
aggiungi prima del return 0 una riga del tipo:
    std::cout << "La radice di " << numero << " e` " << radice << "\n";
Alex