Cerca nel Forum
Mostra risultati per tag 'macchina a stati finiti'.
Trovato 1 risultato
-
Riconoscitore di Stringhe di Numeri in C++ (Macchina a Stati Finiti)
Rocky96 ha pubblicato una discussione in Elettronica e programmazione
Salve a tutti, il mio "adorabile" professore di progettazione ha assegnato per casa, in preparazione della verifica (che sarà veramente un'agonia essendo che riguardo le macchine a stati finiti in C++ non ha spiegato una cippa...), un esercizio molto "carino"...praticamente devo scrivere un programma utilizzando le macchine a stati finiti in C++ che prende in imput una stringa, e dice se è o non è una stringa valida. Sono già arrivato ad un certo punto con il programma...anzi direi che è finito, ma ecco il problema....mi dice che la stringa è sempre corretta, cosa SBAGLIATISSIMA, e nn perchè ho sbagliato gli if, ma qualcos'altro immagino, ma non so cosa....ho provato anche a far buttare a video il contenuto dello stato e il risultato è o 0, o 1... Questo è il codice : #include <iostream> #include <cstdlib> #include <string> using namespace std; enum state {intero, decimale, err}; state curr; void RiconoscitoreStringa(string numero) { short i=0; bool full=false; do { char car=numero; switch (car) { case (30 || 31 || 32 || 33 || 34 || 35 || 36 || 37 || 38 || 39) : { if (full==true) curr=decimale; else curr=intero; break; } case (46) : { if (full==true) curr=err; else {full=true; curr=decimale;} break; } default : {curr=err; break;} } //switch i++; }while (i<numero.size() || curr==err); //ciclo cout<<curr<<endl; //mostra situazione di curr fine ciclo if (curr==err) cout<<"Stringa di Numeri non e' Esatta."<<endl; if (curr!=err) cout<<"Stringa di Numeri e' Esatta."<<endl; } //metodo int main () { cout<<"Inserisci un numero - "; string numero=""; cin>>numero; RiconoscitoreStringa(numero); system ("pause"); } //main Spero vivamente che possiate aiutarmi. -Un giovane programmatore.