久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

楊輝三角--中國的帕斯卡三角形

時間:2019-05-13 06:54:03下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《楊輝三角--中國的帕斯卡三角形》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《楊輝三角--中國的帕斯卡三角形》。

第一篇:楊輝三角--中國的帕斯卡三角形

楊輝三角--中國的帕斯卡三角形

中國的數(shù)學發(fā)展到宋元時期,終于走到了它的高峰。在這個數(shù)學創(chuàng)新的黃金時期中,各種數(shù)學成果層出不窮,令人目不暇接。其中特別引人注目的,當首推北宋數(shù)學家賈憲創(chuàng)制的“賈憲三角”了。

由于史書沒有賈憲的傳記,所以我們今天對這位數(shù)學家的生平事跡已經(jīng)無法搞清楚了。只知道他曾經(jīng)當過宋代”左班殿直”的小官,是當時天文數(shù)學家楚衍的學生,還寫過兩部數(shù)學著作,可惜這兩部著作現(xiàn)在都失傳了。幸虧南宋數(shù)學家楊輝在他的書中引述了賈憲的許多數(shù)學思想資料,才使我們今天得以了解賈憲在數(shù)學上的重大貢獻。

賈憲最著名的數(shù)學成就,是他創(chuàng)制了一幅數(shù)字圖式,即“開方作法本源圖”(見下圖)。這幅圖現(xiàn)見于楊輝的書中,但楊輝在引用了這幅圖后特意說明:“賈憲用此術(shù)”。所以過去我國數(shù)學界把這幅圖稱為“楊輝三角”,實際上是不妥當?shù)模瑧摲Q為“賈憲三 角”才最為恰當。

圖 1-6-1開方作法本源圖

用現(xiàn)代的數(shù)學術(shù)語來說,這幅“開方作法本源圖”實際上是一個指數(shù)為正整數(shù)的二項式定理系數(shù)表。稍懂代數(shù)的讀者都知道:

如果把以上式子中等號右邊的各個系數(shù)排列起來,則可得:

這正好與“開方作法本源圖”上的數(shù)字完全相符。

這樣一種二項式系數(shù)的展開規(guī)律,在西方數(shù)學史上被稱為“帕斯卡三角形”。帕斯卡是法國數(shù)學家,他是在1654年所著的書中給出類似于賈憲“開方作法本源圖”的數(shù)字三角形表的(見圖1-6-1)。其實在歐洲,類似的數(shù)字三角形也并非帕斯卡最先發(fā)明,只是開始沒有廣泛流傳罷了。西方最古的此類數(shù)字三角形,可以上溯到1527年;但與賈憲的這個圖相比,已經(jīng)晚了四百多年。因此我們完全有理由把這項中國人最先發(fā)明的數(shù)學成果稱為“賈憲三角”而載人史冊。

不僅如此,賈憲的這個圖還蘊含了圖中數(shù)字的產(chǎn)生規(guī)律。細心的讀者也許已經(jīng)發(fā)現(xiàn),這個三角形的兩條斜邊都是由數(shù)字1所組成的,而其他的數(shù)都等于它肩上的兩個數(shù)相加。按此規(guī)律,這個數(shù)字三角形可以寫到任意多層;也就是說,二項式任意正整次冪的

系數(shù)展開都可以按照這個圖很容易地得到。

圖1-6-2 帕斯卡三角形

根據(jù)楊輝的記載,賈憲求“開方作法本源圖”中各項系數(shù)的方法,就是他在開平方、開立方中所用的新法——“增乘開方法”。應用這種“增乘開方法”,既可求得任意高次展開式系數(shù),又可進行任意高次冪的開方。在賈憲之前,從漢代一直到唐代的一千多年時 間里,中國古代數(shù)學家只能進行正數(shù)的開平方和開立方運算,對于四次方以上的高次冪開方?jīng)]有什么好的方法。直到賈憲的“增乘開方法”問世,才真正找到了開高次方的最佳方法,并能用它開任意有理數(shù)的高次方。這在中國數(shù)學史乃至世界數(shù)學史上,都是具有極其重要的價值的。以后的數(shù)學家在這個基礎(chǔ)上繼續(xù)前進,又把它推廣為任意高次方程的數(shù)值解法。南宋時期的數(shù)學家秦九韶在系統(tǒng)總結(jié)前人成果的基礎(chǔ)上,終于把以增乘開方法為主體的高次方程數(shù)值解法發(fā)展到了十分完備的程度。在秦九韶的著作中,方程的系數(shù)既有正的,也有負的;既有整數(shù),也有小數(shù);方程的次數(shù)最高達10次方。如:

x10?15x8?72x6-864x4?11664x2?34992=0

其解法與現(xiàn)代通常使用的“霍納法”(由英國數(shù)學家霍納于1819年給出)基本一致,但比霍納法要早了五百多年。從賈憲到秦九韶逐步發(fā)展完備起來的高次方程數(shù)值解法,是中國數(shù)學在宋元時期的一項杰出的創(chuàng)造。

第二篇:楊輝三角說課稿

一、教材分析

楊輝三角是人教B版選修2-3第一章的內(nèi)容,是在學生學習過二項式定理后,進一步學習其性質(zhì)的一個課例。楊輝三角所蘊含的豐富的數(shù)學規(guī)律、數(shù)學思想、方法給學生提供了一個很好的數(shù)學探究的課題。

根據(jù)楊輝三角在整個教材內(nèi)容中的地位與作用,本節(jié)課教學應實現(xiàn)如下教學目標: 知識與技能:了解楊輝三角的簡單歷史,掌握楊輝三角的基本性質(zhì);過程與方法: 通過探究過程培養(yǎng)學生觀察問題、分析問題、概括與歸納問題、解決問題能力;情感態(tài)度與價值觀:通過了解有關(guān)楊輝三角的簡史,體會我國古代數(shù)學家的偉大成就,進行愛國主義教育,從而激發(fā)學生學習和探究楊輝三角的熱情;通過小組討論,培養(yǎng)學生發(fā)現(xiàn)問題、探究問題、建構(gòu)知識的研究型學習習慣以及合作化學習的團隊精神。

二、重難點分析:

根據(jù)上述教學目標,確定本節(jié)課的教學重點是:楊輝三角中數(shù)字的規(guī)律的探究二項式系數(shù)的性質(zhì);本節(jié)課的學習難點是:楊輝三角中數(shù)字規(guī)律的發(fā)現(xiàn)和總結(jié)

三、學情分析:

本節(jié)課是在學生學習了組合的有關(guān)知識和研究數(shù)列的規(guī)律的方法上進行學習的,在知識上和研究的方法上都做好了準備。

四、教學學法

教法:為了實現(xiàn)本節(jié)課的教學目標,在教法上我采取了:“觀察、探究、發(fā)現(xiàn)、合作交流”的方法。采用問題導引的方式,讓學生通過對低階楊輝三角的觀察,再到n階楊輝三角的猜想。探究時采用先個人思考后小組合作交流,重點在于發(fā)現(xiàn)規(guī)律,不要求在課堂上證明。

學法:根據(jù)本節(jié)課的教學目標和教學方法,主張多給學生一點空間、時間,把角色還給學生,先由學生觀察、探索,再發(fā)現(xiàn)與交流.引導學生逐步提高,發(fā)展學生有條理的思考與表達的能力,提高歸納猜想能力,使學生獲得較全面的發(fā)展。

五、教學過程

為了實現(xiàn)本節(jié)課的教學目標,突出教學重點,突破教學難點,在教學設(shè)計上采用了以下六個教學環(huán)節(jié),分三個探究層次來完成本節(jié)課的教學任務(wù)。

教學環(huán)節(jié)(一):創(chuàng)設(shè)情境,提出問題

(復習舊知)1:二項式定理及其特例:

(1)Cmn= C0nn-m,(2)n

C+C= Cn+1.2m

nm-1n

m2:二項展開式的通項公式:(a+b)n=Ca+Cnab+ Cnab+…+Cab+…+Cab.1rn

nn

nnn-11n-22 n-rr 0n提出問題)3:提出問題:(a+b)展開式的二項式系數(shù)有什么規(guī)律? 課件演示:當n依此取1,2,3,?,時,二項式系數(shù)的列表,該列表叫做二項式系數(shù)表,因為它形如三角形,并且我國南宋的數(shù)學家楊輝對其有過深入的研究,所以又稱它為楊輝三角。

簡單介紹楊輝三角的發(fā)展歷史(目的是對學生進行愛國主義教育)到了南宋,我國數(shù)學家楊輝在《詳解九章算數(shù)》(1261)中記載并保存了“賈憲三角”,故稱楊輝三角;再后來我國元朝數(shù)學家朱世杰在《四元玉鑒》(1303年)擴充了“賈憲三角”成為“古法七成方圖”;而在歐洲一般認為是該圖形是由法國數(shù)學家帕斯卡(Pascal)于1654年發(fā)現(xiàn)的,并稱這個圖形為“帕斯卡三角”,由此可見,對于楊輝三角的研究,我國比西方在了大約600年;到了近代又有許多數(shù)學家對“楊輝三角”有過深入研究,特別是華羅庚在他的科普著作《從楊輝三角談起》中,對楊輝三角的構(gòu)成,提出了一些有趣的看法,并將研究成果應用于其他工作。

