C語言數字計算機_第1頁
C語言數字計算機_第2頁
C語言數字計算機_第3頁
C語言數字計算機_第4頁
C語言數字計算機_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

按照C語言程序結構組成數字電路進行計算的計算機

按照C語言程序結構組成數字電路進行計算的計算機是一種可以按照C語言程序結構

來安排加法器,輸出顯示電路,輸入電路,的數字計算機。它由按鍵,液晶顯示器,中央處

理器組成。按鍵輸入的程序保存在磁帶上面,中央處理器在固定數字電路的作用下按照C

語言程序構建電路,程序怎么寫,電路就怎么連接。例如電路循環執行輸出一個數據到顯示

器,電路就在定時器的作用下不斷向液晶顯示器輸出數據。

中央處理器由程序語句判斷執行電路,程序語句控制電路構成。程序語句判斷控制電

路由端口,加法器,減法器,乘法器,除法器,n次方計算器,對數計算器,三角函數計算

器構成。程序語句控制電路由if判斷電路,for判斷電路,switch判斷電路構成。一個C語

言程序是固定的,它對應的計算機電路就是固定的。當程序是if時,電路就判斷輸入數據是

否大于條件,如果是,不斷執行程序,如果不是停止執行。

鍵盤輸入的程序按每行保存在磁帶中,程序語句判斷電路根據犍盤輸入的程序的關鍵字

判斷電路執行相應的操作,例如輸入2*3,電路執行乘法操作,程序語句判斷控制電路根據

鍵盤輸入的程序的關鍵字控制電路的工作,例如輸入for,電路將上面計算電路執行多次。

它的相關資料下載網址為:

/photo/wap/albumShare/invite/srLNHWoTUE?from=linkShare

點擊鏈接接口查看全部內容:

/photo/wap/albumShare/invite/pAwKIIUduWt?from=linkShare

點擊鏈接接口查看全部內容:

/photo/wap/albumShare/invite/zSlylwJrAX?from=linkShare

點擊鏈接接口查看全部內容:

/photo/wap/albumShare/invite/jOZhOuLss?from=linkShare

鏈接:https:〃/s/lkdRopHtXHdHcupykSniRPA?pwd=ph5o

提取碼:ph5o

鏈接:https:〃/s/16x8d5sz6j7P2FhR2LFwrtA?pwd=6vlp

提取碼:6vlp

https://www.aliyundrive.eom/s/9pYFYmBMlEk

微云文件分享:c語言數字計算機下載地址:https:〃/9McVoBgO

https://115.com/s/sw6o6hs33u5?password=xf96#

c語言數字計算機

訪問碼:xf96

/join/ge5wqfb?f=101

第一部分按照C語言程序結構組成數字電路進行計算的計算機

該計算器首先通過晶振產生32768Hz的諧振方波信號,再經過分頻電路將這個方波信

號的頻率降低為100HZ,,即周期為0.01秒,再將這個100HZ的信號接入到按鍵的公共端,

按鍵共有60個,它們的一端接到?起,另外?端分別接到倍頻器上。相當于這些按鍵并聯

在一起,當某個按鍵被按下時,100HZ的信號就會接入到倍頻器上,經過倍頻后,頻率變為

1H乙

為什么按鍵上面的頻率是100HZ,這是因為100HZ的頻率,周期是1毫秒,通常使用者按下

按鍵的時間在1亳秒左右,所以,只有這個頻率的信號才會在按下按鍵時輸入到后級電路中。

鍵值計算電路由十進制轉二進制電路組成,當有數字鍵按卜時,對應的數字按鍵輸出端輸出

對應的數值。數值按鍵的瑜出端接上或門,或門兩兩相接,最后輸出一個或門,當有任何計

算符號按鍵按下時,或門輸出高電平,或門后面接上計數器,計數器記錄按鍵按下的次數,

當有按鍵按下時,計數器將對應的次數輸入到加法器,加法器給鍵值乘以10,100,1000,

