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
 Ok, stavolta è la versione buona...

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
Chilavert Inserito il - 28/06/2004 : 18:16:45
Ho archiviato l'altra discussione perché non mi sembrava giusto dare agli studenti uno scanner che aveva erroretti qua e là... guardate questo e poi mi dite:


#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>

#define MAXTOKEN 256

enum STATI {P, q0, q1, q2, q3, F}; //P: stato pozza!

int main()
{
int i, n;
int stato;
char token[MAXTOKEN+1];
char risp;
do
{
stato = q0;
system("CLS");
fflush(stdin);
printf("Inserisci il token da analizzare: ");
gets(token);
printf("%s\n",token);
n = strlen(token);
for(i = 0; i < n; i++)
switch (stato)
{
case q0:
if (isspace(token[i]))
stato = q0;
else if (token[i] == '/')
stato = q1;
else
stato = P;
break;
case q1:
if (token[i] == '*')
stato = q2;
else
stato = P;
break;
case q2:
if (token[i] != '*')
stato = q2;
else
stato = q3;
break;
case q3:
if (token[i] == '*')
stato = q3;
else if ((token[i] != '/') && (token[i] != '*'))
stato = q2;
else if (token[i] == '/')
stato = F;
break;
case F:
if (isspace(token[i]))
stato = F;
else if (token[i] != '\0')
stato = P;
break;
}
if (stato == F)
printf("Token %s esatto!\n\n", token);
else
printf("Token %s errato!\n\n", token);
do
{
printf("Si desidera analizzare un altro token? (S/N) ");
scanf("%s",&risp);
}
while ((risp != 'S') && (risp != 's') && (risp != 'N') && (risp != 'n'));
}
while ((risp == 'S') || (risp == 's'));
return(0);
}


PS: per coloro i quali si sentono un po' a disagio con le istruzioni gets e fflush, non vi preoccupate... forse non è un metodo elegante, ma per l'esame di linguaggi basta ed avanza (spero)
Ecco il listato (per i soliti problemi di perdita d'indentazione): commenti.txt

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,05 secondi.

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