第一章算法的概念_第1頁
第一章算法的概念_第2頁
第一章算法的概念_第3頁
第一章算法的概念_第4頁
第一章算法的概念_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

§1.1.1算法的概念

【教學(xué)目標(biāo)】:

(1)了解算法的含義,體會(huì)算法的思想。

(2)能夠用自然語言敘述算法。

(3)掌握正確的算法應(yīng)滿足的要求。

(4)會(huì)寫出解線性方程(組)的算法。

(5)會(huì)寫出一個(gè)求有限整數(shù)序列中的最大值的算法。

【教學(xué)重點(diǎn)】算法的含義、解二元一次方程組和判斷一個(gè)數(shù)為質(zhì)數(shù)的算法設(shè)計(jì)。.

【教學(xué)難點(diǎn)】把自然語言轉(zhuǎn)化為算法語言。.

【學(xué)法與教學(xué)用具】

學(xué)法:

1、寫出的算法,必須能解決一類問題(如:判斷一個(gè)整數(shù)n(n>l)是否為質(zhì)數(shù);求任意一個(gè)方

程的近似解;……),并且能夠重復(fù)使用。

2、要使算法盡量簡單、步驟盡量少。

3、要保證算法正確,且計(jì)算機(jī)能夠執(zhí)行,如:讓計(jì)算機(jī)計(jì)算1X2X3X4X5是可以做到的,

但讓計(jì)算機(jī)去執(zhí)行“倒一杯水”“替我理發(fā)”等則是做不到的。

教學(xué)用具:計(jì)算機(jī),TI-voyage200圖形計(jì)算器

【教學(xué)過程】

一、本章章頭圖說明

章頭圖體現(xiàn)了中國古代數(shù)學(xué)與現(xiàn)代計(jì)算機(jī)科學(xué)的聯(lián)系,它們的基礎(chǔ)都是“算法二

算法作為一個(gè)名詞,在中學(xué)教科書中并沒有出現(xiàn)過,我們?cè)诨A(chǔ)教育階段還沒有接觸算

法概念。但是我們卻從小學(xué)就開始接觸算法,熟悉許多問題的算法。如,做四則運(yùn)算要先乘

除后加減,從里往外脫括弧,豎式筆算等都是算法,至于乘法口訣、珠算口訣更是算法的具

體體現(xiàn)。廣義地說,算法就是做某一件事的步驟或程序。菜譜是做菜肴的算法,洗衣機(jī)的使

用說明書是操作洗衣機(jī)的算法,歌譜是一首歌曲的算法。在數(shù)學(xué)中,主要研究計(jì)算機(jī)能實(shí)現(xiàn)

的算法,即按照某種機(jī)械程序步驟一定可以得到結(jié)果的解決問題的程序。

古代的計(jì)算工具:算籌與算盤.

20世紀(jì)最偉大的發(fā)明:計(jì)算機(jī),計(jì)算機(jī)是強(qiáng)大的實(shí)現(xiàn)各種算法的工具。

x-2j=-1①

例1:解二元一次方程組:

2x+j=1②

分析:解二元一次方程組的主要思想是消元的思想,有代入消元和加減消元兩種消元的方法,

下面用加減消元法寫出它的求解過程.

解:第一步:②-①義2,得:5y=3;③

第二步:解③得J=—;

第三步:將y=|代入①,得x=|.

學(xué)生探究:對(duì)于一般的二元一次方程組來說,上述步驟應(yīng)該怎樣進(jìn)一步完善?

老師評(píng)析:本題的算法是由加減消元法求解的,這個(gè)算法也適合一般的二元一次方程組的解

法。下面寫出求方程組的解的算法:

例2:寫出求方程組?(。也-與仇,o)的解的算法.

a2x+b2y=c2②

解:第一步:②XR-①Xa2,得:(flib2-a2by)y=axc2-a2cx③

第二步:解③得了="一號(hào)

aib2一°2"1

第三步:將.="2一"|代入①,得x=£t二生

a{b2-a2bxa]

利用TI-voyage200圖形計(jì)算器演示:(吸引學(xué)生的注意力)

j

:eryuan(>:Loc-alx,y,al,bl,ml?a2,b2,mi

:Prgn:Input"al'Sal

:ClrIO:Input"bi%bi

:Loc-aLx^u,alml,m2:Input

!Input,,al?ai!Input"a2"?a2

!Input"bl%%bl!Input,,b2",b2

:Irtput"Ml",hl!Ir*put"M2,,?MI2

!Ihput,,a2",a2!(a2*nl-al*m2VCa2*bl-al*b2)->y

:Input"'b2"?b2:<nl-bl*y)/aHx

:Inp一ut"'m2",M2:Disp*'x=:M?x

:<a2*n1-a1*m2)/Ca2*b1-a1*b2):D1SPny=5H?y

!<Kil-bl*y)/aHxsEndPrgm

MAINDEGRPFFiDKFUNCMAINDEGAFTRUXFUNC

運(yùn)行結(jié)果:

.~Y:=>■r:x-Y_F?Y~Y*"i

|二I,…:依”:漱??#:VJ冕、⑵毋出II

2

b2

1

m2(其中輸入a1=1,b1=?2,m1=?1,a2=2

1

x=:b2=1,m2=1,當(dāng)然可輸入其它數(shù)值)

.2

y=!

MAINDEGRPPRDXFUNCWHO

算法概念.

在京學(xué)上,現(xiàn)代意義上的“算法”通常是指可以用計(jì)算機(jī)來解決的某一類問題是程序或

步驟,這些程序或步驟必須是明確和有效的,而且能夠在有限步之內(nèi)完成.

說明:

1.“算法”沒有一個(gè)精確化的定義,教科書只對(duì)它作了描述性的說明.

2.算法的特點(diǎn):

⑴有限性:

一個(gè)算法的步驟序列是有限的,必須在有限操作之后停止,不能是無限的.

⑵確定性:

算法中的每一步應(yīng)該是確定的并且能有效地執(zhí)行且得到確定的結(jié)果,而不應(yīng)當(dāng)是模棱兩可.

⑶順序性與正確性:

算法從初始步驟開始,分為若干明確的步驟,每一個(gè)步驟只能有一個(gè)確定的后繼步驟,前一

步是后一步的前提,只有執(zhí)行完前一步才能進(jìn)行下一步,并且每一步都準(zhǔn)確無誤,才能完成

問題.

(4)不唯一性:

求解某一個(gè)問題的解法不一定是唯一的,對(duì)于一個(gè)問題可以有不同的算法.

⑸普遍性:

很多具體的問題,都可以設(shè)計(jì)合理的算法去解決,如心算、計(jì)算器計(jì)算都要經(jīng)過有限、事先

設(shè)計(jì)好的步驟加以解決.

例題講評(píng):

例3、任意給定一個(gè)大于1的整數(shù)n,試設(shè)計(jì)一個(gè)程序或步驟對(duì)n是否為質(zhì)數(shù)做出判斷.

分析:(1)質(zhì)數(shù)是只能被1和自身整除的大于1的整數(shù).

(2)要判斷一個(gè)大于1的整數(shù)n是否為質(zhì)數(shù),只要根據(jù)質(zhì)數(shù)的定義,用比這個(gè)整數(shù)小

的數(shù)去除n,如果它只能被1和本身整除,而不能被其它整數(shù)整除,則這個(gè)數(shù)便是質(zhì)數(shù).

解:算法:

第一步:判斷n是否等于2.若n=2,則n是質(zhì)數(shù);若n>2,則執(zhí)行第二步.

第二步:依次從2~(n-1)檢驗(yàn)是不是n的因數(shù),即整除n的數(shù).若有這樣的數(shù),則n不是質(zhì)

數(shù);若沒有這樣的數(shù),則n是質(zhì)數(shù).

說明:本算法是用自然語言的形式描述的.設(shè)計(jì)算法一定要做到以下要求:

(1)寫出的算法必須能解決一類問題,并且能夠重復(fù)使用.

(2)要使算法盡量簡單、步驟盡量少.

(3)要保證算法正確,且計(jì)算機(jī)能夠執(zhí)行.

利用TI-voyage200圖形計(jì)算器演示:(學(xué)生已經(jīng)被吸引住了)

以Rc。石。11彘旗即工遮箱

:zhishu2<)|

:PrgnInputaintergen:

:Locali,k,n5

:Input11Inputainterger:11,n5.

!For2^ceilin2(n-^2)

!ICnod(n,i)=0Then、一,.shizhishu

!DUPn,"bushizhishu"15JJInputainterger!

!Re-turnA51

:EndIf

:EndFor51.

sDispn,"shizhishu"bushizhishu

sEndPrgm

MRINOEGMf-FfiDXFUNCMRINPEGMf-FfiDXFUNCWHO

例4、.用二分法設(shè)計(jì)一個(gè)求方程/-2=0的近似根的算法.

分析:該算法實(shí)質(zhì)是求痣的近似值的一個(gè)最基本的方法.

解:設(shè)所求近似根與精確解的差的絕對(duì)值不超過0.005,算法:

第一步:令/(》)=/一2.因?yàn)?⑴<0,/⑵>0,所以設(shè)幣=1,X2=2.

第二步:令/n=土產(chǎn),判斷f(m)是否為0.若是,則m為所求;若否,則繼續(xù)判斷)/(m)

大于0還是小于0.

第三步:若/(x)/(m)>0,則X|=m;否則,令X2=m.

第四步:判斷|與-*2|<0-0。5是否成立?若是,則xi、X2之間的任意值均為滿足條件的近似

根;若否,則返回第二步.

說明:按以上步驟,我們將依次得到課本第4頁的表1-1和圖1.1-1.于是,開區(qū)間(1.4140625,

1.41796875)中的實(shí)數(shù)都滿足假設(shè)條件的原方程是近似根.

利用TI-voyage200圖形計(jì)算器演示:

您fc。名。冊(cè)能科工.猛置1廬島后。山先帽五而遮展[〕

?ar*#end":u+b

:Prgn:EndIT

:Loc-alr<x>a,b,e:IfThen

:DefineF<x?S=x^2-2:c*b

!Input"Jingquedu”,e!Else

!InpuL"zuoduandian11,aSc+a

sInput"youduahdain",bJErtdir

sirrca)*r(b)<oThensEMUhil?

:Uhi19abs(a-b)>e:EndIf

:<a+b>/2^c:Dispa

;IffCc)=OThensDispb

sc^-asEndPrgm

MAINDEGRPTRUKFUNCMAINDEGHFPRUXFUNC

運(yùn)行結(jié)果:

.~丫…丫『一丫~Y~1

H,…:也維57建:3:£卜冕、|P「gmI0心M中國|]

jingquedu

0.005

zuoduandian

1

youduandain

2

1.4140625

1.41796875

MAINDEGHFFRUXFUNC,”11。

練習(xí)1:

寫出解方程X2-2X-3=0的一個(gè)算法。

解:算法1:

第一步:移項(xiàng),得X2—2X—3=0;①

第二步:①式兩邊同加1并配方,得(x-1)2=4;②

第三步:②式兩邊開方,得x—1=±2;③

第四步:解③得x=3或x=-l。

算法2:

第一步:計(jì)算方程的判別式判斷其符號(hào)△=22+4X3=16>0;

第二步:將a=l,b=—2,c=-3代入求根公式x=_b_q~~—

得X1=3,X2=-1

評(píng)析:比較兩種算法,算法2更簡單,步驟少,所以利用公式解決問題是最理想、

合算的算法。因此在尋求算法的過程中,首先是利用公式。

下面設(shè)計(jì)一個(gè)求一般的一元二次方程ax2+bx+c=0的根的算法如下:

第一步:計(jì)算△=b?+4ac;

第二步:若△<();

第三步:輸出方程無實(shí)根;

第四步:若△》();

—b±Nb2-4ac