等倍數。當連續按2次按鍵時,需要用乘法器給鍵值乘以10,連續按下3次按鍵時,需要

用乘法器給鍵值乘以100,依次類推。所有數值按鍵的輸出端連接到一起,輸出到計算符號

電路,進行計算。計算符號編碼電路產生對應計算符號的編碼,輸送給計算符號按鍵電路。

用計算符號按鍵輸入計算符號+-x+,cos,sinJn,Iog,等,

當RS觸發器的輸入端R,S都是1時,觸發器保持輸出端沒有變化。利用這個特點,當按鍵

輸入高電平1時,電路輸出高電平1給存儲器,當按鍵斷開輸入低電平0時,RS觸發器仍

然給存儲器輸入1,當清零鍵按下時,RS觸發器的S端輸入0,觸發器給存儲器輸入0,存

儲器清零。

當有按蟹下時R5觸發器Q輸出1,b愉出0,按下清零鍵以后,RS觸發器Q瑞愉

出0,另一端輸出0

按鍵編碼器產生二進制編碼,每個編碼對應一個按鍵。

當數字鍵1,按下時,這個與門輸出0000001給后面計算電路,所有按鍵存儲器后面兩兩之

間接上或門,或門后面再接上或門,最后接上計數器,當按鍵按下時,計數器變為1,對應

的存儲器輸出對應鍵值。當按鍵按下第二次時,計數器輸需2,輸出兩位數字,當按鍵按下

第三次時,計數器輸出3,輸出三位數字。

經過兩個異或門和一個或門以后輸出高電平111111111,這使后面的與門輸出按鍵的數值到

寄存器1,

當開始輸入時,按清零鍵,計算機按鍵輸入為。.此時,開始輸入字符,將字符輸入到寄存器

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,a-烯基磺酸鈉5g,十二烷基苯磺酸鈉5g,烯丙基磺酸鈉5g,

二甲苯磺酸鈉5g,椰子油脂肪酸滲透二乙醇酰胺6501日化,1%卵磷脂組成,磁性粉末穩定

劑有對氯乙烯系粘合劑,使用硬脂酸鋼等金屬無機鹽。磁性粉末防帶靜電劑是在磁性層內滲

入炭黑或石墨等固體導電粉末。超強磁性磁帶的磁性粉由二氧化銘,三氧化二鐵,格化鐵,

氧化銀,氧化鉆,氧化鈕,錮,二氧化缽。把磁性粉末,粘合劑,增塑劑,穩定劑,分散劑,

加入水中,使各個磁性粉末相互溶解到水里,再球磨機混合均勻,最后用刮片涂覆到基材上

面O

注意:收音機磁帶使用涂著四氧化三鐵的硝酸纖維素條,鐵芯(鐵氧體/羥基鐵芯),

0.32-0.45mm變壓器鋼片,線圈(0.08mm漆包線1200-1500匝),放音頭間隙0.02mm,工

作間隙0.5mm,磷銅范/黃銅箔,

磁帶錄音機電路如下:

按鍵電路如下:

o

一加?Q3Q=庭二

^°taoo=

,金e□□

gw0^

—toCMiz

ng?OF°

