高中数学扩展/数学编程/处理命令
外观
添加了两个新函数:char retrieve_keypress() 和 char validate(char check_me) ,并更改了两个函数:void input_message(),char input()。
新增功能
char retrieve_keypress()
- 此函数确保程序输入和输出在控制台上显示在不同的行上。这使程序错误消息更清晰,并且当我们打印它时,将使程序输出更清晰。
- 从控制台读取一个键。
- 在读取一个键后,向控制台输出一个换行符。这使程序错误消息更清晰,并且当我们打印它时,将使程序输出更清晰。
char validate (char checkme)
- 如果传递给它的字符位于此集中:{'=' '+' '-' 'd' 'D' 'x' 'X'},则返回 true,否则返回 false。
更改
void input_message()
- 更改为提示此程序将处理的命令。
char input()
- 更改为
- 调用 retrieve_keypress 获取命令
- 验证命令
- 如果命令无效,则打印错误消息和说明。
添加并替换以下代码
//function prototypes //... char retrieve_keypress(); char validate(char check_me); //function definitions //... void input_message() { // Prompt for Commands cprintf("Key Action.\n"); cprintf("= Display f(x) = result.\n"); cprintf("d or D Change delta.\n"); cprintf("+ Add delta to x.\n"); cprintf("- Subtract delta from x.\n"); cprintf("x or X End program.\n"); } char input() { // Input a character at a time read=retrieve_keypress(); // Validate command while (!validate(read)) { cprintf("\nInvalid Command.\n"); input_message(); read=retrieve_keypress(); } return read; } char retrieve_keypress() { char ret_val; ret_val=getche(); cprintf("\n"); return ret_val; } char validate(char check_me) { char ret_val=0; switch (check_me) { case '=': case '+': case '-': case 'd': case 'D': case 'x': case 'X': ret_val++; break; } return ret_val; }