第五步:計(jì)算并輸出方程根

Xi,2=2

練習(xí)2、求1X3X5X7X9X11的值,寫出其算法。

第一步,先求1X3,得到結(jié)果3;

第二步,將第一步所得結(jié)果3再乘以5,得到結(jié)果15;

第三步,再將15乘以7,得到結(jié)果105;

第四步,再將105乘以9,得到945;

第五步,再將945乘以11,得到10395,即是最后結(jié)果。

評(píng)析:求解某個(gè)問題的算法不同于求解一個(gè)具體問題的方法,算法必須能夠解決一類問

題,并且能夠重復(fù)使用;算法過程要能一步一步地執(zhí)行,每一步操作必須確切,能在有

限步后得出結(jié)果。

練習(xí)3、有藍(lán)和黑兩個(gè)墨水瓶,但現(xiàn)在卻錯(cuò)把藍(lán)墨水裝在了黑墨水瓶中,黑墨水錯(cuò)裝在

了藍(lán)墨水瓶中,要求將其互換,請(qǐng)你設(shè)計(jì)算法解決這一問題。

分析:由于兩個(gè)墨水瓶中的墨水不能直接交換,故可以考慮通過引入第三個(gè)空墨水

瓶的辦法進(jìn)行交換。

解:算法步驟如下:

第一步:取一只空的墨水瓶,設(shè)其為白色;

第二步:將黑墨水瓶中的藍(lán)墨水裝入白瓶中;

第三步:將藍(lán)墨水瓶中的黑墨水裝入黑瓶中;

第四步:將白瓶中的藍(lán)墨水裝入藍(lán)瓶中;

第五步:交換結(jié)束。

評(píng)析:對(duì)于這種非數(shù)值性問題的算法設(shè)計(jì)問題,應(yīng)當(dāng)首先建立過程模型,根據(jù)過程設(shè)計(jì)步驟,

完成算法。

小結(jié)

1、算法概念和算法的基本思想

(1)算法與一般意義上具體問題的解法的聯(lián)系與區(qū)別;

(2)算法的五個(gè)特征。

2、利用算法的思想和方法解決實(shí)際問題,能寫出一此簡單問題的算法

3、兩類算法問題

(1)數(shù)值性計(jì)算問題,如:解方程(或方程組),解不等式(或不等式組),套用公式判斷性

的問題,累加,累乘等一類問題的算法描述,可通過相應(yīng)的數(shù)學(xué)模型借助一般數(shù)學(xué)計(jì)算方法,

分解成清晰的步驟,使之條理化即可。

(2)非數(shù)值性計(jì)算問題,如:排序、查找、變量變換、文字處理等需先建立過程模型,通過

模型進(jìn)行算法設(shè)計(jì)與描述。

4、利用TI-voyage200圖形計(jì)算器演示時(shí),開始學(xué)生看,想,探究,然后模范、創(chuàng)新。圖形

計(jì)算器為學(xué)生創(chuàng)建一個(gè)自我發(fā)揮的平臺(tái)。

作業(yè):(課本第4頁練習(xí))

1、任意給定一個(gè)正實(shí)數(shù),設(shè)計(jì)一個(gè)算法求以這個(gè)數(shù)為半徑的圓的面積.

解:算法步驟:

第一步:輸入任意一個(gè)正實(shí)數(shù)r;

第二步:計(jì)算以r為半徑的圓的面積:S=nr2-,

第三步:輸出圓的面積S.

2、任意給定一個(gè)大于1的正整數(shù)n,設(shè)計(jì)一個(gè)算法求出n的所有因數(shù).

解:算法步驟:

第一步:依次以2?(n-1)為除數(shù)去除n,檢查余數(shù)是否為0.若是,則是n的因數(shù);若不是,

則不是n的因數(shù);

第二步:在n的因數(shù)中加入1和n;

第三步:輸出n的所有因數(shù).

利用TI-voyage200圖形計(jì)算器演示:

:uinshu2Cp

:Prgn

:Locali?k,n,a,e,

:Input11Input--ainterger:",n

!Fori,1

!ICnod<n,i5=0Then

!Di£pi

sEhdir

:EndFor

:EndPrgm

MftlNDEG-SFFRDXFUNC

運(yùn)行結(jié)果:

§1.1.2程序框圖

【教學(xué)目標(biāo)】:

(6)掌握程序框圖的概念;會(huì)用通用的圖形符號(hào)表示算法,掌握算法的三個(gè)基本邏輯結(jié)構(gòu)

(7)掌握畫程序框圖的基本規(guī)則,能正確畫出程序框圖。

(8)通過模仿、操作、探索,經(jīng)歷通過設(shè)計(jì)程序框圖表達(dá)解決問題的過程;學(xué)會(huì)靈活、正

確地畫程序框圖。

【教學(xué)重點(diǎn)】經(jīng)過模仿、操作、探索,經(jīng)歷通過設(shè)計(jì)程序框圖表達(dá)求解問題的過程,重點(diǎn)是

程序框圖的基本概念、基本圖形符號(hào)和3種基本邏輯結(jié)構(gòu)

【教學(xué)難點(diǎn)】難點(diǎn)是能綜合運(yùn)用這些知識(shí)正確地畫出程序框圖。

【學(xué)法與教學(xué)用具】:

學(xué)法:

1、要弄清各種圖形符號(hào)的意義,明確每個(gè)圖形符號(hào)的使用環(huán)境,圖形符號(hào)間的聯(lián)結(jié)方式。

圖形符號(hào)都有各自的使用環(huán)境和作用

2、在我們描述算法或畫程序框圖時(shí),必須遵循一定的邏輯結(jié)構(gòu),事實(shí)證明,無論如何復(fù)雜的

問題,我們?cè)谠O(shè)計(jì)它們的算法時(shí),只需用順序結(jié)構(gòu)、條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu)這三種基本邏輯

就可以了,因此我們必須掌握并正確地運(yùn)用這三種基本邏輯結(jié)構(gòu)。

