View Single Post
Old 23-01-2007, 15:50   #6
d@vid
Senior Member
 
L'Avatar di d@vid
 
Iscritto dal: Jan 2005
Città: Napoli
Messaggi: 2424
Quote:
Originariamente inviato da mad_hhatter
di preciso dipende da cosa cambia facendo il case nel main o nel sottoprogramma... se i casi presi in considerazione sono gli stessi e se le operazioni da eseguire in ciascun caso sono le stesse (nel main e nel sottoprogramma) allora non vedo differenze.

Voglio dire (e spero di aver capito bene il problema)

main{
statements...
call sottoprogramma;
case result_sottoprogramma of:
caso1: elaborazione1;
...
casoN: elaboraioneN;
}

fa le stesse cose rispetto a:

main{
statements...
call sottoprogramma (+ parametro di stato)
}
sottoprogramma{
prima_elaborazione;
case stato of
caso1: elaborazione1;
...
casoN: elaborazioneN:
}
non mi sono spiegato bene
nel main il case non ci dovrebbe essere, poichè il main può modificare direttamente i parametri restituiti dal sottoprogramma, e la modifica da apportare (cha varia in base al punto del main da cui vien fatta la chiamata) è diretta (ossia non occorre case per farla)

Seguendo il tuo schema dovrebbe essere:

main{
statements...
call sottoprogramma;
result_sottoprogramma: elaborazione1
statements...
call sottoprogramma;
result_sottoprogramma: elaborazione2
statements
call sottoprogramma;
result_sottoprogramma: elaborazione3
statements...
}



oppure, per contro:

main{
statements...
call sottoprogramma (+ parametro di stato: s1)
statements...
call sottoprogramma (+ parametro di stato: s2)
statements...
call sottoprogramma (+ parametro di stato: s3)
statements...
}
sottoprogramma{
prima_elaborazione;
switch s
case1: elaborazione1;
case2: elaborazione2;
case3: elaborazione3:
}
__________________
~ ~ ho concluso con: capzero, DarkSiDE, Iron10, 12379, Hyxshare, Gort84, kristian0, scrafti, as2k3, gegeg, Kyrandia, Feroz, asta, nyko683, mstella, 00700, WotanBN, [COLOR=]Warez[/color], sesshoumaru, ...
nel we potrei non essere davanti al pc
d@vid è offline   Rispondi citando il messaggio o parte di esso