3taz[MJO

j'0ttono產

,等Z了S昌-匚0問

.口口淚汨1%,

MEracra=^o^IT

o-o-o口

?0toa3Q=s:QA曲口

0yts一

計算機中央處理器CPU電路原理圖

程序語句判斷電路

程序關鍵字判斷電路,程序關鍵字判斷電路,查詢到關鍵字,并執行該關鍵字所要求的功能。

程序計算符號判斷電路,程序計算符號判斷電路,查詢到計算符號,并執行該計算符號所要

求的功能。

數據判斷電路,程序數據判斷電路,查詢到數據符號,并執行該數據符號所形成的數據。

字符判斷電路,程序字符判斷電路,查詢到字符,并執行該字符的功能。

磁帶程序判斷執行電路原理圖。

語句執行電路,按照語句判斷的輸出,執行這條語句,瑜出到CPU端口并執行。

關于數字電路加法器,計數器,分頻器的電路可參見《中國集成電路大全》叢書,《中國集

成電路大全編寫委員會編,國防工業出版社1987年出版.

該計算器首先通過晶振產生32768HZ的諧振方波信號,再經過分頻電路將這個方波信號的

頻率降低為100HZ,,即周期為0.01秒,再將這個100HZ的信號接入到按鍵的公共端,按鍵

共有60個,它們的一端接到一起,另外一端分別接到倍頻器上。相當于這些按鍵并聯在一

起,當某個按鍵被按下時,100HZ的信號就會接入到倍頻器上,經過倍頻后,頻率變為1HZ

為什么按鍵上面的頻率是100HZ,這是因為100HZ的頻率,周期是1亳秒,通常使用者按卜

按鍵的時間在1亳秒左右,所以,只有這個頻率的信號才會在按下按鍵時輸入到后級電路中。

鍵值編碼電路由二進制編碼電路組成,當有按鍵按下時,對應的按鍵輸出端輸出對應的按鍵

編碼。每個按鍵的輸出端接上或門,或門兩兩相接,最后輸出一個或門,當有任何計算按鍵

按下時,或門輸出高電平,這個或門在和每個按鍵的輸出端接上與門,這些與門在兩詼之間

接上或門,最后一個或門接上按鍵寄存器。按鍵寄存器將輸入的按鍵輸出保存到磁帶寄存器

A中,計算機CPU通過算法語言關鍵字判斷語句,計算符號判斷電路,中斷判斷電路,定時

器判斷電路,數據判斷電珞,選擇性的判斷執行磁帶存儲器A中的按鍵輸入程序。計算機

CPU通過執行電路執行上面語句判斷電路輸出的內容。最后將執行結果通過10端口輸出,

并用液晶顯示器顯示出來。

如果出現PROGRAMBEGIN說明程序開始,與門導通,如果出現空格說明前面是一個關

鍵字,或字符或數據,與門導通。如果出現回車說明前面是?個程序段,需要執行這段程序,

與門導通。

關鍵字比較電路,和每個關鍵字的代碼相互比較,如果弋碼相同?,執行該關鍵字的功能。

字符比較電路,和每個字符的代碼相互比較,如果代碼相同?,執行該字符的功能。

數據比較電路,和每個數據的代碼相互比較,如果代碼相同?,產生該數據的二進制編碼。

磁帶程序判斷執行電路原理圖

D-

磁帶程序執行控制電路原理圖

出現whil()時,將鍵盤輸入的whil(){}里面的程序保存到whil寄存器里面,與門導通,程序將

重及執行Whil()寄存器里面的程序。

出現switch時,將鍵盤輸入的switch。。里面的程序保存到switch寄存瑞,與門導通,電路

將選擇執switch寄存器里面的程序。

出現if時,將鍵盤輸入的if{}里面的程序保存到if寄存器,與門導通,電路選擇執行if寄存

器里面的程序。

出現for時,將鍵盤輸入的forOO里面的程序保存到for寄存器里面,與門導通,程序將重復

執行for寄存器里面的程序。

計算機原理圖如下:

-u:口口?Q

D-MM3Joi]OaQ□□□□□□□□

t11fTTTf

^020030^□□□

-hl

一口000023

-Tiw-WQ^

*

力Lr

第一個計算機電路

下面資料可參見《C語言程序設計》,田淑清,周海燕,趙重敏編,高等學校教材,2000年

出版。

例2.2計算圓面積

左面是從鍵盤輸入的程序的源碼,下面根據上面程序做一個電路,

ttinclude"stdio.h"

鍵盤輸入的程序保存到磁帶上面,磁帶上面的程序進入選擇電路。當鍵盤磁帶輸入#訪6"0