教學(xué)用具:計(jì)算機(jī),Tl-voyage200圖形計(jì)算器

【教學(xué)過程】

引入:

算法可以用自然語言來描述,但為了使算法的程序或步驟表達(dá)得更為直觀,我們更經(jīng)常地用

圖形方式來表示它。

程序框圖基本概念:

(1)程序構(gòu)圖的概念

程序框圖乂稱流程圖,是一種用規(guī)定的圖形、指向線及文字說明來準(zhǔn)確、直觀地表示算法的

圖形。

一個(gè)程序框圖包括以下兒部分:表示相應(yīng)操作的程序框;帶箭頭的流程線;程序框外必要的

文字說明。

(2)構(gòu)成程序框的圖形符號(hào)及其作用

程序框名稱功能

表示一個(gè)算法的起始和結(jié)束,是任何流程

起止框

\__圖不可少的。

表示一個(gè)算法輸入和輸出的信息,可用在

輸入、輸出框

算法中任何需要輸入、輸出的位置。

賦值、計(jì)算,算法中處理數(shù)據(jù)需要的算式、

處理框公式等分別寫在不同的用以處理數(shù)據(jù)的

__處理框內(nèi)。

判斷某一條件是否成立,成立時(shí)在出口處

判斷框標(biāo)明“是”或“Y”;不成立時(shí)標(biāo)明“否”

O或“N”。

學(xué)習(xí)這部分知識(shí)的時(shí)候,要掌握各個(gè)圖形的形狀、作用及使用規(guī)則,畫程序框圖的規(guī)則如下:

1、使用標(biāo)準(zhǔn)的圖形符號(hào)。

2、框圖一般按從上到下、從左到右的方向畫。

3、除判斷框外,大多數(shù)流程圖符號(hào)只有一個(gè)進(jìn)入點(diǎn)和一個(gè)退出點(diǎn)。判斷框具有超過一個(gè)退出

點(diǎn)的唯一符號(hào)。

4、判斷框分兩大類,一類判斷框“是”與“否”兩分支的判斷,而且有且僅有兩個(gè)結(jié)果;另

一類是多分支判斷,有兒種不同的結(jié)果。

5、在圖形符號(hào)內(nèi)描述的語言要非常簡練清楚。

(3)、算法的三種基本邏輯結(jié)構(gòu):順序結(jié)構(gòu)、條件結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。

順序結(jié)構(gòu)

順序結(jié)構(gòu)是最簡單的算法結(jié)構(gòu),語句與語句之間,框與框之間是按從上到下的順序進(jìn)行的,它是由若干個(gè)

依次執(zhí)行的處理步驟組成的,它是任何一個(gè)算法都離不開的一種基本算法結(jié)構(gòu)。

順序結(jié)構(gòu)在程序框圖中的體現(xiàn)就是用流程線將程序框自上而

下地連接起來,按順序執(zhí)行算法步驟。如在示意圖中,A框和B

框是依次執(zhí)行的,只有在執(zhí)行完A框指定的操作后,才能接著執(zhí)

行B框所指定的操作。

例3、已知一個(gè)三角形的三邊分別為2、3、4,利用海倫公式設(shè)計(jì)一個(gè)算法,求出它的面積,

并畫出算法的程序框圖。

(算法一自然語言)

第一步:a=2,b=3,c=4;

2+3+4

第二步:p=~^—;

第三步:S=、p(p-2)(p―3)(p―4)

利用T「voyage200圖形計(jì)算器演示:(學(xué)生先看,

1

運(yùn)行

"?b-------A

*<P-b>*(p-e))4s

MAINPEGHPPfiDKFUNCMAIN-DEGEXACT~~FI1NCWHO-

應(yīng)用:請(qǐng)寫出求A(x”力),B(X2,y2)的兩點(diǎn)距離的一個(gè)算法,并畫出程序框圖。

(學(xué)生動(dòng)手先構(gòu)思算法,然后畫出程序框圖,個(gè)別好學(xué)生利用做TI做實(shí)驗(yàn))

條件結(jié)構(gòu)

條件結(jié)構(gòu)是指在算法中通過對(duì)條件的判斷,

根據(jù)條件是否成立而選擇不同流向的算法結(jié)構(gòu)。

它的一般形式如右圖所示:

注意:

1、右圖此結(jié)構(gòu)中包含一個(gè)判斷框,根據(jù)給定的

條件P是否成立而選擇執(zhí)行A框或B框。無論

P條件是否成立,只能執(zhí)行A框或B框之一,不

可能同時(shí)執(zhí)行A框和B框,也不可能A框、B框都不執(zhí)行。

2、一個(gè)判斷結(jié)構(gòu)可以有多個(gè)判斷框。

例4、任意給定3個(gè)正實(shí)數(shù),設(shè)計(jì)一個(gè)算法,判斷分別以這3個(gè)數(shù)為三邊邊長的三角形是否

存在。畫出這個(gè)算法的程序框圖。

解:

算法分析:判斷分別以這3個(gè)數(shù)為三邊邊長的三角形是否存在,只需要驗(yàn)收這3個(gè)數(shù)當(dāng)中任

意兩個(gè)數(shù)的和是否大于第3個(gè)數(shù),這就需要用到條件結(jié)構(gòu)。

程序框圖:(見課本)

利用Tbvoyage200圖形計(jì)算器演示:(學(xué)生先看,再跟著做)

="iiirY~丫」,丫ry丫~F5Y~Y-S

U,…:依”演.:冰上心力:冗\(yùn)“、他廣9新10v出|]

:Prgna=

:ClrIO5

sLoc-ala^b.c

!Inputna=r,,a運(yùn)行r

!Input,'b=",b

!I^put11e="c.——>c=

!If*a+b>ean?ds+Gbandb-1-c>aThen13

:D1SP"shisanjiaoxing"

:ElseshisanJiaoxing

?Dis^nbush!sanjiaoxing"

MAINOEGEXUCTFUNCMAINDEGEXHSFUNCWHO