三、教學過程

為了實現(xiàn)本節(jié)課的教學目標,突出教學重點,突破教學難點,在教學設(shè)計上采用了以下六個教學環(huán)節(jié),分三個探究層次來完成本節(jié)課的教學任務(wù)。今天,我們在前人研究的基礎(chǔ)上,來探究楊輝三角中蘊含的一些有趣的數(shù)量關(guān)系。

[設(shè)計意圖]通過了解有關(guān)楊輝三角的簡史,體會我國古代數(shù)學家的偉大成就,進行愛國主義教育,從而激發(fā)學生學習和探究楊輝三角的熱情。

教學環(huán)節(jié)(二):自主探究,揭示性質(zhì)(源于教材,重在完成教材內(nèi)要求的教學任務(wù))讓學生觀察上面給出的楊輝三角圖示(或更多階的楊輝三角圖),并且探究以下問題: 探究1:觀察楊輝三角你能發(fā)現(xiàn)那些數(shù)量關(guān)系?由此得到二項式系數(shù)具有哪些性質(zhì)?(提示學生:觀察方法:橫看各行數(shù)字間的大小關(guān)系,組合數(shù)間的關(guān)系,以及不同橫行間的數(shù)字間的關(guān)系)學生先自己觀察(主要工作在于課前),后小組交流觀察結(jié)果(主要工作在于課堂)。[ 設(shè)計意圖]通過對楊輝三角的觀察,引導學生發(fā)現(xiàn)其規(guī)律,培養(yǎng)學生的觀察能力,由特殊到一般的歸納、猜想能力。

學生分小組展示探究結(jié)果(幻燈片展示),歸納出二項式系數(shù)的幾條基本性質(zhì):

1、對稱性:每一行中,與首末兩端“等距離”的兩個數(shù)相等,即:

2、最值:在(a+b)n的展開式中,當n是偶數(shù)時,中間一項 的二項式系數(shù)最大,最大系數(shù)為:;當n奇數(shù)時,中間兩項 與的二項式系數(shù)最大,最大系數(shù)為:

3、遞推規(guī)律:每一行兩端的數(shù)字都是1,而其余數(shù)字都等于其肩上的兩個數(shù)字之和,即:

4、二項式系數(shù)的和:二項展開式各二項式系數(shù)的和為2n;即:。

[設(shè)計意圖]以上四條數(shù)量關(guān)系是二項式系數(shù)的基本性質(zhì),也是本節(jié)課教學的重點,是解決后面問題的基礎(chǔ),學生展示自主探究的結(jié)論,讓學感受到自主探究的成就,同時激發(fā)繼續(xù)探究的熱情(特別說明,在這里學生可能提出一些與教材內(nèi)容不相符的探究結(jié)果,可以留待下一環(huán)節(jié)進行解決)。

教學環(huán)節(jié)(三):拓展探究,開闊視野(高于教材,重在培養(yǎng)學生的求異思維和創(chuàng)新能力)引導學生繼續(xù)探究,看看還能發(fā)現(xiàn)那些有趣的數(shù)量關(guān)系? 拓展探究1:觀察第1,3,7行各個數(shù)的特點,你能發(fā)現(xiàn)什么規(guī)律?你能否總結(jié)一個一般性的結(jié)論? 結(jié)論:第2n-1行的所有數(shù)都是奇數(shù),即: 為奇數(shù)(m=0,1,2,3,L,2k-1);拓展探究2:觀察第2,4,8行各個數(shù)的特點,你能發(fā)現(xiàn)什么規(guī)律?你能用一個

式子表示嗎? 結(jié)論:第2n的所有數(shù)(除兩端的1)都是偶數(shù),即: 為偶數(shù)(m=1,2,3,? 2k-1),(用基本性質(zhì)3和拓展探究1的結(jié)論可以解釋這個結(jié)論);拓展探究3:每一行的各數(shù),從左到右按順序形成一個數(shù),試歸納一下有何特點? 第0行:1=110;第1行:11=111 第2行:121=112;?, 猜想一般規(guī)律:第n行的各數(shù),從左到右按順序形成一個數(shù),其結(jié)果為:11n(進一步體現(xiàn)本節(jié)課的探究思路:由特殊問題,過渡到一般結(jié)論,這是我們研究數(shù)學問題的常用思路);拓展探究4:第m條斜線上的前n個數(shù)的和與第m+1條斜線上的第n個數(shù)有什么關(guān)系? 特例:1+1+1+1+1+1+1=? 提問:這是第一條斜線上的前幾個數(shù)?這是第二條斜線上第幾個數(shù)呢? 答案:第一條斜線上的前七個數(shù)的和=第二條斜線上的第七個數(shù) 同理可以解釋1+2+3+4+5+6=? 和1+3+6+10+15=???(讓學生回答)第2條斜線上的前6個數(shù)的和=第3條斜線上的第6個數(shù);追問一下:能否用文字語言將這個規(guī)律推廣嗎? 結(jié)論:第m條斜線上前n個數(shù)字的和=第m+1條斜線上第n個數(shù);[設(shè)計意圖]對于楊輝三角的進一步探究,既可以加深學生對楊輝三角基本性質(zhì)的理解,又可激發(fā)學生更大的學習熱情,提高學生的思維水平,發(fā)展學生的創(chuàng)新能力。

教學環(huán)節(jié)(四):創(chuàng)新探究,橫向聯(lián)系(探究與其他知識的聯(lián)系,培養(yǎng)學生聯(lián)想創(chuàng)新能力)創(chuàng)新探究1: 萊布尼茲三角形: 萊布尼茨三角形有許多跟楊輝三角類似的性質(zhì),請根據(jù)前面推理方法,給出結(jié)論。

創(chuàng)新探究2:請寫出斜線上各個數(shù)字的和,再觀察這些和,你能發(fā)現(xiàn)什么規(guī)律? 1,1,2,3,5,8,13,21,34,? 此數(shù)列an滿足:a1=1,a2=1, 且an=an-1+an-2(n≥3)。這就是著名的斐波那契數(shù)列。這是中世紀意大利數(shù)學家斐波那契的傳世之作。教學環(huán)節(jié)(五):歸納小結(jié),體驗方法

1、知識方面:自主探究的基本性質(zhì);創(chuàng)新探究的數(shù)字規(guī)律;

2、方法方面:認識事物的一般方法“觀察-分析-猜想-證明”;從特殊到一般的思想方法;

3、情感方面:愛國主義精神,合作學習,團隊精神;[設(shè)計意圖]讓學生自己歸納本節(jié)課的內(nèi)容,從知識、方法及情感體驗等方面進行總結(jié),使學生在掌握知識的同時,提高歸納總結(jié)的能力。進一步培養(yǎng)學生自主探究知識,建構(gòu)知識的研究型學習習慣。教學環(huán)節(jié)(六):布置作業(yè),學以致用 1.必做題:P30A組、B組;2.選做題:探索結(jié)論的證明方法。

六、教學評價

本節(jié)課例的教學過程設(shè)計力求體現(xiàn)探究性課題的主要特征:問題性、探究性、自主性、過程性、體驗性。

教學過程的設(shè)計,尊重教材,挖掘教材,但又高于了教材。情境的設(shè)計、探究內(nèi)容的設(shè)計,多數(shù)是以教材內(nèi)容為主,充分開發(fā)教材的功能。

在問題探究環(huán)節(jié)設(shè)計方面分了三個層次,第一個層次:是對二項式系數(shù)規(guī)律的探究,引導學生從楊輝三角橫行的數(shù)字規(guī)律橫行各數(shù)字之間的大小關(guān)系、組合關(guān)系以及不同橫行數(shù)字之間的關(guān)系,發(fā)現(xiàn)并總結(jié)二項式系數(shù)的基本規(guī)律,也是本節(jié)課的重點;第二個層次是拓展探究,高于課本內(nèi)容,其主要目的是培養(yǎng)學生的求異思維,拓展學生的視野為今后的研究學習打下基礎(chǔ);第三個層次是探究楊輝三角與其他知識的聯(lián)系,讓學生體會探究方法的應用。七 參考資料: 普通高中實驗教科書數(shù)學(人教B版選修2—3)

名師課堂(山東人民出版社)

第三篇:微機原理課程設(shè)計——輸出楊輝三角

目錄

