| V I S U A L I Z Z A D I S C U S S I O N E |
| gym83s |
Inserito il - 31/05/2005 : 16:28:11 Salve ragazzi com'è Andata la prova di laboratorio Corso A? qual'era la traccia??
rispondete appena potete ciaooo!
|
| 8 U L T I M E R I S P O S T E (in alto le più recenti) |
| eliopiu |
Inserito il - 04/06/2005 : 10:07:15 Si, l'altra volta eravamo tutti insieme |
| gym83s |
Inserito il - 02/06/2005 : 18:09:39 ma nel corso A o B il laboratorio è lo stesso vero???
|
| rel |
Inserito il - 02/06/2005 : 16:49:05 Si in teoria potrebbe [parlo del corso B]. Il prof disse che come nel caso del grammar reader, sarebbero potuti uscire ma essendo limitato il tempo ci avrebbe dato già tutto il sorgente e noi avremmo dovuto fare una semplice integrazione (del tipo una verifica che la gramm fosse lineare destra o context free). Saluti |
| falco_85 |
Inserito il - 01/06/2005 : 14:06:26 l'analizzatore lessicale può uscire? |
| Marketto |
Inserito il - 01/06/2005 : 13:56:17 Può uscire (e spera di no) l'acquisizione di una grammatica |
| gym83s |
Inserito il - 01/06/2005 : 11:48:21 scusate ma le possibili tracce che possono uscire sono solo automi?? no vero?? e che altro??
grazie... |
| eliopiu |
Inserito il - 01/06/2005 : 11:33:29 X={A u N}
dove A è l'insieme delle lettere minuscole N è l'insieme dei numeri decimali
implementare il seguente automa (Ti scrivo le regole di produzione al posto del disegno)
q0 = Aq1 | .q6 | . q1 = Nq2 q2 = Aq3 q3 = Nq4 q4 = Aq1
Stato finale q6
Durata 1 ora.
Questo è il mio compito svolto, mi funziona regolarmente. Ciao
#include <stdio.h> #include <stdlib.h>
#define MAX_LENGTH 100
int scan(char* s) { enum{q0,q1,q2,q3,q4,q6,POZZA}current_state = q0; int i = 0; while((s[i]!='\0' && s[i]!='\n') && current_state!= POZZA) { switch(current_state) { case q0: if(s[i]>='a' && s[i]<='z') current_state = q1; else current_state = POZZA; break; case q1: if(s[i]>='0' && s[i]<='9') current_state = q2; else if(s[i]=='.') current_state = q6; else current_state = POZZA; break; case q2: if(s[i]>='a' && s[i]<='z') current_state = q3; else current_state = POZZA; break; case q3: if(s[i]>='0' && s[i]<='9') current_state = q4; else current_state = POZZA; break; case q4: if(s[i]>='a' && s[i]<='z') current_state = q1; else current_state = POZZA; break; case q6: current_state = POZZA; break; } ++i; } return(current_state == q6); } int main(int argc, char* argv[]) { char buffer[MAX_LENGTH+1]; char* filename = argv[1]; FILE* file; file = fopen(filename,"r"); if(file==NULL) { printf("file ineistente"); return -1; } while(!feof(file)) { if(fgets(buffer,MAX_LENGTH,file)) if(scan(buffer)) printf("%s RICONOSCIUTO\n", buffer); else printf("%s NON RICONOSCIUTO\n", buffer); } fclose(file); system("PAUSE"); return 0; }
|
| DarkSiDe |
Inserito il - 01/06/2005 : 09:21:47 un automa, ridicolo per altro  |