林智海
以點(diǎn)擊“輸出圖形”按鈕輸出圖1為例子,該例子需要對(duì)For結(jié)構(gòu)、Space函數(shù)、String函數(shù)等基礎(chǔ)程序知識(shí)結(jié)構(gòu)要有較深的認(rèn)識(shí)和理解,并借助傳統(tǒng)數(shù)學(xué)的圖形化、解析化的教法,加深對(duì)VB程序設(shè)計(jì)的核心思想的理解。
首先在認(rèn)真觀察和思考該效果圖的時(shí),我們應(yīng)該把握好在宏觀的解題思路上,要有化繁為簡(jiǎn),分步式的分解解題思路。圖形是由1到9的結(jié)構(gòu),在對(duì)For結(jié)構(gòu)有基本認(rèn)識(shí)的條件下,該題可以直接簡(jiǎn)化成1到3的結(jié)構(gòu),因此將結(jié)果先分步簡(jiǎn)化成如下:
一、輸出三行“1”:
For i=1 to 3
Print “1”
Next
二、空格變量--Space()函數(shù)
1、結(jié)論圖化:
第二步的思路,我們需要加入空格函數(shù)Space(num),num參數(shù)表示的是空格的個(gè)數(shù),可簡(jiǎn)單利用稿紙上為其添加縱橫網(wǎng)格線后,經(jīng)過(guò)初步觀察和畫圖后可知第一行有2個(gè)空格,第二行有1個(gè)空格,第三有0個(gè)空格,如圖2所示。
2、將結(jié)論圖轉(zhuǎn)換成關(guān)系模型圖(模型化)
根據(jù)結(jié)論圖的分析可知Space(num)函數(shù)中的空格個(gè)數(shù)的值為2,1,0,而行變量的值為1,2,3,將自變量i代表行變量,因變量F(i)代表空格個(gè)數(shù),可以直接生成3的二者的關(guān)系模型圖,如圖3所示
3、將關(guān)系模型圖轉(zhuǎn)換成坐標(biāo)圖(坐標(biāo)化)
在坐標(biāo)軸上建立起自變量i和因變量函數(shù)F(i)的點(diǎn)
當(dāng)自變量i=1時(shí),因變量F(i)=2,確立A點(diǎn)(1,2)
當(dāng)自變量i=2時(shí),因變量F(i)=1,確立B點(diǎn)(2,1)
當(dāng)自變量i=3時(shí),因變量F(i)=0,確立C點(diǎn)(3,0)
4、利用一元二次方程組知識(shí)求解AB連線的方程組,并驗(yàn)證C點(diǎn)是否在線上(解析化)
利用傳統(tǒng)數(shù)學(xué)中的坐標(biāo)軸體系來(lái)解析出AB線的方程組。當(dāng)i=1時(shí),F(xiàn)(i)=2,確立A點(diǎn),當(dāng)i=2時(shí),F(xiàn)(i)=1,確立B點(diǎn),連接AB,求解直線AB故為二元一次方程組,設(shè)F(i)=a*i+b,列出AB點(diǎn)表達(dá)式:(1)2=a*1+b(2)1=a*2+b
求解得a=-1,b=3,故F(i)= -1*i+3 即F(i)= 3-i,還要驗(yàn)證C點(diǎn)是否在AB線上,將C點(diǎn)值代入F(i)= 3-i,表達(dá)式成立,因此ABC三點(diǎn)位于同一條直線上,將解析后的表達(dá)式帶入到空格函數(shù)為Space(3-i),如圖4所示,更改代碼為:Print Space(3-i)& “1”
三、數(shù)字“1”變量--String()函數(shù)
1、由實(shí)際問(wèn)題建立關(guān)系模型圖
建立行變量與1的個(gè)數(shù)關(guān)系模型圖,參照?qǐng)D3。
2、將關(guān)系模型圖轉(zhuǎn)換成坐標(biāo)圖,參照?qǐng)D4
當(dāng)自變量i=1時(shí),因變量F(i)=1,確立A點(diǎn)(1,1)
當(dāng)自變量i=2時(shí),因變量F(i)=3,確立B點(diǎn)(2,3)
當(dāng)自變量i=3時(shí),因變量F(i)=5,確立C點(diǎn)(3,5)
3、求解AB連線的方程組,并驗(yàn)證C點(diǎn)是否在線上
連接AB點(diǎn),設(shè)F(i)=a*i+b,求解得a=2,b=-1,故F(i)= 2*i-1,將C點(diǎn)值代入F(i)= 2*i-1,表達(dá)式成立,因此ABC三點(diǎn)位于同一條直線上,文本函數(shù)為String(2*i-1,”1”),更改代碼為:Print Space(3-i)& String(2*i-1,”1”)
4、思路歸納為:實(shí)際問(wèn)題—圖形化—坐標(biāo)化—解析化
四、類比學(xué)習(xí)--通過(guò)Chr()挖掘String()函數(shù)character參數(shù)
接下去的問(wèn)題也有一定困難,發(fā)現(xiàn)問(wèn)題并不是利用數(shù)形結(jié)合來(lái)查找表達(dá)式,這里就要回到對(duì)String函數(shù)本身的繼續(xù)深入研究和挖掘上了,Chr函數(shù)為Chr(charcode),charcode即字符碼,從Ascii表中數(shù)字1對(duì)應(yīng)的字符碼為49。而String函數(shù)為String(number,Character),里面有兩個(gè)參數(shù),通過(guò)類比實(shí)例操作演示我們可以發(fā)現(xiàn)String函數(shù)中的Character參數(shù)的ASCII值的轉(zhuǎn)換字符的功能,因此圖形輸出1,2,3的值,要轉(zhuǎn)換成Character參數(shù)的ASCII值49,50,51,要找出Character參數(shù)字符ASCII值與行自變量i的關(guān)系,如圖7所示。
1、由實(shí)際問(wèn)題建立關(guān)系模型圖(參照?qǐng)D3)
行自變量i:1,2,3
ASCII因變量F(i):49,50,51
2、將關(guān)系模型圖轉(zhuǎn)換成坐標(biāo)圖(參照?qǐng)D4)
在坐標(biāo)軸上建立起自變量i和因變量函數(shù)F(i)的點(diǎn):A點(diǎn)(1,49);B點(diǎn)(2,50);C點(diǎn)(3,51)
3、求解AB連線的方程組,并驗(yàn)證C點(diǎn)是否在線上
連接AB,設(shè)F(i)=a*i+b,求解得a=1,b=48,故F(i)= i+48,因此1的個(gè)數(shù)的表達(dá)式為i+48,將C點(diǎn)值代入表達(dá)式成立,因此ABC三點(diǎn)位于同一條直線上,故函數(shù)為String(2*i-1,i+48),更改函數(shù)表達(dá)式為:Print Space(3-i)& String(2*i-1,i+48)
五、For的倒序?qū)懛ā癋or i=3 to 1 Step -1”,更改For循環(huán)中的末值(由“2”改為“8”和“3”改為“9”)以調(diào)整輸出的行數(shù),在輸出時(shí),發(fā)現(xiàn)報(bào)錯(cuò)信息,觀察容易發(fā)現(xiàn)Space(3-i)中的數(shù)據(jù)會(huì)出現(xiàn)負(fù)值現(xiàn)象,故可將3改為9或比9大的數(shù)字即可
縱觀以上的解題過(guò)程,在對(duì)For結(jié)構(gòu)、Space函數(shù)、String函數(shù)等基礎(chǔ)程序知識(shí)了解的基礎(chǔ)上,并借助傳統(tǒng)數(shù)學(xué)的圖形化、解析化的教法,我們?cè)趯?duì)解決問(wèn)題既要在宏觀上要有化繁為簡(jiǎn),逐步分化的能力,也要有在微觀上大膽懷疑,小心求證,探究函數(shù)內(nèi)部結(jié)構(gòu)及運(yùn)行機(jī)制的研究精神,VB的教學(xué)核心是發(fā)現(xiàn)問(wèn)題、分析問(wèn)題、解決問(wèn)題能力的提升,是傳統(tǒng)數(shù)學(xué)邏輯思維的具體化和應(yīng)用化的體現(xiàn)。
(作者單位:福州第二技師學(xué)院)