(學(xué)生在利用圖形計(jì)算器的過程中已經(jīng)滲透著算法的奧妙)

應(yīng)用:設(shè)計(jì)求一個(gè)數(shù)X的絕對(duì)值的算法,并畫出相應(yīng)的程序框圖。

(當(dāng)然這個(gè)要求學(xué)生先畫出程序框圖,再利用圖形計(jì)算器來解決,快的學(xué)生三分鐘可以弄好)

F5

ControlL:|,…:依:量:三卜冗、|PrgmI0乜2繼通|

DEGEX府5DEGEXrtCI

循環(huán)結(jié)構(gòu):

在一些算法中,經(jīng)常會(huì)出現(xiàn)從某處開始,按照一定條件,反復(fù)執(zhí)行某一處理步驟的情況,這

就是循環(huán)結(jié)構(gòu),反復(fù)執(zhí)行的處理步驟為循環(huán)體,顯然,循環(huán)結(jié)構(gòu)中一定包含條件結(jié)構(gòu)。循環(huán)

結(jié)構(gòu)又稱重復(fù)結(jié)構(gòu),循環(huán)結(jié)構(gòu)可細(xì)分為兩類:

(1)、一類是當(dāng)型循環(huán)結(jié)構(gòu),如下左圖所示,它的功能是當(dāng)給定的條件P成立時(shí),執(zhí)行A框,

A框執(zhí)行完畢后,再判斷條件P是否成立,如果仍然成立,再執(zhí)行A框,如此反復(fù)執(zhí)行A框,

直到某一次條件P不成立為止,此時(shí)不再執(zhí)行A框,離開循環(huán)結(jié)構(gòu)。

(2)、另一類是直到型循環(huán)結(jié)構(gòu),如下右圖所示,它的功能是先執(zhí)行,然后判斷給定的條件

P是否成立,如果P仍然不成立,則繼續(xù)執(zhí)行A框,直到某一次給定的條件P成立為止,此

不成立成立不成立

p

當(dāng)型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)

注意:

1、循環(huán)結(jié)構(gòu)要在某個(gè)條件下終止循環(huán),這就需要條件結(jié)構(gòu)來判斷。因此,循環(huán)結(jié)構(gòu)中一定包

含條件結(jié)構(gòu),但不允許“死循環(huán)”。

2、在循環(huán)結(jié)構(gòu)中都有一個(gè)計(jì)數(shù)變量和累加變量。計(jì)數(shù)變量用于記錄循環(huán)次數(shù),累加變量用于

輸出結(jié)果。計(jì)數(shù)變量和累加變量一般是同步執(zhí)行的,累加一次,計(jì)數(shù)一次。

例5、設(shè)計(jì)一個(gè)計(jì)算1+2+3+…+100的值的算法,并畫出程序框圖。

解:

算法如下:

第一步:sum=O;

第二步:i=l;

第三步:sum=sum+i;

第四步:i=i+l;

第五步:如果i不大于100,返回重新執(zhí)行第三步,第四步,第五步,否則,算法結(jié)

束,最后得到的sum值就是1+2+3+-+100的值。

程序框圖(可參看課本)

利用TI-voyage200圖形計(jì)算器演示:(先看當(dāng)型循環(huán)結(jié)構(gòu))

「丫~丫㈠y丫”“丫F5Y~Y-'I

:力

:Prgrp5050.

:clrio.

sLocali,he

!14-i運(yùn)行

!04-he

:Whilei<100----?

!he-+i->he

:i+1虱

:EndUlhile

:Disphe

sEndPrgm

MAINDEGEXflCTFUNC

(學(xué)生會(huì)思考:若取不同n,計(jì)算1+2+3+…+n

(再看直到型循環(huán)結(jié)構(gòu))

j

u:y8(>|

JPrgn

:Locali,自ok

:l->i:0->sol

SLoop運(yùn)行

!sol+i->sol

siri>ioo

sGotoend

:i*Hi

:EndLoop

5Lblend

:Dispsol

MAINDEGEXrtCIFUNCMAINDEGEXfKIFUNCWHO

(已知循環(huán)次數(shù)可以用For語句)

1j慈豆黑扇■冰力黑:通廠)

Pr9a5050.

Clr—*O

Lc?a11?he

Ii

Ohe運(yùn)行

F.11O

&r1G

h&+?l4A

EndFore

.

DlshQ

Endrgm

DEGEX府5DEGEXrtCI

應(yīng)用:設(shè)計(jì)一個(gè)計(jì)算F+2?+……+100?的值的算法,并畫出程序框圖。

(學(xué)生很快的把剛才那個(gè)程序改“he+iThe”為“he+^The”即可)

課堂小結(jié):

本節(jié)課主要講述了程序框圖的基本知識(shí),包括常用的圖形符號(hào)、算法的基本邏輯結(jié)構(gòu),

算法的基本邏輯結(jié)構(gòu)有三種,即順序結(jié)構(gòu)、條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。其中順序結(jié)構(gòu)是最簡單的

結(jié)構(gòu),也是最基本的結(jié)構(gòu),循環(huán)結(jié)構(gòu)必然包含條件結(jié)構(gòu),所以這三種基本邏輯結(jié)構(gòu)是相互支

撐的,它們共同構(gòu)成了算法的基本結(jié)構(gòu),無論怎樣復(fù)雜的邏輯結(jié)構(gòu),都可以通過這三種結(jié)構(gòu)

來表達(dá)。

在具體畫程序框圖時(shí),要注意的問題:流程線上要有標(biāo)志執(zhí)行順序的前頭;判斷框后邊

的流程線應(yīng)根據(jù)情況標(biāo)注“是”或“否”;在循環(huán)結(jié)構(gòu)中,要注意根據(jù)條件設(shè)計(jì)合理的計(jì)數(shù)變

量、累加變量等,特別要條件的表述要恰當(dāng)、精確。

利用Tbvoyage200圖形計(jì)算器時(shí),很多學(xué)生已對(duì)它著迷了,學(xué)生會(huì)想出更多的問題,互

相進(jìn)行比較、討論,自己出發(fā)掘比課本更重要的東西。

§1.2.1輸入、輸出語句和賦值語句

【教學(xué)目標(biāo)】:

(9)正確理解輸入語句、輸出語句、賦值語句的結(jié)構(gòu)。

(10)讓學(xué)生充分地感知、體驗(yàn)應(yīng)用計(jì)算機(jī)解決數(shù)學(xué)問題的方法;并能初步操作、模仿。

(11)過實(shí)例,使學(xué)生理解3種基本的算法語句(輸入語句、輸出語句和賦值語句)的表示

方法、結(jié)構(gòu)和用法,能用這三種基本的算法語句表示算法,進(jìn)一步體會(huì)算法的基本思

相心、O

【教學(xué)重點(diǎn)】正確理解輸入語句、輸出語句、賦值語句的作用。

【教學(xué)難點(diǎn)】準(zhǔn)確寫出輸入語句、輸出語句、賦值語句。

【學(xué)法與教學(xué)用具】

學(xué)法:

我們用自然語言或程序框圖描述的算法,計(jì)算機(jī)是無法“看得懂,聽得見”的。因此還

需要將算法用計(jì)算機(jī)能夠理解的程序設(shè)計(jì)語言翻譯成計(jì)算機(jī)程序。程序設(shè)計(jì)語言有很多種。

如BASIC,Foxbase,C語言,C++,J++,VB,VC,JB等。為了實(shí)現(xiàn)算法中的三種基本的邏輯

結(jié)構(gòu):順序結(jié)構(gòu)、條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu),各種程序設(shè)計(jì)語言中都包含下列基本的算法語句:

輸入語句、輸出語句、賦值語句條件語句和循環(huán)語句.今天,我們一起用類BASIC語言學(xué)習(xí)輸

入語句、輸出語句、賦值語句。

教學(xué)用具:計(jì)算機(jī),TI-voyage200圖形計(jì)算器

【教學(xué)過程】

輸入語句、輸出語句和賦值語句基本上對(duì)應(yīng)于算法中的順序結(jié)構(gòu)。下面的例題是用這三種基

本的算法語句表示的一個(gè)算法。

例1:用描點(diǎn)法作函數(shù)y=x3+3x2—24x+30的圖象時(shí),需要求出自變量和函數(shù)的一組對(duì)

應(yīng)值。編寫程序,分別計(jì)算當(dāng)x=-5,-4,-3,-2,-1,0,1,2,3,4,5時(shí)的函數(shù)值。

程序:INPUT"x=";x輸入語句

y=x"3+3*x"2-24*x+30賦值語句

PRINTx打印語句

PRINTy打印語句

END

利用TI-voyage200圖形計(jì)算器演示:

(學(xué)生先看,再跟著做,學(xué)生先不必深究該程序如何得來,模仿編寫程序,通過運(yùn)行自己編

寫的程序發(fā)現(xiàn)問題所在,進(jìn)一步提高學(xué)生的模仿能力,并觀察與BASIC語言的異同)

探究:在這個(gè)程序中,你們覺得哪些是輸入語句、輸出語句和賦值語句呢?(同學(xué)們互相交

流、議論、猜想、概括出結(jié)論o提示:“input”和“print"("Disp")的中文意思等)

If:-"iiirY~丫㈠丫丫”▼丫~FSY~Y-S

|一小?“,:11量br?北m::卜尤G:w“、|PrgmI0心出|]

x=

5

x=

y=xA3-?-3*xA2-24*x+30=11,5

y=xA3->-3*xA2-24*x+30=

MAINDEGEX府CTFUNCMAINDEGEXIKIFIINC^Q/MO

輸入語句

(1)輸入語句的一般格式

圖形計(jì)算器

格式

INPUT“提示內(nèi)容”;變量INPUT"提示內(nèi)容”,變量

(2)輸入語句的作用是實(shí)現(xiàn)算法的輸入信息功能;

(3)“提示內(nèi)容”提示用戶輸入什么樣的信息,變量是指程序在運(yùn)行時(shí)其值是可以變化的量;

(4)輸入語句要求輸入的值只能是具體的常數(shù),不能是函數(shù)、變量或表達(dá)式;

(5)提示內(nèi)容與變量之間用分號(hào)“;”隔開,若輸入多個(gè)變量,變量與變量之間用逗號(hào)“,”

隔開。

輸出語句

(1)輸出語句的一般格式

圖形計(jì)算器

格式

PRINT"提示內(nèi)容”;表達(dá)式Disp”提示內(nèi)容”,變量

(2)輸出語句的作用是實(shí)現(xiàn)算法的輸出結(jié)果功能;

(3)“提示內(nèi)容”提示用戶輸入什么樣的信息,表達(dá)式是指程序要輸出的數(shù)據(jù);

(4)輸出語句可以輸出常量、變量或表達(dá)式的值以及字符。

賦值語句

(1)賦值語句的一般格式圖形計(jì)算器

變量=表達(dá)式格式表達(dá)式T變量

(2)賦值語句的作用是將表達(dá)式所代表的值賦給變量;

(3)賦值語句中的“="稱作賦值號(hào),與數(shù)學(xué)中的等號(hào)的意義是不同的。賦值號(hào)的左右兩邊

不能對(duì)換,它將賦值號(hào)右邊的表達(dá)式的值賦給賦值號(hào)左邊的變量;

(4)賦值語句左邊只能是變量名字,而不是表達(dá)式,右邊表達(dá)式可以是一個(gè)數(shù)據(jù)、常量或算

式;

(5)對(duì)于一個(gè)變量可以多次賦值。

注意:①賦值號(hào)左邊只能是變量名字,而不能是表達(dá)式。如:2=X是錯(cuò)誤的。

②賦值號(hào)左右不能對(duì)換。如“A=B”“B=A”的含義運(yùn)行結(jié)果是不同的。

