国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現在的位置是:首頁 » scratch編程資訊

資訊內容

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

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

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

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

在初中,我們就知道,楊輝三角的兩個腰邊的數都是 1,其它位置的數都是它頂上兩個數之和。這就是我們編程實現楊輝三角的關鍵之一。

使用scratch編寫這個程序相對于別的語言來說要更復雜一點,復雜的不是算法,而是如何展示出來,下面我們先來分析一下這個程序有哪些難點,面對這些困難我們如何克服。這就是我們所強調的,少兒編程應該重點學習如何解決問題,如何利用有限的資源去做更多的事。

問題1:找規律,將現象轉為數據

楊輝三角的兩個腰邊的數都是 1,其它位置的數都是它頂上兩個數之和。

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

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

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

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

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

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

問題二:如何將數字打印顯示到舞臺?

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

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

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

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

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

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

上下間距設置為30,即y坐標-30,x坐標向左移動,第二次左移20,第三層左移40,第四層就是60,總結規律就是0-(層數-1)*20,數字與數字之間的距離設置為30。

問題四:如果數字大于9怎么辦?

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

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

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

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

完整的程序如圖

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

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

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

運行結果:

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

效果優化:

從圖中看到結果并不是我們想要的等腰三角形效果,因為后面數字變大,占據的寬度增加,所以整體向右偏移,因此就要對這些多位數進行處理,讓他們起始位置向左移動一點,這樣就可以了。

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

優化后的積木:

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

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


在高中我們會學到,楊輝三角中的任何一個數都等于一個組合數,如果有興趣可以利用這一公式來做。

相關閱讀:Python基礎練習實例49(打印楊輝三角)

本站部分內容轉載自網絡,如有侵權請聯系管理員及時刪除。

   少兒編程網scratch中文素材在線生成

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 汪清县| 乌鲁木齐县| 磐石市| 丹江口市| 建阳市| 连南| 财经| 合作市| 祁门县| 于田县| 辉南县| 始兴县| 望奎县| 玉树县| 惠来县| 亳州市| 克拉玛依市| 织金县| 墨江| 密山市| 永春县| 长寿区| 都江堰市| 乐清市| 高尔夫| 固阳县| 岳西县| 莱西市| 张家界市| 黄石市| 阳山县| 新民市| 奇台县| 洪江市| 睢宁县| 纳雍县| 视频| 唐山市| 应城市| 罗平县| 元阳县|