"stdio.h",與門導通,進入stdio.h類型電路。當鍵盤輸入回車鍵,進入另外一個關鍵字判斷

電路。

ttdefinePI3.14159

當鍵盤磁帶輸入#<^6根PI3.14159,與門導通,PI寄存器存儲數據3.14159

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

main()

當鍵盤磁帶輸入main。,與門導通,進入主程序判斷執行電路。當鍵盤輸入回車鍵,進入另

外一個關鍵字判斷電路

|

當鍵盤磁帶輸入{,與門導通,主程序判斷執行電路開始。當鍵盤磁帶輸入{,與門導通,主

程序判斷執行電路開始。當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

floatr,s;

當鍵盤磁帶輸入floatr,s;,與門導通,r寄存器,s寄存器為雙字節數據寄存器。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

r=5.0;

當鍵盤磁帶輸入r=5.0,與門導通,r寄存器,s寄存器存儲數據5.0。當鍵盤輸入回車鍵,

進入另外一個關鍵字判斷電路。

s=PI*r*r;

當鍵盤磁帶輸入s=PI*r*r;,與門導通,PI寄存器里面的數據乘以r寄存器的數據,再賓以r

寄存器的數據,再將結果保存在s寄存器里面。當鍵盤輸入回車鍵,進入另外一個關鍵字判

斷電路。

printf("s=%f\n"/s);

當鍵盤磁帶輸入printf(”s=%f\rT,s);,與門導通,計算機液晶顯示器顯示s寄存器里面的數據。。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路,

)

當鍵盤磁帶輸入},與門導通,主程序結束,電路關閉。

程序運行結果如下:s=78.539749o

第二個計算機電路

下面資料可參見《C語言程序設計》,田淑清,周海燕,趙重敏編,高等學校教材,2000年

出版。

例3.1以下程序由終端輸入兩個整數給變量x和y,然后輸出x和y,在交換x和y中的值后,

驗證兩個變量中的數是否正確地進行了交換。

左面是從鍵盤輸入的程序的源碼,下面根據上面程序做一個電路,

#include"stdio.h"

鍵盤輸入的程序保存到磁帶上面,磁帶上面的程序進入優擇電路。當鍵盤磁帶輸入的9必加

"stdio.h",與門導通,進入stdio.h類型電路。當鍵盤輸入回車鍵,進入另外一個關鍵字判斷

電路。

main()

當鍵盤磁帶輸入main。,與門導通,進入主程序判斷執行電路。當鍵盤輸入回車鍵,進入另

外一個關鍵字判斷電路。

