PDA

View Full Version : [C] Assegnamenti


piumone
23-06-2007, 17:29
Date le seguenti istruzioni di definizione e di assegnamento:

int a=-5, b=9; double c=7.3;

indicare il risultato delle seguenti espressioni:

(b % 9) || (a + 5) && (c > 5)
((c = a) && b) || ((a + b) && !a)

reptile9985
23-06-2007, 17:57
0 o false
la seconda non dovrebbe compilare

piumone
23-06-2007, 18:01
Ciao, in pratica al fatot che siano false ci sei arrivato sostituendo i valori nelle variabili e "giocando" con || = or e && = and ?

reptile9985
23-06-2007, 18:08
certo, non ho compilato ma:
0 == false
1 == true

con || e && si valuta la seconda componente solo se serve, ad es. in a || b se a è true b non lo esamina, e in a && b se a è false b non viene esaminato

non vedo altro da sapere

la seconda espressione non credo abbia senso

piumone
23-06-2007, 18:13
Grazie mille..:yeah:

..::DAVE::..
23-06-2007, 22:25
Date le seguenti istruzioni di definizione e di assegnamento:

int a=-5, b=9; double c=7.3;

indicare il risultato delle seguenti espressioni:

(b % 9) || (a + 5) && (c > 5)
((c = a) && b) || ((a + b) && !a)

certo, non ho compilato ma:
0 == false
1 == true

con || e && si valuta la seconda componente solo se serve, ad es. in a || b se a è true b non lo esamina, e in a && b se a è false b non viene esaminato

non vedo altro da sapere

la seconda espressione non credo abbia senso

io direi che la seconda compila poichè sarebbe come fare:
c=a;
(c && b) || ((a+b) && 1a);

quindi funziona.
correggetemi se sbaglio.

edit: funziona al 100% (appena testato) da solo un warning

piumone
06-09-2007, 15:28
io direi che la seconda compila poichè sarebbe come fare:
c=a;
(c && b) || ((a+b) && 1a);


Fatemi capire: c&&b come faccio a determinare che sono entrambe vere?

andbin
06-09-2007, 16:25
indicare il risultato delle seguenti espressioni:

(b % 9) || (a + 5) && (c > 5)
((c = a) && b) || ((a + b) && !a)La prima 0, la seconda 1.

Gli operatori || (OR) e && (AND) sono operatori logici, il cui risultato è sempre un 0 o 1 (di tipo int).

Es.:
7 || 0 ---> 1 (nota, lo 0 non viene nemmeno valutato perché il 7 rende già 'vera' l'espressione)
-4 && 2 ---> 1
0 || !5 ---> 0
8 && !0 ---> 1

Ognuno degli operandi viene visto solo nell'ottica di essere 'vero' (diverso da 0) o 'falso' (uguale a 0).

piumone
06-09-2007, 16:34
La prima 0, la seconda 1.

Gli operatori || (OR) e && (AND) sono operatori logici, il cui risultato è sempre un 0 o 1 (di tipo int).

Es.:
7 || 0 ---> 1 (nota, lo 0 non viene nemmeno valutato perché il 7 rende già 'vera' l'espressione)
-4 && 2 ---> 1
0 || !5 ---> 0
8 && !0 ---> 1

Ognuno degli operandi viene visto solo nell'ottica di essere 'vero' (diverso da 0) o 'falso' (uguale a 0).

Ok ti ringrazio! Ora mi è chiaro! :ave: