免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3211 | 回复: 10
打印 上一主题 下一主题

发一道题目,算编程题吧 [复制链接]

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-14 16:37 |只看该作者 |倒序浏览
存储单元R0,R1....Rn,....(可以无限的多)
每个存储单元都可以存任意自然数(非负整数),
初始的时候除了事先设定的几个存储单元的数值,其他数值都为0
这机器的指令集有4条:
1.Ai对Ri加1
2.Si对Ri减1(0则依然为0)
3.EiC:当Ri!=0跳转到第C条指令,否则下条指令
4.S:停机

现在写一个程序,计算R0=R0*R1

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2009-05-14 16:43 |只看该作者
另外,这个机器有个名字,unlimited register machine(URM)

论坛徽章:
0
3 [报告]
发表于 2009-05-14 21:56 |只看该作者
0  s2
1  E20   r2清0
2  s3
3  E32   r3清0
4 a2
5 s0
6 a3
7 E04
8 s3
9 a0
10 E38
11 s1
12 E14
13 S
太累了

论坛徽章:
0
4 [报告]
发表于 2009-05-15 09:08 |只看该作者
不好意思,算成了r2=r0*r1

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
5 [报告]
发表于 2009-05-16 02:28 |只看该作者
........真正有意思的问题,却很少人回帖子........
哎,或许每个人最关心的还是钱袋里装了多少钱吧..........

[ 本帖最后由 cjaizss 于 2009-5-16 02:29 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-05-16 11:33 |只看该作者
原帖由 cjaizss 于 2009-5-16 02:28 发表
........真正有意思的问题,却很少人回帖子........
哎,或许每个人最关心的还是钱袋里装了多少钱吧..........

哎,学计算机学到现在,都还没把那本“编译原理”的书给认真的看一篇。
计算机的每个方面都够你搞的,
终归精力有限,并且又不是天才,
所以,大部分情况下,我们只需知道编译器是干什么的以及如何使用,而无需知道编译器是怎开发的。

论坛徽章:
0
7 [报告]
发表于 2009-05-16 13:08 |只看该作者
整天忙着糊口,没时间研究

论坛徽章:
2
申猴
日期:2013-12-26 22:11:31天秤座
日期:2014-12-23 10:23:19
8 [报告]
发表于 2009-05-16 15:13 |只看该作者
1 S0
2 A2
3 A3
4 S1
5 E12
6 A1
7 S3
8 E36
9 E01
10 S2
11 A0
12 E210
13 S

论坛徽章:
2
申猴
日期:2013-12-26 22:11:31天秤座
日期:2014-12-23 10:23:19
9 [报告]
发表于 2009-05-16 15:23 |只看该作者
  1. #include <stdio.h>

  2. int a0=8;
  3. int a1=7;
  4. int a2=0;
  5. int a3=0;

  6. int main(){
  7. go1:
  8.         a0--;
  9. go2:
  10.         a2++;
  11.         a3++;
  12.         a1--;
  13.         if(a1>0)
  14.                 goto go2;
  15. go6:
  16.         a1++;
  17.         a3--;
  18.         if(a3>0)
  19.                 goto go6;
  20.         if(a0>0)
  21.                 goto go1;
  22. go10:
  23.         a2--;
  24.         a0++;
  25.         if(a2>0)
  26.                 goto go10;
  27.         printf("a0*a1=%d\n",a0);
  28.         return 0;
  29. }
复制代码

论坛徽章:
0
10 [报告]
发表于 2009-05-19 21:34 |只看该作者
原帖由 nicolas.shen 于 2009-5-16 13:08 发表
整天忙着糊口,没时间研究

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP