按照C++语言程序结构组成数字电路进行计算的计算机
按照C++语言程序结构组成数字电路进行计算的计算机是一种可以按照C++语言程序结构来安排加法器,输出显示电路,输入电路,的数字计算机。它由按键,液晶显示器,中央处理器组成。按键输入的程序保存在磁带上面,中央处理器在固定数字电路的作用下按照C语言程序构建电路,程序怎么写,电路就怎么连接。例如电路循环执行输出一个数据到显示器,电路就在定时器的作用下不断向液晶显示器输出数据。
中央处理器由程序语句判断执行电路,程序语句控制电路,面向对象控制电路构成。程序语句判断控制电路由端口,加法器,减法器,乘法器,除法器,n次方计算器,对数计算器,三角函数计算器构成。程序语句控制电路由if判断电路,for判断电路,switch判断电路构成。面向对象控制电路由class complex{判断电路组成,当出现class complex{时将class complex{}里面的程序保存到class complex磁带上面,当后面主程序调用类class complex{时,从class complex磁带中重新读取并执行这些程序。一个C++语言程序是固定的,它对应的计算机电路就是固定的。当程序是if时,电路就判断输入数据是否大于条件,如果是,不断执行程序,如果不是停止执行。
键盘输入的程序按每行保存在磁带中,程序语句判断电路根据键盘输入的程序的关键字判断电路执行相应的操作,例如输入2*3,电路执行乘法操作,程序语句判断控制电路根据键盘输入的程序的关键字控制电路的工作,例如输入for,电路将上面计算电路执行多次。
它的相关资料下载网址为:
https://photo.baidu.com/photo/wap/albumShare/invite/pfpPQksPua?from=linkShare
https://photo.baidu.com/photo/wap/albumShare/invite/mrhLEqtzWA?from=linkShare
https://photo.baidu.com/photo/wap/albumShare/invite/szwNLzxMOD?from=linkShare
链接:https://pan.baidu.com/s/1N1NuaojHouwSCsc0mkbq9g?pwd=s1gw
提取码:s1gw
链接:https://pan.baidu.com/s/1nRwFglvO8ErJtP2_3WQLRQ?pwd=jw8h
提取码:jw8h
c语言数字计算机
https://www.aliyundrive.com/s/TB18Qnt5bQX
c加加数字计算机
https://www.aliyundrive.com/s/FTDkwxSG7NU
:https://share.weiyun.com/uB9rsUsr
https://115.com/s/sw6of3h33u5?password=c052#
访问码:c052
https://kdocs.cn/join/ge5wqfb?f=101
第一部分 按照C语言程序结构组成数字电路进行计算的计算机
该计算器首先通过晶振产生32768HZ的谐振方波信号,再经过分频电路将这个方波信号的频率降低为100HZ,,即周期为0.01秒,再将这个100HZ的信号接入到按键的公共端,按键共有60个,它们的一端接到一起,另外一端分别接到倍频器上。相当于这些按键并联在一起,当某个按键被按下时,100HZ的信号就会接入到倍频器上,经过倍频后,频率变为1HZ,
为什么按键上面的频率是100HZ,这是因为100HZ的频率,周期是1毫秒,通常使用者按下按键的时间在1毫秒左右,所以,只有这个频率的信号才会在按下按键时输入到后级电路中。键值计算电路由十进制转二进制电路组成,当有数字键按下时,对应的数字按键输出端输出对应的数值。数值按键的输出端接上或门,或门两两相接,最后输出一个或门,当有任何计算符号按键按下时,或门输出高电平,或门后面接上计数器,计数器记录按键按下的次数,当有按键按下时,计数器将对应的次数输入到加法器,加法器给键值乘以10,100,1000,等倍数。当连续按2次按键时,需要用乘法器给键值乘以10,连续按下3次按键时,需要用乘法器给键值乘以100,依次类推。所有数值按键的输出端连接到一起,输出到计算符号电路,进行计算。计算符号编码电路产生对应计算符号的编码,输送给计算符号按键电路。用计算符号按键输入计算符号+-×÷,cos,sin,ln,log,等,
当RS触发器的输入端R,S都是1时,触发器保持输出端没有变化。利用这个特点,当按键输入高电平1时,电路输出高电平1给存储器,当按键断开输入低电平0时,RS触发器仍然给存储器输入1,当清零键按下时,RS触发器的S端输入0,触发器给存储器输入0,存储器清零。
当有按键按下时RS触发器Q输出1, Q 输出0,按下清零键以后,RS触发器Q端输出0, Q 端输出0
按键编码器产生二进制编码,每个编码对应一个按键。
当数字键1,按下时,这个与门输出0000001给后面计算电路,所有按键存储器后面两两之间接上或门,或门后面再接上或门,最后接上计数器,当按键按下时,计数器变为1,对应的存储器输出对应键值。当按键按下第二次时,计数器输出2,输出两位数字,当按键按下第三次时,计数器输出3,输出三位数字。
经过两个异或门和一个或门以后输出高电平111111111,这使后面的与门输出按键的数值到寄存器1,
当开始输入时,按清零键,计算机按键输入为0.此时,开始输入字符,将字符输入到寄存器1,
按键输入的程序存储在磁带A上面,超强磁性磁带的基材由50%醋酸酯DAC,50%醋酸酯TAC构成,超强磁性磁带的磁性粉末粘合剂有1%氯乙烯,1%醋酸乙烯共聚体,1%苯乙烯-丁二烯共聚体,1%硝化纤维素。1%纤维素,1%丁腈橡胶,1%丙烯酸酯橡胶,1%无定形聚酯,1%氨酯橡胶,1%聚氨基甲酸乙酯树脂,环氧树脂,密胺树脂,1%醋酸乙烯,1%丙烯酸酯丁基系的软质树脂,超强磁性磁带的磁性粉末分散剂由10ml乙醇,20g尿素,10ml双氧水,10g蔗糖,20g聚乙二醇4000,油酸钾皂试剂20g,黄色色素10g,司盘80试剂10ml,氧化铝10g,氨水50g,大豆油10g,α-烯基磺酸钠5g,十二烷基苯磺酸钠5g,烯丙基磺酸钠5g,二甲苯磺酸钠5g,椰子油脂肪酸渗透二乙醇酰胺6501日化,1%卵磷脂组成,磁性粉末稳定剂有对氯乙烯系粘合剂,使用硬脂酸钡等金属无机盐。磁性粉末防带静电剂是在磁性层内渗入炭黑或石墨等固体导电粉末。超强磁性磁带的磁性粉由二氧化铬,三氧化二铁,铬化铁,氧化镍,氧化钴,氧化钇,镝,二氧化锰。把磁性粉末,粘合剂,增塑剂,稳定剂,分散剂,加入水中,使各个磁性粉末相互溶解到水里,再球磨机混合均匀,最后用刮片涂覆到基材上面。
注意:收音机磁带使用涂着四氧化三铁的硝酸纤维素条,铁芯(铁氧体/羟基铁芯),0.32-0.45mm变压器钢片,线圈(0.08mm漆包线1200-1500匝),放音头间隙0.02mm,工作间隙0.5mm,磷铜萡/黄铜箔,
磁带录音机电路如下:
按键电路如下:
计算机中央处理器CPU电路原理图
程序语句判断电路
程序关键字判断电路,程序关键字判断电路,查询到关键字,并执行该关键字所要求的功能。
程序计算符号判断电路,程序计算符号判断电路,查询到计算符号,并执行该计算符号所要求的功能。
数据判断电路,程序数据判断电路,查询到数据符号,并执行该数据符号所形成的数据。
字符判断电路,程序字符判断电路,查询到字符,并执行该字符的功能。
磁带程序判断执行电路原理图。
语句执行电路,按照语句判断的输出,执行这条语句,输出到CPU端口并执行。
关于数字电路加法器,计数器,分频器的电路可参见《中国集成电路大全》丛书,《中国集成电路大全编写委员会编,国防工业出版社1987年出版.
该计算器首先通过晶振产生32768HZ的谐振方波信号,再经过分频电路将这个方波信号的频率降低为100HZ,,即周期为0.01秒,再将这个100HZ的信号接入到按键的公共端,按键共有60个,它们的一端接到一起,另外一端分别接到倍频器上。相当于这些按键并联在一起,当某个按键被按下时,100HZ的信号就会接入到倍频器上,经过倍频后,频率变为1HZ为什么按键上面的频率是100HZ,这是因为100HZ的频率,周期是1毫秒,通常使用者按下按键的时间在1毫秒左右,所以,只有这个频率的信号才会在按下按键时输入到后级电路中。键值编码电路由二进制编码电路组成,当有按键按下时,对应的按键输出端输出对应的按键编码。每个按键的输出端接上或门,或门两两相接,最后输出一个或门,当有任何计算按键按下时,或门输出高电平,这个或门在和每个按键的输出端接上与门,这些与门在两两之间接上或门,最后一个或门接上按键寄存器。按键寄存器将输入的按键输出保存到磁带寄存器A中,计算机CPU通过算法语言关键字判断语句,计算符号判断电路,中断判断电路,定时器判断电路,数据判断电路,选择性的判断执行磁带存储器A中的按键输入程序。计算机CPU通过执行电路执行上面语句判断电路输出的内容。最后将执行结果通过IO端口输出,并用液晶显示器显示出来。
如果出现PROGRAM BEGIN说明程序开始,与门导通,如果出现空格说明前面是一个关键字,或字符或数据,与门导通。如果出现回车说明前面是一个程序段,需要执行这段程序,与门导通。
关键字比较电路,和每个关键字的代码相互比较,如果代码相同·,执行该关键字的功能。
字符比较电路,和每个字符的代码相互比较,如果代码相同·,执行该字符的功能。
数据比较电路,和每个数据的代码相互比较,如果代码相同·,产生该数据的二进制编码。
磁带程序判断执行电路原理图
磁带程序执行控制电路原理图
出现whil()时,将键盘输入的whil(){}里面的程序保存到whil寄存器里面,与门导通,程序将重复执行whil()寄存器里面的程序。
出现switch时,将键盘输入的switch(){}里面的程序保存到switch寄存器,与门导通,电路将选择执switch寄存器里面的程序。
出现if时,将键盘输入的if{}里面的程序保存到if寄存器,与门导通,电路选择执行if寄存器里面的程序。
出现for时,将键盘输入的for(){}里面的程序保存到for寄存器里面,与门导通,程序将重复执行for寄存器里面的程序。
磁带程序面向对象控制电路原理图
出现class complex{时,将键盘输入的class complex{}里面的程序保存到complex磁带里面,与门导通,程序将重复执行complex磁带里面的程序。
出现private时,将键盘输入的private里面的程序保存到private寄存器,与门导通,电路将选择执private寄存器里面的程序。
出现public时,将键盘输入的public里面的程序保存到if寄存器,与门导通,电路选择执行public寄存器里面的程序。
计算机原理图如下:
第一个C++计算机数字电路
下面资料可参见《C++面向对象程序设计教程》,陈维兴,林小茶编著,清华大学出版社2000年出版。
例2.1
左面是从键盘输入的程序的源码,下面根据上面程序做一个电路,键盘输入的程序保存到磁带上面,磁带上面的程序进入选择电路。
#include <iostream.h>
当键盘磁带输入#include <iostream.h>,与门导通,进入iostream.h类型电路。
当键盘输入回车键,进入另外一个关键字判断电路,
int add(int a,int b); //函数原型的说明
当键盘磁带输入int add(int a,int b);,与门导通,产生一个加法电路int add。
当键盘输入回车键,进入另外一个关键字判断电路。
int main() //主函数
当键盘磁带输入int main(),与门导通,进入主程序判断执行电路。
当键盘输入回车键,进入另外一个关键字判断电路。
{
当键盘磁带输入{,与门导通,主程序判断执行电路开始。
当键盘输入回车键,进入另外一个关键字判断电路。
int x,y,sum; //定义三个整型变量
当键盘磁带输入int x,y,sum;,与门导通,x寄存器,y寄存器,sum寄存器为三个整型变量寄存器。
当键盘输入回车键,进入另外一个关键字判断电路。
count <<"Enter two numbers:"<<'\n'; //界面:提示用户输入两个数
当键盘磁带输入count <<"Enter two numbers:"<<'\n';,与门导通,计算机液晶显示器显示Enter two numbers:
当键盘输入回车键,进入另外一个关键字判断电路。
cin>>x; //从键盘输入变量x的值
当键盘磁带输入cin>>y;,与门导通,将键盘输入的一个数据保存到y寄存器。。
sum=add(x,y); //调用函数add,将得到的值赋给变量。
当键盘磁带输入sum=add(x,y);,与门导通,接通add计算加法电路,计算寄存器x和寄存器y里面数据的和。
count<<"The sum is:"<<sum<<'\n'; //输出两个数的和sum的值
当键盘磁带输入count<<"The sum is:"<<sum<<'\n';,与门导通,计算机液晶显示器显示The sum is:后面是sun寄存器的数据。
当键盘输入回车键,进入另外一个关键字判断电路。
当键盘磁带输入},与门导通,主程序结束,电路关闭。
程序运行情况如下:
Enter two numbers:
3<CR>
5<CR>
The sum is:8
将add段的程序保存到寄存器里面,等下次程序调用时,重新执行该程序。
计算机电路图如下:
第二个C++数字计算机电路
下面资料可参见《C++面向对象程序设计教程》,陈维兴,林小茶编著,清华大学出版社2000年出版。
例2.6
左面是从键盘输入的程序的源码,下面根据上面程序做一个电路,键盘输入的程序保存到磁带上面,磁带上面的程序进入选择电路。
#include <iostream.h>
当键盘磁带输入#include <iostream.h>,与门导通,进入iostream.h类型电路。
当键盘输入回车键,进入另外一个关键字判断电路。
inline float circle (float r) //内置函数
当键盘磁带输入inline float circle (float r),与门导通,产生一个计算圆面积的电路circle。
当键盘输入回车键,进入另外一个关键字判断电路。
{return 3.1416*r*r; }
当键盘磁带输入{return 3.1416*r*r; },与门导通,将3.1416*r*r的计算结果保存到circle寄存器里面。
当键盘输入回车键,进入另外一个关键字判断电路。
int main()
当键盘磁带输入int main(),与门导通,主程序判断执行电路开始。
{
当键盘输入回车键,进入另外一个关键字判断电路。
for (int i=1;i</3;i++)
当键盘磁带输入for (int i=1;i</3;i++),与门导通,当i小于等于3时,从i=1开始执行下面的程序,每执行一次i+1。
当键盘输入回车键,进入另外一个关键字判断电路。
circle(i);
当键盘磁带输入circle(i);,与门导通,调用circle电路,计算圆的面积。
count <<"r="<<i<<" area= "<<circle(i)>>endl;
当键盘磁带输入count <<"r="<<i<<" area= "<<circle(i)>>endl;,与门导通,计算机液晶显示器显示r=后面是r寄存器里面的数据, area= 后面是circle寄存器的数据。。
当键盘输入回车键,进入另外一个关键字判断电路。
}
当键盘磁带输入},与门导通,主程序结束,电路关闭。
程序运行情况如下:
r=1 area=3.1416
r=2 area=12.5664
r=3 area=28.274401
将circle段的程序保存到寄存器里面,等下次程序调用时,重新执行该程序。当i=1,i=2,i=3时,重复执行ciecle计算圆面积电路。
数值大小比较电路两数相减,得到的数据进行平方计算,如果是负数,平方后得到正数,开方后得到正数,加上原来的负数,输出0。
两数相减,得到的数据进行平方计算,如果是正数,平方后得到正数,开方后得到正数,加上原来的正数,输出正数。
如果加法器输出0,或门输出1,与门输出1,状态寄存器A保存1,证明两数相减得到的是负数,反之,则是正数。
计算机的电路如下所示:
第三个C++数字计算机电路
下面资料可参见《C++面向对象程序设计教程》,陈维兴,林小茶编著,清华大学出版社2000年出版。
左面是从键盘输入的程序的源码,下面根据上面程序做一个电路,键盘输入的程序保存到磁带上面,磁带上面的程序进入选择电路。
#include <iostream.h>
当键盘磁带输入#include <iostream.h>,与门导通,进入iostream.h类型电路。
当键盘输入回车键,进入另外一个关键字判断电路。
#include <math.h>
当键盘磁带输入#include <math.h>,与门导通,进入math.h类型电路。
class complex{
当键盘磁带输入class complex{,与门导通,电路切换到A,complex类生成电路。
并将类里面的程序保存到类寄存器,当主程序调用这个类时,重新执行这段程序。
private:
当键盘磁带输入private:,与门导通,rea寄存器和imag寄存器只有在下面类的电路使用
double real;
当键盘磁带输入double real;,与门导通,电路将复数的实部储存在real寄存器中。
double imag;
当键盘磁带输入double imag;,与门导通,电路将复数的虚部储存在imag寄存器中。
public:
当键盘磁带输入public:,与门导通,r寄存器和i寄存器可以在程序的任何地方使用,
void init(double r,double i)
当键盘磁带输入void init(double r,double i),与门导通,切换到给real寄存器和imag寄存器保存数据的电路init。
{real=r;imag=i;}
当键盘磁带输入{real=r;imag=i;},与门导通,将r寄存器的数据保存到real寄存器里面,将i寄存器的数据保存到imag寄存器里面。
double realcomplex()
当键盘磁带输入double realcomplex(),与门导通,切换到给real寄存器保存复数实部数据的电路realcomplex。
{return real;}
当键盘磁带输入{return real;},与门导通,将real寄存器的数据保存到real寄存器里面,将i寄存器的数据保存到imag寄存器里面。
double imagcomplex()
当键盘磁带输入double imagcomplex(),与门导通,切换到给imag寄存器保存复数虚实部数据的电路realcomplex。
{return imag;}
当键盘磁带输入{return imag;},与门导通,将imag寄存器的数据保存到imag寄存器里面,将i寄存器的数据保存到imag寄存器里面。
double abscomplex()
当键盘磁带输入double abscomplex(),与门导通,将形成计算复数绝对值的电路abscomplex。
{
double t;
当键盘磁带输入double t;,与门导通,将形成一个保存数据的寄存器t。
t=real*real+imag*imag;
当键盘磁带输入t=real*real+imag*imag;,与门导通,将real寄存器的数据平方后和imag寄存器的数据平方后相加,再保存到t寄存器里面。
return aqrt(t);
当键盘磁带输入return aqrt(t);,与门导通,将t寄存器里面的数据开放后放到t寄存器里面。
}
}A;
int main()
当键盘磁带输入int main(),与门导通,进入主程序判断执行电路。
当键盘输入回车键,进入另外一个关键字判断电路。
{
当键盘磁带输入{,与门导通,主程序判断执行电路开始。
当键盘输入回车键,进入另外一个关键字判断电路。
A.init(1.1,2.2);
当键盘磁带输入A.init(1.1,2.2);,与门导通,将1.1保存到r寄存器,2.2保存到i寄存器。
count <<"real of complex A="<<A.realcompex()<<endl;
当键盘磁带输入count <<"real of complex A="<<A.realcompex()<<endl;,与门导通,计算机液晶显示器显示real of complex A=后面是real寄存器的数据。
count <<"imag of complex A="<<A.imagcompex()<<endl;
当键盘磁带输入count <<"imag of complex A="<<A.imagcompex()<<endl;,与门导通,计算机液晶显示器显示imag of complex A=后面是imag寄存器的数据。
count <<"abs of complex A="<<A.abscompex()<<endl;
当键盘磁带输入count <<"abs of complex A="<<A.abscompex()<<endl;,与门导通,计算机液晶显示器显示abs of complex A=后面是t寄存器的数据。
当键盘输入回车键,进入另外一个关键字判断电路。
}
当键盘磁带输入},与门导通,主程序结束,电路关闭
程序运行情况如下:
real of complex A=1.1
imag of complex A=2.2
abs of complex A=2.459675
将complex段的程序保存到磁带complex里面,等下次程序调用时,重新执行complex磁带里面的程序。