| Autore |
Discussione  |
|
Rio
Utente medio
 

|
Inserito il - 13/06/2006 : 18:49:01
|
| Io non ho trovato ancora la soluzione a questo esercizio, se qualcuno può ci aiuti please! |
www.festamaggiore.it Festa Maggiore - Scoprire e diffondere le tradizioni di Terlizzi |
 |
|
|
peano
Utente medio
 
Prov.: Bari
|
Inserito il - 13/06/2006 : 20:07:48
|
ragazzi almeno una linea guida...nessuno proprio ci è riuscito?? |
 |
|
|
peano
Utente medio
 
Prov.: Bari
|
Inserito il - 14/06/2006 : 00:02:17
|
| cm al solito in questo forum..quando si tratta di avere...postano tutti..quando si tratta invece di dare o spiegare...nn posta mai nessuno...oppure sempre i soliti...grazie! |
 |
|
|
airbag
utente salvato da un
  

Città: manchester
|
Inserito il - 14/06/2006 : 07:52:16
|
| siamo umani e necessitiamo di essere amati come tutti gli altri fanno |
<>Can't you see them? Can't you see them? roots can't hold them Bugs console them<> <big><big><big><i><font color="#000033">since yourheadisshacking inthat yourarmsareshacking inthat yourfeetareshacking cause theEarthisshackin'</font></i></big></big></big> |
 |
|
|
peano
Utente medio
 
Prov.: Bari
|
Inserito il - 14/06/2006 : 09:26:27
|
bella la poesia....ma nn ho capito il nesso |
 |
|
|
airbag
utente salvato da un
  

Città: manchester
|
Inserito il - 14/06/2006 : 11:30:54
|
che c'è sempre chi più chiede e meno chi da aspettiamo se uno vuole |
<>Can't you see them? Can't you see them? roots can't hold them Bugs console them<> <big><big><big><i><font color="#000033">since yourheadisshacking inthat yourarmsareshacking inthat yourfeetareshacking cause theEarthisshackin'</font></i></big></big></big> |
 |
|
|
anto_nella
Nuovo Utente
|
Inserito il - 14/06/2006 : 11:56:41
|
Vorrei fare una precisazione in merito alle premesse di Franz.
"-basta una produzione monotona per rendere monotona la grammatica;"
La definizione 3.5 del libro di Semeraro parla chiaro: Una grammatica è monotona se OGNI sua produzione è monotona. Quindi non è sufficiente una sola produzione monotona per rendere la grammatica monotona.
Sto cercando anche io di risolvere l'esercizio sul Grammar-Reader...se ho news vi aggiorno! Cià! |
 |
|
|
peano
Utente medio
 
Prov.: Bari
|
Inserito il - 14/06/2006 : 13:33:37
|
va bè...nn ci vuole molto..gli metti un contatore ad ogni produzione monotona ke trova..e poi se il contatore è uguale al numero di produzioni..allora è monotona.... stai tentando di risolvere l'esercizio di trasformare da monotona in contestuale? |
 |
|
|
anto_nella
Nuovo Utente
|
Inserito il - 14/06/2006 : 14:21:42
|
Si può semplificare ulteriormente l'esercizio: dopo la prima produzione NON monotona trovata, si può già affermare che la grammatica non è monotona!  Sto tentando di risolvere l'esercizio che trasforma una monotona in contestuale... |
 |
|
|
peano
Utente medio
 
Prov.: Bari
|
Inserito il - 14/06/2006 : 15:05:08
|
si certo ...magari se risolvi quell'esercizio di trasformare da monotone in contestuali...facci sapere qui  |
 |
|
|
airbag
utente salvato da un
  

Città: manchester
|
Inserito il - 14/06/2006 : 20:08:28
|
io userei il metodo: 'se non lo vedo non esiste' non serve nella vita questo esercizio |
<>Can't you see them? Can't you see them? roots can't hold them Bugs console them<> <big><big><big><i><font color="#000033">since yourheadisshacking inthat yourarmsareshacking inthat yourfeetareshacking cause theEarthisshackin'</font></i></big></big></big> |
 |
|
|
peano
Utente medio
 
Prov.: Bari
|
Inserito il - 14/06/2006 : 21:52:49
|
bè...ti servirebbe invece...se vuoi passare il lab ....nn sei molto saggio airbag  |
 |
|
|
airbag
utente salvato da un
  

Città: manchester
|
Inserito il - 14/06/2006 : 22:51:30
|
ma io credo che quell'esercizio non ci sarà troppo complesso puniamo ad altro che dite? |
<>Can't you see them? Can't you see them? roots can't hold them Bugs console them<> <big><big><big><i><font color="#000033">since yourheadisshacking inthat yourarmsareshacking inthat yourfeetareshacking cause theEarthisshackin'</font></i></big></big></big> |
 |
|
|
krasta
Utente medio
 
Città: acquaviva
|
Inserito il - 15/06/2006 : 12:54:00
|
ho trovato finalmente la soluzione alla traccia che chiedeva se una grammatika è dipendente da contesto (muahahahahaha) la allego.....se c'è qualke bug ditemelo.grazie
Allegato: CS.zip 2,4 KB
il prog apre un file di testo chiamato "G1.txt" |
emancipate yourself from mental slavery |
 |