(

當鍵盤磁帶輸入{,與門導通,主程序判斷執行電路開始。當鍵盤輸入1口1車鍵,進入另外一

個關鍵字判斷電路。

intx,y,t;

當鍵盤磁帶輸入intx,y,t;,與門導通,x,y,t寄存器是字符型寄存器。當鍵盤輸入回車鍵,

進入另外一個關鍵字判斷電路。

printf("Enterx&y:\n");

當鍵盤磁帶輸入printf("Enterx&y:\n");,與門導通,計算機顯示器顯示Enterx&y當鍵盤

輸入回車鍵,進入另外一個關鍵字判斷電路。

scanf("%d%d"z&x,&y);

當鍵盤磁帶輸入與門導通,從鍵盤輸入兩個數據。當鍵盤輸入回車

scanf("%d%d",&xz&y);,

鍵,進入另外一個關鍵字判斷電路。

printf("x=%dy=%d\n",x,y|;

當鍵盤磁帶輸入與門導通,計算機顯示器顯示輸入的數據

pcntf("x=%dy=%d\n",x/y);,x,y

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

t=x;x=y;y=t;

當鍵盤磁帶輸入1=為x=y;y=t;,與門導通,將鍵盤輸入的x寄存器里面的數據保存到

t寄存器,將鍵盤輸入的y寄存器里面的數據保存到x寄存器,將t寄存器里面的數據保存

到y寄存器里面。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

printf("x=%dy=%d\n"/xzy|;

當鍵盤磁帶輸入printf("x=%dy=%d\n",x,y);,與門導通,計算機顯示器顯示輸入的x,y數據

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

)

當鍵盤磁帶輸入},與門導通,主程序結束,電路關閉。

以下是程序運行情況:

Enterx&y:(由第4行的printf輸出)

123456<CR>(從鍵盤輸入兩個整數,<CR>代表按Enter鍵)

x=123,y=456(從第6行的printf輸出)

x=456,y=123(從第8行的printf輸出)

I口o;0

第三個計算機電路

main()

當鍵盤磁帶輸入main(),與門導通,進入主程序判斷執行電路。當鍵盤輸入回車鍵,進入另

外一個關鍵字判斷電路。

(

當鍵盤磁帶輸入{,與門導通,主程序判斷執行電路開始。當鍵盤輸入I可車鍵,進入另外一

個關鍵字判斷電路。

intg;

當鍵盤磁帶輸入intx;,與門導通,x寄存器是字符型寄存器。當鍵盤愉入回車鍵,進入

另外一個關鍵字判斷電路。

printf("Enteramark:");

當鍵盤磁帶輸入printff'Enteramark::");,與門導通,計算機顯示器顯示Enteramark:。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

scanf("%d",&g);

當鍵盤磁帶輸入scanf("%d",&g);,與門導通,從鍵盤輸入一個數據。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

printf("g=%d:",g);

當鍵盤磁帶輸入printf(”g-%d:",g);,與門導通,計算機顯示器顯示輸入的x,y數據

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

switch(g/10)

當鍵盤磁帶輸入switch(g/10),與門導通,進入case語句判斷電路。

(

case10:

當鍵盤磁帶輸入case10:,與門導通,計數器記錄第一次出現case,顯示器不顯示

case9:

printf("A\n");

當鍵盤磁帶輸入case9:,與門導通,計數器記錄第一次出現case,再次進入判斷電路,

當g/10在10和9之間時顯示A=g,否則不顯示。

case8:

printf("B\n");

當鍵盤磁帶輸入case8:,與門導通,計數器記錄第三次出現case,再次進入判斷電路,

當g/10在9和8之間時顯示A=g,否則不顯示。

case7:

printf("C\n");

當鍵盤磁帶輸入case7:,與門導通,計數器記錄第四次出現case,再次進入判斷電路,

當g/10在8和7之間時顯示A=g,否則不顯示。

case6:

printf("D\n");

當鍵盤磁帶輸入case6:,與門導通,計數器記錄第五次出現case,再次進入判斷電路,

當g/10在7和6之間時顯示A=g,否則不顯示。

default:

printf("E\n");

當鍵盤磁帶輸入default:,與門導通,停止判斷,顯示E=g

當鍵盤磁帶輸入},與門導通,主程序結束,電路關閉

)

第四個數字計算機電路

下面資料可參見《C語言程序設計》,田淑清,周海燕,趙重敏編,高等學校教材,2000年

出版。

例4.5編寫程序,根據輸入的學生成績,給出相應的等級,90分以上的等級為A,60分以

下的等級為E,其余每10分為一等級。

main()

當鍵盤磁帶輸入main。,與門導通,進入主程序判斷執行電路。

當鍵盤愉入回車鍵,進入另外一個關鍵字判斷電路。

(

當鍵盤磁帶輸入{,與門導通,主程序判斷執行電路開始。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

intg;

當鍵盤磁帶輸入intg;,與門導通,g寄存器是字符型寄存器。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

printf("Enterg:");

當鍵盤磁帶輸入printfC'Enterg");,與門導通,計算機顯示器顯示Enterg.,

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

scanf("%d",&g);

當鍵盤磁帶輸入scanf("%d",&g);,與門導通,從鍵盤輸入一個數據。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

printf("g=%d:",g);

當鍵盤磁帶輸入printf(”g=%d:”,g);,與門導通,計算機顯示器顯示輸入的x,y數據。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

if(g>=90)

printf("A\n");

當鍵盤磁帶輸入elseif(g>=90),與門導通,將寄存/g里面的數據和90比較,如果大于90,

將寄存器g里面的數據顯示出來顯示A=g,如果小于90進入下一個判斷語句。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

elseif(g>=80)

printf("B\n");

當鍵盤磁帶輸入elseif(g>=80),與門導通,將寄存器g里面的數據和80比較,如果大于80,

將寄存器g里面的數據顯示出來顯示B=g,如果小于80進入下一個判斷語句。

elseif(g>=70)

printf("C\n");

當鍵盤磁帶輸入elseif(g>=70),與門導通,將寄存器g里面的數據和70比較,如果大于

70,將寄存器g里面的數據顯示出來顯示C=g,如果小于70進入下一個判斷語句。

elseif(g>=60)

printf("D\n");

當鍵盤磁帶輸入elseif(g>=60),與門導通,將寄存器g里面的數據和60比較,如果大于60,

將寄存器g里面的數據顯示出來顯示D=g,如果小于60進入下一個判斷語句。

else

printfC'EXn");

當鍵盤磁帶輸入else,與門導通,,將寄存器g里面的數據顯示出來顯示E=g,

當鍵盤磁帶輸入},與門導通,主程序結束,電路關閉。

-

L

工一%

二三二

>E

—Dj

J

數值大小比較電路

兩數相減,得到的數據進行平方計算,如果是負數,平方后得到正數,開方后得到正數,加

上原來的負數,輸出0。

兩數相減,得到的數據進行平方計算,如果是正數,平方后得到正數,開方后得到正數,加

上原來的正數,輸出正數。

如果加法器輸出0,或門輸出1,與門輸出1,狀態寄存器A保存1,證明兩數相減得到的

是負數,反之,則是正數,

第五個計算機數字電路

main()

當鍵盤磁帶輸入main。,與門導通,進入主程序判斷執行電路。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

(

當鍵盤磁帶輸入{,與門導通,主程序判斷執行電路開始。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

inti,sum;

當鍵盤磁帶輸入inti,sum;,與門導通,i寄存器,sum寄存器是字符型寄存器。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

i=l;

當鍵盤磁帶輸入i=l;,與門導通,將數據1保存到i寄存器。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

sum=0;

當鍵盤磁帶輸入sum=0;,與門導通,將數據0保存到sum寄存器。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

while(i<=100)

當鍵盤磁帶輸入while(i<=100),與門導通,當i寄存器里面的數據小于等于100時,進行判

斷。當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路.

(

當鍵盤磁帶輸入{,與門導通,進入下一個判斷語句。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

sum=sum+i;

當鍵盤磁帶輸入sum=sum+i;,與門導通,將寄存器sum的數據加上寄存器i的數據,再保

存到寄存器sum,每進行一次加法,JK觸發器反轉一次,與門導通,關閉一次,。

i++;

當鍵盤磁帶輸入i++,與門導通,寄存器i里面的數據加1,再將得到的和保存到寄存器i里

面,每進行一次加法JK觸發器反轉一次,與門導通關閉一次,

)

printf("sum=%d\n",sum);

當鍵盤磁帶輸入與門導通,液晶顯示器顯示等于寄存器

printf("sum=%d\n"/sum);,sumsum

里面的數據。

}

當鍵盤磁帶輸入},與門導通,主程序結束,電路關閉。

程序運行后結果:sum=5C50°

第六個數字計算機電路

main()

當鍵盤磁帶輸入main。,與門導通,進入主程序判斷執行電路。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

(

當鍵盤磁帶輸入{,與門導通,主程序判斷執行電路開始。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

inti,s,n;

當鍵盤磁帶輸入intUn,與門導通,i寄存器,s寄存罌,n寄存器接通成為字符型寄存器。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

s=l;

當鍵盤磁帶輸入s=l;,與門導通,將數據1保存到i寄存器S。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

printf("Entern:");

當鍵盤磁帶輸入printf("Entern:與門導通,計算機液晶顯示器顯示Entern:。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

scanf("%d",&n);

當鍵盤磁帶輸入scanf(”%d”,&n);,與門導通,從鍵盤輸入一個數據,計算機將該數據保存到

n寄存器里面。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

for(i=l,i<=n;i++)

當鍵盤磁帶輸入f。市=l,i<=n;i++),與門導通,只有當寄存器i里面的數據小于等于寄存器n

里面的數據才執行下面的過程,且從i=l開始不斷重復執行該過程,每執行一次該過程i加

1.直到i=n時停止。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

s=s*i;

當鍵盤磁帶輸入5=5。,與門導通,將寄存器S的數據乘上寄存器i的數據,再保存到寄存器

S,

printf("s=%d\n",s);

當鍵盤磁帶輸入printf(”s=%d\n”,s);,與門導通,計算機顯示器顯示s寄存器里面的數據。。

)

當鍵盤磁帶輸入},與門導通,主程序結束,電路關閉。

以上程序是連乘的算法的典型例題,與累加一樣連乘也是程序設計中的基本算法之一。

程序中i從1變化到n,每次增1.循環體內的表達式5="用來進行連乘。在連乘算法中,

存放連乘積的變量也必須賦初值,顯然初值不能用0.在本例中s的初值為1,當i=l時,進

行1*1的運算,給s賦1,當i=2時,將進行1*2的運算,重新給s賦2,當歸3時,將進行

2*3的運算,重新給s賦6,依次類推,當i=n時,進行s*n的運算,s中最終將存入l*2*3*...n

的值。以上程序執行時,若給n輸入5,變量i和s中值的變化如表5.1所示。

表5.1

i的值12345

s的值12624120

第七個數字計算機

下面資料可參見《C語言程序設計》,田淑清,周海燕,趙重敏編,高等學校教材,2000年

出版。

例9.5,將數組中的數按顛倒的順序重新存放,在操作時,只能借助一個臨時存儲單元而不

得另外開辟數組。注意:不是要求按顛倒的順序打印數據,而是要求按逆序重新放置數組中

的內容。假定a數組有8個元素,它們中的原始內容如圖9.2所示。

圖9.2

1020304050607080

a[0]a[l]a[2]a[3]a⑷a⑸a[6]a⑺

現要求改變成如圖9.3所示的存儲內容。

圖9.3

8070605040302010

a⑼a[l]a[2]a[3]a[4]a(5]a[6]a⑺

程序中調用priout函數輸出數組中的內容。函數invert月以對調數組中的內容。在invert函

數中,變量i和j的初值分別為0和7,接著將a[0]和a⑺對調,然后變量i和j分別增1和

減1,變為1和6,接著將a[l]和a[6]對調,如此操作,當i等于或大于j時,則對調完成。

程序如下:

左面足從鍵盤輸入的程序的源碼,下面根據上面程序做一個電路,

鍵盤輸入的程序保存到磁帶上面,磁帶上面的程序進入選擇電路。

ttinclude"stdio.h"

當鍵盤磁帶輸入#m111(^"stdio.h",與門導通,進入#include"stdio.h"類型電路。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

#defineNUM8

當鍵盤磁帶輸入#(^仰區NUM8,與門導通,NUM寄存器為8個存儲單元,分別存

儲數據1,2,3,4,5,6,7,8o

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

main()

當鍵盤磁帶輸入main(),與門導通,進入主程序判斷執行電路。

〃用置初始值的方法給a數組放入數據〃

當鍵盤輸入回車鍵,進入另外?個關鍵字判斷電路

(

當鍵盤磁帶輸入{,與門導通,主程序判斷執行電路開始。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

inta[NUM]={10/20z30,40,50,60,70,80);

當鍵盤磁帶輸入inta[NUM]={10,20,30,40,50,60,70,80};,與門導通,r寄存器,a[]寄存器為

個存儲單元,分別為

8a[l]=10/a[2]=20/a[3]=30/a[4]=40/a[5]=50/a[6]=60/a[7]=70/a[8]=80<,

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

priout(a,NUM);

當鍵盤磁帶輸入priout(a,NUM);,與門導通,順序存儲數組a[NUM]里面的數據。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

printf("Outputprimarydata:");〃輸出原始數據〃

當鍵盤磁帶輸入printf("Outputprimarydata與門導通,計算機顯示器顯示OJtput

primarydata:后面為數組a口里面的數據。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

invert(a,NUM);

當鍵盤磁帶輸入inverts,NUM);,與門導通,將數組a[NUM]里面的數據顛倒存儲。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

printf("Outputtheinversedata:");

當鍵盤磁帶輸入printf("Cutputtheinversedata:");?與門導通,計算機顯示器顯示

"Outputtheinversedata:后面是顛倒后的數據。

)

當鍵盤磁帶輸入},與門導通,主程序結束,電路關閉。

T*

j£:£9O:

^Ya—S

。―—三?^3

T4_aW

0二三—FZ-O

,=0

feo-f0U二p:?□

o

Q0二H

=

°P0p二—rZ-C1

0P=p二—rZ-O0

o

£H-----pO--C\

H0,_

第八個數字計算機電路

下面資料可參見《C語言程序設計》,田淑清,周海燕,趙重敏編,高等學校教材,2000年

出版。

例9.10通過鍵盤給2*3的二維數組輸入數據,第一行賦1,2,3,第二行賦10,20,30,

然后按行輸出此二維數組。本例題示例了引用二位數組元素對二維數組進行輸入和輸出的基

本方法。

左面是從鍵盤輸入的程序的源碼,下面根據上面程序做一個電路,

鍵盤輸入的程序保存到磁帶上面,磁帶上面的程序進入選擇電路。

main()

當鍵盤磁帶輸入main。,與門導通,進入主程序判斷執行電路。

|

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

當鍵盤磁帶輸入{,與門導通,主程序判斷執行電路開始。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

inta[2][3],ij;

當鍵盤磁帶輸入inta[2][3],i,j;,與門導通,定義一個二維數組這個二維數組有2

行,每行3個數據。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

printf("Enterdatabyline:\n");

當鍵盤磁帶輸入printf("Enterdatabyline:\n");?與門導通,計算機顯示器顯示Enter

databyline。

當鍵盤輸入1口1車鍵,進入另外一個關鍵字判斷電路。

scanf("%d",&a[i]O]);

當鍵盤磁帶輸入scanf(”%d”,&a[i][j]);,與門導通,從鍵盤輸入2維數組的數據。

當鍵盤磁帶輸入與門導通,從鍵盤輸入維數

iljl=l/ilj2=2zilj3=3J2jl=10,i2j2=20J2j3=307,2

組的數據。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路

printf("Outputa2-dimensionarray:\n");

當鍵盤磁帶輸入printf("Outputa2-dimensionarray:\n");,與門導通,計算機顯示Ojtput

a2-dimensionarray:后面是數組的數據。

當鍵盤輸入回車鍵,進入另外一個關鍵字判斷電路。

)

當鍵盤磁帶輸入},與門導通,主程序結束,電路關閉。

當運行以上程序,從鍵盤輸入iljl=l,ilj2=2,ilj3=3,i2jl=10,i2j2=20,i2j3=30,回車,

此時計算機液晶顯示器顯示如下:

1,2,3,

10,20,30,

三m一?口二

1

于HP

自y

WP

第九個數字計算機電路

下面的內容可參見《數據結構,C語言版》,嚴蔚敏,吳偉民編,清華大學出版社1997年出

版。

例1.7抽象數據類型Triplet的表示和實現。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論