RISOLTO [C++] Algoritmo valore assoluto

Stato
Discussione chiusa ad ulteriori risposte.

Squalo03

Bannato a Vita
443
92
CPU
amd fx tm 6300 six core processor
GPU
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
OS
Windows 10 pro
salve a tutti dovrei fare un algoritmo in c++ del valore assoluto :
//librerie
#include <iostream>
using namespace std;

//valore assoluto
int main(){
float x,V;
cout<<"inserire il valore del numero " <<endl;
cin>>x;
if (x=0)
cout<<"non lo posso calcolare "<<endl;
else
if(x>=0)
V=x;
else
V=-x;
cout<<"il valore assoluto e' "<<V<<endl;
system("PAUSE");
return 0;
}
ho fatto questo l'ho eseguito ma quando vado ad inserire il numero se è 0 mi devi dire non lo posso calcolare se il numero e negativo me lo deve dare positivo ad esempio -3 +3
però se metto 0 mi dice che il valore assoluto è 0 ma non deve seere cosi se metto -2 mi da 0 perche?


chi mi può aiutare?
 
  • Mi piace
Reazioni: luca9993

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Perchè nel primo if stai assegnando 0 a x ( x=0 ). Devi usare ==
 

Squalo03

Bannato a Vita
443
92
CPU
amd fx tm 6300 six core processor
GPU
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
OS
Windows 10 pro
2 volte ==?
Post unito automaticamente:

perchè se metto 0 dice il valore assoluto non lo posso calcolare e poi sotto mi dice il valore assoluto è 0?

//librerie
#include <iostream>
using namespace std;

//valore assoluto
int main(){
float x,V;
cout<<"inserire il valore del numero " <<endl;
cin>>x;
if (x==0)
cout<<"non lo posso calcolare "<<endl;
else
if(x>=0)
V=x;
else
V=-x;
cout<<"il valore assoluto e' "<<V<<endl;
system("PAUSE");
return 0;
}
 
  • Mi piace
Reazioni: luca9993

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3


Inviato dal mio Nexus 5 utilizzando Tapatalk
 
  • Mi piace
Reazioni: rodhellas

Squalo03

Bannato a Vita
443
92
CPU
amd fx tm 6300 six core processor
GPU
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
OS
Windows 10 pro
mi aiutate? per favore sono agli inizi? è giusto il codice?
Post unito automaticamente:

per favore
 
  • Mi piace
Reazioni: luca9993

Squalo03

Bannato a Vita
443
92
CPU
amd fx tm 6300 six core processor
GPU
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
OS
Windows 10 pro
Per la cronaca, il valore assoluto di zero e' zero.


si ma quando inserisco 0 mi deve dire non lo posso calcolare invece mi dice non lo posso calcolare e poi il valore assoluto è 0
mi deve dire solo non lo posso calcolare come devo fare?
 
  • Mi piace
Reazioni: luca9993

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Te lo ha detto sopra, comunque per queste banalità non chiedere in un forum, fai almeno lo sforzo di informarti, non dico studiare! Non è che le cose si imparano facendo a caso e chiedendo aiuto: esistono i manuali, i tutorials, i corsi, i libretti di istruzioni ecc...

La condizione del primo if è un'assegnazione e non un confronto.
Inoltre nel secondo ripeti la stessa condizione mettendo "maggiore o uguale"..

Si, e poi non è vero che non si può calcolare il valore assoluto di 0.. dove hai studiato matematica?

Inviato dal mio Nexus 5 utilizzando Tapatalk
 
  • Mi piace
Reazioni: luca9993

Squalo03

Bannato a Vita
443
92
CPU
amd fx tm 6300 six core processor
GPU
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
OS
Windows 10 pro
Te lo ha detto sopra, comunque per queste banalità non chiedere in un forum, fai almeno lo sforzo di informarti, non dico studiare! Non è che le cose si imparano facendo a caso e chiedendo aiuto: esistono i manuali, i tutorials, i corsi, i libretti di istruzioni ecc...

La condizione del primo if è un'assegnazione e non un confronto.
Inoltre nel secondo ripeti la stessa condizione mettendo "maggiore o uguale"..

Inviato dal mio Nexus 5 utilizzando Tapatalk

cioè come dovrei fare?
 
  • Mi piace
Reazioni: luca9993

Andretti60

Utente Èlite
6,440
5,091
Ricorda che in C il "corpo" di una condizione if...else e' racchiuso in parentesi graffe se ci sono piu' di una istruzione da eseguire, tipo:
C:
if (...)
{
   istruzione...
   istruzione...
}
else
{
   istruzione...
   istruzione...
}
io per evitare errori metto sempre le parantesi graffe, anche se c'e' una istruzione sola, perche' in futuro non si sa mai come si evolvera' il codice.
 

Squalo03

Bannato a Vita
443
92
CPU
amd fx tm 6300 six core processor
GPU
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
OS
Windows 10 pro
Te lo ha detto sopra, comunque per queste banalità non chiedere in un forum, fai almeno lo sforzo di informarti, non dico studiare! Non è che le cose si imparano facendo a caso e chiedendo aiuto: esistono i manuali, i tutorials, i corsi, i libretti di istruzioni ecc...

La condizione del primo if è un'assegnazione e non un confronto.
Inoltre nel secondo ripeti la stessa condizione mettendo "maggiore o uguale"..

Si, e poi non è vero che non si può calcolare il valore assoluto di 0

Inviato dal mio Nexus 5 utilizzando Tapatalk
è un ipotesi che mi ha dato da fare la prof
Post unito automaticamente:

cosi?
//librerie
#include <iostream>
using namespace std;

//valore assoluto
int main(){
float x,V;
cout<<"inserire il valore del numero " <<endl;
cin>>x;
if (x==0)
{cout<<" non lo posso calcolare "<<endl;}
else
if(x>=0)
{V=x;
}
else
V=-x;
cout<<"il valore assoluto e' "<<V<<endl;
system("PAUSE");
return 0;
}
 
  • Mi piace
Reazioni: luca9993

JayX

Utente Attivo
285
102
si ma quando inserisco 0 mi deve dire non lo posso calcolare invece mi dice non lo posso calcolare e poi il valore assoluto è 0
mi deve dire solo non lo posso calcolare come devo fare?
Controlla gli If e le parentesi, devi annidarli nel modo corretto.
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Comunque basta una sola condizione.. per avere il valore assoluto di "n" in "abs"...

abs = n;
If(n<0) { abs = -n }


Inviato dal mio Nexus 5 utilizzando Tapatalk
 

Squalo03

Bannato a Vita
443
92
CPU
amd fx tm 6300 six core processor
GPU
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
OS
Windows 10 pro
perchè dice il valore è 0 deve dire solo non lo posso calcolare
Post unito automaticamente:

perché dice cosi'
 

Allegati

  • Cattura.PNG
    Cattura.PNG
    12.6 KB · Visualizzazioni: 531
  • Mi piace
Reazioni: luca9993
Stato
Discussione chiusa ad ulteriori risposte.

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili