level 10
目 录
10、连续运行的监视、控制意识程序。
甲、程序代码。
乙、程序的连续特征。
丙、运行情况。
丁、新问题。
2017年10月25日 04点10分
3
level 10
甲、程序代码。
#include <stdio.h>
#include <iostream.h>
#include <string.h>
int static s[10],q,yishishuzu[500];
char static yishiwenzi[100];
char *yishizifu[10]={" 意识程序为你服务,我为你计算加法:"," 意识程序为你服务,我为你计算减法:"," 意识程序为你服务,我为你计算乘法:"};
void huibao()
{
yishishuzu[s[9]]=s[2];s[9]++;
}
void huibao1(char y)
{
yishiwenzi[s[8]]=y;s[8]++;
}
void zhixing()
{
cin>>s[2];s[1]=s[2];huibao();
cin>>s[2];huibao();
s[2]=s[1]+s[2];huibao();huibao1('+');
cout<<"结果="<<s[2]<<endl;
}
void zhixing1()
{
cin>>s[2];s[1]=s[2];huibao();
cin>>s[2];huibao();
s[2]=s[1]-s[2];huibao();huibao1('-');
cout<<"结果="<<s[2]<<endl;
}
void zhixing2()
{
cin>>s[2];s[1]=s[2];huibao();
cin>>s[2];huibao();
s[2]=s[1]*s[2];huibao();huibao1('*');
cout<<"结果="<<s[2]<<endl;
}
void zizhu()
{
s[0]=s[0]+2;if (s[0]>2) s[0]=s[0]-3;
}
void xianshi()
{
char d;
cout<<"是否我要了解我运算的情况?(y/n)"<<endl;
cin>>d;
if (d=='y')
{
s[7]=0;
for(s[5]=0;s[5]<s[9];s[5]=s[5]
+3
)
{
cout<<yishishuzu[s[5]];
cout<<yishiwenzi[s[7]];s[7]++;
cout<<yishishuzu[s[5]+1]<<"="<<yishishuzu[s[5]+2]<<endl;
}
}
}
void (*yishikongzhi[10])()={zhixing,zhixing1,zhixing2};
void main()
{
char c;
do
{
zizhu();
cout<<yishizifu[s[0]]<<endl;
yishikongzhi[s[0]]();
xianshi();
cout<<"是否继续(y/n)?"<<endl;
cin>>c;
}
while (c=='y');
}
2017年10月25日 04点10分
4
level 10
乙、程序的连续特征。
这个程序的基本结构与上一个“具有监视、控制功能的模拟意识程序”差不多。只是上一个程序有一个磁盘文件,它依靠磁盘文件记住上一次运行的操作,以便选择与上一次不同操作。
但是,它的磁盘文件太简单,没有保存上一次运行情况,因此它的纪录里只有一个运行情况。不够形象。
因此我们把原来的程序作了修改,做成连续运行形式,就可以看到对程序运行的连续纪录。这就是我做这个程序的目的。
它没有什么新意,但是两个程序对比,可以看到磁盘文件对意识的作用。至于磁盘文件的对意识更深入作用,我们以后的程序将会深入讨论??
2017年10月26日 03点10分
5
level 10
丙、运行情况。
意识程序为你服务,我为你计算乘法:
32
12
结果=384
是否我要了解我运算的情况?(y/n)
y
32*12=384
是否继续(y/n)?
y
意识程序为你服务,我为你计算减法:
34
13
结果=21
是否我要了解我运算的情况?(y/n)
y
32*12=384
34-13=21
是否继续(y/n)?
y
2017年10月28日 05点10分
7
level 10
意识程序为你服务,我为你计算加法:
23
42
结果=65
是否我要了解我运算的情况?(y/n)
y
32*12=384
34-13=21
23+42=65
2017年10月29日 01点10分
9
level 10
意识程序为你服务,我为你计算乘法:
234
142
结果=33228
是否我要了解我运算的情况?(y/n)
y
32*12=384
34-13=21
23+42=65
234*142=33228
是否继续(y/n)?
y
2017年10月29日 01点10分
10
level 10
(上接第十楼)
意识程序为你服务,我为你计算减法:
54321
12345
结果=41974
是否我要了解我运算的情况?(y/n)
y
32*12=384
34-13=21
23+42=65
234*142=33228
54321-12345=41974
是否继续(y/n)?
y
2017年11月01日 03点11分
13
level 10
意识程序为你服务,我为你计算加法:
754
829
结果=1583
是否我要了解我运算的情况?(y/n)
y
32*12=384
34-13=21
23+42=65
234*142=33228
54321-12345=41974
754+829=1583
是否继续(y/n)?
n
Press any key to continue
2017年11月01日 04点11分
14
level 10
与第九段的模拟意识程序不同,上面的运行是一次运行的结果。由于有了循环运行方式,当我在这个模拟意识程序运行六次后终止运行后,程序已经把六次运行的记录全部记录下来,并为我们显示出来。
不过这个程序已经没有读、写磁盘文件的内容。
在上面运行中,如果你在每次程序提问“是否我要了解我运算的情况?(y/n)”时输入“n”,程序将不为你显示它记录的运行经历。
让程序显示它的对自己经历的纪录,仅仅是为了检验它是否完成了这个纪录工作。
丁、新问题。
如果让这个程序用磁盘文件把自己的经历记忆下来,情况又会如何呢?
2017年11月01日 04点11分
15
level 10
(本文完稿于2008年4月30日)
(本文是《简单的模拟意识程序》节选)
2017年11月02日 05点11分
16