第一章算法初步_第1頁(yè)
第一章算法初步_第2頁(yè)
第一章算法初步_第3頁(yè)
第一章算法初步_第4頁(yè)
第一章算法初步_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

算法一.算法的基本概念1什么是算法算法(algorithm)一詞源于算術(shù)(algorism),算術(shù)方法的原義是一個(gè)由已知推求未知的運(yùn)算過(guò)程。后來(lái),人們把它推廣到一般,指算法是在有限步驟內(nèi)求解某一問(wèn)題所使用的一組定義明確的規(guī)則,甚至把把進(jìn)行某一工作的方法和步驟也稱(chēng)為算法。

例如,人們?cè)谟?jì)算過(guò)程中,先乘除,后加減,從內(nèi)到外去括號(hào)等規(guī)則,都是按部就班必須遵守的算法。人類(lèi)最早關(guān)于算法的記錄存在于在兩河流域發(fā)現(xiàn)的公元前兩三千年的泥板書(shū)上,其中的一個(gè)典型例子就是計(jì)算利息何時(shí)能夠夠等于本金。算法早期發(fā)展中值得一提的另一個(gè)成果應(yīng)歸功于古希臘的歐幾里得,他提出的計(jì)算最大公約數(shù)的輾轉(zhuǎn)相除法(又稱(chēng)歐幾里得算法)至今仍在使用。歐幾里得是古代最有名望的學(xué)者之一,古希臘數(shù)學(xué)家,幾何學(xué)的鼻祖。公元前300年左右,他所著《幾何原本》13卷,是世界上最早公理化的數(shù)學(xué)著作。在《幾何原本》中他充分總結(jié)了前人的生產(chǎn)經(jīng)驗(yàn)和研究成果,從公理和公設(shè)出發(fā),運(yùn)用演繹法,經(jīng)過(guò)邏輯推理和數(shù)學(xué)運(yùn)算,創(chuàng)立了著名的歐幾里得(簡(jiǎn)稱(chēng)歐氏幾何)。在《幾何原本》中,歐幾里得還闡述了關(guān)于求兩個(gè)整數(shù)的最大公約數(shù)的過(guò)程,這就是著名的歐幾里得算法——輾轉(zhuǎn)相除法,其具體過(guò)程如下:設(shè)給定的兩個(gè)正整數(shù)為m和n,求它們的最大公約數(shù)的步驟為:(1)以m除以n,令所得的余數(shù)為r(r必小于n);(2)若r=0,則輸出結(jié)果n,算法結(jié)束;否則,繼續(xù)步驟(3)(3)令m=n,n=r,并返回步驟(1)繼續(xù)進(jìn)行。中國(guó)古代數(shù)學(xué)研究中也有許多有關(guān)算法的成果。用我國(guó)傳統(tǒng)的開(kāi)方術(shù)求高次方程的近似根,是算法上的一大成就。此外,在社會(huì)上得到廣泛使用的珠算口訣就可以看做是典型的算法,它把復(fù)雜的計(jì)算(例如除法)描述為一系列按口訣執(zhí)行的簡(jiǎn)單的算珠撥動(dòng)操作。中國(guó)古代數(shù)學(xué)以算法為主要特征,其中最具代表性的就是《九章算術(shù)》?!毒耪滤阈g(shù)》是戰(zhàn)國(guó)、秦、漢時(shí)期數(shù)學(xué)發(fā)展的總結(jié),就其數(shù)學(xué)成就來(lái)說(shuō),堪稱(chēng)是世界數(shù)學(xué)名著。其內(nèi)容按類(lèi)分章,以數(shù)學(xué)問(wèn)題的形式出現(xiàn),包括分?jǐn)?shù)四則運(yùn)算、開(kāi)平方與開(kāi)立方(包括二次方程數(shù)值解法)、盈不足術(shù)、各種面積和體積公式、線(xiàn)性方程組解法、正負(fù)數(shù)運(yùn)算的加減法則、勾股形解法(特別是勾股定理和求勾股數(shù)的方法)等。其中方程組解法和正負(fù)數(shù)加減法則在世界數(shù)學(xué)發(fā)展上是遙遙領(lǐng)先的。就其特點(diǎn)來(lái)說(shuō),它形成了一個(gè)以籌算為中心,與古希臘數(shù)學(xué)完全不同的獨(dú)立體系。

