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
 INFORMATICA - Primo Anno
 Linguaggi di programmazione
 Soluzione Grammar reader
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Pagina Successiva
Autore Discussione Precedente Discussione Discussione Successiva
Pagina: di 2

socio_ipercoop
Utente medio

japan


Regione: Puglia
Prov.: Bari
Città: bari


Inserito il - 22/05/2006 : 16:41:29  Mostra Profilo  Visita l'Homepage di socio_ipercoop Invia a socio_ipercoop un Messaggio Privato  Rispondi Quotando
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

Ken


Regione: Puglia
Prov.: Taranto


Inserito il - 22/05/2006 : 21:17:25  Mostra Profilo  Visita l'Homepage di ss Invia a ss un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

gym83s
Utente Estremo


Regione: Puglia
Prov.: Foggia
Città: Trinitapoli


Inserito il - 23/05/2006 : 12:09:50  Mostra Profilo  Visita l'Homepage di gym83s Invia a gym83s un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

silent
Utente assiduo

tartaruga


Regione: Puglia
Prov.: Bari
Città: Andria


Inserito il - 24/05/2006 : 11:13:11  Mostra Profilo  Visita l'Homepage di silent Invia a silent un Messaggio Privato  Rispondi Quotando
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 -
Torna all'inizio della Pagina

gym83s
Utente Estremo


Regione: Puglia
Prov.: Foggia
Città: Trinitapoli


Inserito il - 24/05/2006 : 13:00:15  Mostra Profilo  Visita l'Homepage di gym83s Invia a gym83s un Messaggio Privato  Rispondi Quotando
è 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)
Torna all'inizio della Pagina

ekkekkazz
Utente innocuo



Inserito il - 25/05/2006 : 00:12:04  Mostra Profilo  Visita l'Homepage di ekkekkazz Invia a ekkekkazz un Messaggio Privato  Rispondi Quotando
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.
Torna all'inizio della Pagina

Rio
Utente medio

Insetto



Inserito il - 25/05/2006 : 17:20:14  Mostra Profilo  Visita l'Homepage di Rio Invia a Rio un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

ekkekkazz
Utente innocuo



Inserito il - 25/05/2006 : 18:52:54  Mostra Profilo  Visita l'Homepage di ekkekkazz Invia a ekkekkazz un Messaggio Privato  Rispondi Quotando
raga, ma visto che in questo forum girano anche professori, non so fino a che punto ci conviene far vedere quello che sappiamo fare...
Torna all'inizio della Pagina

gym83s
Utente Estremo


Regione: Puglia
Prov.: Foggia
Città: Trinitapoli


Inserito il - 26/05/2006 : 14:44:37  Mostra Profilo  Visita l'Homepage di gym83s Invia a gym83s un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

Rio
Utente medio

Insetto



Inserito il - 27/05/2006 : 09:33:30  Mostra Profilo  Visita l'Homepage di Rio Invia a Rio un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

gym83s
Utente Estremo


Regione: Puglia
Prov.: Foggia
Città: Trinitapoli


Inserito il - 27/05/2006 : 10:31:35  Mostra Profilo  Visita l'Homepage di gym83s Invia a gym83s un Messaggio Privato  Rispondi Quotando
infatti..
Torna all'inizio della Pagina

ekkekkazz
Utente innocuo



Inserito il - 28/05/2006 : 13:25:19  Mostra Profilo  Visita l'Homepage di ekkekkazz Invia a ekkekkazz un Messaggio Privato  Rispondi Quotando
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...
Torna all'inizio della Pagina

socio_ipercoop
Utente medio

japan


Regione: Puglia
Prov.: Bari
Città: bari


Inserito il - 29/05/2006 : 13:52:04  Mostra Profilo  Visita l'Homepage di socio_ipercoop Invia a socio_ipercoop un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

socio_ipercoop
Utente medio

japan


Regione: Puglia
Prov.: Bari
Città: bari


Inserito il - 29/05/2006 : 16:41:00  Mostra Profilo  Visita l'Homepage di socio_ipercoop Invia a socio_ipercoop un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

ekkekkazz
Utente innocuo



Inserito il - 30/05/2006 : 16:01:26  Mostra Profilo  Visita l'Homepage di ekkekkazz Invia a ekkekkazz un Messaggio Privato  Rispondi Quotando
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...
Torna all'inizio della Pagina

socio_ipercoop
Utente medio

japan


Regione: Puglia
Prov.: Bari
Città: bari


Inserito il - 31/05/2006 : 11:25:14  Mostra Profilo  Visita l'Homepage di socio_ipercoop Invia a socio_ipercoop un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

ekkekkazz
Utente innocuo



Inserito il - 31/05/2006 : 22:22:45  Mostra Profilo  Visita l'Homepage di ekkekkazz Invia a ekkekkazz un Messaggio Privato  Rispondi Quotando
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...
Torna all'inizio della Pagina

Rio
Utente medio

Insetto



Inserito il - 04/06/2006 : 17:49:10  Mostra Profilo  Visita l'Homepage di Rio Invia a Rio un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

ekkekkazz
Utente innocuo



Inserito il - 04/06/2006 : 21:11:23  Mostra Profilo  Visita l'Homepage di ekkekkazz Invia a ekkekkazz un Messaggio Privato  Rispondi Quotando
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;
}
Torna all'inizio della Pagina

socio_ipercoop
Utente medio

japan


Regione: Puglia
Prov.: Bari
Città: bari


Inserito il - 04/06/2006 : 21:44:35  Mostra Profilo  Visita l'Homepage di socio_ipercoop Invia a socio_ipercoop un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

Tak3z0
Nuovo Utente



Inserito il - 11/06/2006 : 09:22:29  Mostra Profilo  Visita l'Homepage di Tak3z0  Invia a Tak3z0 un messaggio ICQ Invia a Tak3z0 un Messaggio Privato  Rispondi Quotando
vabbe insomma quello funzionanete? e' quello di fran?

Torna all'inizio della Pagina
Pagina: di 2 Discussione Precedente Discussione Discussione Successiva  
Pagina 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 1,54 secondi.

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