Question
How would you make a state machine with the following requirements in C programming? Requirements: No Commands: Before any commands are issued to your program,
How would you make a state machine with the following requirements in C programming?
Requirements:
No Commands: Before any commands are issued to your program, it should print out the starting state.
One/Zero Commands: These commands (a `0' or a `1' on a line by itself) must print to stdout the name of the next state given the supplied input, and update the current state.
Change command: The change command is invoked by the letter `c' followed by a `1' or a `0' followed by the name of a state (i.e. a single letter in the range AH). This command modifies the state machine such that the `0' (or `1') command applied to the current state will cause the machine to change to the named state and that this change is the state machine configuration will continue. This command should produce no output.
Print command: The print command is invoked with the single letter `p'. It should print to stdout the state machine configuration as currently specified (i.e. including changes that may have been made with change commands) in the same format that your state machine was specified with.
Garbage Identify command: This command is invoked with the single letter `g'. It should identify all states that are reachable or unreachable from the current state. It always produces output to stdout.
If all states are reachable, it should output No garbage. Otherwise, it should output
Garbage:
Delete command: This command is invoked with `d', optionally followed by the name of a state to delete. When the d command is invoked without the optional argument, it should delete (i.e. mark as deleted) all un-deleted states that are unreachable. If there are no such unreachable un-deleted states, it should print:
No states deleted. |
Otherwise, it should print the message:
Deleted: |
If the d command is followed by an argument that it the valid name of a state, it should print out either the message:
Deleted. |
if the state is not reachable and not already deleted. Otherwise, it should print out the message:
Not deleted. |
If a state is successfully deleted, it should no longer appear in the list of states produced by the print command and it should be disallowed as a final argument to the change command.
State Diagram that should be implemented:
0 0 0 0 0 0Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started