在11~14世紀(jì)約300年期間著名的數(shù)學(xué)家的著作中,如賈憲的《黃帝九章算法細(xì)草》,劉益的《議古根源》,秦九昭的《數(shù)書(shū)九章》,李治的《測(cè)圓海鏡》和《益古演段》,楊輝的《詳解九章算法》、《日用算法》和《楊輝算法》中,算法的特點(diǎn)得到了進(jìn)一步的強(qiáng)化和發(fā)展(其中包括發(fā)展了一套求高次方程近似根的方法。2。算法的一般特征

算法實(shí)際上是一種抽象的解題方法,它具有動(dòng)態(tài)性。因此,算法的行為非常重要。作為一個(gè)算法,應(yīng)具有以下四個(gè)特征。1)能行性(effectiveness)算法的能行性包括兩個(gè)方面:一是算法中的每一個(gè)步驟必須是能實(shí)現(xiàn)的。例如,在算法中,不允許出現(xiàn)分母為零的情況;在實(shí)數(shù)范圍內(nèi)不能求一個(gè)負(fù)數(shù)的平方根等。二是算法執(zhí)行的結(jié)果要能達(dá)到預(yù)期的目的。通常,針對(duì)實(shí)際問(wèn)題設(shè)計(jì)的算法,人們總是希望能夠得到滿(mǎn)意的結(jié)果。