|
|
silent
Utente assiduo
  

Regione: Puglia
Prov.: Bari
Città: Andria
|
Inserito il - 15/06/2006 : 14:19:39
|
io l'esercizio sulla monotonia l'ho fatto così:
#include <stdio.h>
#define MAX_WORD_LENGTH 100 #define MAX_PRODUCTIONS 100
// Definizione dei tipi ------------------------------------------------------*/
typedef char Symbol;
typedef struct { Symbol word [MAX_WORD_LENGTH]; unsigned length; } Word;
typedef struct { Word left; Word right; } Production;
typedef struct { Production productions[MAX_PRODUCTIONS]; unsigned numprod; } Grammar;
// Procedure di riconoscimento dei simboli -----------------------------------*/
int is_terminal(Symbol s) { return (islower(s)); //return (s >= 'a') && (s <= 'z'); }
int is_nonterminal(Symbol s) { return (isupper(s)); //return (s >= 'A') && (s <= 'Z'); }
int is_prodsym(Symbol s) { return (s == '>'); }
int is_prodsep(Symbol s) { return (s == '\n'); }
/* Lettura di simboli da file ------------------------------------------------*/
Symbol read_sym(FILE* file) { Symbol s; // fscanf(file,"%c",&s); //questo ciclo permette di saltare la lettura di spazi tra i simboli do s = getc(file); while (s==' '); return s; }
Production* add_new_production(Grammar *g) { Production* p; p = &(g->productions[g->numprod++]); p->left.length = 0; return p; }
void add_symbol(Word *w, Symbol s) { w->word[w->length++] = s; }
// Procedura di acquisizione di una grammatica da un file --------------------*/ Grammar* load_grammar(FILE* file, Grammar* g) { enum States {START,LEFT,RIGHT,ERROR}; /* START = Scansione di una nuova produzione [F] LEFT = Scansione della parte sinistra RIGHT = Scansione della parte destra [F] ERROR = Errore di scansione */ enum States current_state = START; // Stato iniziale Symbol s; Production* p; g->numprod = 0; // Inizializza la grammatica while (current_state != ERROR && !feof(file)) { s = read_sym(file); if (feof(file)) break; switch(current_state) { case START: if (is_terminal(s) || is_nonterminal(s)) { current_state = LEFT; //p = &(g->productions[g->numprod++]); //p->left.length = 0; p = add_new_production(g); add_symbol(&p->left,s); //L'istruzione precedente corrisponde a p->left.word[p->left.length++] = s; } else if (is_prodsep(s)) { current_state = START; } else current_state = ERROR; break; case LEFT: if (is_terminal(s) || is_nonterminal(s)) { current_state = LEFT; add_symbol(&p->left,s); } else if (is_prodsym(s)) { current_state = RIGHT; p->right.length = 0; } else current_state = ERROR; break; case RIGHT: if (is_terminal(s) || is_nonterminal(s)) { current_state = RIGHT; add_symbol(&p->right,s); } else if (is_prodsep(s)) { current_state = START; } else current_state = ERROR; break; } } if (current_state == START || current_state == RIGHT) return g; else return NULL;
}
// Procedure di stampa
void print_sym (Symbol s) { printf("%c ",s); }
void print_word (Word* w) { int i; for (i=0; i<w->length; i++) print_sym(w->word[i]); }
void print_production (Production* p) { print_word(&p->left); printf (" --> "); print_word(&p->right); }
void print_grammar(Grammar* g) { int i; if (g == NULL) printf ("Errore! Grammatica non valida! \n"); else { printf ("Numero di produzioni: %d\n", g->numprod); for (i=0; i<g->numprod; i++) { print_production(&g->productions[i]); printf ("\n"); } } }
// Esercizio -------------------------------------------------------------------
int esercizio (Grammar* g) { int i; Production* p; Word* l; Word* r; int flag;
for (i=0; i < g->numprod; i++) { p = &g->productions[i]; l = &p->left; r = &p->right; flag = 0; if (l->length <= r->length) flag = 1; } if (flag) printf ("La grammatica e' monotona \n"); else printf ("La grammatica non e' monotona \n"); return 0; }
// MAIN ------------------------------------------------------------------------
int main(int argc, char *argv[]) { char* filename = argv[1]; FILE* gram_file; Grammar grammar; // controlla se è stato inserito il nome del file if (filename == 0) { printf("nome file non specificato \n"); return -1; } // apertura del file contenente la grammatica gram_file = fopen(filename,"r"); if (gram_file == NULL) { printf("nome di file errato\n"); return -1; } print_grammar(load_grammar(gram_file,&grammar)); esercizio(&grammar); fclose(gram_file); system("PAUSE"); return 0; }
se c'è qualcosa di sbagliato potreste dirmi dove ?? |
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 - |
 |
|
|
ermanno
Utente giovane

Regione: Puglia
Prov.: Bari
Città: particolare
|
Inserito il - 23/06/2006 : 08:50:37
|
| be si effettivamente questo serve per vedere se una grammatica è monotona ma non serve per modificarla...qualch'uno sa come si fa? |
sono un uomo triste decadente e tenebroso |
 |
|
Discussione  |
|