| Autore |
Discussione  |
|
socio_ipercoop
Utente medio
 

Regione: Puglia
Prov.: Bari
Città: bari
|
Inserito il - 22/05/2006 : 16:41:29
|
Raga' qualcuno di voi e' riuscito a svolgere gli esercizi inerenti al grammar reader?? Potreste eventualmente postare qualche soluzione che sto' letteralmente impazzendo??
grazie a tutti
|
nel mezzo del cammin di nostra vita, mi ritrovai su per il culo una matita, oh che goduria oh che dolor, era una bic multicolor!!
DANTE-DIVINA COMMEDIA |
|
|
ss
Nuovo Utente

Regione: Puglia
Prov.: Taranto
|
Inserito il - 22/05/2006 : 21:17:25
|
Anke io nn riesco a svolgere gli esercizi sul grammar reader, sarei molto grato se qualcuno mettesse a disposizione lo svolgimento di quegli esercizi
Grazie |
SS |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 23/05/2006 : 12:09:50
|
sarebbe utile anche postare le tracce degli ultimi appelli di lab riguardo al grammar reader, ma siete davvero sicuri che al lab di giugno ci sia quello??
Allegato: gr.rar 6,04 KB
io nel frattempo allego questi, non so precisamente se siano fatti bene o no, anzi prego qualcuno che ne ha capito qualcosa in più di rivederli.....ciao a Fatevi Sentireee!! |
Modificato da - gym83s in data |
 |
|
|
silent
Utente assiduo
  

Regione: Puglia
Prov.: Bari
Città: Andria
|
Inserito il - 24/05/2006 : 11:13:11
|
| ma ci saranno delle differenza tra gli appelli di lab che si facvano fino ad aprile e quelli di giugno ?? |
Rivoluzione? Rivoluzione? Per favore, non parlarmi tu di rivoluzione! Io so benissimo cosa sono e come cominciano: c'e qualcuno che sa leggere i libri che va da quelli che non sanno leggere i libri, che poi sono i poveracci, e gli dice: << Oh, oh, e' venuto il momento di cambiare tutto >> [...] Io so quello che dico, ci son cresciuto in mezzo, alle rivoluzioni. Quelli che leggono i libri vanno da quelli che non leggono i libri, i poveracci, e gli dicono: << Qui ci vuole un cambiamento! >> e la povera gente fa il cambiamento. E poi i piu' furbi di quelli che leggono i libri si siedono intorno a un tavolo, e parlano, parlano, e mangiano. Parlano e mangiano! E intanto che fine ha fatto la povera gente? Tutti morti! Ecco la tua rivoluzione! Quindi per favore, non parlarmi piu' di rivoluzione...E porca troia, lo sai che succede dopo? Niente...tutto torna come prima". Juan Miranda - Giù la testa - |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 24/05/2006 : 13:00:15
|
è quello che mi chiedo io... secondo voi per il grammar reader si dovrà scrivere TUTTO TUTTO il codice come si faceva per gli automi?? (anke se per il grammar reader ci sono più lineee)
|
 |
|
|
ekkekkazz
Utente innocuo
 
|
Inserito il - 25/05/2006 : 00:12:04
|
Citazione: Messaggio inserito da gym83s
è quello che mi chiedo io... secondo voi per il grammar reader si dovrà scrivere TUTTO TUTTO il codice come si faceva per gli automi?? (anke se per il grammar reader ci sono più lineee)
il prof. Lops disse a lezione che praticamente lui ci darà il codice con delle funzioni mancanti che dovremo implementare noi... fra l'altro ci assicurò che metterà l'esercizio della conversione delle produzioni monotone a contestuali.
|
 |
|
|
Rio
Utente medio
 

|
Inserito il - 25/05/2006 : 17:20:14
|
Citazione: Messaggio inserito da fran_ fra l'altro ci assicurò che metterà l'esercizio della conversione delle produzioni monotone a contestuali.
Questo qualcuno l'ha fatto? |
www.festamaggiore.it Festa Maggiore - Scoprire e diffondere le tradizioni di Terlizzi |
 |
|
|
ekkekkazz
Utente innocuo
 
|
Inserito il - 25/05/2006 : 18:52:54
|
| raga, ma visto che in questo forum girano anche professori, non so fino a che punto ci conviene far vedere quello che sappiamo fare... |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 26/05/2006 : 14:44:37
|
va beh se è una cosa che ha detto lui a lezione, penso che volesse la sapessimo tutti, e poi...
ci sarà gente che pure con questa RIVELAZIONE non si preparerà ed andrà a tentare l'esame, è stato sempre così, quindi non ti preoccupare fran, ad ogni modo.. qualcuno lo ha fatto questo esercizio??Reinvito cmq a postare eventuali altre funzioni di riconoscimento del grammar reader |
 |