(2)確定性(definiteness)算法的確定性,是指算法中的每一個(gè)步驟都必須是有明確定義的,不允許有模棱兩可的解釋?zhuān)膊辉试S有多義性。這一特征也反映了算法與數(shù)學(xué)公式的明顯差異。在解決實(shí)際問(wèn)題時(shí),可能會(huì)出現(xiàn)這樣的情況:針對(duì)某種特特殊問(wèn)題,數(shù)學(xué)公式是正確的,但按此數(shù)學(xué)公式設(shè)計(jì)的計(jì)算過(guò)程可能會(huì)使計(jì)算機(jī)系統(tǒng)無(wú)所適從,這是因?yàn)椋鶕?jù)數(shù)學(xué)公式設(shè)計(jì)的計(jì)算過(guò)程只考慮了正常使用的情況,而當(dāng)出現(xiàn)異常情況時(shí),該計(jì)算過(guò)程就不能適應(yīng)了。例如,某計(jì)算工具規(guī)定:大于100的數(shù)認(rèn)為是比1大很多,而小于10的數(shù)不能認(rèn)為是比1大很多;且在正常情況下出現(xiàn)的數(shù)或是大于100,或是小于10.但指令“輸入一個(gè)X,若x比1大很多,則輸出數(shù)字1,否則輸出數(shù)字0”是不確定的。這是因?yàn)?,在正常的輸入情況下,這一指令的執(zhí)行可以得到正確的結(jié)果,但在異常情況下(輸入的x在10與100之間),這一指令執(zhí)行的結(jié)果就不確定了.例如,某計(jì)算工具具有七位有效數(shù)字(如FORTRAN中的單精度運(yùn)算),在計(jì)算下列三個(gè)量A=,B=1,C=的和時(shí),如果采用不同的運(yùn)算順序,就會(huì)得到不同的結(jié)果,即A+B+C=+1+=0A+C十B=++1=1而在數(shù)學(xué)上,A+B+C與A+C+B是完全等價(jià)的。這可知,算法和計(jì)算公式是有差別的。3)有窮性(finiteness)算法的有窮性是指算法必須能在有限的時(shí)間內(nèi)執(zhí)行完,即算法必須能在執(zhí)行有限個(gè)步驟之后終止。數(shù)學(xué)中的無(wú)窮級(jí)數(shù),在實(shí)際計(jì)算時(shí)只能取有限項(xiàng),即計(jì)算無(wú)窮級(jí)數(shù)的過(guò)程只能是有窮的。因此,一個(gè)數(shù)的無(wú)窮級(jí)數(shù)的表示只是一種計(jì)算公式,而根據(jù)精度要求確定的計(jì)算過(guò)程才是有窮的算法。算法的有窮性還應(yīng)包括合理的執(zhí)行時(shí)間的含義。如果一個(gè)算法的執(zhí)行時(shí)間是有窮的,但卻需要執(zhí)行千萬(wàn)年.顯然這就失去了算法的實(shí)用價(jià)值。例如,克萊姆(Cramer)規(guī)則是求解線(xiàn)性代數(shù)方程組的一種數(shù)學(xué)方法,但不能以此為算法,這是因?yàn)?,雖然總可以根據(jù)克萊姆規(guī)則設(shè)計(jì)出一個(gè)計(jì)算過(guò)程用于計(jì)算所有可能出現(xiàn)的行列式,但這樣的計(jì)算過(guò)程所需的時(shí)間實(shí)際上是不能容忍的。還例如,從理論上講,總可以寫(xiě)出一個(gè)正確的弈棋程序,而且這也并不是一件很困難的工作。由于在一個(gè)棋盤(pán)上安排棋子的方式總是有限的,而且,根據(jù)一定的規(guī)則.在有限次移動(dòng)棋子之后比賽一定結(jié)束。因此.弈棋程序可以考慮計(jì)算機(jī)每一次可能的移動(dòng),它的對(duì)手每一次可能的應(yīng)答,以及計(jì)算機(jī)對(duì)這些移動(dòng)的可能應(yīng)答等等,直到每個(gè)可能的移動(dòng)停止下來(lái)為止。此外,由于計(jì)算機(jī)可以知道每次移動(dòng)的結(jié)果,因此總可以選擇一種最好的移動(dòng)方式。但即使如此,這種弈棋程序還是不可能執(zhí)行,因?yàn)樗羞@些可能移動(dòng)的次數(shù)太多,所要花費(fèi)的時(shí)間不能容忍。由上述兩個(gè)例子可以看出,雖然許多計(jì)算過(guò)程是有限的.但仍有可能無(wú)實(shí)用價(jià)值。(4)算法必須擁有足夠的情報(bào)一個(gè)算法是否有效,還取決于為算法的執(zhí)行所提供的情報(bào)是否足夠。例如,對(duì)于指令“如果小明是學(xué)生,則輸出字母Y,否則輸出N”。當(dāng)算法執(zhí)行過(guò)程中提供了小明一定不是學(xué)生的某種信息時(shí),執(zhí)行的結(jié)果將輸出字母N;當(dāng)提供的只是部分學(xué)生的名單,且小明恰在此名單之中,則執(zhí)行的結(jié)果將輸出字母Y。但如果在提供的部分學(xué)生的名單中找不到小明的名字.則在執(zhí)行該指令時(shí)無(wú)法確定小明是否是學(xué)生。通常,算法中的各種運(yùn)算總是要施加到各個(gè)運(yùn)算對(duì)象上,而這些運(yùn)算對(duì)象又可能具有某種初始狀態(tài).這是算法執(zhí)行的起點(diǎn)或是依據(jù)。因此,一個(gè)算法執(zhí)行的結(jié)果總是與輸入的初始數(shù)據(jù)有關(guān),不同的輸入將會(huì)有不同的結(jié)果輸出。如果輸入不夠或輸入錯(cuò)誤,則算法本身也就無(wú)法執(zhí)行或執(zhí)行有錯(cuò)。一般來(lái)說(shuō),只有當(dāng)算法擁有足夠的情報(bào)時(shí),該算法才是有效的;而如果提供的情報(bào)不夠,則算法并不是有效的。綜上所述,所謂算法,是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則,并且每一個(gè)規(guī)則都是有效的且是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止1.1.2程序框圖狹義而言,算法是專(zhuān)指用計(jì)算機(jī)解決某一問(wèn)題的方法和步驟.著名計(jì)算機(jī)科學(xué)家D.E.Knuth在其《計(jì)算機(jī)程序設(shè)計(jì)技巧》一書(shū)中為算法所下的定義是:“一個(gè)算法,就是一個(gè)有窮規(guī)則的集合,其中之規(guī)則規(guī)定了一個(gè)解決某一特定類(lèi)型問(wèn)題的運(yùn)算系列”.1.算法的概念復(fù)習(xí)回顧

