用計算機解決一個問題,通常包含兩個過程,一個是上機前的各種準備,再一個是上機運行。
1.上機前的準備
在許多科學技術的實際問題中,往往會遇到許多複雜的數學方程組,而數字計算機通常只能做加、減、乘、除四則運算,這就要求,
在上機前,先由人工完成一些必要的準備工作,這些工作,大致可分爲三類:建立數學模型,確定計算方法,編制解題程序。
(1)建立數學模型
有許多科技問題很難直接用物理模型來模擬研究對象的變化規律,如地球大氣環流、原子反應堆的核裂變過程、航天飛行速度對
飛行器的影響等等,不過,通過大量分析和實驗,總能找到一系列反映研究對象變化規律的數學方程組,通常,把這類方程組,叫做被
研究對象變化規律的數學模型。一旦建立了數學模型,研究對象的變化規律就變成了解一系列方程組的數學問題,這便可通過計算機來
求解,因此,建立數學模型是計算機解題的第一步驟。
( 2 )確定計算方法
由於數學模型中的數學方程式往往是很複雜的,如果需要將它變成適合計算機運算的加、減、乘、除四則運算,還必須確定對應的計算
方法
(3)編制解題程序
程序是適合於機器運算的全部步驟,編制解題程序就是將運算步驟用一一對應的機器指令描述。
例如:計算ax²+bx+c,在計算器中可分解爲以下幾個步驟:
- 將x取至運算器中
- 乘以x,得x²,存於運算器中
- 再乘以a,得ax²,存於運算器中,
- 將ax²送至存儲器中,
- 將b至運算器中
- 乘以x得到bx存儲在運算器中
- 再將ax²從存儲器中取出來與bx相加,得到ax²+bx,存於運算器中
- 再取c與ax²+bx相加,得到ax²+bx+c,存於運算器中
- 取x至運算器中
- 乘以a,得到ax,存於運算器中
- 加b,得到ax+b,存於運算器中
- 乘以x,得到(ax+b)x,存於運算器中
- 加c,得到(ax+b)x+c,存於運算器中
2.計算機的解題過程
爲了比較形象地瞭解計算機的解題過程,首先分析一個比圖1.9更細化的計算機組成框圖,如圖1.11所示。
(1)運算器
運算器包括三個寄存器(現代計算機中往往設有寄存器組)和一個算邏電路ALU。其中ACC爲累加器,MQ爲乘商寄存器,X爲操作數寄存器,
這三個寄存器在完成不同運算時,所存放的操作數類別也各不一樣。表1.3列出了寄存器存放不同類別操作數的情況。
(2)主存儲器
主存儲器(簡稱主存或內存)包括存儲體、各種邏輯部件及控制電路等。存儲體由許多存儲單元組成,每個存儲單元又包含若干個存儲元件
(或稱存儲基元、存儲元),每個存儲元件能寄存一個二進制代碼“0”或“1”。也就是說,一個存儲單元可以存儲一串二進制代碼,稱這串二進制代碼爲一個存儲字,這串二進制代碼的個數,叫作存儲字長。
如果我們把一個存儲體比作一幢大樓,那麼每個存儲單元可看作大樓中的每個房間,每個存儲元可看作每個牀位中的一張牀位,顯然,每個房間
都需要一個房間編號,因此,我們賦予每個存儲單元一個編號,叫做存儲單元的地址號。主存的工作方式就是按存儲單元的地址號來實現存和寫
(3)控制器
控制器是計算機中組成的神經中樞,由它指揮全機各部件自動、協調的工作。
(4)I/O設備
I/O子系統包括各種外部設備及相應的藉口。