|
|
Rio
Utente medio
 

|
Inserito il - 27/05/2006 : 09:33:30
|
| Poi non mi sembra che chiedere aiuto per risolvere un problema da qualcuno sia considerato reato... |
www.festamaggiore.it Festa Maggiore - Scoprire e diffondere le tradizioni di Terlizzi |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Città: Trinitapoli
|
Inserito il - 27/05/2006 : 10:31:35
|
| infatti.. |
 |
|
|
ekkekkazz
Utente innocuo
 
|
Inserito il - 28/05/2006 : 13:25:19
|
Citazione: Messaggio inserito da Rio
Poi non mi sembra che chiedere aiuto per risolvere un problema da qualcuno sia considerato reato...
e chi ha parlato di reato?  cmq questa è la mia soluzione...
int convert_monotone(Grammar *g,Production *mono) { Symbol NT_symbol; Production new_prod; int j=0; { new_prod=*mono; while (++j<mono->right.length) { do NT_symbol=rand()%26+'A'; while (exist_symbol(g->xv,NT_symbol)); new_prod.right=new_prod.left; new_prod.right.word[new_prod.left.length-1]=NT_symbol; g->xv.word[g->xv.length++]=NT_symbol; g->xv.word[g->xv.length]='\0'; *(add_new_production(g))=new_prod; new_prod.left=new_prod.right; } j=0; while (j++<mono->right.length) { new_prod.right.word[j-1]=mono->right.word[j-1]; *(add_new_production(g))=new_prod; new_prod.left=new_prod.right; if (new_prod.right.length<mono->right.length) // per produzioni tipo AB->YTRE { do NT_symbol=rand()%26+'A'; while (exist_symbol(g->xv,NT_symbol)); // finchè esiste, generane uno nuovo new_prod.right.word[new_prod.right.length++]=NT_symbol; g->xv.word[g->xv.length++]=NT_symbol; g->xv.word[g->xv.length]='\0'; } } } }
bisogna controllare che le produzioni siano del tipo AB->BA oppure AB->CDEF con anche terminali... quindi che non siano ne CS, ne CF... |
 |
|
|
socio_ipercoop
Utente medio
 

Regione: Puglia
Prov.: Bari
Città: bari
|
Inserito il - 29/05/2006 : 13:52:04
|
avete risolto l'esercizio sulla gestione degli errori del grammar reader? Con quale carattere identificate lambda?
|
nel mezzo del cammin di nostra vita, mi ritrovai su per il culo una matita, oh che goduria oh che dolor, era una bic multicolor!!
DANTE-DIVINA COMMEDIA |
 |
|
|
socio_ipercoop
Utente medio
 

Regione: Puglia
Prov.: Bari
Città: bari
|
Inserito il - 29/05/2006 : 16:41:00
|
fran ma come fa a funzionarti quel codice che hai scritto??....
e soprattutto a che serve quel random()%23+'A' ?? |
nel mezzo del cammin di nostra vita, mi ritrovai su per il culo una matita, oh che goduria oh che dolor, era una bic multicolor!!
DANTE-DIVINA COMMEDIA |
 |
|
|
ekkekkazz
Utente innocuo
 
|
Inserito il - 30/05/2006 : 16:01:26
|
Citazione: Messaggio inserito da socio_ipercoop
fran ma come fa a funzionarti quel codice che hai scritto??....
e soprattutto a che serve quel random()%23+'A' ??
sul libro spiega bene come funziona... cmq ti spiego se non ce l'hai... rand() come dice su http://www.cppreference.com/stdother/rand.html è una funzione che genera dei numeri casuali... se prendi un numero a e lo dividi per un numero b, ottieni che il resto è sempre minore di b... perciò, guardando la tabella dei codici ascii, NT_symbol=rand()%26+'A'; è come dire generami un numero minore di 26, e poi aggiungi 65 che corrisponde ad 'A' nella tabella... otterrai sempre un nuovo simbolo NT, cioè una lettera maiuscola... finchè questo simbolo è stato usato (while (exist_symbol(g->xv,NT_symbol));), generane uno nuovo... cmq non credo sia giusta come soluzione, perchè una volta utilizzate tutte le lettere, quello diventa un ciclo senza uscita!... quindi per la generazione di un nuovo NT da usare per le nuove produzioni contestuali bisognerebbe trovare un'altra soluzione... |
 |
|
|
socio_ipercoop
Utente medio
 

Regione: Puglia
Prov.: Bari
Città: bari
|
Inserito il - 31/05/2006 : 11:25:14
|
aspetta un attimo fran che mi sto perdendo....sul libro non lo spiega bene quindi se tu l'hai capito mi spieghi come si fa a passare da monotone a contestuali?
|
nel mezzo del cammin di nostra vita, mi ritrovai su per il culo una matita, oh che goduria oh che dolor, era una bic multicolor!!
DANTE-DIVINA COMMEDIA |
 |
|
|
ekkekkazz
Utente innocuo
 
|
Inserito il - 31/05/2006 : 22:22:45
|
allora, ricapitolando con calma...
quello che noi dobbiamo fare è convertire produzioni del tipo AB->BA o AB->CDEF (oppure AB->bA oppure AB->CdeF ecc...) rispettivamente in {AB->AX,AX->BX,BX->BA} o {AB->AX,AX->CX,CX->CXY,CXY->CXYT,CXYT->CDYT,CDYT->CDET,CDET->CDEF} che sono tutte contestuali con dei nuovi NT da inserire, cioè {X,Y,T}.
quindi le premesse sono queste: -le produzioni da convertire non sono ne CS ne CF come si vede; -basta una produzione monotona per rendere monotona la grammatica; -dobbiamo generare dei nuovi NT per creare le produzini contestuali; -dobbiamo eliminare la produzione monotona dalla grammatica dopo la conversione (io lo faccio al ritorno dalla funzione);
allora io ho fatto due cicli... prendiamo per esempio AB>CDEF che sarebbe *mono...
il primo... la assegno a new_prod che è locale... poi metto la parte sinistra di new_prod a destra, quindi new_prod=AB->AB... genero un nuovo NT con quel ciclo... assegno quel nuovo NT all'ultimo carattere... (quindi new_prod=AB->AX ammesso che X sia l'NT generato)... aggiungo la produzione nella grammatica... metto la parte destra nella sinistra... (quindi ora new_prod=AX->AX)... ripeto finchè j è minore della lunghezza di *mono->left
finito questo ciclo, me ne serve un altro simile per togliere tutti i NT inseriti uno alla volta sostituendoli con quelli della parte destra di *mono (CDEF)... però se la parte destra dei new_prod è minore di *mono->right.length, devo accodare dei nuovi NT
sicuramente dal trace di new_prod per ogni ciclo si capisce meglio...
all'inizio new_prod=AB->AB -primo ciclo AB->AX
con AX->AX -secondo ciclo AX->CX CX->CDY CDY->CDEZ CDEZ->CDEF
probabilmente però esiste un metodo migliore... |
 |
|
|
Rio
Utente medio
 

|
Inserito il - 04/06/2006 : 17:49:10
|
Fran grazie innanzitutto per aver condiviso il tuo lavoro, ma permetti un paio di domande?
funzionano queste due righe di codice?
g->productions.word[g->productions.length++]=NT_symbol; g->productions.word[g->productions.length]='\0';
come e cosa fà la funzione exist_symbol? |
www.festamaggiore.it Festa Maggiore - Scoprire e diffondere le tradizioni di Terlizzi |
 |
|
|
ekkekkazz
Utente innocuo
 
|
Inserito il - 04/06/2006 : 21:11:23
|
Citazione: Messaggio inserito da Rio
Fran grazie innanzitutto per aver condiviso il tuo lavoro, ma permetti un paio di domande?
funzionano queste due righe di codice?
g->productions.word[g->productions.length++]=NT_symbol; g->productions.word[g->productions.length]='\0';
come e cosa fà la funzione exist_symbol?
vuoi dire queste...
g->xv.word[g->xv.length++]=NT_symbol; g->xv.word[g->xv.length]='\0';
(quelle altre non funzionano perchè word non è un campo di Production... dovresti metterci o left o right)
cmq mi funzionano... utilizzo la length invece di un contatore, non cambia niente... alla fine devo mettere il terminatore per le stringhe...
la exist_symbol si commenta da sola... cerca Symbol s in Word w e restituisce 1 se vero
int exist_symbol(Word w, Symbol s) { int i; for (i=0;i<w.length;i++) if (s==w.word[i]) return 1; return 0; } |
 |
|
|
socio_ipercoop
Utente medio
 

Regione: Puglia
Prov.: Bari
Città: bari
|
Inserito il - 04/06/2006 : 21:44:35
|
fran a che punto sei?...io sono riuscito a fare metà parte dell'esercizio...ossia fino a quando trasformo tutta la parte sinistra con altri NT e poi eventualmente aggiungo i simboli della parte dx. ora mi manca solo la parte che riscrive la produzione finale. però ho fatto una zagnata di codice. l'importante è che funzioni poi al massimo lo aggiusto...in ogni caso teniamoci in contatto. ciao raga |
nel mezzo del cammin di nostra vita, mi ritrovai su per il culo una matita, oh che goduria oh che dolor, era una bic multicolor!!
DANTE-DIVINA COMMEDIA |
 |
|
|
Tak3z0
Nuovo Utente
|
Inserito il - 11/06/2006 : 09:22:29
|
| vabbe insomma quello funzionanete? e' quello di fran? |
  |
 |
|
Discussione  |
|