第一章 緒論...................................................................................................................................1 第二章 分析與設(shè)計.......................................................................................................................2 2.1 題目.......................................................................................................................................................2 2.2 要求.......................................................................................................................................................2 2.3 方案設(shè)計與論證...................................................................................................................................3 2.3.1 整體設(shè)計思路...........................................................................................................................3 2.3.2 方案選擇...................................................................................................................................3 2.4 結(jié)構(gòu)框圖...............................................................................................................................................4 3.1 宏定義換行...........................................................................................................................................5 3.2 階數(shù)輸入過程.......................................................................................................................................5 3.3 數(shù)據(jù)判斷功能.......................................................................................................................................6 3.4 詢問繼續(xù)模塊...................................................................7 3.5 數(shù)值計算模塊.......................................................................................................................................7 3.6 顯示模塊...............................................................................................................................................9 3.6.1 數(shù)據(jù)顯示.................................................................9 3.6.2 空格顯示................................................................10

第四章 實驗結(jié)果及問題處理.....................................................................................................12 4.1 實驗結(jié)果.............................................................................................................................................12 4.2出現(xiàn)的問題以及解決的方案..............................................................................................................13 4.2.1 數(shù)據(jù)輸入問題.........................................................................................................................13 4.2.2 除法溢出問題.........................................................................................................................13 4.2.3 數(shù)據(jù)計算問題.........................................................................................................................14 第五章 總結(jié)與體會.....................................................................................................................15 參考文獻.......................................................................................................................................17 附錄...............................................................................................................................................18

第一章 緒論

隨著電子計算機技術(shù)的不斷發(fā)展,微型計算機系統(tǒng)的功能越來越強,而關(guān)于計算機的程序設(shè)計語言也經(jīng)歷了一個發(fā)展的過程。從最基本的機器語言到匯編語言,并發(fā)展到高級的智能化語言,如visual C++、Visual Basic等。

匯編語言(Assembly Language)是一種采用助記符表示的程序設(shè)計語言,即用助記符來表示指令的操作碼和操作數(shù),用符號或標號代表地址、常量或變量。助記符一般都是英文單詞的縮寫,便于識別和記憶。使用匯編語言編寫的程序稱為匯編語言源程序。匯編語言源程序不能由機器直接執(zhí)行,而必須翻譯成有機器代碼組成的目標程序,這個翻譯的過程稱為匯編。把匯編語言源程序翻譯成目標程序的軟件稱為匯編程序。

匯編語言與機器語言密切相關(guān),它們之間有明顯的對應關(guān)系。一條匯編語言指令對應一條機器語言代碼,所以匯編語言和機器語言一樣都是面向機器的語言。使用匯編語言進行程序設(shè)計能充分利用機器的硬件功能和結(jié)構(gòu)特點,從而有效地加快程序的執(zhí)行速度,減少程序占用的存儲空間。所以匯編語言大量用于編寫計算機系統(tǒng)程序、實時通信程序和實時控制程序等。

匯編語言作為最基本的編程語言之一,匯編語言雖然應用的范圍不算很廣,但重要性卻勿庸置疑,因為它能夠完成許多其它語言所無法完成的功能。就拿Linux內(nèi)核來講,雖然絕大部分代碼是用C語言編寫的,但仍然不可避免地在某些關(guān)鍵地方使用了匯編代碼,其中主要是在Linux的啟動部分。由于這部分代碼與硬件的關(guān)系非常密切,即使是C語言也會有些力不從心,而匯編語言則能夠很好揚長避短,最大限度地發(fā)揮硬件的性能。

第二章 分析與設(shè)計

2.1 題目

匯編顯示楊輝三角

2.2 要求

基本內(nèi)容:在提示信息下,從計算機鍵盤輸入一個滿足要求的數(shù)據(jù),在輸出提示信息后顯示相應的楊輝三角。

具體要求如下:

(1)要有提示信息的輸出顯示,例如程序執(zhí)行時直接顯示輸出提示信息“Please input a number:”然后等待用戶從計算機鍵盤輸入具體數(shù)值,例如輸入“4”,然后換行顯示下一步提示信息,例如“The YangHui triangle:”最后顯示通過程序獲得的楊輝三角如下:

(2)分析楊輝三角具體算法,計算結(jié)果要求正確。輸出的楊輝三角要求上下左右對稱顯示,上下分別為兩個等腰三角形的形式,即要求分析總結(jié)每行行首空格數(shù)量,及三角中各個數(shù)之間空格的安排方法;(3)要求最少要能夠輸出10階的楊輝三角;

(4)提高要求:增大階數(shù)(最少到20階),可任意選擇正反三角顯示。

2.3 方案設(shè)計與論證

2.3.1 整體設(shè)計思路

本課題要求用匯編顯示楊輝三角形,首先得了解什么是楊輝三角形。楊輝三角形,又稱賈憲三角形,帕斯卡三角形,是二項式系數(shù)在三角形中的一種幾何排列。其每一行的數(shù)據(jù)都有其特定的規(guī)律,楊輝三角形又有其獨特的性質(zhì):

1、每行數(shù)字左右對稱,由1開始逐漸變大,然后變小,最后回到1。

2、第n行的數(shù)字個數(shù)為n個。

3、第n行數(shù)字和為2^(n-1)。

4、每個數(shù)字等于上一行的左右兩個數(shù)字之和,故可用此性質(zhì)寫出整個帕斯卡三角形。

5、第n行的第1個數(shù)為1,第二個數(shù)為1×(n-1),第三個數(shù)為1×(n-1)×(n-2)/2,第四個數(shù)為1×(n-1)×(n-2)/2×(n-3)/3···依此類推。

在熟悉了楊輝三角形的產(chǎn)生原理,楊輝三角形內(nèi)各數(shù)據(jù)的計算方法之后,再在掌握了相關(guān)匯編知識以及一定編程能力的基礎(chǔ)上,我們對課題進行了相關(guān)分析,總體來說,這個課題的關(guān)鍵點分為以下部分,厘清這些關(guān)鍵點也是作為明確整體設(shè)計思路的重要過程:

(1)、提示信息的顯示。題目明確要求顯示中要有提示信息,實際上,根據(jù)需要,在本課題中我們又加了一些功能,當然也必須要增加額外的提示信息。

(2)、階數(shù)的輸入功能。通過DOS系統(tǒng)功能調(diào)用,確定需要顯示楊輝三角形的行數(shù)與大小,能夠?qū)崿F(xiàn)簡單的人機交互。

(3)、編程得到需要在楊輝三角中顯示的數(shù)。基于以下思想:第n行的第1個數(shù)為1,第二個數(shù)為1×(n-1),第三個數(shù)為1×(n-1)×(n-2)/2,第四個數(shù)為1×(n-1)×(n-2)/2×(n-3)/3···依此類推。

(4)、某數(shù)的顯示及換行。為了顯示的規(guī)范和美觀,必須考慮到數(shù)與數(shù)之間的空格數(shù),當然,某數(shù)的顯示是能夠完整輸出楊輝三角形的基礎(chǔ)和前提。

(5)、新增功能,判斷輸入數(shù)據(jù)是否滿足條件,判斷是否繼續(xù)執(zhí)行。考慮到本程序的使用范圍及使用者能連續(xù)使用顯示楊輝三角形的方便性,特增加了數(shù)據(jù)判斷和詢問繼續(xù)功能,使用者想要繼續(xù)執(zhí)行即輸入“Y”,程序自動從頭開始執(zhí)行,若輸入“N”,則退出。2.3.2 方案選擇

1.對于階數(shù)輸入功能,我們想到兩種方案。

方案(1):參考相關(guān)文獻上得知,可以通過DOS系統(tǒng)功能調(diào)用:鍵盤輸入單字符——

號系統(tǒng)功能調(diào)用,同時實現(xiàn)字符的輸入與顯示。

調(diào)用格式:MOV INT

AH,1 21H 說明:1號功能調(diào)用無入口參數(shù),執(zhí)行時系統(tǒng)首先等待鍵盤輸入,待程序員按下任何一鍵,系統(tǒng)先檢查是否是Ctrl-Break鍵。如果是則退出,否則將鍵入的字符的ASCII碼置入AL寄存器,并在屏幕上顯示該字符。

方案(2):同樣是DOS系統(tǒng)功能調(diào)用,鍵盤輸入字符串——0AH號系統(tǒng)功能調(diào)用。說明:其功能是將鍵盤輸入的字符串寫入到內(nèi)存緩沖區(qū),因此調(diào)用之前必須事先定義一個緩沖區(qū)。緩沖區(qū)的第一個字節(jié)給出用來存放鍵入的字符數(shù),第二個留給系統(tǒng)填寫實際鍵入的字符個數(shù),從第三字節(jié)開始用來存放鍵入的字符串,最后鍵入回車(↙)鍵表示字符結(jié)束。

對于方案(1),格式簡單,使用方便,易于理解,但是對于輸入多位數(shù),相對有點復雜。對于方案(2),從實際編程水平出發(fā),不太能夠嫻熟的使用該系統(tǒng)功能,調(diào)用格式復雜,而且鑒于該程序輸入的位數(shù)不超過兩位,所以我們最后選擇了方案(1)。

2.4 結(jié)構(gòu)框圖