是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則,并且每一個(gè)規(guī)則都是有效的且是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。用自然語(yǔ)言表達(dá)問(wèn)題容易理解,但往往不嚴(yán)格,易出現(xiàn)“歧義性”,即對(duì)于同一段文字,不同的人可能會(huì)有不同的理解。例如請(qǐng)同學(xué)們理解“這個(gè)人連老張也不認(rèn)識(shí)。”這句話(huà)的含義。算法的描述:自然語(yǔ)言新課引入為了使算法的程序或步驟表達(dá)得更為直觀,且不容易出現(xiàn)歧異,我們更經(jīng)常地用圖形方式來(lái)表達(dá)它.例如上一節(jié)“例1.任意給定一個(gè)大于1的整數(shù)n,試設(shè)計(jì)一個(gè)程序或步驟對(duì)n是否為質(zhì)數(shù)做出判定”的算法可以用以下形式來(lái)表達(dá).開(kāi)始輸入ni=2i=i+1i≥n或r=0?n不是質(zhì)數(shù)結(jié)束r=0?1否是求n除以i的余數(shù)1n是質(zhì)數(shù)是否這樣的圖我們稱(chēng)為程序框圖i=i+1i≥n或r=0?否是求n除以i的余數(shù)輸入ni=2n不是質(zhì)數(shù)r=0?n是質(zhì)數(shù)是否盡管不同的算法千差萬(wàn)別,但它們都是由三種基本的邏輯結(jié)構(gòu)構(gòu)成的,這三種邏輯結(jié)構(gòu)就是順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu).下面分別介紹這三種結(jié)構(gòu).三種不同的邏輯結(jié)構(gòu).程序框圖又稱(chēng)流程圖,是一種用規(guī)定的圖形、指向線(xiàn)及文字說(shuō)明來(lái)準(zhǔn)確、直觀地表示算法的圖形.講授新課1.程序框圖的概念2.常見(jiàn)的程序框圖流程線(xiàn)連接循環(huán)框連結(jié)點(diǎn)連接循環(huán)框圖的兩部分一、程序框圖終端框(起止框)輸入、輸出框處理框(執(zhí)行框)判斷框表示一個(gè)算法的起始和結(jié)束表示一個(gè)算法輸入和輸出的信息賦值、計(jì)算判斷某一條件是否成立,成立時(shí)在出口處標(biāo)明“是”或“Y”,不成立時(shí)標(biāo)明“否”或“N”.(1)起止框:框內(nèi)填寫(xiě)開(kāi)始、結(jié)束,任何程序框圖中,起止框是必不可少的;(2)輸入、輸出框:框內(nèi)填寫(xiě)輸入、輸出的字母、符號(hào)等;(3)處理框(執(zhí)行框):算法中需要的算式、公式、對(duì)變量進(jìn)行賦值等要用執(zhí)行框表示.(4)判斷框:當(dāng)算法要求在不同的情況下執(zhí)行不同的運(yùn)算時(shí),需要判斷框.框內(nèi)填寫(xiě)判斷條件.3.四種基本的框圖及其功能用法:為了使大家彼此之間能夠讀懂各自畫(huà)出的框圖,必須遵守一些共同的規(guī)則,下面對(duì)一些常用的規(guī)則作一簡(jiǎn)單的介紹.(1)使用標(biāo)準(zhǔn)的框圖符號(hào).(2)框圖一般按從上到下、從左到右的方向畫(huà).(3)除判斷框外,大多數(shù)程序框圖符號(hào)只有一個(gè)進(jìn)入點(diǎn)和一個(gè)退出點(diǎn),判斷框是具有超過(guò)一個(gè)退出點(diǎn)的唯一符號(hào).(4)一類(lèi)判斷框是“是”與“否”兩分支的判斷,而且有且僅有兩個(gè)結(jié)果;另一類(lèi)是多分支判斷,有幾種不同的結(jié)果.4.畫(huà)流程圖的規(guī)則(5)在圖形符號(hào)內(nèi)描述的語(yǔ)言要非常簡(jiǎn)練清楚.(7)一個(gè)程序框圖包括以下幾部分:表示相應(yīng)操作的程序框;帶箭頭的流程線(xiàn);程序框外必要的文字說(shuō)明.(6)起始框只允許一條流出線(xiàn),終止框只允許一條流入線(xiàn),輸入框、輸出框、處理框只有一條流入線(xiàn)和一條流出線(xiàn),判斷框有一條流入線(xiàn)和兩條流出線(xiàn),但任何時(shí)候只有一條流出線(xiàn)起作用.二、順序結(jié)構(gòu)及框圖表示1.順序結(jié)構(gòu):按照步驟依次執(zhí)行的一個(gè)算法,稱(chēng)為具有“順序結(jié)構(gòu)”的算法,或者稱(chēng)為算法的順序結(jié)構(gòu).語(yǔ)句A語(yǔ)句B2.順序結(jié)構(gòu)的流程圖