③不能利用賦值語句進(jìn)行代數(shù)式的演算。(如化簡、因式分解、解方程等)

④賦值號(hào)與數(shù)學(xué)中的等號(hào)意義不同。

例2:編寫程序,計(jì)算一個(gè)學(xué)生數(shù)學(xué)、語文、英語三門課的平均成績。

分析:先寫出算法,畫出程序框圖,再進(jìn)行編程。

程序:

INPUT“Maths=";a

INPUT“Chinese:";b

INPUT“English:";c

PRINT“Theaverage=";(a+b+c)/3

END

學(xué)生利用TI-voyage200圖形計(jì)算器演示:

FT1n~匹K,―.C

j卜am”?卜:i.你外yw卜.比?:匕:.:1||

:k2()|

:Prgmmaths=

:Input"Maths.=",a90

?Input11chinese=",bchinese=

!Input,,english=11,c運(yùn)行85

!DiSP"theaverageis",<-a4-b+c)/3

!Er*dPrghenglish=

95

the^uerageis

90

MAINDEGEXrtCIFUNCMAINDEGEXrtCTFUNCWHO

(利用圖形計(jì)算器實(shí)驗(yàn),學(xué)生會(huì)發(fā)現(xiàn)編程越來越有趣,從老師引導(dǎo)到自覺學(xué)習(xí),不斷的修改

程序,直到自己創(chuàng)新)

例3、給一個(gè)變量重復(fù)賦值。

J

MAINDEGEXACTMAINDEGEXIKIFUNC

學(xué)生得到以下結(jié)論:對(duì)于一個(gè)變量可以多次賦值,變量的值就是最后一次的賦值。

例4、交換兩個(gè)變量A和B的值,并輸出交換前后的值。

程序:

INPUTA

分析:引入一個(gè)中間變量X,將A的值賦予X,

INPUTB

又將B的值賦予A,再將X的值賦予B,從PRINTA,B

而達(dá)到交換A,B的值。(比如生活中交換裝x=A

A=B

滿紅墨水和藍(lán)墨水的兩個(gè)瓶子里的墨水,需要

B=x

再找一個(gè)空瓶子)

PRINTA,B

END

:k3<)12

:Prgn

:Inputa7

sInputb36

iDisp11yuanshuzhishi!11,a,b

Ja-^-xyuanshuzhis-his

12

36

:D1SP"houlaishuzhishi:a,b

:EndFrgrihoulaishuzhishi?

36

DEGEXIKIDEGEXACT

(完成程序后,學(xué)生可以利用TI-voyage200圖形計(jì)算器編寫自己的程序了)

P15練習(xí)1.2.3參考答案:

程序:INPUT"請(qǐng)輸入華氏溫度:”;x

y=(x-32)*5/9

PRINT“華氏溫度:”;x

PRINT“攝氏溫度:";y

END

創(chuàng)新:如果要求輸入一個(gè)攝氏溫度,輸出其相應(yīng)的華氏溫度,又該如何設(shè)計(jì)程序?(學(xué)生課

后思考,討論、再利用Tbvoyage200圖形計(jì)算器完成)

2.程序:INPUT“請(qǐng)輸入a(aO)=";a

INPUT"請(qǐng)輸入b(b0)=";b

X=a+b

Y=a-b

Z=a*b

Q=a/b

PRINTa.b

PRINTX,Y,Z,Q

END

3.程序:p=(2+3+4)/2

t=p*(p-2)*(p-3)*(p-4)

s=SQR(t)

PRINT”該三角形的面積為:”;s

END(注:SQR()是函數(shù)名,用來求某個(gè)數(shù)的平方根)

其中要注意圖形計(jì)算器的個(gè)別語句與BASIC語言有點(diǎn)差異,要靈活轉(zhuǎn)換!

【課堂小結(jié)】

本節(jié)課介紹了輸入語句、輸出語句和賦值語句的結(jié)構(gòu)特點(diǎn)及聯(lián)系。掌握并應(yīng)用輸入語句,

輸出語句,賦值語句編寫一些簡單的程序解決數(shù)學(xué)問題,特別是掌握賦值語句中的作

用及應(yīng)用。編程一般的步驟:先寫出算法,再進(jìn)行編程。我們要養(yǎng)成良好的習(xí)慣,也有助于

數(shù)學(xué)邏輯思維的形成。注意:BASIC語言中的標(biāo)準(zhǔn)函數(shù),如SQR(x)表示x的算術(shù)平方根,

ABS(x)表示x的絕對(duì)值等。

有了圖形計(jì)算器,學(xué)生的主動(dòng)性明顯加強(qiáng),他們可以隨時(shí)隨地的編寫屬于自己的程序!

§1.2.2條件語句

【教學(xué)目標(biāo)】:

(12)正確理解條件語句的概念,并掌握其結(jié)構(gòu)。

(13)會(huì)應(yīng)用條件語句編寫程序。

【教學(xué)重點(diǎn)】條件語句的步驟、結(jié)構(gòu)及功能。

【教學(xué)難點(diǎn)】會(huì)編寫程序中的條件語句。

【學(xué)法與教學(xué)用具】:

學(xué)法:了解條件語句在程序中起判斷轉(zhuǎn)折作用,在解決實(shí)際問題中起決定作用。

教學(xué)用具:計(jì)算機(jī),TI-voyage200圖形計(jì)算器

【教學(xué)過程】

條件語句

1、條件語句的一般格式有兩種:(1)IF—THEN—ELSE語句;(2)IF—THEN語句。

2、IF—THEN—ELSE語句

IF—THEN—ELSE語句的一般格式為圖1,對(duì)應(yīng)的程序框圖為圖2。

IF條件THEN

語句1

ELSE

語句2

ENDIF

圖1圖2

分析:在IF—THEN—ELSE語句中,“條件”表示判斷的條件,“語句1”表示滿足條件時(shí)執(zhí)

行的操作內(nèi)容;“語句2”表示不滿足條件時(shí)執(zhí)行的操作內(nèi)容;ENDIF表示條件語句的結(jié)束。