在編寫程序之前,明確其整個思路的流程圖是相當重要的,所以我們花了一些時間來畫出流程圖,根據(jù)流程圖來寫實際程序。如圖2.4.1為本程序的總體匯編思路圖。

圖2.4.1 程序總體流程圖

第三章 實驗程序及分析

3.1 宏定義換行

為了簡化匯編語言源程序,可以把一些頻繁出現(xiàn)的程序段定義為“宏指令”,當遇到這段程序時,只要按宏指令名調(diào)用即可,不必重復寫許多指令,匯編程序在遇到宏指令時將其期待成相應的代碼,這樣就有效地縮短匯編語言源程序的長度,使源程序易讀,也減少了由于重復書寫而引起的錯誤。在本課題中,為了顯示楊輝三角,必然需要多次使用換行代碼,故將換行代碼定義為“宏指令”,有以上所述的諸多好處。宏定義如下:

HUANH

MACRO

;宏名為HUANH

;使用2號功能,顯示器輸出字符;13即ASCII為0DH是回車符

;DOS系統(tǒng)功能調(diào)用

;10即ASCII為0AH是換行符;DOS系統(tǒng)功能調(diào)用;宏定義結(jié)束

MOV AH, 2

MOV DL, 13 INT 21H

MOV DL, 10 INT 21H ENDM

3.2 階數(shù)輸入過程

過程是程序的一部分,它可以被程序調(diào)用。每次可調(diào)用一個過程,當過程中的指令執(zhí)行之后,控制返回調(diào)用它的地方。過程的定義是用過程定義偽指令完成的。過程的定義有三個注意點:①、過程名是自定義符,定義開始和結(jié)束時的過程名必須相同。②、過程名有三個屬性:段地址,偏移量和距離屬性(NEAR和FAR),匯編程序在匯編時根據(jù)過程類型生成段內(nèi)或段間的調(diào)用或返回指令代碼。③、在一個過程中,可以有多個RET指令。一個過程總是通過RET指令返回,RET常作為過程的最后一條指令。在了解以上說明及注意點的基礎(chǔ)上,我們根據(jù)實際需要定義了一個實現(xiàn)階數(shù)輸入功能的過程。具體定義如下:

SHURU

PROC XOR

BP,BP MOV BX,10 MOV CX,3

;控制輸入位數(shù),外加一位回車

;輸入過程定義,數(shù)字存在BP

input:

MOV AH,1 INT CMP JZ

SUB 21H

;DOS功能調(diào)用,鍵盤輸入和顯示數(shù)據(jù)

AL,0DH OK AL,30H

;判斷是否以回車結(jié)束輸入

;將ASCII碼轉(zhuǎn)為16進制數(shù)

;字節(jié)擴展為字,為了下一條交換指令 CBW

XCHG AX,BP MUL ADD BX

;擴大10倍;加一位 BP,AX

LOOP input RET

;返回調(diào)用過程的地方;過程定義結(jié)束 OK: SHURU

ENDP

3.3 數(shù)據(jù)判斷功能

在第一套程序編寫完畢,試運行時,我們發(fā)現(xiàn),本程序能夠支持輸入的數(shù)據(jù)最大值為14,當數(shù)據(jù)大于等于15時,則程序出現(xiàn)除法溢出問題,并且自動關(guān)閉,所以為了能讓使用者不至于輸入不合法的數(shù)據(jù),我們特增加了數(shù)據(jù)判斷功能,輸入數(shù)據(jù)滿足條件,允許執(zhí)行。否則,提示輸入數(shù)據(jù)超過范圍,要求重新輸入。程序段如下:

MAIN: MOV

DX,OFFSET MSG

;輸出字符串,請輸入一個數(shù);9號功能調(diào)用,輸出字符串 MOV AH,9 INT 21H CALL SHURU CMP JB BP,15 MZTJ

;調(diào)用輸入函數(shù),顯示輸入的數(shù);輸入的數(shù)存在BP,與15比較;滿足條件,允許執(zhí)行;否則換行 HUANH MOV DX,OFFSET ERROR;準備顯示錯誤信息

MOV AH,9

INT 21H

HUANH

;繼續(xù)換行

JMP MAIN

;無條件跳轉(zhuǎn)到MAIN,重新開始 6

MZTJ: HUANH

··· ··· ···

3.4 詢問繼續(xù)模塊

在首套程序編寫完畢運行時,每次我們只能運行一次顯示楊輝三角的程序,以后還得重新鍵入相關(guān)命令,才能運行,如此調(diào)試程序,效率低下,且可能混亂我們對現(xiàn)象的記錄。所以考慮到我們調(diào)試程序的高效性及對于使用者的便利性,我們又增加了一個詢問繼續(xù)模塊,當?shù)谝淮螚钶x三角顯示完畢,提示是否繼續(xù),如果鍵入“Y”,則程序自動重新開始執(zhí)行;如果鍵入“N”,則程序運行結(jié)束,退出。程序段如下:

input1: HUANH MOV DX,OFFSET CON

;顯示提問字符串,繼續(xù)?

MOV AH,9

INT

21H

;判斷是否繼續(xù);鍵盤輸入數(shù)據(jù) MOV AH,1 INT CMP JNZ HUANH JMP 21H AL,59H exit1

;判斷輸入的是否是Y NEAR PTR MAIN

;段內(nèi)直接近轉(zhuǎn)移,可以轉(zhuǎn)移到段內(nèi)的任何一個位置;結(jié)束程序,返回DOS exit1:

MOV AH,4CH

INT 21H 3.5 數(shù)值計算模塊

本段數(shù)值計算,是正確顯示楊輝三角的關(guān)鍵,所以能否找到一種既簡便又能保證計算正確性的方法,是我們本階段工作的中心,我們參閱了很多資料,從幾種計算方法中,選取了最符合我們實際編程水平的,又在保證計算正確性的基礎(chǔ)上,寫出了如下的程序段,它的思想是基于:第n行的第1個數(shù)為1,第二個數(shù)為1×(n-1),第三個數(shù)為1×(n-1)×

(n-2)/2,第四個數(shù)為1×(n-1)×(n-2)/2×(n-3)/3···依此類推。

如圖3.5.1為本段程序的流程圖,文字描述即為上段。

Calculate:DEC

MUL

DIV

INC

CMP

JZ

PUSH

MOV

CALL

MOV

SUB

CALL

POP

CALL ok1:RET

圖3.6.1

數(shù)值計算流程圖

b;b每次減1相乘

b c;除以c,再加1 c b,0;b是否為0 ok1 AX;保存所得數(shù)據(jù)

d,0;此處d為位數(shù),為了顯示后面的空格 ShowNum AX,6;預設(shè),總共顯示的空格數(shù)為6個單位 AX,d;還需顯示多少空格

Showspace1 AX

Calculate;繼續(xù)執(zhí)行 8

3.6 顯示模塊

3.6.1 數(shù)據(jù)顯示

得到楊輝三角中的某一個數(shù)后,接下來的任務(wù)就是如何將它顯示出來。不能完成這項工作,就不能完成整個課題。我們小組在參考平時微機實驗的基礎(chǔ)上,自己分析,找到了一種正確的顯示方法:可以將某數(shù)不斷除以10,取出余數(shù)顯示,直到商為0,停止除法。例如:要顯示的數(shù)是345,除以10后,商為34,余數(shù)為5,5壓入堆棧。然后將34除以10,商為3,余數(shù)為4,4壓入堆棧。最后將3除以10,商為0,余數(shù)為3,3壓入堆棧。彈出堆棧,依次顯示,在匯編中,使用無符號數(shù)除法指令DIV OP。指令DIV BL,被除數(shù)存在AX中,整數(shù)商存在AL,余數(shù)存在AH。所以在除以10后,只需將AH中的值取出,下一次除法,可以用邏輯指令AND將其高八位屏蔽,調(diào)用2號功能,依次顯示。

為了能充分體現(xiàn)我們編程的思想,如圖3.6.1是數(shù)據(jù)顯示部分的流程圖,以下編寫的程序也是基于這種思想。

圖3.6.1

數(shù)據(jù)顯示流程圖

具體程序段如下:

ShowNum: MOV BX, 10

;BX中存除數(shù)10

CMP AX, 0 JZ

INC d ok2

;除法運算是否完畢

;此處d為位數(shù),以確定輸出的空格數(shù);除以10,整數(shù)商存在AL,余數(shù)存在AH DIV BL PUSH AX

AND AX, 00FFH;屏蔽高八位,取商 CALL

SHOWNum POP DX

;取出高八位,即為要顯示的余數(shù);轉(zhuǎn)為ASCII碼

MOV DL, DH OR DL, 30H

MOV AH, 2 INT RET 21H ok2: 3.6.2 空格顯示

空格的顯示,是為了調(diào)整整體楊輝三角的布局,使其輸出為美觀的等腰三角形。前期,我們采用在方格紙上試書寫的方式,確定需要顯示的空格數(shù)。實際編程中,使用到了3中空格形式,第一種是首數(shù)字1之前的空格,定義為AHEAD,第二種是首數(shù)字1后面的空格,定義為BETWEEN,第三種是和需顯示的數(shù)字位數(shù)相關(guān)的空格,定義為BACK,具體在程序中定義如下:AHEAD