順序結(jié)構(gòu)是最簡(jiǎn)單的算法結(jié)構(gòu),語(yǔ)句與語(yǔ)句之間,框與框之間是按從上到下的順序進(jìn)行的.它是由若干個(gè)處理步驟組成的,這是任何一個(gè)算法都離不開(kāi)的基本結(jié)構(gòu).3.畫(huà)順序結(jié)構(gòu)程序框圖時(shí)注意事項(xiàng)左圖中,語(yǔ)句A和語(yǔ)句B是依次執(zhí)行的,只有在執(zhí)行完語(yǔ)句A指定的操作后,才能接著執(zhí)行語(yǔ)句B所指定的操作.(1)在程序框圖中,開(kāi)始框和結(jié)束框不可少;(2)在算法過(guò)程中,第一步輸入語(yǔ)句是必不可少的;(3)順序結(jié)構(gòu)在程序框圖中的體現(xiàn)就是用流程線(xiàn)將程序框自上而下地連接起來(lái),按順序執(zhí)行算法步驟.【例1】已知一個(gè)三角形的三邊邊長(zhǎng)分別為2,3,4,利用海倫—秦九韶公式設(shè)計(jì)一個(gè)算法,求出它的面積,畫(huà)出算法的程序框圖.開(kāi)始輸出S結(jié)束開(kāi)始框處理框輸出框結(jié)束框【1】求兩個(gè)實(shí)數(shù)a,b的算術(shù)平均值aver.S1:輸入兩個(gè)實(shí)數(shù)a,b;S2:計(jì)算c=a+b;S3:計(jì)算aver=c/2;S4:輸出aver.輸出c開(kāi)始輸入a,baver=c/2結(jié)束解:用自然語(yǔ)言【2】“雞兔同籠”是我國(guó)隋朝時(shí)期的數(shù)學(xué)著作《孫子算經(jīng)》中的一個(gè)有趣而具有深遠(yuǎn)影響的題目:“今有雉兔同籠,上有三十五頭,下有九十四足,問(wèn)雉兔各幾何.”請(qǐng)你設(shè)計(jì)一個(gè)這類(lèi)問(wèn)題的通用算法.并畫(huà)出算法的程序框圖.設(shè)有X只雞,Y只兔.則解:雞兔同籠,設(shè)雞兔總頭數(shù)為H,總腳數(shù)為F,求雞兔各有多少只.算法分析如下:

解方程組,得第一步:輸入總頭數(shù)H,總腳數(shù)F;第二步:計(jì)算雞的個(gè)數(shù)x=(4H-F)/2;第三步:計(jì)算兔的個(gè)數(shù)y=(F-2H)/2;第四步:輸出x,y開(kāi)始輸出X,Y結(jié)束X=(4H-F)/2Y=(F-2H)/2輸入H和F解:用自然語(yǔ)言程序框圖第四步:計(jì)算;【3】試描述求點(diǎn)(x0,y0)到直線(xiàn)Ax+By+C=0的距離的算法,并畫(huà)出算法的程序框圖.第一步:輸入x0,y0,A,B,C;第二步:計(jì)算Z1=Ax0+By0+C;第三步:計(jì)算Z2=A2+B2;第五步:輸出d.解:用自然語(yǔ)言開(kāi)始輸入x0,y0,A,B,CZ1=Ax0+By0+CZ2=A2+B2輸出d結(jié)束程序框圖課堂小結(jié)2.三種基本結(jié)構(gòu):順序條件循環(huán)結(jié)構(gòu)現(xiàn)以證明,無(wú)論多么復(fù)雜的問(wèn)題,其算法都可表示為這三種基本結(jié)構(gòu)的組合.其結(jié)構(gòu)清晰、易于理解、易于驗(yàn)證其正確性,也易于查錯(cuò)和排錯(cuò).1.算法的描述:(1)自然語(yǔ)言(2)程序框圖:由于圖形的描述方法既形象,又直觀,設(shè)計(jì)者的思路表達(dá)得清楚易懂,便于檢查修改,所以得到廣泛的應(yīng)用.1.2基本算法語(yǔ)句1.2.1輸入語(yǔ)句輸出語(yǔ)句賦值語(yǔ)句溫故而知新1.什么是程序框圖?2.算法的基本邏輯結(jié)構(gòu)有哪些?

