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

極客小將

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

資訊內(nèi)容

一道程序猿筆試面試必會題怎樣用scratch做出來?

極客小將2020-11-22-
點擊上方“啟迪少兒”即可關(guān)注訂閱 很多家長覺得scratch太簡單了,只需要拖拽封裝好的積木塊就可以了。而我們scratch老師則會回應(yīng),scratch是低門檻高上限的,是沒有天花板的……為什么這么說,我們今天就看一看用sc
點擊上方“啟迪少兒”即可關(guān)注訂閱
很多家長覺得scratch太簡單了,只需要拖拽封裝好的積木塊就可以了。而我們scratch老師則會回應(yīng),scratch是低門檻高上限的,是沒有天花板的……為什么這么說,我們今天就看一看用scratch怎么來做一道程序猿筆試面試必須要會的一道題——排序

題目的任務(wù)敘述很簡單:對一個已知數(shù)組,按照從小到大(或大到小)排序

?用scratch我們可以很快讓計算機給出任意數(shù)組,比如,可以有10個任意數(shù)字

upload/article/images/2020-11-22/be9467ab20d05122bc9a5fd4792376f3.jpg

工作:(1)建一個列表【L】;? ? ? ? ??(2)列表通常的初始化工作——刪除全部項目;? (3)重復(fù)10次插入1-100的任意自然數(shù)

?這樣我們就有了10個任意數(shù)

upload/article/images/2020-11-22/13488fd8fbdafed1657707c9920ba290.jpg

接下來,就是排序了。程序猿考試考的是算法,什么冒泡排序、選擇排序、插入排序等等。一個優(yōu)秀的算法能使程序的性質(zhì)帶來質(zhì)的飛躍,在scratch里面同樣可以用這些算法來解決問題(謝聲濤《scratch趣味編程進階——妙趣橫生的數(shù)學(xué)和算法》書中第12章“撲克學(xué)算法”就將這些算法描述得非常透徹)。

在這里我們就用“選擇排序”的思路帶著大家用scratch實現(xiàn)從小到大排序

思路是這樣的:

第一輪:我們用第一個數(shù)字跟剩余的9個數(shù)比較大小,如果第一個數(shù)字比其他數(shù)字大,就交換這兩個數(shù)字的位置(因為我們的排序是從小到大,就讓小的數(shù)字在前面)。

具體:

1、第一個數(shù)字和第二個數(shù)字比較后,第一個數(shù)字89比第二個數(shù)字62大,就讓兩個數(shù)字換順序;2、再讓新的第一位置數(shù)字62和第三個數(shù)字45比較,比較之后45排到第一位置;3、新的第一位置數(shù)字45再跟第四個數(shù)字比較……

以此類推,最終排在第一位置的數(shù)字是整個數(shù)組【L】中最小的數(shù)字

upload/article/images/2020-11-22/944da5ffec27e2e5fdd10ecb81bf470d.jpg

程序腳本體現(xiàn)如下

upload/article/images/2020-11-22/32a18817cc27133e50ad3584f5a45868.jpg

我們新設(shè)一個變量【i】代表除了第1項以外的其他項,先將i設(shè)為2,通過讓i每次增加1,實現(xiàn)第一個數(shù)字(L的第一項)與其他各個數(shù)字比較。

在替換之前,需要設(shè)一個變量【temp】,作為數(shù)字交換過程中一個承接數(shù)字的臨時空間(我們通常稱為“罐子”,交換數(shù)據(jù)的原理可以用兩個杯子中的水交換來理解)。

?第二輪:用與第一輪同樣的方法,讓第二個數(shù)字40跟剩余的8個數(shù)比較大小(第一個數(shù)字一旦排好了就不需要再動),也就是讓數(shù)組【L】的第2項,分別與從第3項、第4項、第5項……第10項逐一比較。

upload/article/images/2020-11-22/be63d169ce263ee402245173854ac0a5.jpg

本次需要將i設(shè)為3,讓第2項與從第3項開始的其余8個數(shù)比較

?得到如下順序的數(shù)組:

upload/article/images/2020-11-22/a13cde9b6da3a873fb86fa731cdf2e24.jpg