DB

BETWEEN DB

BACK

DB

'

$' '

$' ' $' 定義了這三種空格后,需要將其顯示,這里我們使用DOS功能調(diào)用,9號系統(tǒng)功能調(diào)用——輸出字符串。功能是將指定的內(nèi)存緩沖區(qū)中的字符串在屏幕上顯示出來,緩沖區(qū)的字符串以“$”為結(jié)束標志。

Showspace: MOV BX, AX

nexts: MOV AH, 9 MOV DX,OFFSET AHEAD CMP BX, 0

;BX減1,控制輸出的空格數(shù)

;首行顯示空格,空格數(shù)即為輸入的階數(shù)

JZ dones

dones: INT DEC JMP RET 21H BX nexts

;完成顯示,返回;AX為6-數(shù)據(jù)位數(shù) Showspace1: MOV BX, AX

MOV AH, 9

MOV DX,OFFSET BACK next: CMP BX, 0

JZ done

INT 21H

DEC BX

JMP next done: RET

第四章 實驗結(jié)果及問題處理

4.1 實驗結(jié)果

通過對程序的多次完善,現(xiàn)在能夠達到的要求為:最小輸出1階,最大輸出14階的正反楊輝三角形,能夠判斷輸入數(shù)據(jù)是否合法,能夠詢問是否繼續(xù)輸出,當輸入階數(shù)較小時,也能夠很好的顯示輸出,輸出的正反楊輝三角形美觀、清晰,實現(xiàn)了題目所提出的基本要求,對于遇到的一些問題,將在下節(jié)討論,下面附上一些運行調(diào)試圖片。

如圖4.1.1和圖4.1.2為正反楊輝三角顯示圖,圖4.1.3為當輸入階數(shù)超出范圍時的提示錯誤信息,并要求重新輸入數(shù)據(jù)。

圖4.1.1

11階楊輝三角

圖4.1.2

繼續(xù)輸出的4階和6階楊輝三角

圖4.1.3

輸入階數(shù)不合法的提示界面

4.2出現(xiàn)的問題以及解決的方案

4.2.1 數(shù)據(jù)輸入問題

對于數(shù)據(jù)輸入,我們當初考慮到了兩種方法,在方案選擇中已論證了兩種方法各自的優(yōu)缺點,本來想使用0AH號系統(tǒng)功能調(diào)用,因為它能直接得到輸入的字符串,而不像1號系統(tǒng)功能調(diào)用那樣,只能夠輸入單字符,但是使用0AH號系統(tǒng)功能調(diào)用實際編寫程序時,卻不清楚輸入的字符串存放在內(nèi)存的哪個區(qū)域,雖然參考文獻上有相關(guān)說明,但是我們還是未能取出輸入的字符串,這對于我們是極大的打擊,因為階數(shù)輸入是完成整個課題的第一步,這一步基礎(chǔ)不做好,更不要提后面的計算、顯示了。

在要求首先能實現(xiàn)功能的情況下,我們還是選擇了1號系統(tǒng)功能調(diào)用,但是要加一個循環(huán)控制,控制輸入最大位數(shù)和ENTER的ASCII碼判斷輸入結(jié)束語句,因為是輸入的單字符,其ASCII碼存在AL寄存器中,所以對于2位數(shù),必須要先將其ASCII碼轉(zhuǎn)為16進制數(shù),將首先輸入的數(shù)乘以10,再加上第二次輸入的數(shù),得到實際鍵入的數(shù)值。基于以上思想,我們寫出了上述3.2節(jié)的階數(shù)輸入功能程序。4.2.2 除法溢出問題

由查閱資料可知,對于高階的楊輝三角形,其內(nèi)部的數(shù)據(jù)會變得相當大,當階數(shù)為15階時,其最大的數(shù)已經(jīng)超過65536,在數(shù)學上65536并不是一個特殊的數(shù),但是在計算機系統(tǒng)中,65536=2^16,在8086CPU內(nèi)部,有8個16為的內(nèi)部寄存器,當然累加器AX

也為16位,AX中能存放的最大的數(shù)為65536,分為高八位(AH)和低八位(AL),使用匯編的無符號數(shù)除法指令DIV OP,指令中給出的操作數(shù)是除數(shù),它可以是8位/16位通用寄存器及存儲器;被除數(shù)隱含在AX(字節(jié)除)或DX、AX(字除法)中。

查閱資料得到,可以使用特定指令,實現(xiàn)整數(shù)商存至AX,余數(shù)存至DX中,這樣能夠提高數(shù)值的上限,但是隨之而來的問題是,對于編程的復雜度的提高,楊輝三角的顯示格式問題,數(shù)據(jù)除以10取余數(shù)的顯示問題,從而影響到整個課題。所以考慮到限定的時間,輸出的美觀等因素,取折中選擇,我們只做到了14階,對于大于等于15階的階數(shù)輸入,我們增加了判斷語句,避免除法溢出問題。4.2.3 數(shù)據(jù)計算問題

眾所周知,楊輝三角形中的數(shù)據(jù)是有規(guī)律排列的,在上文整體設(shè)計思路中已經(jīng)闡述了一些規(guī)律。對于數(shù)據(jù)的計算,我們一開始考慮到的是某數(shù)等于其上一行左右兩數(shù)之和,依照此規(guī)律也可以寫出整個楊輝三角形,而且不需要進行乘除法運算,不會出現(xiàn)除法溢出問題。但是如何得到這個數(shù)的上一行的左右兩數(shù),這兩個數(shù)該存在哪里,卻是一個不容忽視的問題,而且會占用很大的內(nèi)存空間。

后來我們查閱資料,又得到一些規(guī)律,即第n行的第1個數(shù)為1,第二個數(shù)為1×(n-1),第三個數(shù)為1×(n-1)×(n-2)/2,第四個數(shù)為1×(n-1)×(n-2)/2×(n-3)/3···依此類推。這樣可以用DEC n和INC c,用乘除法指令就可運算出正確結(jié)果,但是前提是輸入的階數(shù)有限制,上一節(jié)已經(jīng)論證。為了能知道這一行到底要運算多少次,我們又加了一個CX控制其運算次數(shù),在計算前,對某一行的n,都要進行壓棧保護。綜上所述,我們寫出了上節(jié)結(jié)束輸入模塊的程序。事實表明,這樣的方法能夠計算出正確的數(shù)值。

第五章 總結(jié)與體會

微機原理與接口技術(shù),是我們電子科學與技術(shù)專業(yè)學生的專業(yè)課,由此可知,這門課對于我們的意義是多么重大。所以,在做這次微機的課程設(shè)計時,更是不敢怠慢。唯恐不能正確得到設(shè)計效果。

這次我們的課程設(shè)計的題目是:匯編顯示楊輝三角。剛拿到這個題目的時候,確實不知道從何下手,但是有句話說得好:不逼自己一把,怎么知道自己不可以?我們首先從什么是楊輝三角下手,查閱了相關(guān)資料,總結(jié)體會了楊輝三角的一些規(guī)律,這些規(guī)律能夠在我們編程過程中得以體現(xiàn),所以這個過程是必須的。

接下來,在熟悉了楊輝三角的基礎(chǔ)上,我們結(jié)合編程,總結(jié)了有幾個工作要做,一是:字符串的顯示;二是:楊輝三角值得計算;三是:這些數(shù)值的顯示;四是:輸出的排版問題,保證輸出美觀正確。把整個課題,分為以上四個部分后,各個擊破,從而高效的完成整個課題是一種很實用、有效的方法。雖然在這個過程中遇到了不少問題,但是我們小組成員都很積極的討論解決問題的方法。最后通過整合,得到了整個程序。總體來說,這個程序雖然還不完美,但是代表著我們這一段時間以來的成果,我們都很欣慰,能夠?qū)崿F(xiàn)題目的要求。

這次微機原理課程設(shè)計歷時兩個星期,在整整兩星期的日子里,可以說苦多于甜,但是可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。以前在上課的時候,老師經(jīng)常強調(diào)在寫一個程序的時候,一定要事先把程序原理方框圖化出來,但是我開始總覺得這樣做沒必要,很浪費時間。但是,這次課程設(shè)計完全改變了我以前的那種錯誤的認識,以前我接觸的那些程序都是很短、很基礎(chǔ)的,但是在課程設(shè)計中碰到的那些需要很多代碼才能完成的任務(wù),畫程序方框圖是很有必要的。因為通過程序方框圖,在做設(shè)計的過程中,我們每一步要做什么,每一步要完成什么任務(wù)都有一個很清楚的思路,而且在程序測試的過程中也有利于查錯。

