在生活中,我們遇到問題怎么辦?當(dāng)然是想辦法解決問題啦!用于解決問題的各種方法及其步驟就是算法。
算法不是唯一的,針對(duì)一個(gè)問題,一千個(gè)人有一千種算法。
將問題遷移到程序中,我們也要設(shè)計(jì)算法,并用計(jì)算機(jī)語(yǔ)言來描述算法。那么,你們知道多少種算法呢?
貪心算法、窮舉法、遞推法、桶排序……從本期起,本刊開設(shè)“曉敏講算法”專欄,曹曉敏老師將攜星空和嶺童小子這兩個(gè)小伙伴,帶大家走進(jìn)奇妙的Scratch編程世界,講解經(jīng)典算法,攻克一個(gè)個(gè)“難題”。一起來學(xué)習(xí)吧!
嶺童小子已經(jīng)上小學(xué)五年級(jí)了。上小學(xué)四年級(jí)時(shí),他就開始接觸計(jì)算機(jī)編程,有了編程基礎(chǔ),可他覺得學(xué)習(xí)深度還不夠。
這不,最近嶺童小子瘋狂地迷上了計(jì)算機(jī)算法。放學(xué)后,他常常和計(jì)算機(jī)伙伴——星空深度互動(dòng)。瞧,今天最后一堂課一下課,他們就開始切磋!
計(jì)算機(jī)畫面中,兩個(gè)杯子被擺放在一排。伴隨著輕松的背景音樂,愉快的對(duì)話開始了。
“你想往1號(hào)杯里裝什么?”
“牛奶?!?/p>
“搞定!2號(hào)杯里,你想裝什么呢?”
“橙汁?!?/p>
“Ok!”
“且慢!嘿嘿,我改主意了。我想讓1號(hào)杯里裝橙汁,2號(hào)杯里裝牛奶?!?/p>
“小子,你逗我玩呢。不過,這難不倒我!It is so easy??春昧耍瑒e眨眼??!”
“?。∵@也行!求救,求救,曉敏老師快來,星空這是怎么做到的呀?”
曉敏老師:
這個(gè)不難。為了把1號(hào)杯里的牛奶和2號(hào)杯中的橙汁交換,星空巧妙地借用了第三個(gè)杯子——3號(hào)杯。
第一步,把1號(hào)杯里的牛奶裝到3號(hào)杯里,代碼見圖1。
第二步,將2號(hào)杯里的橙汁裝到1號(hào)杯中,代碼見圖2。
第三步,將3號(hào)杯里的牛奶裝到2號(hào)杯中,代碼見圖3。
推而廣之,變量里面也可以存放具體的數(shù)值。在編寫程序時(shí),如果我們需要臨時(shí)交換兩個(gè)變量中的數(shù)據(jù),常常會(huì)使用這種方法。因?yàn)榻柚说谌齻€(gè)變量,好像冒了個(gè)泡出來,所以我們將這種方法稱之為冒泡法。
程序作品展示:
同學(xué)們,你們能用冒泡法交換兩個(gè)變量中的數(shù)據(jù)嗎?掃描下方的小程序碼,看看優(yōu)秀的程序作品吧!
曹曉敏
湖南省特級(jí)教師、湖南省優(yōu)秀科技輔導(dǎo)員、長(zhǎng)沙市首批卓越教師、長(zhǎng)沙市骨干教師、長(zhǎng)沙市“黨和人民滿意的好老師”。長(zhǎng)沙市芙蓉區(qū)馬坡嶺小學(xué)信息技術(shù)教師。
她主持多項(xiàng)課題研究,并多次應(yīng)邀在全國(guó)、省、市做培訓(xùn)講座。輔導(dǎo)學(xué)生開展的青少年科技實(shí)踐活動(dòng)、指導(dǎo)學(xué)生完成的信息學(xué)作品等多次在全國(guó)、省、市青少年科技創(chuàng)新大賽中取得優(yōu)異成績(jī)。