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
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

Arden_Oldman
Utente medio

man


Regione: Puglia
Prov.: Bari


Inserito il - 20/01/2010 : 16:23:23  Mostra Profilo  Visita l'Homepage di Arden_Oldman Invia a Arden_Oldman un Messaggio Privato  Rispondi Quotando
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

supernova87
Utente medio


Regione: Puglia
Prov.: Bari
Città: MOLFETTA


Inserito il - 20/01/2010 : 18:58:51  Mostra Profilo  Visita l'Homepage di supernova87  Clicca per vedere l'indirizzo MSN di supernova87 Invia a supernova87 un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

Arden_Oldman
Utente medio

man


Regione: Puglia
Prov.: Bari


Inserito il - 20/01/2010 : 19:27:41  Mostra Profilo  Visita l'Homepage di Arden_Oldman Invia a Arden_Oldman un Messaggio Privato  Rispondi Quotando
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)
Torna all'inizio della Pagina

supernova87
Utente medio


Regione: Puglia
Prov.: Bari
Città: MOLFETTA


Inserito il - 21/01/2010 : 18:28:33  Mostra Profilo  Visita l'Homepage di supernova87  Clicca per vedere l'indirizzo MSN di supernova87 Invia a supernova87 un Messaggio Privato  Rispondi Quotando
sisi.
Torna all'inizio della Pagina

savy
Utente medio


Regione: Puglia
Prov.: Bari
Città: Bitonto


Inserito il - 21/01/2010 : 18:37:02  Mostra Profilo  Visita l'Homepage di savy Invia a savy un Messaggio Privato  Rispondi Quotando
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'}
Torna all'inizio della Pagina

cassiosteel
Nuovo Utente



Inserito il - 22/01/2010 : 16:27:35  Mostra Profilo  Visita l'Homepage di cassiosteel Invia a cassiosteel un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

cicci89
Nuovo Utente


Regione: Puglia
Prov.: Foggia
Città: Foggia


Inserito il - 27/01/2010 : 16:27:10  Mostra Profilo  Visita l'Homepage di cicci89  Clicca per vedere l'indirizzo MSN di cicci89 Invia a cicci89 un Messaggio Privato  Rispondi Quotando
per le specifiche algebriche come avete fatto?
Torna all'inizio della Pagina

@llegr@
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Castellana Grotte


Inserito il - 27/01/2010 : 19:43:37  Mostra Profilo  Visita l'Homepage di @llegr@ Invia a @llegr@ un Messaggio Privato  Rispondi Quotando
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

Torna all'inizio della Pagina

cicci89
Nuovo Utente


Regione: Puglia
Prov.: Foggia
Città: Foggia


Inserito il - 27/01/2010 : 23:45:56  Mostra Profilo  Visita l'Homepage di cicci89  Clicca per vedere l'indirizzo MSN di cicci89 Invia a cicci89 un Messaggio Privato  Rispondi Quotando
secondo me non va massimo, crescente e valore non hanno dei passi base, daranno sempre error.... :)
Torna all'inizio della Pagina

@llegr@
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Castellana Grotte


Inserito il - 28/01/2010 : 10:20:41  Mostra Profilo  Visita l'Homepage di @llegr@ Invia a @llegr@ un Messaggio Privato  Rispondi Quotando
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??
Torna all'inizio della Pagina

@llegr@
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Castellana Grotte


Inserito il - 28/01/2010 : 10:22:43  Mostra Profilo  Visita l'Homepage di @llegr@ Invia a @llegr@ un Messaggio Privato  Rispondi Quotando
naturalm gli ultimi 3 (valore massimo e crescente) erano di aggiungiSerie non aggiungiValore...maledetto copia-incolla
Torna all'inizio della Pagina

cicci89
Nuovo Utente


Regione: Puglia
Prov.: Foggia
Città: Foggia


Inserito il - 28/01/2010 : 11:44:06  Mostra Profilo  Visita l'Homepage di cicci89  Clicca per vedere l'indirizzo MSN di cicci89 Invia a cicci89 un Messaggio Privato  Rispondi Quotando
visto che sono ricorsivi, dovrebbero avere dei passi base se no non si fermano mai...
Torna all'inizio della Pagina

@llegr@
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Castellana Grotte


Inserito il - 29/01/2010 : 09:26:41  Mostra Profilo  Visita l'Homepage di @llegr@ Invia a @llegr@ un Messaggio Privato  Rispondi Quotando
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.
Torna all'inizio della Pagina

cicci89
Nuovo Utente


Regione: Puglia
Prov.: Foggia
Città: Foggia


Inserito il - 29/01/2010 : 17:06:52  Mostra Profilo  Visita l'Homepage di cicci89  Clicca per vedere l'indirizzo MSN di cicci89 Invia a cicci89 un Messaggio Privato  Rispondi Quotando
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...
Torna all'inizio della Pagina

cicci89
Nuovo Utente


Regione: Puglia
Prov.: Foggia
Città: Foggia


Inserito il - 29/01/2010 : 18:15:18  Mostra Profilo  Visita l'Homepage di cicci89  Clicca per vedere l'indirizzo MSN di cicci89 Invia a cicci89 un Messaggio Privato  Rispondi Quotando
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?
Torna all'inizio della Pagina

@llegr@
Nuovo Utente


Regione: Puglia
Prov.: Bari
Città: Castellana Grotte


Inserito il - 31/01/2010 : 11:24:17  Mostra Profilo  Visita l'Homepage di @llegr@ Invia a @llegr@ un Messaggio Privato  Rispondi Quotando
gli operatori logici si possono usare...
in quanto alla correttezza degli operatori ...be' si dovrebbe andare il mercol nello studio del prof
Torna all'inizio della Pagina

savy
Utente medio


Regione: Puglia
Prov.: Bari
Città: Bitonto


Inserito il - 09/02/2010 : 12:35:38  Mostra Profilo  Visita l'Homepage di savy Invia a savy un Messaggio Privato  Rispondi Quotando
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???
Torna all'inizio della Pagina

Arden_Oldman
Utente medio

man


Regione: Puglia
Prov.: Bari


Inserito il - 10/02/2010 : 11:56:40  Mostra Profilo  Visita l'Homepage di Arden_Oldman Invia a Arden_Oldman un Messaggio Privato  Rispondi Quotando
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)
Torna all'inizio della Pagina

savy
Utente medio


Regione: Puglia
Prov.: Bari
Città: Bitonto


Inserito il - 11/02/2010 : 11:30:22  Mostra Profilo  Visita l'Homepage di savy Invia a savy un Messaggio Privato  Rispondi Quotando
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?
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,28 secondi.

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