其次,以前對于編程工具的使用還處于一知半解的狀態(tài)上,但是經(jīng)過一段上機的實踐,對于怎么去排錯、查錯,怎么去看每一步的運行結(jié)果,怎么去了解每個寄存器的內(nèi)容以確保程序的正確性上都有了很大程度的提高。

通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服

務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。

這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,最后在老師的辛勤指導下,終于游逆而解。同時學得到很多實用的知識,在此我表示感謝!同時,對給過我?guī)椭乃型瑢W表示忠心的感謝!

參考文獻

[1] 朱金鈞,麻新旗,等.微型計算機原理及應用技術(shù).機械工業(yè)出版社,第2版.附錄

匯編輸出楊輝三角程序代碼: HUANH MACRO

;宏定義5句代碼實現(xiàn)換行

MOV

AH, 2

DL, 13 21H DL, 10 21H

MOV

INT

MOV

INT ENDM

DATA SEGMENT

MSG

RESULT CON DB DB DB

'Please input a number: $' 'The YiangHui triangle:$'

'Do you want to continue?(Y/N): $' 'Data out of range!$' ERROR

DB

AHEAD

DB

'

$' BETWEEN DB BACK a

DB DW DW DW DW

'

$' ' $' ? ? ? ?

;記錄位數(shù),控制空格數(shù)

;a為階數(shù);b是行數(shù) b c

d

DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA

;輸入子程序,數(shù)字存在BP SHURU PROC

XOR

MOV

MOV BP,BP BX,10 CX,3

;控制輸入位數(shù),外加一位回車

input:

MOV

INT AH,1

21H

;鍵盤輸入數(shù)據(jù)

CMP

JZ AL,0DH

OK AL,30H

;以回車結(jié)束輸入

SUB

CBW

;化ASCII為HEX;字節(jié)擴展為字

OK:

SHURU START:

MAIN:

MZTJ:

XCHG MUL

ADD

LOOP

RET ENDP MOV

MOV

MOV

MOV

INT

CALL

CMP JB

HUANH MOV MOV

INT

HUANH JMP

HUANH MOV

MOV AX,BP BX

;擴大10倍 BP,AX

;加一位

input AX,DATA DS,AX

DX,OFFSET MSG;輸出字符串,請輸入一個數(shù) AH,9 21H SHURU

;調(diào)用輸入函數(shù),顯示輸入的數(shù)BP,15

;輸入的數(shù)在BP里 MZTJ

;滿足條件

DX,OFFSET ERROR

;準備顯示錯誤信息

AH,9

21H

MAIN DX,OFFSET RESULT;顯示提示字符串

AH,9

INT

HUANH

MOV

CALL

MOV

MOV

INT

CMP

JZ

MOV

MOV

MOV

DEC

CALL

exit: HUANH MOV

CALL

MOV

MOV

INT

JMP

yhsj: MOV

HUANH

DEC

MOV

CALL

MOV

MOV

INT

MOV 21H

AX,BP

;準備顯示楊輝三角,AX=BP=階數(shù)

Showspace DL,'1'

;第一行顯示空格完畢,輸出'1' AH,2 21H BP,1

;階數(shù)BP與1比較

exit b,2

;b=2 CX,BP;CX為階數(shù) a,BP;a為階數(shù) a

yhsj AX,BP

;準備顯示楊輝三角,AX=BP=階數(shù)

Showspace DL,'1'

;第一行顯示空格完畢,輸出'1' AH,2 21H NEAR PTR input1 c,1

;楊輝三角

BP AX,BP Showspace

;控制首數(shù)字前面的空格數(shù) DL,'1'

;首數(shù)字必為1

AH,2 21H DX,OFFSET BETWEEN

MOV

INT

MOV

PUSH

CALL

POP

INC

DEC

CMP

JA

DEC

CMP

JZ

CALL

ok3:

HUANH

INC

MOV

CALL

MOV

MOV

INT

input1: HUANH MOV

MOV

INT

MOV

INT

CMP

JNZ

HUANH AH,9 21H AX,1 b Calculate b b

;b為行數(shù)

CX CX,1 yhsj b b,2 ok3 fyhsj a AX,a Showspace DL,'1' AH,2 21H

;判斷是否繼續(xù)

DX,OFFSET CON;顯示提問字符串,繼續(xù)? AH,9 21H AH,1

;鍵盤輸入數(shù)據(jù)

21H AL,59H

;以回車結(jié)束輸入 exit1

JMP exit1: MOV

INT

fyhsj: MOV

HUANH

INC

MOV

CALL

MOV

MOV

INT

MOV

MOV

INT

MOV

DEC

PUSH

CALL

POP

INC

CMP

JB

RET Showspace:

MOV

MOV

MOV

nexts:

CMP

JZ NEAR PTR MAIN AH,4CH 21H c,1

;反楊輝三角

BP AX,BP Showspace DL,'1' AH,2 21H

DX,OFFSET BETWEEN AH,9 21H AX,1 b b Calculate b CX CX,a fyhsj BX, AX;首行顯示空格,空格數(shù)即為輸入的階數(shù)AH, 9 DX,OFFSET AHEAD BX, 0;BX減1,控制輸出的空格數(shù)

dones

INT

DEC

JMP

dones:

RET Calculate: DEC

MUL

DIV

INC

CMP

JZ

PUSH

MOV

CALL

MOV

SUB

CALL

POP

CALL

ok1:

RET ShowNum: MOV

CMP

JZ

INC

DIV

PUSH

AND

CALL

POP 21H BX nexts b b c c b,0 ok1 AX;保存所得數(shù)據(jù)

d,0 ShowNum AX,6 AX,d Showspace1 AX Calculate BX, 10;顯示某數(shù),并記錄位數(shù)AX, 0 ok2 d BL AX AX, 00FFH SHOWNum DX

ok2:

MOV

OR DL, DH DL, 30H AH, 2 21H MOV

INT

RET BX, AX AH, 9 DX,OFFSET BACK BX, 0 done 21H BX next Showspace1:MOV

next:

done:

RET

MOV

MOV

CMP

JZ INT

DEC

JMP

CODE ENDS

END START

第四篇:楊輝與楊輝三角

數(shù)學家楊輝

楊輝,中國南宋末年杰出的數(shù)學家和數(shù)學教育家。在13世紀中葉活動于蘇杭

一帶,其著作甚多。

他著名的數(shù)學書共五種二十一卷。著有《詳解九章算法》十二卷(1261年)、《日用算法》二卷(1262年)、《乘除通變本末》三卷(1274年)、《田畝比類乘除算法》二卷(1275年)、《續(xù)古摘奇算法》二卷(1275年)。

其中在《詳解九章算法》一書中載有二項(a+b)n展開系數(shù)的數(shù)字三角形,被稱為“楊輝三角”,它的發(fā)現(xiàn)比國外同類發(fā)現(xiàn)至少早3O0年。

楊輝的數(shù)學研究與教育工作的重點是在計算技術(shù)方面,他對籌算乘除捷算法進行總結(jié)和發(fā)展,有的還編成了歌決,如九歸口決。

他在《續(xù)古摘奇算法》中介紹了各種形式的“縱橫圖”及有關(guān)的構(gòu)造方法,同時“垛積術(shù)”是楊輝繼沈括“隙積術(shù)”后,關(guān)于高階等差級數(shù)的研究。楊輝在“纂類”中,將《九章算術(shù)》246個題目按解題方法由淺入深的順序,重新分為乘除、分率、合率、互換、二衰分、疊積、盈不足、方程、勾股等九類。

他非常重視數(shù)學教育的普及和發(fā)展,在《算法通變本末》中,楊輝為初學者制訂的“習算綱目”是中國數(shù)學教育史上的重要文獻。

===================

楊輝介紹

楊輝,字謙光,中國南宋(1127~1279)末年錢塘(今杭州市)人。其生卒年月及生平事跡均無從詳考。據(jù)有關(guān)著述中的字句推測,楊輝大約于13世紀中葉至末葉生活在現(xiàn)今浙江杭州一帶,曾當過地方官,到過蘇州、臺州等地。是當時有名的數(shù)學家和數(shù)學教育家,他每到一處都會有人慕名前來請教數(shù)學問題。

楊輝一生編寫的數(shù)學書很多,但散佚也很嚴重。據(jù)史料記載,他至少有以下書,曾在國內(nèi)或國外刊行:

《詳解九章算法》12卷(1261)《詳解算法》若干卷

《日用算法》(1262)

《乘除通變算寶》3卷(1274)

《續(xù)古摘奇算法如卷》(1275)

《田畝比類乘除捷法如卷》(1275)其中《詳解九章算法》殘缺不全,《詳解算法》、《日用算法》迄今未見傳本。而后3種共7卷合刊在一起,被稱為《楊輝算法》。

楊輝繼承中國古代數(shù)學傳統(tǒng),他廣征博引數(shù)學典籍,引用了現(xiàn)已失傳的宋代的許多算書,使我們才得知其部分內(nèi)容。其中,劉益的“正負開方術(shù)”,賈憲的“增乘開方法”與“開方作法本源”圖(即誤傳為“楊輝三角”),就是極其寶貴的數(shù)學史料。

