Professional Documents
Culture Documents
digit
1
. (point)
+, digit
digit
. (point)
4
digit
digit
+, -
digit
6
digit
1. Buat dalam bahasa c untuk mengenali bilangan pecahan berdasarkan finite
automata yang dibuat
Int real() {
Int state ;
Char in;
State = 1;
In = getchar();
While (isdigit(in) || issign(in) || in == . || in == e)
Switch(state) {
Case 1
: if (isdigit (in) || issign(in) )
State = 2;
Else if (in ==.)
State = 3;
Else error();
Break;
Case 2
: if (isdigit (in))
State = 2;
Else if (in ==.)
State = 3;
Else error();
Break;
Case 3
: if (isdigit (in))
State = 4;
Else error();
Break;
Case 4
: if (isdigit (in))
State = 4;
Else if (in ==e)
State = 5;
Else error();
Break;
Case 5
: if (isdigit (in))
State = 7;
Else if (issign (in ))
State = 6;
Else error();
Break;
Case 6
Case 7
: if (isdigit (in))
State = 7;
Else error();
Break;
: if (isdigit (in))
State = 7;
Else error();
Break;
}
in = getchar();
}
return (state == 4) || state == 7);
}