分布式作业Word格式文档下载.docx
《分布式作业Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《分布式作业Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
比特
5,现代电子数字计算机最基本的运算有哪些?
与或非
6,试给出1位全加法器的逻辑表达式。
一位全加器(FA)的逻辑表达式为:
S=A⊕B⊕Cin;
Co=ACin+BCin+AB
其中A,B为要相加的数,Cin为进位输入;
S为和,Co是进位输出;
7,试给出2-4译码器的逻辑表达式
输入
输出
E(使能端)
X1
X2
Y0
Y1
Y2
Y3
1
由真值表可写出各输出端逻辑表达式:
Y0=一E+X1+X2Y1=一E+X1+一X2Y2=一E+一X1+X2Y3=一E+一X1+一X2
8,试给出4-2编码器的逻辑表达式
Y0=I0—I1I2I3+I0I1I2—I3;
Y1=I0I1—I2I3+I0I1I2—I3;
9,现代电子数字计算机的基本原理是什么?
存储程序和程序控制。
10,现代电子数字计算机体系结构是什么?
它的发明人是谁?
计算机包括运算器、存储器、控制器、输入和输出设备五大基本部分。
冯.诺依曼(VonNeumann):
美藉匈牙利科学家,早期研究数理逻辑,1944年夏天,参加ENIAC的设计,1945年3月,提出第一台存储程序式通用电子计算机──EDVAC的设计方案,1952年制造成功。
11,现代电子数字计算机是怎样自动运行的?
程序计数器
12,现代电子数字计算机中,怎样表示它能完成的基本功能?
指令系统
13,求模运算中的模是什么意思?
它和补码有何关系?
模:
一个计量系统的计数范围,、一个负整数(或原码)与其补数(或补码)相加,和为模。
14,怎样得到二进制负数的补码?
为什么?
符号位为1,其余位均为该数绝对值得原码按位取反,然后整体加1.
15,自动寻址功能是计算机能自动运行的关键,试述图灵机的自动寻址功能
一条两端可无限延长的带子,一个读写头,一个控制器,带子由可擦写的小格组成,读写头可左右移动并读写,可写字符集{0,1,b},控制器有有穷个状态,一个开始状态,一个结束状态,控制器的命令为:
(状态,符号)(写符号,移动,新状态)
图灵机从开始状态工作直到结束状态停止,带上的内容就是计算结果。
16,通用图灵机对发明现代电子数字计算机的重要意义。
通用图灵机的重要意义:
1把程序也作为数据;
2存储程序和程序控制。
(1)图灵机存储空间无限,计算机存储空间有限。
(2)、图灵机指令系统不定,计算机指令系统确定。
(3)、图灵机仅是理论模型,计算机是其物理实现。
所以,从理论上讲,图灵机的能力比计算机的能力强。
通用图灵机证明了通用计算理论,肯定了计算机实现的可能性,同时给出了计算机应有的主要架构;
通用图灵机引入程序的概念,将程序也作为数据,基本原理是存储程序和程序控制,为计算机的发展奠定了基础。
17,计算机模拟了人类的哪些智能?
对记忆功能的仿真——数据和程序的存贮。
对自动处理功能的仿真——程序的自动执行。
18,人工智能的极限是什么?
形式化局部处理。
计算机的基本智能:
严格形式化的数据存储和程序的自动执行。
人类对于信息的存贮与处理是全息式的:
⒈存贮与处理全方位的信息;
⒉存贮与处理是同时进行的。
19,给出x+1图灵机的形式描述,画出其有限状态自动机和流程图,并分析它们间的关系:
用C语言编写一模拟通用图灵机的程序,用x+1图灵机进行验证。
“x+1”图灵机:
输入x,输出x+1,功能固定的一个程序。
图灵机状态集合{start,add,carry,noncarry,overflow,return,halt};
字母表{0,1,*};
初始状态s为start;
停机状态集合{halt}。
“x+1”图灵机转换规则集合
输入
响应
当前状态
当前符号
新符号
读写头移动
新状态
Start
*
Left
Add
Noncarry
Carry
Right
Halt
Overflow
Return
0或1
Stay
#include<
stdio.h>
#include<
string.h>
voidprint(intlen,chara[100]);
chara[100];
charcurrstate[10]="
start"
;
charnewstate[10]="
s"
intmain(void)
{
inti,length;
printf("
计算“x+1”的图灵机工作过程\n"
);
//printf("
请输入二进制的位数:
"
//scanf("
%d"
&
length);
请输入二进制数x:
gets(a);
///for(i=0;
i<
length;
i++)
%c"
a[i]);
//intlength=i;
//for(i=0;
//printf("
a[i]);
length=strlen(a);
i=length-1;
a[length]='
\0'
length);
while((strcmp(newstate,"
halt"
))!
=0)
{if(!
strcmp(currstate,"
)){
strcpy(newstate,"
add"
print(length,a);
strcpy(currstate,newstate
i--;
}
if(!
if(a[i]=='
0'
){
a[i]='
1'
strcpy(newstate,"
noncarry"
strcpy(currstate,newstate);
i--;
//print(length,a);
}
elseif(a[i]=='
a[i]='
carry"
print(length,a);
strcpy(currstate,newstate);
i--;
}
else
{a[i]='
*'
//break;
}if(!
strcpy(newstate,"
//print();
//break;
else
overflow"
//print(length,a);
strcpy(currstate,newstate);
strcpy(currstate,newstate);
//break;
{
strcpy(newstate,"
return"
print(length,a);
if((a[i]=='
)||(a[i]=='
//print(length,a);
}if(!