楊輝繼沈括研究“隙積術(shù)”之后,研究了“垛積術(shù)”,即關(guān)于高階等差數(shù)列的研究。他首次將所謂“幻方”問題作為數(shù)學問題研究,并創(chuàng)“縱橫圖”之名。他給出了三階至十階幻方的實例,對某些構(gòu)成原理也有所研究。楊輝之前在中國尚無這方面的研究成果,楊輝之后,明、清兩代中國數(shù)學家關(guān)于縱橫圖的研究相繼不絕,因此楊耀的著述也是研究關(guān)于幻方乃至組合數(shù)學歷史的珍貴資料。楊輝還非常關(guān)心日常計算技巧,改進算法程序。

楊輝不僅著述甚豐,而且是一位杰出的數(shù)學教育家。他特別注重數(shù)學的普及教育,其許多著作都是為此而編寫的教科書。楊輝主張在數(shù)學教育中貫徹理論聯(lián)系實際的原則,在《日用算法》中,他說:“以乘除加減為法,稱斗尺田為問;用法必載源流,命題須責實用。”他還主張貫徹循序漸進的原則,在《算法通變本末》(即《乘除通變算寶》上卷)中,專門為初學者制了一份“司算綱目”,要求學習者抓住要領(lǐng),反復練習,這是我國歷史上第一部數(shù)學教學大綱。他又告誡初學者:“夫?qū)W算者,題從法取,法將題驗,凡欲明一法,必設(shè)一題。”又說:“題繁難見法理,定擺小題驗法理,義既通雖用繁題了然可見也。”可見,他十分強調(diào)習題應有典型性。楊輝一生治學嚴謹,教學一絲不茍,他的這此教育思考和方法,至今也有很重要的參考價值。

=================

古代數(shù)學家楊輝的故事

宋、元數(shù)學四大家之一的楊輝是世界上第一個排出豐富的縱橫圖和討論構(gòu)成規(guī)律的數(shù)學家. 說起楊輝的這一成就,還得從一件偶然的小事說起.一天臺州府的地方官楊輝坐轎出外巡游,半路上被一個在路中間算題的孩童攔住道路不能通過.楊輝一看來了興趣,連忙下轎,抬步來到前面.

楊輝摸著孩童的頭說:“為何不讓本官從此經(jīng)過?”

孩童答道:“不是不讓經(jīng)過,我是怕你們把我的算式踩掉,我又想不起來了.”

“什么算式?”

“就是把1到9九個數(shù)字分三行排列,不論直著加、橫著加還是斜著加,結(jié)果都是等于15.我們先生說下午一定要把這道題做好.我正算到關(guān)鍵之處.”

楊輝連忙蹲下身,仔細地看孩童的算式,覺得這個算式在哪兒見過,仔細一想,原來是西漢學者戴德編纂的《大戴禮》中所寫的文章中提及的.

楊輝和孩童兩人連忙一起運算起來,直到天過午,兩人才舒了一口氣,結(jié)果出來了,他們又驗算了一下,結(jié)果全是15,這才站了起來.結(jié)果如圖1所示:

?/P> 楊輝回到家中反復琢磨,一有空閑就在桌上擺弄這些數(shù)字,終于發(fā)現(xiàn)了其中的規(guī)律,按照類似的規(guī)律,楊輝又得到了“花16圖”——把從1到16的數(shù)字排列在四行四列的方格中,使每一橫行、縱行、斜行四數(shù)之和均為34.

后來,楊輝又將散見于前人著作和流傳于民間的有關(guān)這類問題加以整理,得到了“五五圖”“六六圖”“衍數(shù)圖”“易數(shù)圖”“九九圖”“百子圖”等許多類似的圖.楊輝把這些圖總稱為縱橫圖,于1275年寫進自己的數(shù)學著作《續(xù)古摘奇算法》一書中,并流傳后世.

但長期以來,人們習慣于把它當做純粹的數(shù)學游戲,并沒有給予應有的重視.隨著近代組合數(shù)學的發(fā)展,縱橫圖顯示了越來越強大的生命力,在圖論、組合分析、對策論、計算機科學領(lǐng)域中都找到了用武之地.

----------------------------楊輝和孩童將算題解答出來后的故事外傳:

后來,楊輝隨孩童來到老先生家里,與老先生談?wù)撈饠?shù)學問題來。老先生說:“北周的甄彎注《數(shù)術(shù)記遺》一書中寫過‘九宮者,二四為肩,六八為足,左三右七,戴九履一,五居中央。”’楊輝聽了,這與自己與孩童擺出來的完全一樣。便問老先生:“你可知這個九宮圖是如何造出來的?”老先生說不知道。

楊輝回到家中,反復琢磨。一天,他終于發(fā)現(xiàn)一條規(guī)律,并總結(jié)成四句話:“九子斜排,上下對易,左右相更,四維挺出”。就是說:先把l~9九個數(shù)依次斜排,再把上l下9兩數(shù)對調(diào),左7右3兩數(shù)對調(diào),最后把四面的2、4、6、8向外面挺出,這樣三階幻方就填好了。

楊輝研究出三階幻方(也叫絡(luò)書或九宮圖)的構(gòu)造方法后,又系統(tǒng)的研究了四階幻方至十階幻方。在這幾種幻方中,楊輝只給出了三階、四階幻方構(gòu)造方法的說明,四階以上幻方,楊輝只畫出圖形而未留下作法。但他所畫的五階、六階乃至十階幻方全都準確無誤,可見他已經(jīng)掌握了高階幻方的構(gòu)成規(guī)律。------------------------------幻方,在我國也稱縱橫圖,它的神奇特點吸引了無數(shù)人對它的癡迷。從我國古代的“河出圖,洛出書,圣人則之”的傳說起,系統(tǒng)研究幻方的第一人,當數(shù)我國古代數(shù)學家——楊輝。

其實,中國古代數(shù)學家在數(shù)學的許多重要領(lǐng)域中處于遙遙領(lǐng)先的地位。中國古代數(shù)學史曾經(jīng)有自己光輝燦爛的篇章,而楊輝三角的發(fā)現(xiàn)就是十分精彩的一頁。

楊輝,字謙光,北宋時期杭州人。在他1261年所著的《詳解九章算法》一書中,輯錄了如上所示的三角形數(shù)表,稱之為“開方作法本源”圖。===============

楊輝三角

簡單的說一下就是兩個未知數(shù)和的冪次方運算后的系數(shù)問題,比如(X+Y)2等于X2 +2XY+Y2,這樣系數(shù)就是1 2 1這就是楊輝三角的其中一行,立方,四次方,運算的結(jié)果看看各項的系數(shù),你就明白其中的道理了

這就是楊輝三角,也叫賈憲三角。他于我們現(xiàn)在的學習聯(lián)系最緊密的是2項式乘方展開式的系數(shù)規(guī)律。如圖,在賈憲三角中,第3行的第三個數(shù)恰好對應著兩數(shù)和的平方公式(在此就不做說明了)依次下去楊輝三角是一個由數(shù)字排列成的三角形數(shù)表,一般形式如下:

楊輝三角最本質(zhì)的特征是,它的兩條斜邊都是由數(shù)字1組成的,而其余的數(shù)則是等于它肩上的兩個數(shù)之和。

同時這也是多項式(a+b)^n 打開括號后的各個項的二次項系數(shù)的規(guī)律,即為 0(a+b)^0(0 nCr 0)1(a+b)^1(1 nCr 0)(1 nCr 1)2(a+b)^2(2 nCr 0)(2 nCr 1)(2 nCr 2)3(a+b)^3(3 nCr 0)(3 nCr 1)(3 nCr 2)(3 nCr 3)................因此楊輝三角第x層第y項直接就是(y nCr x)

我們也不難得到 第x層的所有項的總和 為 2^x(即(a+b)^x中a,b都為1的時候)[ 上述y^x 指 y的 x次方;(a nCr b)指組合數(shù)] 這樣一個三角在我們的奧數(shù)競賽中也是經(jīng)常用到,最簡單的就是叫你找規(guī)律。在國外,這也叫做“帕斯卡三角形”。

S1:這些數(shù)排列的形狀像等腰三角形,兩腰上的數(shù)都是1 S2:從右往左斜著看,第一列是1,1,1,1,1,1,1;第二列是,1,2,3,4,5,6;第三列是1,3,6,10,15;第四列是1,4,10,20;第五列是1,5,15;第六列是1,6??。

從左往右斜著看,第一列是1,1,1,1,1,1,1;第二列是1,2,3,4,5,6??和前面的看法一樣。我發(fā)現(xiàn)這個數(shù)列是左右對稱的。S3:上面兩個數(shù)之和就是下面的一行的數(shù)。S4:這行數(shù)是第幾行,就是第二個數(shù)加一。??