程序框圖是一中用規(guī)定的圖形、指向線(xiàn)及文字說(shuō)明來(lái)準(zhǔn)確、直觀的表示算法的圖形。

算法的基本結(jié)構(gòu)有三種:順序結(jié)構(gòu)、條件結(jié)構(gòu)、循環(huán)結(jié)構(gòu),其中循環(huán)結(jié)構(gòu)又分為當(dāng)型結(jié)構(gòu)和直到型結(jié)構(gòu)兩種。1.計(jì)算機(jī)能夠"理解"的語(yǔ)言與人的語(yǔ)言有什么區(qū)別?

計(jì)算機(jī)不同于人:人有大腦,可以思考問(wèn)題,而計(jì)算機(jī)則不能.用自然語(yǔ)言和程序框圖描述的算法,計(jì)算機(jī)無(wú)法識(shí)別,必須轉(zhuǎn)化為其能理解的語(yǔ)言,即程序語(yǔ)言。2、基本的算法語(yǔ)句有哪些?各自對(duì)應(yīng)怎樣的算法結(jié)構(gòu)?

基本的算法語(yǔ)句有:輸入語(yǔ)句、輸出語(yǔ)句、賦值語(yǔ)句、條件語(yǔ)句、循環(huán)語(yǔ)句;輸入語(yǔ)句、輸出語(yǔ)句、賦值語(yǔ)句基本上是對(duì)應(yīng)順序結(jié)構(gòu),條件語(yǔ)句對(duì)應(yīng)條件結(jié)構(gòu)、循環(huán)語(yǔ)句對(duì)應(yīng)循環(huán)結(jié)構(gòu)。例1用描點(diǎn)法作函數(shù)y=x3+3x2-24x+30的圖象是時(shí),需要求出自變量和函數(shù)的一組對(duì)應(yīng)值。編寫(xiě)程序,分別計(jì)算當(dāng)x=-5,-4,-3,-2,-1,0,1,2,3,4,5時(shí)的函數(shù)值。程序:INPUT“x=“;xy=x^3+3*x^2-24*x+30PRINTxPRINTyEND算法:開(kāi)始輸入x輸出x、y結(jié)束i=1i=i+1i>11否是1、輸入語(yǔ)句的一般格式是:舉例:輸入語(yǔ)、數(shù)、英三門(mén)課成績(jī)或INPUT”Maths,Chinese,English”;a,b,cINPUT“maths”;aINPUT“Chinese”;bINPUT“English”;cINPUT“提示內(nèi)容”;變量INPUT“提示內(nèi)容1,提示內(nèi)容2,提示內(nèi)容3,…”;變量1,變量2,變量3,…2、輸入語(yǔ)句的作用是:實(shí)現(xiàn)算法的輸入信息功能(即對(duì)程序中的變量賦值)3、“提示內(nèi)容”提示用戶(hù)輸入什么樣的信息

變量是指程序在運(yùn)行時(shí)其值是可以變化的量;

(一)輸入語(yǔ)句:INPUT“n=”;nINPUT“a,b,c”;a,b,c輸入框:INPUT“請(qǐng)輸入需判斷的整數(shù)n=”;n注:①“提示內(nèi)容”與變量之間必須用分號(hào)“;”隔開(kāi)。②各“提示內(nèi)容”之間以及各變量之間必須用逗號(hào)“,”隔開(kāi)。但最后的變量的后面不需要。③提示內(nèi)容和它后面的“;”可省略

