有条件转移是图灵完备的一个重要的必要条件。
/***************************************** * * 场景:人机对话 * 人和机器轮流说一句话,问候、询问,。。。 * 要说的话事前组织好 * * 人通过嘴说话,转换成文字通过键盘传递给机器, * 机器经由键盘通过耳朵接收到人说话的文字, * 并保存到机器的大脑记忆中,然后作思考。。。 * 机器将要说的话以文字形式通过其嘴说到屏幕上, * (也可以转换成语音,通过其嘴说到microphone) * 人通过眼睛看到屏幕上的文字,理解其含义。。。 * (或通过耳朵听到声音) * 现阶段 * 人到机器的信息传递通道:键盘——机器的耳朵:scanf * 机器到人的信息传递通道:屏幕——机器的嘴:printf * * 如何实现以下对话? * 小明:“你好,机器人!” * 计算机:“哦哦,你叫什么名字?” * 小明:“小明”。 * 计算机:“你好,小明!” * * What if 小明骂机器人?for example: you are an idiot! * * What if in such a scenario: 你说10遍“Hello World!” * * ****************************************/ #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char greating[20]; char name[20]; scanf("%s", greating); // 如果友善,不必关心这里的条件是什么,如何实现
// 关注在某个条件成立时,做什么操作,不成立时又做什么操作 if (strstr(greating, "idiot") != NULL) { exit(1); } else if (strstr(greating,"shit") != NULL) { exit(2); } else { printf("What's your nsme?\n"); } scanf("%s", name); printf("你好,%s\n", name); return 0; }
理解自然语言中,如果。。。则。。。否则。。。的含义。
现实中按条件分别做不同的事情,在计算机系统中如何实现?
就是有条件的控制转移,选择结构、分支结构、条件结构,等等名称
在C语言中,就是:
if (some condition is true) { // here is so-called then clause // do something; } else { // here is so-called else clause // do somethine else; }