竹内纱里奈和大战黑人_欧美成人黄色小视频_91福利影视_欧美在线观看视频网站_h色网站免费观看_97综合

極客小將

您現(xiàn)在的位置是:首頁 » scratch編程資訊

資訊內(nèi)容

scratch編程繪制數(shù)字金字塔(楊輝三角)

極客小將2021-12-16-
楊輝三角相信很多人都不陌生,它是一個(gè)無限對(duì)稱的數(shù)字金字塔,在中國南宋數(shù)學(xué)家楊輝1261年所著的《詳解九章算法》一書中出現(xiàn)。用程序打印出楊輝三角也是C、C++編程中的一道經(jīng)典題目……

楊輝三角相信很多人都不陌生,它是一個(gè)無限對(duì)稱的數(shù)字金字塔,在中國南宋數(shù)學(xué)家楊輝1261年所著的《詳解九章算法》一書中出現(xiàn)。在歐洲,帕斯卡(1623—-1662)在1654年發(fā)現(xiàn)這一規(guī)律,所以這個(gè)表又叫做帕斯卡三角形。帕斯卡的發(fā)現(xiàn)比楊輝要遲393年,比賈憲遲600年。

scratch繪制數(shù)字金字塔(楊輝三角)

在初中,我們就知道,楊輝三角的兩個(gè)腰邊的數(shù)都是 1,其它位置的數(shù)都是它頂上兩個(gè)數(shù)之和。這就是我們編程實(shí)現(xiàn)楊輝三角的關(guān)鍵之一。

使用scratch編寫這個(gè)程序相對(duì)于別的語言來說要更復(fù)雜一點(diǎn),復(fù)雜的不是算法,而是如何展示出來,下面我們先來分析一下這個(gè)程序有哪些難點(diǎn),面對(duì)這些困難我們?nèi)绾慰朔_@就是我們所強(qiáng)調(diào)的,少兒編程應(yīng)該重點(diǎn)學(xué)習(xí)如何解決問題,如何利用有限的資源去做更多的事。

問題1:找規(guī)律,將現(xiàn)象轉(zhuǎn)為數(shù)據(jù)

楊輝三角的兩個(gè)腰邊的數(shù)都是 1,其它位置的數(shù)都是它頂上兩個(gè)數(shù)之和。

如圖所示,我們可以利用上一行的結(jié)果,計(jì)算出下一行的數(shù)據(jù)。因此定義兩個(gè)列表(l:上一行數(shù)據(jù);tem:下一行數(shù)據(jù)),每個(gè)列表用來存儲(chǔ)一行數(shù)據(jù):

scratch編程繪制數(shù)字金字塔(楊輝三角)

scratch編程繪制數(shù)字金字塔(楊輝三角)

如圖,給tem首位加上1,就是1,2,1那就是第三行的數(shù)據(jù),接下來再把l的數(shù)據(jù)清空,將tem的數(shù)據(jù)存儲(chǔ)到l里,并在首位添加1,如此循環(huán)就可以一層一層的輸出了。

scratch編程繪制數(shù)字金字塔(楊輝三角)

scratch編程繪制數(shù)字金字塔(楊輝三角)

問題二:如何將數(shù)字打印顯示到舞臺(tái)?

上面解決了數(shù)據(jù)問題,下面就要把列表l里的數(shù)據(jù)一個(gè)個(gè)顯示到舞臺(tái)上,這就是scratch的麻煩所在,無法直接打印字符。于是想辦法,用數(shù)字角色,添加造型,將0-9都包括進(jìn)去,根據(jù)不同的數(shù)字切換不同的造型,利用畫筆里的圖章或者克隆將這個(gè)數(shù)留在舞臺(tái)上,為了簡單,就用圖章吧。

scratch編程繪制數(shù)字金字塔(楊輝三角)

問題三:換行后位置如何確定?

第一行很好確定,就在舞臺(tái)中央的正上方,那換到下一行從哪里開始呢?這需要我們根據(jù)實(shí)際情況去測試一下,如下圖所示,找到這個(gè)合適的間距。

