Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 ITPS - Secondo Anno
 Algoritmi e Strutture Dati + Lab.
 Dubbio specifiche algebriche

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
Arden_Oldman 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ò?
18   U L T I M E    R I S P O S T E    (in alto le più recenti)
savy 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?
Arden_Oldman 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?
savy 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???
@llegr@ 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
cicci89 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?
cicci89 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...
@llegr@ 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.
cicci89 Inserito il - 28/01/2010 : 11:44:06
visto che sono ricorsivi, dovrebbero avere dei passi base se no non si fermano mai...
@llegr@ Inserito il - 28/01/2010 : 10:22:43
naturalm gli ultimi 3 (valore massimo e crescente) erano di aggiungiSerie non aggiungiValore...maledetto copia-incolla
@llegr@ 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??
cicci89 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@ 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

cicci89 Inserito il - 27/01/2010 : 16:27:10
per le specifiche algebriche come avete fatto?
cassiosteel 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
savy 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'}
supernova87 Inserito il - 21/01/2010 : 18:28:33
sisi.
Arden_Oldman 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)?
supernova87 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

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,08 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000