| 
        
          | 
              
                | Autore |  Discussione  |  |  
                | Arden_OldmanUtente medio
 
   
 
  
 Regione: Puglia
 Prov.: Bari
 
 
   
 | 
                    
                      |  Inserito il - 20/01/2010 :  16:23:23         
 |  
           	| Salve a tutti, vorrei porvi una questione: non mi è chiaro quando, nelle specifiche algebriche, bisogna usare la composizione come nel seguente caso: per esempio nelle specifche algebriche del dizionario applicando l'osservazione "delete(d',k')" al costruttore di d' "insert(d,k,i)" dove d è il dizionario, k la chiave, i l'elemento, il risultato sarà: "if k=k' then d   else insert(delete(d,k'),k,i)".
 nel caso di k diverso da k' (ramo else) abbiamo "invertito" le operazioni applicando la "insert" sulla "delete". Quando occorre fare ciò?
 |  
                      | "L'informatica non riguarda i computer più di quanto l'astronomia riguardi i telescopi." (Edsger Wybe Dijkstra)
 |  
                      | Modificato da - Arden_Oldman in Data 20/01/2010  16:27:23
 |  |  
                | supernova87Utente medio
 
   
 
                 
                Regione: Puglia
 Prov.: Bari
 Città: MOLFETTA
 
 
   
 | 
                    
                      |  Inserito il - 20/01/2010 :  18:58:51           
 |  
                      | bisogna fare ciò quando l'inserimento e l'eliminazione sono due operazioni applicate rispettivamente a due elementi diversi. in questo caso l'ordine non è rilevante |  
                      |  |  |  
                | Arden_OldmanUtente medio
 
   
 
  
 
                Regione: Puglia
 Prov.: Bari
 
 
   
 | 
                    
                      |  Inserito il - 20/01/2010 :  19:27:41         
 |  
                      | Grazie per la risposta. Quindi in questo caso con "elementi diversi" ti riferisci a k diverso da k' (ramo else)? |  
                      | "L'informatica non riguarda i computer più di quanto l'astronomia riguardi i telescopi." (Edsger Wybe Dijkstra)
 |  
                      |  |  |  
                | supernova87Utente medio
 
   
 
                 
                Regione: Puglia
 Prov.: Bari
 Città: MOLFETTA
 
 
   
 | 
                    
                      |  Inserito il - 21/01/2010 :  18:28:33           
 |  
                      | sisi. |  
                      |  |  |  
                | savyUtente medio
 
   
 
                 
                Regione: Puglia
 Prov.: Bari
 Città: Bitonto
 
 
   
 | 
                    
                      |  Inserito il - 21/01/2010 :  18:37:02         
 |  
                      | http://www.di.uniba.it/~malerba/courses/asd/exams/Scritto20090611.pdf come avete sviluppato la specifica semantica assiomatica?
 io ho rappresentato l'istogramma come un insieme di serie, ed ogni serie come una sequenza di reali.
 ad esempio l'operatore AggiungiValore(ist,serie,reale)=ist'   l'ho svolto così:
 Pre: ist != insiemeVuoto, serie=<r1,r2,..,ri> con i>=0
 Post: serie' = <r1,r2,...,ri,r>  ist'=ist - {serie}U{serie'}
 |  
                      |  |  |  
                | cassiosteelNuovo Utente
 
 
 
                 
               
   
 | 
                    
                      |  Inserito il - 22/01/2010 :  16:27:35         
 |  
                      | Io l'ho rappresentato l'istogramma come una sequenza di serie <S1,S2,...,Sn> e le serie come una serie di valori reali <r1,r2,...,rn>, credo che vadano bene entrambe le risoluzioni |  
                      |  |  |  
                | cicci89Nuovo Utente
 
 
 
                 
                Regione: Puglia
 Prov.: Foggia
 Città: Foggia
 
 
   
 | 
                    
                      |  Inserito il - 27/01/2010 :  16:27:10           
 |  
                      | per le specifiche algebriche come avete fatto? |  
                      |  |  |  
                | @llegr@Nuovo Utente
 
 
 
                 
                Regione: Puglia
 Prov.: Bari
 Città: Castellana Grotte
 
 
   
 | 
                    
                      |  Inserito il - 27/01/2010 :  19:43:37         
 |  
                      | Citazione:Messaggio inserito da cicci89
 
 per le specifiche algebriche come avete fatto?
 
 
 
 
 Innanzitutto, come costruttori di I' ci sono: creaIstogramma(), aggiungiValore (I,S,a) e aggiungiSerie (I,S).
 come osservazioni: lunghSerie (I',S'), valore(I',S'),massimo(I',S'), crescente(I',S')
 Nella colonna di creaIstogramma sono tutti error quindi corrispondono le specifiche di restrizione
 Le altre sono:
 
 lunghSerie(aggiungiValore(I,S,a), S')=
 if S'=S then lunghSerie(aggiungiValore(I,S,a), S)
 else lunghSerie(I,S')
 
 Valore(aggiungiValore(I,S,a), S',intpos)=
 if S'=S then valore(aggiungiValore(I,S,a), S, intpos)
 else valore (I,S',intpos)
 
 massimo(aggiungiValore(I,S,a), S')=
 if S'=S then massimo(aggiungiValore(I,S,a), S)
 else massimo(I,S')
 
 crescente(aggiungiValore(I,S,a), S')=
 if S'=S then crescente(aggiungiValore(I,S,a), S)
 else crescxente(I,S')
 
 lunghSerie(aggiungiSerie(I,S), S')=
 if S'=S then 0 else lunghSerie(I,S')
 
 Valore(aggiungiValore(I,S,a), S',intpos)=
 if S'=S then error else valore(I,S',intpos)
 
 massimo(aggiungiValore(I,S,a), S')=
 if S'=S then error else massimo(I,S')
 
 crescente(aggiungiValore(I,S,a), S')=
 if S'=S then errori else crescente(I,S')
 
 Naturalmente si tratta di esercitazione personale e per tale non esente da eventuali errori
  
 
 |  
                      |  |  |  
                | cicci89Nuovo Utente
 
 
 
                 
                Regione: Puglia
 Prov.: Foggia
 Città: Foggia
 
 
   
 | 
                    
                      |  Inserito il - 27/01/2010 :  23:45:56           
 |  
                      | secondo me non va  massimo, crescente e valore non hanno dei passi base, daranno sempre error....  :) |  
                      |  |  |  
                | @llegr@Nuovo Utente
 
 
 
                 
                Regione: Puglia
 Prov.: Bari
 Città: Castellana Grotte
 
 
   
 | 
                    
                      |  Inserito il - 28/01/2010 :  10:20:41         
 |  
                      | Citazione:Messaggio inserito da cicci89
 
 secondo me non va
  massimo, crescente e valore non hanno dei passi base, daranno sempre error....  :) 
 
 
 cosa intendi per passi base??
 |  
                      |  |  |  
                | @llegr@Nuovo Utente
 
 
 
                 
                Regione: Puglia
 Prov.: Bari
 Città: Castellana Grotte
 
 
   
 | 
                    
                      |  Inserito il - 28/01/2010 :  10:22:43         
 |  
                      | naturalm gli ultimi 3 (valore massimo e crescente) erano di aggiungiSerie non aggiungiValore...maledetto copia-incolla  |  
                      |  |  |  
                | cicci89Nuovo Utente
 
 
 
                 
                Regione: Puglia
 Prov.: Foggia
 Città: Foggia
 
 
   
 | 
                    
                      |  Inserito il - 28/01/2010 :  11:44:06           
 |  
                      | visto che sono ricorsivi, dovrebbero avere dei passi base se no non si fermano mai... |  
                      |  |  |  
                | @llegr@Nuovo Utente
 
 
 
                 
                Regione: Puglia
 Prov.: Bari
 Città: Castellana Grotte
 
 
   
 | 
                    
                      |  Inserito il - 29/01/2010 :  09:26:41         
 |  
                      | Citazione:Messaggio inserito da cicci89
 
 visto che sono ricorsivi, dovrebbero avere dei passi base se no non si fermano mai...
 
 
 ma non sono convinta di quanto dici, sopratt non vedo la ricorsivita'.
 valore e' una semplice lettura (come leggielem) anche se di un elem di tipo reale e non int
 massimo ricerca il massimo tra elem gia' presenti in Si
 idem per crescente che deve valutare se tutti gli elem a1<=a2<=a3<=...<=an
 
 
 infatti le loro specifiche assiomat semantiche sono:
 valore (I,S,j)=a
 pre: I= S1,...Sm m>=1 S=Si=a1...aj...an n>=1 e 1<=i<=m
 post: a=aj
 massimo(I,S)=a
 pre: I= S1,...Sm m>=1 S=Si=a1...an n>=1 e 1<=i<=m
 post: a=aj  aj>=ak con j 1<=j<=n  per ogni k dove 1<=k<=n
 crescente(I,S)=b
 pre: I= S1,...Sm m>=1 S=Si=a1...an n>=1 e 1<=i<=m
 post: b=vero se a1<=a2<=a3<=...<=an; b=falso altrimenti.
 
 |  
                      |  |  |  
                | cicci89Nuovo Utente
 
 
 
                 
                Regione: Puglia
 Prov.: Foggia
 Città: Foggia
 
 
   
 | 
                    
                      |  Inserito il - 29/01/2010 :  17:06:52           
 |  
                      | appunto, io non vedo nelle specifiche algebriche una ricerca di un massimo o un test per vedere se la serie è crescente, ci sono solo delle chiamate ricorsive... mi spiego meglio: 
 questo è quello che tu hai scritto su valore:
 
 Valore(aggiungiValore(I,S,a), S',intpos)=
 if S'=S then valore(aggiungiValore(I,S,a), S, intpos)
 else valore (I,S',intpos)
 
 
 Valore(aggiungiSerie(I,S), S',intpos)=
 if S'=S then error else valore(I,S',intpos)
 
 ora se chiami valore(aggiungiValore ....) avrai che verrà chiamato di nuovo valore nel ramo then, e lo stesso nel ramo else (se richiami valore evidentemente c'è ricorsività)
 
 mettiamo che si arriva nella situazione che viene richiamato valore(aggiungiSerie ...)... in questo caso o si richiama ancora valore o si va in errore... quindi alla fine valore darà sempre error, perchè è l'unico passo base...
 
 lo stesso vale per massimo e crescente...
 
 |  
                      |  |  |  
                | cicci89Nuovo Utente
 
 
 
                 
                Regione: Puglia
 Prov.: Foggia
 Città: Foggia
 
 
   
 | 
                    
                      |  Inserito il - 29/01/2010 :  18:15:18           
 |  
                      | ti scrivo come ho fatto io alcuni operatori :) 
 valore(aggSerie(i,s), s', int) =   if (s = s') then error else valore(i, s', int)
 
 valore(aggValore(i,s,r), s', int) =  if ((s = s') and lunghSerie(aggValore(i,s,r),s') = int) then r
 else valore(i,s',int)
 
 
 lunghSerie(aggSerie(i,s), s') = if (s = s') then 0 else lunghSerie(i,s')
 
 lungSerie(aggValore(i,s,r), s') = if (s = s') then 1+lunghSerie(i,s',r) else lunghSerie(i,s')
 
 
 ps: si possono usare gli operatori logici and, or e not negli if?
  |  
                      |  |  |  
                | @llegr@Nuovo Utente
 
 
 
                 
                Regione: Puglia
 Prov.: Bari
 Città: Castellana Grotte
 
 
   
 | 
                    
                      |  Inserito il - 31/01/2010 :  11:24:17         
 |  
                      | gli operatori logici si possono usare... in quanto alla correttezza degli operatori ...be' si dovrebbe andare il mercol nello studio del prof
  |  
                      |  |  |  
                | savyUtente medio
 
   
 
                 
                Regione: Puglia
 Prov.: Bari
 Città: Bitonto
 
 
   
 | 
                    
                      |  Inserito il - 09/02/2010 :  12:35:38         
 |  
                      | secondo voi sono corrette le seguenti specifiche algebriche del dato astratto Albero? 
 firstChild(v,t') apllicato al costruttore insfirtssubtree(u,t,s)
 
 if v=u then false
 else
 if isin(v,t) then
 if leaf(v,t) then error
 else
 firstchild(v,t)
 else
 if isin(v,s) then
 if leaf(v,s) then error
 else
 firstchild(v,s)
 
 
 finefratelli(v,t') applicato al costruttore insfirtssubtree(u,t,s)
 
 if v = root(t) then true
 else
 if isin(v,t) then finefratelli(v,t)
 else
 if isin(v,s) then finefratelli(v,s)
 
 
 succFratello(v,t') applicato al costruttore insfirtssubtree(u,t,s)
 
 if v = root(t) then error
 else
 if isin(v,t) AND not finefratelli(v,t)
 then succFratello(v,t)
 else
 if isin(v,s) AND not finefratelli(v,s)
 then succFratello(v,s)
 
 
 cancSottoalbero(v,t') applicato al costruttore insfirtssubtree(u,t,s)
 
 if v=u AND v=root(t) then newTree()
 else
 if isin(v,t) then cancSottoalbero(v,t)
 else
 if isin(v,s) then cancSottoalbero(v,s)
 
 
 
 insSottoalbero(v,t',t'') applicato al costruttore insfirtssubtree(u,t,s) come l'avete svolto???
 |  
                      |  |  |  
                | Arden_OldmanUtente medio
 
   
 
  
 
                Regione: Puglia
 Prov.: Bari
 
 
   
 | 
                    
                      |  Inserito il - 10/02/2010 :  11:56:40         
 |  
                      | Citazione:Messaggio inserito da savy
 
 secondo voi sono corrette le seguenti specifiche algebriche del dato astratto Albero?
 
 firstChild(v,t') apllicato al costruttore insfirtssubtree(u,t,s)
 
 if v=u then false
 else
 if isin(v,t) then
 if leaf(v,t) then error
 else
 firstchild(v,t)
 else
 if isin(v,s) then
 if leaf(v,s) then error
 else
 firstchild(v,s)
 
 
 finefratelli(v,t') applicato al costruttore insfirtssubtree(u,t,s)
 
 if v = root(t) then true
 else
 if isin(v,t) then finefratelli(v,t)
 else
 if isin(v,s) then finefratelli(v,s)
 
 
 succFratello(v,t') applicato al costruttore insfirtssubtree(u,t,s)
 
 if v = root(t) then error
 else
 if isin(v,t) AND not finefratelli(v,t)
 then succFratello(v,t)
 else
 if isin(v,s) AND not finefratelli(v,s)
 then succFratello(v,s)
 
 
 cancSottoalbero(v,t') applicato al costruttore insfirtssubtree(u,t,s)
 
 if v=u AND v=root(t) then newTree()
 else
 if isin(v,t) then cancSottoalbero(v,t)
 else
 if isin(v,s) then cancSottoalbero(v,s)
 
 
 
 insSottoalbero(v,t',t'') applicato al costruttore insfirtssubtree(u,t,s) come l'avete svolto???
 
 
 anche io vorrei saperlo, c'è qualcuno che le ha fatte?
 |  
                      | "L'informatica non riguarda i computer più di quanto l'astronomia riguardi i telescopi." (Edsger Wybe Dijkstra)
 |  
                      |  |  |  
                | savyUtente medio
 
   
 
                 
                Regione: Puglia
 Prov.: Bari
 Città: Bitonto
 
 
   
 | 
                    
                      |  Inserito il - 11/02/2010 :  11:30:22         
 |  
                      | Citazione:Messaggio inserito da savy
 
 secondo voi sono corrette le seguenti specifiche algebriche del dato astratto Albero?
 
 firstChild(v,t') apllicato al costruttore insfirtssubtree(u,t,s)
 
 if v=u then false
 else
 if isin(v,t) then
 if leaf(v,t) then error
 else
 firstchild(v,t)
 else
 if isin(v,s) then
 if leaf(v,s) then error
 else
 firstchild(v,s)
 
 
 finefratelli(v,t') applicato al costruttore insfirtssubtree(u,t,s)
 
 if v = root(t) then true
 else
 if isin(v,t) then finefratelli(v,t)
 else
 if isin(v,s) then finefratelli(v,s)
 
 
 succFratello(v,t') applicato al costruttore insfirtssubtree(u,t,s)
 
 if v = root(t) then error
 else
 if isin(v,t) AND not finefratelli(v,t)
 then succFratello(v,t)
 else
 if isin(v,s) AND not finefratelli(v,s)
 then succFratello(v,s)
 
 
 cancSottoalbero(v,t') applicato al costruttore insfirtssubtree(u,t,s)
 
 if v=u AND v=root(t) then newTree()
 else
 if isin(v,t) then cancSottoalbero(v,t)
 else
 if isin(v,s) then cancSottoalbero(v,s)
 
 
 
 insSottoalbero(v,t',t'') applicato al costruttore insfirtssubtree(u,t,s) come l'avete svolto???
 
 
 
 
 nessuno mi può aiutare?
 |  
                      |  |  |  
                |  |  Discussione  |  |  |  |