跳转到内容

高中数学扩展/数学编程/处理命令

来自维基教科书,开放书籍,开放世界

添加了两个新函数: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;
}


下一步

[编辑 | 编辑源代码]
华夏公益教科书