caute decka
vyfasoval som zadanie c2 ktore vyzera nejak takto a {ab} b [aa|bb]
vydumal som nieco taketo co mi bohuzial velmi nechce ist ;(
s0 @a {ab} b [aa|bb] -->S1
s1 a {@ab} @b [aa|bb] -->S2|S3
s2 a {a@b} b [aa|bb] -->S1
s3 a {ab} b [@aa|@bb]@ -->S4|S5|S6
s4 a {ab} b [a@a|bb] -->S6
s5 a {ab} b [aa|b@b] -->S6
s6 a {ab} b [aa|bb]@ -->fine
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
char c_in;
S0: c_in = getchar(); printf("%c",c_in);
switch(c_in) {
case 'a': goto S1;
default: goto Reject;
}
S1: c_in = getchar(); printf("%c",c_in);
switch(c_in) {
case 'a': goto S2;
case 'b': goto S4;
default: goto Reject;
}
S2: c_in = getchar(); printf("%c",c_in);
switch(c_in) {
case 'b': goto S1;
default: goto Reject;
}
S3: c_in = getchar(); printf("%c",c_in);
switch(c_in) {
case 'a': goto S4;
case 'b': goto S5;
case '#': goto Accept;
default: goto Reject;
}
S4: c_in = getchar(); printf("%c",c_in);
switch(c_in) {
case 'a': goto S6;
default: goto Reject;
}
S5: c_in = getchar(); printf("%c",c_in);
switch(c_in) {
case 'b': goto S6;
default: goto Reject;
}
S6: c_in = getchar(); printf("%c",c_in);
switch(c_in) {
case '#': goto Accept;
default: goto Reject;
}
Accept: printf("\nVstup bol verifikovany uspesne.");
getchar();
getchar();
return 0;
Reject: printf("\nZly vstup.");
getchar();
getchar();
return 0;
system ("Pause");
return 0;
}