《C语言程序设计:问题与求解方法》——0.2节理想厨房系统的一个炒菜实例

简介:

本节书摘来自华章社区《C语言程序设计:问题与求解方法》一书中的第0章,第0.2节理想厨房系统的一个炒菜实例,作者:何 勤,更多章节内容可以访问云栖社区“华章社区”公众号查看

0.2 理想厨房系统的一个炒菜实例
在本节中,我们通过炒制一道青菜的例子,来说明理想厨房系统的工作全过程。
首先,把青菜放在冰箱地址为5的格子中,冰箱地址为6号的格子预留给炒好的菜使用。
菜谱的所有加工步骤(又称为指令)从冰箱地址0号格开始依次存放,炒青菜的菜谱及地址如下:
地址0的格子中: 取地址5(中的物品)到R0碟;
地址1的格子中: 将R0(倒入炒锅中)炒好后装到R1碟;
地址2的格子中: 送R1碟(中的物品)到地址6中;
可见,此菜谱一共有3个加工步骤。
开始时理想厨房系统状态如图0-2所示。


07277559463b3fdaefbf78d3c828d6435ca2988b

菜谱和原料安放完毕后,启动理想厨房系统,开始自动化的工作。
1)厨房管理员根据PC碟子中的数字“0”,知道要到地址为0的格子中取第一条指令(即加工步骤)。于是,厨房管理员向控制传送带上发出一个“取”信号,然后马上将PC碟中的数字“0”复制后放到地址传送带上。这两个信号都会到达冰箱。冰箱收到这两个信号后(知道理想厨房想要得到第0格中的物品,于是自动冰箱)将0号格的内容 “取地址5到R0碟”复制一份,将其放到材料传送带上,送往理想厨房。理想厨房收到后,将这条指令放到IR碟中。然后,厨房管理员将PC碟中的原来值增加1,以便为取下一条指令做好准备。取指令工作完成后,理想厨房系统处于如图0-3所示的状态。


a8b202867c7064cd69e1d0ab284417fd72a2af70

厨房管理员阅读并分析指令存放碟中的指令后,命令厨师将R0碟中的物品倒入锅中炒好后装到R1碟。第二条指令执行完后,理想厨房系统处于如图0-6所示的状态。


f293fad27fe4c0c7c54202380c32b0193826f02f

下面开始执行“送R1碟到地址6中”这条指令。厨房管理员分析指令存放碟中的加工步骤后,知道要将R1碟中的物品送到冰箱地址为6的格子中去存放。于是,管理员向控制传送带上发一个“存”信号,然后马上将6这个数放到地址传送带上;最后,将R1碟中的物品“熟青菜”放到材料传送带上,送往冰箱。
冰箱收到两个来自理想厨房的信号后,知道理想厨房要存放物品到6格中,于是自动冰箱(通过机械手)在材料传送带旁,等待从理想厨房R1碟传来物品—“熟青菜”,一旦到达,自动冰箱就将其取下,并将其存放到地址为6的格子中。完成后系统状态如图0-8所示。
到此为止,炒青菜这道菜终于大功告成了。


4923c666e777ba8ac05cfea67dfd9f637d24954a
相关文章
|
16天前
|
存储 数据处理 C语言
C语言高级应用探讨与实例
C语言高级应用探讨与实例
20 1
|
1天前
|
机器学习/深度学习 算法 C语言
详细介绍递归算法在 C 语言中的应用,包括递归的基本概念、特点、实现方法以及实际应用案例
【6月更文挑战第15天】递归算法在C语言中是强大力量的体现,通过函数调用自身解决复杂问题。递归涉及基本概念如自调用、终止条件及栈空间管理。在C中实现递归需定义递归函数,分解问题并设定停止条件。阶乘和斐波那契数列是经典应用示例,展示了递归的优雅与效率。然而,递归可能导致栈溢出,需注意优化。学习递归深化了对“分而治之”策略的理解。**
11 7
|
1天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的C语言在线评测系统的详细设计和实现
基于SpringBoot+Vue+uniapp的C语言在线评测系统的详细设计和实现
29 16
|
9天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的C语言在线评测系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的C语言在线评测系统附带文章和源代码部署视频讲解等
7 0
|
10天前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
9 1
|
10天前
|
存储 C语言
C语言实现字符串相连的方法总结
C语言实现字符串相连的方法总结
11 0
|
18天前
|
C语言
C语言循环结构程序设计详解及代码实例
C语言循环结构程序设计详解及代码实例
19 0
|
18天前
|
存储 C语言 索引
C语言一维数组与二维数组详解及代码实例
C语言一维数组与二维数组详解及代码实例
22 0
|
18天前
|
程序员 C语言
使用指针变量作为函数参数的C语言程序实例
使用指针变量作为函数参数的C语言程序实例
20 0
|
18天前
|
存储 C语言 索引
C语言字符数组深入解析与应用实例
C语言字符数组深入解析与应用实例
16 0