scratch編程繪制數(shù)字金字塔(楊輝三角)

scratch編程繪制數(shù)字金字塔(楊輝三角)

上下間距設(shè)置為30,即y坐標(biāo)-30,x坐標(biāo)向左移動(dòng),第二次左移20,第三層左移40,第四層就是60,總結(jié)規(guī)律就是0-(層數(shù)-1)*20,數(shù)字與數(shù)字之間的距離設(shè)置為30。

問題四:如果數(shù)字大于9怎么辦?

比如要打印出10,這怎么辦?我們的角色造型里沒有這么多,我們只有0-9。這時(shí)就想到了拆分,將多位數(shù)一位一位的拆出來(將0造型放在最后,即:換成0造型,默認(rèn)就是最后一個(gè)造型)。

scratch編程繪制數(shù)字金字塔(楊輝三角)

目前所有遇到的問題基本都有了解決辦法,我們就可以開始動(dòng)手構(gòu)建整個(gè)程序了。,第一行是1,這個(gè)是固定的,我們直接在開始用圖章印上去,從第二行開始,重復(fù)執(zhí)行打印,計(jì)算下一行,流程如下。

scratch編程繪制數(shù)字金字塔(楊輝三角)

完整的程序如圖

scratch編程繪制數(shù)字金字塔(楊輝三角)

scratch編程繪制數(shù)字金字塔(楊輝三角)

scratch編程繪制數(shù)字金字塔(楊輝三角)

運(yùn)行結(jié)果:

scratch編程繪制數(shù)字金字塔(楊輝三角)

效果優(yōu)化:

從圖中看到結(jié)果并不是我們想要的等腰三角形效果,因?yàn)楹竺鏀?shù)字變大,占據(jù)的寬度增加,所以整體向右偏移,因此就要對(duì)這些多位數(shù)進(jìn)行處理,讓他們起始位置向左移動(dòng)一點(diǎn),這樣就可以了。

scratch編程繪制數(shù)字金字塔(楊輝三角)

優(yōu)化后的積木:

scratch編程繪制數(shù)字金字塔(楊輝三角)

scratch編程繪制數(shù)字金字塔(楊輝三角)


在高中我們會(huì)學(xué)到,楊輝三角中的任何一個(gè)數(shù)都等于一個(gè)組合數(shù),如果有興趣可以利用這一公式來做。

相關(guān)閱讀:Python基礎(chǔ)練習(xí)實(shí)例49(打印楊輝三角)

本站部分內(nèi)容轉(zhuǎn)載自網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系管理員及時(shí)刪除。

   少兒編程網(wǎng)scratch中文素材在線生成

預(yù)約試聽課

已有385人預(yù)約都是免費(fèi)的,你也試試吧...

主站蜘蛛池模板: 亚洲一区二区三区欧美 | 亚洲国产综合在线 | 黄a在线| 日韩1级片 | 黄色免费一级 | 久月婷婷 | 污视频在线观看免费 | 久久免费国产精品1 | 欧美日本国产在线 | 国产精品videossex | 色婷婷精品国产一区二区三区 | 91久久精品人人做人人爽综合 | 最近中文字幕在线观看 | 欧美xxxx在线| 中文字幕在线观看一区二区 | www.三级.com| 亚洲成人免费在线 | 伊人成人在线视频 | 成人福利在线观看 | 夜夜av| av九九| 免费观看一级特黄欧美大片 | 亚洲精品成人av | 久久久精品一区二区三区 | 一区二区三区在线播放 | 国产成人免费网站 | 黑人精品 | 日韩一区二区在线免费观看 | 日韩亚州 | 亚洲精品在线看 | 久久精品视频网站 | 九九热免费精品视频 | 成人一区二区三区 | 成人欧美一区二区 | 亚洲一区二区在线视频 | 在线成人一区 | 中文字幕在线电影 | 三级视频网址 | 精品国产乱码久久久久久久软件 | 久久国产精品影视 | 爱你啪|