④由鍵盤(pán)輸入的數(shù)據(jù)必須是常量,不能是函數(shù)、變量或表達(dá)式,輸入多個(gè)時(shí)用“,”分隔,個(gè)數(shù)與變量個(gè)數(shù)要相同思考:能用輸入語(yǔ)句表達(dá)1.1.2中程序框圖中的輸入框的內(nèi)容嗎?輸出語(yǔ)句的一般格式PRINT“提示內(nèi)容”;表達(dá)式輸出語(yǔ)句的作用是實(shí)現(xiàn)算法的輸出結(jié)果功能;“提示內(nèi)容”提示用戶(hù)輸入什么樣的信息,表達(dá)式是指程序要輸出的數(shù)據(jù);

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

(二)輸出語(yǔ)句TheFibonacciProgressionis:11235813213455…輸出框:PRINTn;“是質(zhì)數(shù)?!陛敵隹颍篜RINTn;“不是質(zhì)數(shù)?!盤(pán)RINT

“TheFibonacciProgressionis:”;11235813213455“…”此時(shí)屏幕上顯示為:〖思考〗:在1.1.2中程序框圖中的輸出框的內(nèi)容怎樣用輸出語(yǔ)句來(lái)表達(dá)?例2:編寫(xiě)程序,計(jì)算一個(gè)學(xué)生數(shù)學(xué)、語(yǔ)文、英語(yǔ)三門(mén)課的平均成績(jī)。程序算法開(kāi)始輸入a,b,c結(jié)束輸出yINPUT“數(shù)學(xué)=”;aINPUT“語(yǔ)文=”;bINPUT“英語(yǔ)=”;cPRINT

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

END(三)賦值語(yǔ)句:用來(lái)表明賦給某一個(gè)變量一個(gè)具體的確定值的語(yǔ)句。

變量=表達(dá)式賦值語(yǔ)句也可以給變量提供初值。它的一般格式是:其中“=”叫做賦值號(hào)。

賦值語(yǔ)句的作用:先計(jì)算出賦值號(hào)右邊表達(dá)式的值,然后把這個(gè)值賦給賦值號(hào)左邊的變量,使該變量的值等于表達(dá)式的值。注:①賦值號(hào)左邊只能是變量名字,而不能是表達(dá)式;右邊表達(dá)式可以是一個(gè)數(shù)據(jù)、常量或算式.如:2=X是錯(cuò)誤的②賦值號(hào)左右不能對(duì)換。如“A=B”“B=A”的含義運(yùn)行結(jié)果是不同的。③不能利用賦值語(yǔ)句進(jìn)行代數(shù)式的演算。(如化簡(jiǎn)、因式分解、解方程等)④賦值號(hào)“=”與數(shù)學(xué)中的等號(hào)意義不同。(5)對(duì)于一個(gè)變量可以多次賦值?!祭?〗:給一個(gè)變量重復(fù)賦值。A=10A=A+10PRINT

AEND程序:在此程序的基礎(chǔ)上,設(shè)計(jì)一個(gè)程序,求A的輸出值是

多少?A=10A=A+15PRINT

AA=A+5PRINT

AEND〖例4〗:交換兩個(gè)變量A和B的值,并輸出交換前后的值。分析:引入一個(gè)中間變量X,將A的值賦予X,又將B的值賦予A,再將X的值賦予B,從而達(dá)到交換A,B的值。(比如交換裝滿(mǎn)水的兩個(gè)水桶里的水需要再找一個(gè)空桶)INPUT

AINPUT

BPRINT

A,BX=AA=BB=XPRINT

A,BEND程序:

例1編寫(xiě)程序,計(jì)算一個(gè)學(xué)生語(yǔ)文、數(shù)學(xué)、英語(yǔ)三門(mén)課程的總成績(jī)和平均成績(jī),并輸出。開(kāi)始輸入數(shù)學(xué)a輸入語(yǔ)文b輸入英語(yǔ)c總分s=a+b+c平均p=s/3輸出總分s輸出平均分p結(jié)束程序:INPUT“Maths=”;aINPUT“Chinese=”;bINPUT“Enghlish=”;cs=a+b+cp=s/3PRINT“sum=”;sPRINT“Theaverage=”;pEND程序框圖:INPUT“Maths,Chinese,Eng

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論