第三輪:用同樣的方法,讓第三個數(shù)字53跟剩余的7個數(shù)比較大小

upload/article/images/2020-11-22/53202bf532af54744a8bad0ff1d5008f.jpg

第四輪:用同樣的方法,讓第四個數(shù)字跟剩余的6個數(shù)比較大小

……

最終得出排序結(jié)果

upload/article/images/2020-11-22/25c603d2708a2d6af4578afd686e3f42.jpg

看到這里,您對這個排序程序的算法步驟應(yīng)該是很明白了,但如果按照這樣下來這個腳本也太長了(即把以上所有腳本都要拼接起來),用scratch做反而很麻煩。那么有什么辦法可以簡化呢?

我們看到,在每一輪的第一個數(shù)字與其他幾個數(shù)字比較,可以用重復(fù)執(zhí)行數(shù)字順序i+1就可以完成。而第二輪、第三輪……第十輪都是重復(fù)與第一輪一樣的方法,是不是也可以嵌套一個重復(fù)執(zhí)行的順序呢

答案當(dāng)然是可以的

?為了使我們兩個數(shù)的比較更加清楚,我們可以設(shè)兩個變量作為數(shù)組【L】的項目順序,一個設(shè)為【n】,一個設(shè)為【i】,以?n?來控制輪數(shù),以?i?來實現(xiàn)每一輪里已確定一個比較數(shù)后另一個比較數(shù)的變更。腳本程序可以縮減如下:

upload/article/images/2020-11-22/9f35b17b6b98e74a3781fef9b0df67cc.jpg

當(dāng)n=1時,i=n+1=2,i重復(fù)增加1,直到執(zhí)行到10
當(dāng)n=2時,i=n+1=3,i重復(fù)增加1,直到執(zhí)行到10當(dāng)n=3時,i=n+1=4,i重復(fù)增加1,直到執(zhí)行到10……直到n執(zhí)行到10(全部比較完畢)

這個用scratch排列數(shù)字的程序就基本完成了!

當(dāng)然還可以用“制作新的積木”的方式將交換順序的腳本封裝,這就大大簡化了接著用冒泡排序插入排序希爾排序等等方式再來玩一遍數(shù)字排序!

upload/article/images/2020-11-22/f67a4c5d82a745bc846bfab38e8e48d8.jpg

制作新積木塊“交換數(shù)字”

所以說,用scratch一樣能玩C、C++、python中的算法!在很多競賽中就體現(xiàn)了排序這種算法的題。

到這里,你可能會松了一口氣,還好,這是競賽。我們成年人做這種題可能都有點繞暈啊!那么告訴你,軟件編程預(yù)備級(scratch等級考試)4級中可能就會有類似難度的題!

upload/article/images/2020-11-22/bce9f8d2756a47f771c1658c224905ee.jpg

知識點講完了,下面就給大家出一道scratch初級組(1-3年級)的一道編程題:

?任務(wù):小明和幾名同學(xué)在周末一起參加了一場蘋果采摘活動,他們每個人摘到的蘋果的數(shù)量已經(jīng)存到了【蘋果數(shù)量】列表里面,請你編寫代碼自動計算出摘的最多的比摘的最少的多摘了幾個,把結(jié)果保存到變量【結(jié)果】中。

舉例:摘的最多的摘了30?個,最少的摘了12?個,【結(jié)果】應(yīng)該為18。

轉(zhuǎn)載自“啟迪少兒”公眾號的原創(chuàng)文章

原文作者:北京通州的迪迪媽
























聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時和我們聯(lián)系刪除

預(yù)約試聽課

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

主站蜘蛛池模板: 建平县| 天全县| 汉中市| 象山县| 梁河县| 安庆市| 西贡区| 宁津县| 翁源县| 正宁县| 理塘县| 墨竹工卡县| 卢湾区| 清徐县| 隆回县| 长沙市| 荔波县| 盐津县| 横山县| 稷山县| 马关县| 铁岭县| 许昌县| 南汇区| 建瓯市| 武平县| 出国| 金门县| 蒲城县| 集安市| 治县。| 江门市| 乌拉特中旗| 读书| 岳阳市| 平顺县| 云林县| 中卫市| 萨嘎县| 漳浦县| 盐池县|