Linguaggio c++

  • Nuovo server! Potrebbero esserci ancora piccoli problemi legati alle disponibilità dei servizi del Forum. Scopri di più

Squalo03

Utente Attivo
138
18
Hardware Utente
Monitor
Samsung
Sistema Operativo
Windows 10 pro
#1
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?
 

rodhellas

Utente Attivo
1,415
377
Hardware Utente
CPU
Intel i5 3470
Scheda Madre
AsRock H77 pro4/mvp
Hard Disk
120GB SSD + 1TB HD
RAM
12GB Corsair XMS3 1333mhz
Scheda Video
Gigabyte GTX 960 OC
Scheda Audio
Integrata
Monitor
SyncMaster 223BW
Alimentatore
Antec HCG-520M
Case
Thermaltake Commander Ms-i Snow Edition
Sistema Operativo
Windows 10 64bit
#2
Perchè nel primo if stai assegnando 0 a x ( x=0 ). Devi usare ==
 

Squalo03

Utente Attivo
138
18
Hardware Utente
Monitor
Samsung
Sistema Operativo
Windows 10 pro
#3
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;
}
 
2,895
735
Hardware Utente
CPU
i7 3770
Dissipatore
stock intel
Scheda Madre
Gigabyte GA-H67A-UD3H-B3
Hard Disk
SSD SAMSUNG 850EVO 250GB + HDD WD GREEN CAVIAR 2TB
RAM
16GB = Corsair XMS3 4x4GB DDR3 1600MHz CL9
Scheda Video
ATI Firepro V7900 2GB
Scheda Audio
Soundblaster X-Fi
Monitor
HP 27'' + Benq 19''
Sistema Operativo
Windows10-pro64/OpenSUSE-QL42.3/Manjaro-17.0.2-KDE
#4


Inviato dal mio Nexus 5 utilizzando Tapatalk
 
Mi Piace: rodhellas
2,895
735
Hardware Utente
CPU
i7 3770
Dissipatore
stock intel
Scheda Madre
Gigabyte GA-H67A-UD3H-B3
Hard Disk
SSD SAMSUNG 850EVO 250GB + HDD WD GREEN CAVIAR 2TB
RAM
16GB = Corsair XMS3 4x4GB DDR3 1600MHz CL9
Scheda Video
ATI Firepro V7900 2GB
Scheda Audio
Soundblaster X-Fi
Monitor
HP 27'' + Benq 19''
Sistema Operativo
Windows10-pro64/OpenSUSE-QL42.3/Manjaro-17.0.2-KDE
#8
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
 

Squalo03

Utente Attivo
138
18
Hardware Utente
Monitor
Samsung
Sistema Operativo
Windows 10 pro
#9
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?
 

Andretti60

Utente Attivo
2,725
1,786
Hardware Utente
#10
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

Utente Attivo
138
18
Hardware Utente
Monitor
Samsung
Sistema Operativo
Windows 10 pro
#11
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;
}
 
2,895
735
Hardware Utente
CPU
i7 3770
Dissipatore
stock intel
Scheda Madre
Gigabyte GA-H67A-UD3H-B3
Hard Disk
SSD SAMSUNG 850EVO 250GB + HDD WD GREEN CAVIAR 2TB
RAM
16GB = Corsair XMS3 4x4GB DDR3 1600MHz CL9
Scheda Video
ATI Firepro V7900 2GB
Scheda Audio
Soundblaster X-Fi
Monitor
HP 27'' + Benq 19''
Sistema Operativo
Windows10-pro64/OpenSUSE-QL42.3/Manjaro-17.0.2-KDE
#13
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
 

Discussioni Simili