-

[RISOLTO] [C++] Algoritmo valore assoluto

Stato
Discussione chiusa ad ulteriori risposte.

Squalo03

Bannato a Vita
443
92
Hardware Utente
CPU
amd fx tm 6300 six core processor
Scheda Video
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
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?
 
Mi Piace: luca9993

rodhellas

Utente Attivo
1,419
381
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

Bannato a Vita
443
92
Hardware Utente
CPU
amd fx tm 6300 six core processor
Scheda Video
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
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;
}
 
Mi Piace: luca9993
3,228
891
Hardware Utente
CPU
AMD Ryzen 5 2600x - Intel i3 6100T
Dissipatore
stock - Arctic Freezer 11LP
Scheda Madre
Asrock Fatal1ty 4K - Asus H110M
Hard Disk
Samsung 970evo - vari
RAM
16GB G.Skill TridentZ 3000 - 8GB CORSAIR Vengeance LPX 2400
Scheda Video
ATI Firepro V7900 2GB - Asus R9 280x 3Gb
Monitor
ACER 27'' 2K + Benq 19'' - Acer 24" FHD
Sistema Operativo
Windows10-pro64/OpenSUSE-QL42.3/Manjaro-17.0.2-KDE
#4


Inviato dal mio Nexus 5 utilizzando Tapatalk
 
Mi Piace: rodhellas

Squalo03

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

per favore
 
Mi Piace: luca9993

Squalo03

Bannato a Vita
443
92
Hardware Utente
CPU
amd fx tm 6300 six core processor
Scheda Video
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
Sistema Operativo
Windows 10 pro
#7
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: luca9993
3,228
891
Hardware Utente
CPU
AMD Ryzen 5 2600x - Intel i3 6100T
Dissipatore
stock - Arctic Freezer 11LP
Scheda Madre
Asrock Fatal1ty 4K - Asus H110M
Hard Disk
Samsung 970evo - vari
RAM
16GB G.Skill TridentZ 3000 - 8GB CORSAIR Vengeance LPX 2400
Scheda Video
ATI Firepro V7900 2GB - Asus R9 280x 3Gb
Monitor
ACER 27'' 2K + Benq 19'' - Acer 24" FHD
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
 
Mi Piace: luca9993

Squalo03

Bannato a Vita
443
92
Hardware Utente
CPU
amd fx tm 6300 six core processor
Scheda Video
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
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?
 
Mi Piace: luca9993

Andretti60

Utente Attivo
2,947
1,907
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

Bannato a Vita
443
92
Hardware Utente
CPU
amd fx tm 6300 six core processor
Scheda Video
nvidia geforce gtx 650
Monitor
Samsung
Periferiche
mouse
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;
}
 
Mi Piace: luca9993
3,228
891
Hardware Utente
CPU
AMD Ryzen 5 2600x - Intel i3 6100T
Dissipatore
stock - Arctic Freezer 11LP
Scheda Madre
Asrock Fatal1ty 4K - Asus H110M
Hard Disk
Samsung 970evo - vari
RAM
16GB G.Skill TridentZ 3000 - 8GB CORSAIR Vengeance LPX 2400
Scheda Video
ATI Firepro V7900 2GB - Asus R9 280x 3Gb
Monitor
ACER 27'' 2K + Benq 19'' - Acer 24" FHD
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
 

Squalo03

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

perché dice cosi'
 

Allegati

Mi Piace: luca9993
Stato
Discussione chiusa ad ulteriori risposte.

Discussioni Simili


Entra

Guarda il video live di tomshardwareita su www.twitch.tv