Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-12-2007, 20:07   #1
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
[C++] Programma per equazioni 2° grado...

Salve raga.....ho creato un programma per la risoluzione delle equazioni di secondo grado soltanto che c'è un problema....prima d tt sottolineo che è stato fatto in C++ e ed fatto da varie funzioni....tra queste mi crea problema quella per il controllo del DELTA....nel caso sia maggiore, minore o uguale a zero...ecco a voi il codice....
Codice:
// Calcolo del determinante 
float delta (void) 
{ 
   float a, b, c, result; 

      // Chiamata alla funzione che legge i valori 
      coeff ("CALCOLO DEL DELTA", &a, &b, &c); 

      // Calcolo del delta 
      result = (b*b) - 4 * (a) * (c); 

         cout <<endl << "Il DELTA risulta: "; 
         cout <<endl << b <<"^2" <<" -  4*" <<a <<"*" <<c <<"="; 
         cout << result <<endl <<endl; 


    // Chiamata alla funzione che controlla il delta 
     find_sign (result); 

     } 




// Implementazione funzione che controlla il determinante 
float find_sign (float result) 
{ 
   float ris; 
   int caso_1, caso_2, caso_3; 
   char caso; 

      // Se il delta è MAGGIORE di zero 
      if (ris > 0) return 1; 

      // Se il delta è MINORE di zero 
      else if (ris < 0) return 2; 

      // Se il delta è UGUALE a zero 
      else if (ris = 0); return 3; 



 switch (caso) 
 { 
   // Caso 1: delta MAGGIORE di zero 
   case 1: 
   { 
        #ifdef _DEBUG_ 
         cout << "Equazione con due possibili soluzioni"; 
        #endif 

   // Chiamata funzione per il calcolo delle soluzioni 
      soluz(ris); 

   } 

   // Caso 2: delta MINORE di zero 
   case 2: 
   { 
        #ifdef _DEBUG_ 
         cout << "Equazione IMPOSSIBILE"; 
        #endif 

     // Uscita dal programma immediata 
      break; 

   } 

   // Caso 3: delta UGUALE a zero 
   case 3: 
   { 
         #ifdef _DEBUG_ 
         cout << "Equazione IDENTICA: una sola soluzione"; 
         #endif 

      // Chiamata funzione per il calcolo delle soluzioni 
      soluz (ris); 

   } 
 } 

}
Il problema sta nel fatto che quando chiamo find_sign dalla funzione che calcola il delta non mi controlla quest'ultimo....cm fare???
a presto ciaociao
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2007, 21:27   #2
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
WOW....cavolo...in poche parole un disastro....ammazza....cmq doma provo a vedere se riesco a metterlo a posto grz ai tuoi suggerimenti ..... poi vi faccio sapere.....grazie mille ancora....
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 14:10   #3
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
Rieccomi qua a rompervi purtroppo....dunque....nn ho capito varie cose:

1) a find_sign ho passato (result) poichè è il parametro che devo far controllare alla funzione...almeno mi hanno insegnato così....quindi ho chiamato localmente float ris in modo da passargli il valore....poi magari sbaglio....;

2) come faccio a dire alla funzione find_sign di controllare result? è questo il problema d fondo....che si rimanda al punto 1).....in poche parole ho fatto i vari if dicendo che se maggiore di zero e deve (return 1) che sarebbe il primo caso dello switch, l'altro if dice se minore d zero e deve (return 2) che sarebbe il secondo caso dello switch e così via....

per favore è importante sto esercizio sennò mi becco il debito...
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 15:38   #4
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
Quote:
Originariamente inviato da pixie Guarda i messaggi
Rieccomi qua a rompervi purtroppo....dunque....nn ho capito varie cose:

1) a find_sign ho passato (result) poichè è il parametro che devo far controllare alla funzione...almeno mi hanno insegnato così....quindi ho chiamato localmente float ris in modo da passargli il valore....poi magari sbaglio....;