----------------------------楊輝三角的簡史:北宋人賈憲約1050年首先使用“賈憲三角”進行高次開方運算,南宋數(shù)學家楊輝在《詳解九章算法》(1261年)記載并保存了“賈憲三角”,故稱楊輝三角。元朝數(shù)學家朱世杰在《四元玉鑒》(1303年)擴充了“賈憲三角”成“古法七乘方圖”。

時間上:楊輝(1261)朱世杰(1303)也明顯就可以知道是楊輝發(fā)現(xiàn)的朱世杰只是擴充了其中的內(nèi)容 附賈憲資料:

賈憲,北宋人,約公元1050年完成一部叫《黃帝九章算術(shù)細草》的著作,原書丟失,但其主要內(nèi)容被南宋數(shù)學家楊輝著《詳解九章算法》(1261)摘錄,因能傳世。根據(jù)楊輝的摘錄,賈憲的高次開方法是以一張稱為“開方作法本源”的圖為基礎(chǔ)。開方作法本源圖現(xiàn)稱“賈憲三角”或“楊輝三角”,它實際上是一張二項系數(shù)表。賈憲增乘開方法,是一個非常有效的和高度機械化的算法,可適用于開任意高次方。這種隨乘隨加、能反復迭代計算減根變換方程各項系數(shù)的方法,與現(xiàn)代通用的“霍納算法”(1819)已基本一致。而與此方法相聯(lián)系的“賈憲三角”,在西方文獻中則稱“帕斯卡三角”(1654)。

第五篇:實驗三 隊列實現(xiàn)楊輝三角

實驗3隊列實現(xiàn)楊輝三角

一、實驗目的

1.熟悉隊列的邏輯結(jié)構(gòu)。2.回顧常用的存儲結(jié)構(gòu)。

3.掌握System.Collection.Queue類的使用方法。

4.熟悉隊列的幾種典型應用,用隊列來解決一些編程問題。5.用循環(huán)隊列實現(xiàn)楊輝三角并測試。

二、實驗內(nèi)容

楊輝三角是除了每一行的第一個元素和最后一個元素是1,其他元素的值是上一行與之相鄰的兩個元素之和。

1.實現(xiàn)循環(huán)隊列類 a)兩個構(gòu)造函數(shù) b)入隊 c)出隊

2.用順序循環(huán)隊列實現(xiàn)楊輝三角(一)程序分析 2.1存儲結(jié)構(gòu)

用一片連續(xù)的存儲空間來存儲循環(huán)隊列中的數(shù)據(jù)元素,即采用順序存儲的方式。2.2 關(guān)鍵算法分析 1.出隊

1)自然語言描述: a.判斷隊列是否空 b.如果隊列空,拋出異常 c.如果隊列不空,則

i.ii.iii.元素出隊 移動對頭指針 隊列長度減1 代碼描述:

publicvirtualobjectDequeue()//出隊 {

} if(this._size == 0){ //隊下溢

} object obj2 = this._array[this._head];//出隊 this._array[this._head] = null;//刪除出隊元素 //移動隊頭指針

this._head =(this._head + 1)% this._array.Length;this._size--;return obj2;thrownewInvalidOperationException(“隊列為空”);時間復雜度:O(1)2.入隊

自然語言描述:

d.判斷隊列是否滿 e.如果隊列滿,則擴容 f.如果隊列不滿,則

a)元素入隊 b)移動隊尾指針 c)隊列長度加1 代碼描述:

publicvirtualvoidEnqueue(objectobj)//入隊 {

} if(this._size == this._array.Length)//當數(shù)組滿員時 { //計算新容量

} this._array[this._tail] = obj;//入隊

this._tail =(this._tail + 1)% this._array.Length;//移動隊尾指針 this._size++;int capacity =(int)((this._array.Length * this._growFactor)/ 100L);if(capacity <(this._array.Length + _MinimumGrow)){ //最少要增長4個元素

} this.SetCapacity(capacity);//調(diào)整容量 capacity = this._array.Length + _MinimumGrow;時間復雜度:O(1)3.打印楊輝三角

自然語言描述: 要定義的變量:

1)行:n

2)列:

i.ii.空格 j 數(shù)值

k 3)左肩:left 4)右肩:right 代碼描述:

三、程序運行結(jié)果

四、實驗心得

1.調(diào)試時出現(xiàn)的問題及解決的方法

2.心得體會

3.下一步的改進

下載楊輝三角--中國的帕斯卡三角形word格式文檔
下載楊輝三角--中國的帕斯卡三角形.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔相關(guān)法律責任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    楊輝三角-杭州第七中學(五篇范文)

    高中數(shù)學第三冊第二章第2節(jié)教案 研究性課題:楊輝三角 杭州七中翟慎佳 【教學目的】 1. 進一步探索楊輝三角的基本性質(zhì)及數(shù)字排列規(guī)律,形成知識網(wǎng)絡(luò); 2. 培養(yǎng)學生發(fā)現(xiàn)問題、提出問......

    2007-12帕斯卡爾與人生的意義

    2007-12-1帕斯卡爾與人生的意義 美國圣母大學(Notre Dame)托馬斯·莫里斯(Thomas Morris)著,李瑞萍譯。看了這本書才知道,《思想錄》不是帕斯卡爾要寫的一本書,而是他為寫一本書而......

    三角形

    1 已知△ABC中,AD,BE,CF分別是∠A,∠B,∠C的平分線。求證:AD,BE,CF交于一點。 證明:設(shè)AD與BE交于點P,則要證CF過點P,也就是要證CP平分∠C,用向量知識分析,即要證存在λ,使得向量CP......

    數(shù)學大師啟示錄_帕斯卡和費馬[小編推薦]

    這是驚人的,起源于賭博的概率理論,竟會成為人類知識的最重要的對象。 ——拉普拉斯 我找到了許許多多極其優(yōu)美的定理。 ——費馬 出類拔萃 在法國中南部僻靜的克萊蒙費......

    《愛動腦筋的帕斯卡》同步練習(共5則)

    課前預習: 1、寫出意思相近的詞語: 著名( )( ) 探索( )( ) 2、填上合適的動詞: ( )小鳥 ( )空氣 ( )問題 ( )孩子 ( )交通 ( )飛機 課后練習: 一、選詞填空: 試驗 實驗 1、達爾文想找顏料( ),被......

    _39_愛動腦筋的帕斯卡_教學設(shè)計_教案

    教學準備 1. 教學目標 1、認識本課4個生字。 2、積累詞語“數(shù)學家、思考、消失、實驗、振動、探索、發(fā)明、創(chuàng)造”等詞語。 3、正確、流利地朗讀全文。 4、知道帕斯卡從小......

    《“楊輝三角”與二項式系數(shù)的性質(zhì)》教學設(shè)計說明(本站推薦)

    《“楊輝三角”與二項式系數(shù)的性質(zhì)》教學設(shè)計說明 湖北省黃岡市浠水實驗高級中學 周少雄 1.內(nèi)容和內(nèi)容解析 《“楊輝三角”與二項式系數(shù)的性質(zhì)》是全日制普通高級中學教科書......

    C語言運用一維數(shù)組和二維數(shù)組輸出楊輝三角

    C語言——運用一維數(shù)組和二維數(shù)組輸出楊輝三角**********一維數(shù)組********** #include #define n 10 int main() {}int a[n]={1,1},i,j;printf("%5dn%5d%5dn",1,a[0],a[1]......

主站蜘蛛池模板: 法国啄木乌av片在线播放| 荫蒂添的好舒服视频囗交| 中文在线а√天堂| 亚洲欧洲自拍拍偷无码| 少妇久久久久久人妻无码| 国产人澡人澡澡澡人碰视频| 四库影院永久国产精品| 人妻少妇邻居少妇好多水在线| 中文字幕人妻在线中字| 亚洲精品成人网久久久久久| 久久国产精品日本波多野结衣| 国产成人精品高清在线观看93| 日本一卡二卡不卡视频查询| 亚洲a∨无码国产精品久久网| 亚洲毛片不卡av在线播放一区| 摸进她的内裤里疯狂揉她动图视频| 欧美交换配乱吟粗大免费看| 亚洲精品亚洲人成人网| 尤物99国产成人精品视频| 亚洲综合无码一区二区三区| 琪琪电影午夜理论片八戒八戒| 在线 亚洲 国产 欧美| 免费乱理伦片在线观看| 一本一本久久a久久精品综合麻豆| 99re热这里只有精品视频| 欧美成人精品第一区| 久久777国产线看观看精品| 久久婷婷五月综合中文字幕| 久久精品人人做人人爽电影| 夜夜澡人摸人人添人人看| 欧美性黑人极品hd另类| 成人亚洲a片v一区二区三区动漫| 人人妻人人澡av天堂香蕉| 日木av无码专区亚洲av毛片| 久久www免费人成_网站| 极品av麻豆国产在线观看| 日韩av一区二区精品不卡| 国产精品xxx大片免费观看| 亚洲欧洲国产成人综合在线| 亚洲国产精品无码久久久动漫| 自慰小少妇毛又多又黑流白浆|