如何畫一個(gè)正方形?
簡(jiǎn)單,拿起鉛筆和尺子,畫成直角的四條等長(zhǎng)相交直線就可以了,誰不會(huì)呢?
可是,我說的是用Scratch畫???!所以,開啟程序員模式的第一步,就是要明確機(jī)器是死的,笨的,他只會(huì)簡(jiǎn)單的動(dòng)作,除非,你替它規(guī)劃好了,否則,靠它自己,問題是不能得到解決的!所以,第二步就是看看你的笨機(jī)器都會(huì)點(diǎn)什么,讓后,你用這些東西讓它發(fā)揮更大的作用,完成預(yù)定工作!如果,沒有這種能力,發(fā)明了輪子有什么用呢?電有能干什么呢?就是給你最快最強(qiáng)大的計(jì)算機(jī),你又能干得了什么?!
于是,你去找Scratch的畫圖命令,發(fā)現(xiàn)只有畫筆抬起放下、設(shè)置寬度和顏色的命令,根本就沒有劃線的命令,但是你知道有移動(dòng)命令,所以,你不免想:也許,放下畫筆,移動(dòng)角色,就會(huì)畫出東西來,抬起畫筆,就不會(huì)有東西畫下來了!
是這樣嗎?不要問,直接驗(yàn)證一下即可!
現(xiàn)在,我們要畫一個(gè)正方向,如何畫呢?
按部就班的用劃線、旋轉(zhuǎn)、劃線、旋轉(zhuǎn)、劃線、旋轉(zhuǎn)、劃線的方式完成,是最直接的!作為第一次嘗試讓電腦聽你指揮,你當(dāng)然可以試一試!
但是,這種順序羅列所有做事步驟的“程序”還是太笨了點(diǎn),因?yàn)?,這件事也可以看做一個(gè)操作劃線并旋轉(zhuǎn)的操作循環(huán)四次就可以了!按照這個(gè)思路,程序該如何寫呢?
先不要管具體的指令是什么,先在紙上畫出來吧,這就是程序框圖的用途:
《應(yīng)諧錄》by劉元卿 有記:汝有田舍翁,家資殷盛,而累世不識(shí)之乎.一歲,聘楚士訓(xùn)其子.楚士始訓(xùn)之搦管臨朱,書一畫,訓(xùn)曰"一"字;書二畫,訓(xùn)曰"二"字;書三畫,訓(xùn)曰"三"字.其子輒欣欣然,擲筆歸告其父曰:"兒得矣,兒得矣;可無煩先生矣,重費(fèi)館谷也,請(qǐng)謝去."其父喜,從之,具幣謝遣楚士.逾時(shí),其父擬征召姻友萬氏姓者飲,令子晨起治狀,久之不成.父趣之.其子恚曰:"天下姓字伙矣.奈何姓萬 自晨起至今,才完五百畫也."
如此,用這個(gè)方式,你畫出別的正N邊形也沒什么問題了吧!這就是通用算法!
記得我剛剛開始學(xué)習(xí)計(jì)算機(jī)編程的時(shí)候,剛剛學(xué)了輸出語句(就是打印一個(gè)字符或一段話出來在屏幕上),習(xí)題往往是讓你做一個(gè)用*或者別的什么字符畫方形或者菱形,那時(shí)候根本就沒學(xué)過任何“畫圖命令”,簡(jiǎn)直不知道如何下爪。根本就沒意識(shí)到題目其實(shí)是讓你“模擬”出一個(gè)那樣的圖案,而不是讓你畫出來!