2) come faccio a dire alla funzione find_sign di controllare result? è questo il problema d fondo....che si rimanda al punto 1).....in poche parole ho fatto i vari if dicendo che se maggiore di zero e deve (return 1) che sarebbe il primo caso dello switch, l'altro if dice se minore d zero e deve (return 2) che sarebbe il secondo caso dello switch e così via....

per favore è importante sto esercizio sennò mi becco il debito...
1) devi usare la variabile risultato all'interno della funzione find_sign! ris è dichiarata ma non inizializzata!
o scrivi ris = result; come prima operazione nella funzione e tieni così tutto in resto (che però ha poco senso)
oppure sostituisci tutti i ris con risultato ed è ok.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 15:40   #5
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
ok va bn....c'ero già arrivato prima della risposta però non mi funziona lo switch e nn capisco....praticamente non mi effettua il controllo agli if per poi andare agli switch-case...
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 15:41   #6
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
Vizz se t agg a msn e mi aiuti li 10 min è un problema?
sia inteso: NN sn omosessuale....per evitare equivoci....
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 15:45   #7
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
rileggendo ora capisco che non ti è ancora chiara una cosa.
il comando return termina la funzione! non interagisce in alcun modo con lo switch successivo.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 15:57   #8
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
t ho agg a msn....ho troppo bisogno per sto programma davvero...cmq s il return so cs è....infatti l'ho tolto dal programma...e ho messo void delta....
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 16:06   #9
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
posso aiutarti solo qui sul forum, sono anche al lavoro eheheh
riincolla il codice che hai modificato fino ad ora.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 16:10   #10
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
Codice:
// Calcolo del determinante
void delta (void)
{
	float a, b, c, result;

		// Chiamata alla funzione che legge i valori
		coeff ("CALCOLO DEL DELTA", &a, &b, &c);

		// Calcolo del delta
		result = (b*b) - 4 * (a) * (c);

			cout <<endl << "Il DELTA risulta: ";
			cout <<endl << b <<"^2" <<" -  4*" <<a <<"*" <<c <<"=";
			cout << result <<endl <<endl;


	 // Chiamata alla funzione che controlla il delta
	  find_sign (result);
}



// Implementazione funzione che controlla il determinante
float find_sign (float result)
{

	char caso;

		// Se il delta è MAGGIORE di zero
		if (result > 0) caso = 1;

		// Se il delta è MINORE di zero
		else if (result < 0) caso = 2;

		// Se il delta è UGUALE a zero
		else if (result == 0); caso = 3;



 switch (caso)
 {
	// Caso 1: delta MAGGIORE di zero
	case 1:
	{
		  #ifdef _DEBUG_
			cout << "Equazione con due possibili soluzioni";
		  #endif

	// Chiamata funzione per il calcolo delle soluzioni
		soluz(result);

	}

	// Caso 2: delta MINORE di zero
	case 2:
	{
		  #ifdef _DEBUG_
			cout << "Equazione IMPOSSIBILE";
		  #endif

	  // Uscita dal programma immediata
	   break;

	}

	// Caso 3: delta UGUALE a zero
	case 3:
	{
		   #ifdef _DEBUG_
			cout << "Equazione IDENTICA: una sola soluzione";
		   #endif

	   // Chiamata funzione per il calcolo delle soluzioni
		soluz (result);

	}
 }

 return result;
}

// Implementazione funzione di calcolo delle soluzioni
float soluz (float result)
{
   float a, b, c, ris, soluz_1, soluz_2;

   // Calcolo prima soluzione
   soluz_1 = (-b + sqrt(ris))/2*a;
	cout <<endl << "La PRIMA soluzione è: ";
	cout <<endl <<"-" <<b <<" + " <<"rad " <<ris <<endl <<" /" <<" 2" <<"*" <<a;
	cout <<" = " <<soluz_1 <<endl <<endl;

   system ("pause");

   // Calcolo seconda soluzione
   soluz_2 = (-b - sqrt(ris))/2*a;
	cout <<endl << "La SECONDA soluzione è: ";
	cout <<endl <<"-" <<b <<" - " <<"rad " <<ris <<endl <<" /" <<" 2" <<"*";
	cout <<a <<" = " <<soluz_2 <<endl <<endl;

	system ("pause");


	}


void restart ()
{
	char conferma;

	cout <<"Vuoi riavviare il programma?...Premi [Y/N]";
	cin >> conferma;

	if (conferma = 'Y') {
	   cout <<"Hai deciso di riavviare il programma. BUON  PROSEGUIMENTO !!!";
	   goto inizio;
	}

	else {
	  cout <<"Hai deciso di terminare il programma. BUONA GIORNATA !!!" <<endl;

	  system ("pause");
	  exit ('0');
	}

}
questo è tt qnt....beh l'ultima parte se vuoi lasciala perdere
era solo per far ricominciare il programma
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 16:11   #11
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
ah sia chiaro...manca la parte del main e della lettura dei valori
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 16:17   #12
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
ah si è vero ke scemo ....cmq mi dice il compilatore (turbo c++) "code has no effect"....e me lo indica su "if (result == 0)..."
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 16:27   #13
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
uhm ok un problema l'hai risolto...grz mille...però ade ce n'è un altro....alla fine del programma...dopo il calcolo delle soluzioni mi dice "Invalid floating point operation" e mi indica in rosso la linea del find_sign(result) nel delta...in pratica qnd chiamo la funzione per controllo del delta
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 16:30   #14
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
no ok ho risolto....grz mille d tt...se ho ancora dei problemi t faccio sapere...grz ancora ciaociao
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 16:34   #15
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
noooooooo i goto nooooooooooo
meglio se trovi una soluzione senza usare i goto.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 16:40   #16
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
perchè????? .... okok...no cmq perchè?? cm faccio senza??? a parte che nn funziona lo stesso pure cn i goto....cmq

ah ho un nuovo problema....qnd calcolo le soluzioni a volte qnd queste sn negative il programma mi termina cn "equazione impossibile"...e cm se controllasse le soluzioni trovate...che cavolo!!!! perchè??
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 16:58   #17
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
http://it.wikipedia.org/wiki/GOTO qui ti spiega come mai non si dovrebbero usare i goto in programmi strutturati
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 17:11   #18
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
uhm capito....kiari cm sempre ....grz mille...ade devo andare via poi stase do un occhiata al programma e vediamo di metterlo a posto ....poi v faccio sapere e v rompo le balle cm sempre .....a presto ciaociao
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 21:25   #19
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
ok dunque....questa è la situazione...il programma d base è stato completato finalmente grz al vostro GRANDISSIMO buon animo....quindi ade vorrei inserire una funzione che mi faccia ripartire il programma....all'inizio del programma ho un main che chiede 1 per avviare il programma o 0 per chiudere il programma....in poche parole vorrei tornare a questo punto qnd si è in fondo al programma ma cm???
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2007, 21:50   #20
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
tt il programma dentro un while??? wow mai fatto dai provo
pixie è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Blue Origin annuncia un aerofreno ripieg...
Blue Origin annuncia una nuova versione ...
LG UltraFine evo 6K: il primo monitor al...
DJI cambia direzione: investe in Elegoo ...
Black Friday Narwal 2025: risparmi da ca...
Phishing evoluto contro Apple ID: caso f...
Prestazioni in discesa nei giochi? NVIDI...
Addio ai banner dei cookie? L'UE spinge ...
Le offerte Black Friday per gli smartpho...
Il controllo qualità degli iPhone...
Qualcomm Snapdragon X Elite vola con il ...
A2RL Season 2: storia, innovazione e sor...
Core Ultra Series 3: Intel conferma l'ev...
Black Friday Amazon: la GeForce RTX 5070...
EcoFlow, il Black Friday porta grande ri...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:18.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v