計(jì)算機(jī)在執(zhí)行時(shí),首先對(duì)IF后的條件進(jìn)行判斷,如果條件符合,則執(zhí)行THEN后面的語句1;

若條件不符合,則執(zhí)行ELSE后面的語句2。

3、IF—THEN語句

容,條件不滿足時(shí),結(jié)束程序;ENDIF表示條件語句的結(jié)束。計(jì)算機(jī)在執(zhí)行時(shí)首先對(duì)IF

后的條件進(jìn)行判斷,如果條件符合就執(zhí)行THEN后邊的語句,若條件不符合則直接結(jié)束該條

件語句,轉(zhuǎn)而執(zhí)行其它語句。

例5、編寫程序,輸入一元二次方程ax2+bx+c=0的系數(shù),輸出它的實(shí)數(shù)根。

分析:先把解決問題的思路用程序框圖表示出來,然后再根據(jù)程序框圖給出的算法步驟,逐

步把算法用對(duì)應(yīng)的程序語句表達(dá)出來。(程序框圖先由學(xué)生討論,再統(tǒng)一,可以參考課本)

算法分析:

在求解方程之前,需要首先判斷判別式的符號(hào),再根據(jù)判別式的符號(hào)判斷方程根的情況:△

>0時(shí),方程有兩個(gè)不相等的實(shí)數(shù)根;△=()時(shí),方程有兩個(gè)相等的實(shí)數(shù)根;△<()時(shí),方程

沒有實(shí)數(shù)根。這個(gè)過程可以用算法中的條件結(jié)構(gòu)來表示。

利用TI-voyage200圖形計(jì)算器演示(程序見下兩圖)

jj

:k5()

:Prgn

:Input11inputa=",a

:Input"Inputb=",b

!Input11Inputc=",crootis!",xl

!b^2-4*a*c4d

s?b/(2*a)->proot!Hx2=",x2

!j(3b£(d))/(2*5>4q

:ird>0Then

:p4-q->xlroot"

;p-q-^x2

SICxl=x2Then

MAINDEGEXACTFUNCMAINDEGEXACTFUNC

運(yùn)行程序:輸入a=l,b=-2,c=-l時(shí),結(jié)果為:

「±"?川?丫~Y;:r;x-Y_r?Y~Y—'i

1

Inputb=

-2

Inputc=

-1

toorealroot:xl=

■15+1(學(xué)生會(huì)驚喜的發(fā)現(xiàn):自己也是個(gè)編程高手了!)

x2=

1-J2

MRINDEGEM5FUNCWHO

例6、編寫程序,使得任意輸入的3個(gè)整數(shù)按從大到小的順序輸出。

算法分析:用a,b,c表示輸入的3個(gè)整數(shù);為了節(jié)約變量,把它們重新排列后,仍用a,b,

c表示,并使aeb》c.具體操作步驟可先討論,再對(duì)照課本。

程序框圖和程序:(參照課本)

利用TI-voyage200圖形計(jì)算器演示(程序見下兩圖)

1IFc>a

:bijlao

a:t

:Prgn3buca

:Loc-alHh?,

a一at?c

:InputHb二u>dIr

二bEn

!InputH一n>b

C>Ic

*InpijtThc.bmt

A-nel

sirb>ac+ba

Mttc

:b->aEndIr

:g

t*bDisE

;EndIfEndr

;IfC>3Then

MRINDEGEKIKTFUNCMAINDEGEXIKIFUNC運(yùn)行程

序:輸入a=3,b=8,c=2時(shí),結(jié)果為:

l<TWY~~丫…丫r“丫~rsy-Y""\

T,?“,:依i:?.br.::K:J:w3小、PrgalOCM中出

a

3

b

8

C

2

8

3

2

MRINDEGEXIKIFUNCWHO

練習(xí):r3X2+1(X>0),

1、已知函數(shù)f(x)=<x+1(x=0),

〔2X2+3X(X<0).

編寫一個(gè)程序,對(duì)每輸入的個(gè)X值,都得到相應(yīng)的函數(shù)值。(學(xué)生利用條件語句的嵌套,

可選擇IF—THEN語句,先寫出算法,再利用圖形計(jì)算器驗(yàn)證)

課本練習(xí)2

提示:mod的用法(即整除中取余數(shù));intdiv的用法(即整除中取商的整數(shù)部分)

口不屁息;。山先遇:匕%.遮北I]

:)|

:Prgm,yuanLiangweishushi

:Input11yuan1iangweishushi",x29

:Ifand100Then^iaohuanhoushis

!intDiv(x10)4a

!mod(x,10)I4b運(yùn)行92

______guanLiangueishushi

:Di^p"jiaohuarihoushi!x

:Else

:0i£P(guān)"wrong',jiaohuanhoushis

sEndIf87

;EndPrgm

MAINDEGEX肌IFUNCMRINDEGEX肌IFUNCWHO

小結(jié)

條件語句一般用在需要對(duì)條件進(jìn)行判斷的算法設(shè)計(jì)中,如判斷一個(gè)數(shù)的正負(fù),確定兩個(gè)

數(shù)的大小等問題,還有求分段函數(shù)的函數(shù)值等,往往要用條件語句,有時(shí)甚至要用到條件語

句的嵌套

編程的一般步驟:

(1)算法分析:根據(jù)提供的問題,利用數(shù)學(xué)及相關(guān)學(xué)科的知識(shí),設(shè)計(jì)出解決問題的算法。

(2)畫程序框圖:依據(jù)算法分析,畫出程序框圖。

(3)寫出程序:根據(jù)程序框圖中的算法步驟,逐步把算法用相應(yīng)的程序語句表達(dá)出來。

§1.2.3循環(huán)語句

【教學(xué)目標(biāo)】:

(14)正確理解循環(huán)語句的概念,并掌握其結(jié)構(gòu)。

(15)會(huì)應(yīng)用循環(huán)語句編寫程序。

【教學(xué)重點(diǎn)】兩種循環(huán)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論