.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- Domanda di teoria Mereghetti (http://www.dsy.it/forum/showthread.php?threadid=39972)


Posted by caha on 08-02-2010 12:37:

Domanda di teoria Mereghetti

Ciao,
ho una domanda per quanto riguarda la teoria di mereghetti.
Secondo il libro di testo consigliato dal prof e secondo le lezioni fatte in aula esiste una regola chiamata: "lazy evaluation".

esempio:
abbiamo due espr e volgiamo valutare:

1)
<espr 1> && <espr 2>,
<espr 1> || <espr 2>,

se <espr 1> viene valutato false, l'<espr 2> non viene valutato, cioè non si considera neanche. Quindo le variabili non vengono incr/decr.
Altrimenti se <espr 1> è true, l' <espr 2> viene valutato.
Questo vale sia per && che per ||.


2) <espr 1> & <espr 2>,
<espr 1> | <espr 2>,

in questi casi non vale questa regola, sia <espr 2> che <espr 2> vengono valutate indipendentemente che siano true o false.Quindi le variabili vengono incr/decr, a secondo dell'esercizio.


Domanda:come mai negli esercizi svolti sul sito,- a volte vengono rispettate queste regole e a volte no?
Questo lo devo considerare un errore fatto a caso oppure esiste un altra regola che fa alcuni eccezioni?

plaese risp
grazie


Posted by matt on 08-02-2010 17:02:

Dovresti postare l'esempio dove pensi non venga rispettata la lazy evaluation... è possibile che si tratti di un refuso comunque


Posted by caha on 09-02-2010 09:54:

esempio comitino a.a 08/09

in questo caso dove x=2 e y=3 x y
((x=y) > y + 1) || (x++ == --y) false 4 2

non viene rispettato, cioè i variabili x,y sono incr e decr


Invece qui si che vienne rispettato:

(x++ == y++) && !((x = y) == x%2)


Posted by Stetolo on 09-02-2010 10:44:

Originally posted by caha
[B]esempio comitino a.a 08/09

in questo caso dove x=2 e y=3 x y
((x=y) > y + 1) || (x++ == --y) false 4 2

non viene rispettato, cioè i variabili x,y sono incr e decr


La parte a sinistra dell' || è falsa (3 > 3+1), quindi la valutazione dell'espressione prosegue alla seconda parte. Nel caso dell'OR la lazy evaluation "avviene" solo nel caso il primo pezzo valutato sia vero, altrimenti si prosegue nella parte restante, nel caso ci sia qualche espressione vera (è sufficiente una sola espressione vera a rendere vero l'intero OR).

__________________
Stetolo


Posted by Paul442 on 09-02-2010 17:18:

quindi se è false si prosegue mentre se è true non si prosegue? ho capito bene?


Posted by Stetolo on 09-02-2010 18:11:

Originally posted by Paul442
quindi se è false si prosegue mentre se è true non si prosegue? ho capito bene?


Esatto, nel caso di OR è così.
Nel caso di AND invece è il contrario.

Questo comportamento si spiega col fatto che un'espressione in cui compare l'OR ha bisogno che almeno una delle parti sia vera per risultare nel complesso vera, quindi appena se ne incontra un "pezzo" vero, il programma smette di valutare le seguenti perchè sarebbe inutile, risulterebbe comunque vera; perchè sia falsa, invece, è necessario che TUTTE le parti che compongono l'espressione siano false, perciò non si può attuare la lazy evaluation, finchè non sono tutte verificate.

Le espressioni con AND sono vere solo se tutte le espressioni che le compongono sono vere, perciò nel caso se ne incontri un "pezzo" falso è inutile proseguire la valutazione, perchè risulterebbe comunque falsa nel complesso: quindi la lazy evaluation si attua solo nel caso in cui si trovano espressioni false, altrimenti finchè sono vere, si deve proseguire la valutazione per determinare l'eventuale verità complessiva dell'AND (che si ha solo se TUTTE sono vere).

In altre parole la lazy evaluation è una scorciatoia che si può imboccare solo nel momento in cui il programma sa per certo quale sarà l'esito della valutazione.

__________________
Stetolo


Posted by Paul442 on 10-02-2010 08:15:

Grazie mille...gentilissimo..senti invece gli esercizi sui diagrammi UML tu li hai capiti per caso? io quello dell'ultimo compito non l'ho mica capito onestamente...


Posted by Stetolo on 10-02-2010 08:27:

Quando ho seguito io non facevamo esercizi sull'UML, sorry!

__________________
Stetolo


Posted by Mr.O on 10-02-2010 10:08:

volevo chiedervi se sapete qualche libro/sito dove ci sono degli esercizi (per la creazione di classi) giudati o almeno che ci sia la soluzione per avere un riscontro finale...

grazie


All times are GMT. The time now is 01:20.
Show all 9 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.