App Inventor學習記錄199-找出清單中的重覆項及在那一個位置

直接用清單中的方塊來做的話,只能抓到第 1個資料,所以這裡我們寫一個小程式來處理這個問題。

記錄一下:
App Inventor學習記錄199-找出清單中的重覆項及在那一個位置


這次範例的完成品如下。

先產生一組 1~9的 30個隨機號碼。這 30個隨機號碼,肯定會有重覆的項次。
接下來用下拉式清單選擇要判斷的數字。
這個時候,會分 2種方式判斷,第 1種就是用清單方塊用的 index in list下去抓。這種方式只能抓到第 1筆資料的位置。第 2種方式就是用這次寫的小程式來做,就可以把清單中所有的重覆的項目抓出來。


畫面編排的部份如下。

這裡用到的元件是按鈕、標籤和下拉式選單。


全部的程式方塊如下。


第 1部份的程式方塊記錄。

隨機清單,用來放 1~9組成的 30個隨機數字。
下拉式選單清單,用來放 1~9的數字。


第 2部份的程式方塊記錄。

when screen 1.initialize,當程式初始化的時候。
set spinner 1.elements from string to,把 spinner清單的元素,設定成後面接的這個字串。
這個字串中的每一個元素,都要用 ”,”逗號隔開


第 3部份的程式方塊記錄。

when spinner.after selecting,當下拉式選擇後。
如果選擇的項目不是請選擇的話,就把標籤 7的文字,設定成下拉式的選中項。


第 4部份的程式方塊記錄。

當按鈕 1(產生隨機清單表按鈕)按下的時候。
把清單_隨機清單設定為空清單,這是為了每一次按下這個按鈕的時候,都可以產生新的資料。

在 for each number方塊這裡,我們設定要做 30次。
每一次都用 random integer from的數學方塊,從 1~9中隨機取一個數字,再用 add items to list的清單方塊,把隨機取得的數字,加入到清單_隨機清單中。

再把標籤 3的文字,設定成清單_隨機清單的內容。


第 5部份的程式方塊記錄。

當 button2(用清單方塊判斷結果按鈕)按下時。
把標籤 10的文字,用 index in list去抓出標籤 7的文字是位於清單_隨機清單中的那一項。

舉個例子,假設我們有一個清單如下。
[2,5,7,8,9,5,4,5,8,4,5,8,1,1,1,3,]
我們想要抓出 8這個數字的所有位置,但如果我們只用 index in list這個清單方塊來抓的話,就只能抓到 8的第 1個位置,也就是 4,其它的位置就抓不到。我們就可以用下面的這一個方塊來抓。


第 6部份的程式方塊記錄。

同樣用 for each number方塊來做,要做的次數就是用 length of list方塊抓出清單_隨機清單的長度,再把每一個清單的項次判斷是不是等於我們要抓的值。然後把數字加入到我們設定的清單中後,再顯示出來就可以了。

好的,全部的程式方塊都簡單說明過了,建議大家試著做一次,就會用的越來越熟。
但如果不想要重新拉程式方塊,或要需要範例 aia檔的話,請前往第 2頁哦!

發佈留言