【Scratch】十進位數字轉換成二進位數字
有時候我們想要知道某一10進位數字如果轉換成8進位數字是多少,當然可以透過電腦的一些工具程式甚至是Google搜尋來幫你完成,但是如果我們可以自己寫一個程式來做轉換,會不會比較酷呢?現在我們就來教同學們,如果利用Scratch程式積木來讓貓咪可以幫我們把任一個十進位的數字轉換成二進位的數字。
資訊技術教材網
有時候我們想要知道某一10進位數字如果轉換成8進位數字是多少,當然可以透過電腦的一些工具程式甚至是Google搜尋來幫你完成,但是如果我們可以自己寫一個程式來做轉換,會不會比較酷呢?現在我們就來教同學們,如果利用Scratch程式積木來讓貓咪可以幫我們把任一個十進位的數字轉換成二進位的數字。
Scratch提供了一個舞台,除了可以在舞台上做一些動畫之外,其實它也是一個很好用的畫布,只要透過「畫筆」類的積木,就可以輕易地在舞台上做畫,在這一篇文章中,我們就來教最簡單的畫一個SIN函數圖形。
之前我們練習了許多清單應用,而清單本身就是用來儲存一系列相關資料的變數記憶空間,當資料被逐一存進去之後,到底裡面有沒有我們想要的資料項目,就是一個搜尋資料的議題。如果資料的項目不多的話,一個一個比對並搜尋的速度是可以接受的,但是如果資料一多的話,逐一比對就變得很沒有效率。不過,在考慮效能的問題之前,先讓我們來看看,要如何從清單中找出我們想要的資料項目。
使用查表法用在解譯簡譜算是滿方便的,因為可以把別人的簡譜直接拿來使用,由程式來進行翻譯就好了。不過,如果只有1~7個音階時還算是好用,但是如果把音階再擴展至高音以及低音的部份,很顯然地,只使用數字是不夠的。
在前一個單元中我們把想要演奏的音樂簡譜放在song1這個變數中,然後一個一個字元地拆解出來,分別送到note這個自訂積木去播放每一個音符。這個程式在操作起來還算是容易,但是你有沒有注意到幾個可以加強的點?
大家都知道在Scratch中有一組很有趣的音效積木,透過這些積木可以演奏出各式各樣樂器不同音階的聲音,不過在設計演奏音符的時候都要透過數字和節拍一個一個積木地去放置,有一些不方便。在這篇文章中就來教同學,如何使用簡譜放在一個字串變數中,然後讓程式根據簡譜的內容轉換之後直接播放出樂曲。
和上一篇文章中所介紹的交換兩個變數內容不太一樣的地方是,清單變數裡面有許多資料項,要指定到資料項取出內容時要指定其索引值(也就是哪一個位置),並使用清單的專有函數積木才可以,但是在交換過程中需要用來暫存資料的變數則是使用一般的變數就可以了。
有一些操作(例如在排序的時候)會用到把兩個變數的內容交換的操作,有一些程式語言支援了交換變數內容的命令(例如BASIC的SWAP),也有一些語言直接在語法上操作就可以達成(例如Python的 a, b = b, a),但是如果都沒有這些支援的時候,該如何用變數的操作來達成交換兩個變數內容的目的呢?