計(jì)算機(jī) 基礎(chǔ)編程基礎(chǔ)_第1頁
計(jì)算機(jī) 基礎(chǔ)編程基礎(chǔ)_第2頁
計(jì)算機(jī) 基礎(chǔ)編程基礎(chǔ)_第3頁
計(jì)算機(jī) 基礎(chǔ)編程基礎(chǔ)_第4頁
計(jì)算機(jī) 基礎(chǔ)編程基礎(chǔ)_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

編程基礎(chǔ)V1.00正式版By06B1王崇生更新日志2007.5.13開始編寫2007.5.14發(fā)布V0.9Beta2007.5.15發(fā)布V0.93Beta*更新了關(guān)于JavaScript的基本知識;*在澤娜的啟發(fā)下添加了小題以區(qū)分大題;*補(bǔ)寫了《寫在前面》2007.5.17發(fā)布V0.96Beta優(yōu)化了一些表達(dá);添加了斐波納契的非遞歸編程;添加了*號輸出問題的解答;2007.5.19發(fā)布V0.98Beta在詠芝的啟發(fā)下添加了自定義函數(shù)的return的說明;在焱焱的啟發(fā)下添加了連續(xù)數(shù)和問題的自寫程序;2008.5.3發(fā)布V1.00正式版更正了部份文字的表述錯誤寫在前面編程也許是讓很多學(xué)計(jì)基的人頭痛的事情,尤其是在一本不太適合初學(xué)者使用的教程面前。例如,順序、選擇、循環(huán)三種結(jié)構(gòu)是結(jié)構(gòu)化編程的根基所在,但書本卻只花了一頁紙就一筆帶過了,因此為了說明許多問題,這篇《編程基礎(chǔ)》初稿整整用了兩天才寫完。還是那一句話,希望這些東西對大家有所幫助。例牌一語:錯誤難免,萬望見諒。如果你發(fā)現(xiàn)了其中的錯誤又或者有什么地方看不明白的,可以找我問問,我的Q號是495282781。勇于探索,甘于寂寞程序員,一個我們曾經(jīng)以為跟自己毫不相關(guān)的身份,如今竟真的臨到我自己身上。記得比爾·蓋茨說過,作為一個優(yōu)秀的程序員,必須“勇于探索,甘于寂寞”。真的道出了作為一個程序員的必備條件。“勇于探索”,那就是,編程在世界上是沒有標(biāo)準(zhǔn)答案的,只有自己去探索,同時,教材上并不能將編程的一切都寫上,很多不懂的地方是需要我們自己去試驗(yàn)去探索。而“甘于寂寞”,是因?yàn)榫幊滩豢赡芤徊降轿坏模粋€程序是需要反復(fù)調(diào)試才能編寫成功的。因此,作為程序員必須要有“長時間在一堆代碼中來回”的耐心。想要是一步到位,是程序員尤其是初學(xué)者之大忌一、算法與流程圖算法,是計(jì)算機(jī)解決問題的方法和步驟,它并不能給出問題的答案,只是說明怎樣才能得到答案。編程關(guān)鍵在于設(shè)計(jì)出一個好的算法,算法是編程的核心。算法通常用流程圖來描述。當(dāng)我們需要用編程來解決實(shí)際問題時,我們需要把自己模擬成計(jì)算機(jī),從計(jì)算機(jī)的角度去看問題,而計(jì)算機(jī)的特點(diǎn)是一次只能處理一個指令,一次指令處理完,再處理下一次的指令。人的大腦可以同時處理幾個指令指令1計(jì)算機(jī)只能先把一個指令處理完了再處理另一個指令2指令1指令2現(xiàn)在,讓我們通過一個小例子來認(rèn)識計(jì)算機(jī)算法。將兩個變量X和Y的值交換,X的值是5,Y的值是10對于我們來講,這個問題相當(dāng)簡單,當(dāng)我們看到“X=5,Y=10,相互交換數(shù)值”之時,我們在處理“將Y值賦給X”的同時,也在處理“將X值賦給Y”,而計(jì)算機(jī)則不行,計(jì)算機(jī)必須處理完前一個指令,再處理后一個指令。人的大腦可以同時處理幾個指令將Y值賦給X將X值賦給Y計(jì)算機(jī)一次只能處理一個指令將Y值賦給X將X值賦給Y這個指令要等前一個指令執(zhí)行完才能被執(zhí)行但是,這里出現(xiàn)問題了。當(dāng)計(jì)算機(jī)執(zhí)行完“將Y值賦給X”后,X=10(Y),再執(zhí)行“將X值賦給Y”時,Y得到的值是多少呢?是10!因?yàn)楫?dāng)“將X值賦給Y”這條指令執(zhí)行時,前一條指令已經(jīng)執(zhí)行完了,也就是說X已經(jīng)是10了!計(jì)算機(jī)一次只能處理一個指令將X值賦給Y將Y值賦給X這個指令已經(jīng)執(zhí)行完了,X的值是10了為了更好地理解這個問題,我們先來玩一個游戲,現(xiàn)在有X、Y兩個人,每個人手上的都有一塊橡皮、一支鉛筆和一張紙,并且我們規(guī)定,每個人的紙上只能記下一個數(shù)字?,F(xiàn)在X上面記的是5,Y上面記的是10。我們要他們交換彼此上面所記的數(shù)字。510X的紙上記的是5Y的紙上記的是10如果,我們先把Y記的數(shù)字讓X去抄下來(也就相當(dāng)于“將Y值賦給X”),那么X就會先拿橡皮把自己紙上記的5擦掉,然后抄下Y記的10。如果我們再把X記的數(shù)字讓Y去抄下來(也就相當(dāng)于“將X值賦給Y”)的話,Y所抄下的數(shù)字是多少呢?自然是10。那么前面出現(xiàn)的問題就好理解得多了,因?yàn)閅并不會去記住X的原值5,當(dāng)X先把Y的10抄下來后,Y看到X的只能是10。10X抄下Y的紙上記的數(shù)字后,記的是1010此時讓Y去抄X紙上記的數(shù),Y抄下的自然是105X的紙上記的是5現(xiàn)在,我們再回過來看計(jì)算機(jī),就可以知道,計(jì)算機(jī)不僅一次只能處理一個指令,而且一個變量只能儲存一個數(shù)值(不存在X儲存了前值5后值10,X儲存的要么是5,要么是10)。這里要補(bǔ)充一下,在后面還會講到一種叫“數(shù)組”的變量,是可以實(shí)現(xiàn)記下多個數(shù)字的。但“數(shù)組”就像一堆紙那樣,第1張只能記一個數(shù),第2張也是只能記一個數(shù),只是把這些紙放在一起變成“一堆紙”而已。之前我們研究得知,不能用先“將Y值賦給X”再“將X值賦給Y”的辦法實(shí)現(xiàn)交換,那么,有沒有辦法解決這個問題呢?還是讓我們回到我們的游戲中去。現(xiàn)在,X和Y想到了一個好辦法。他們找來了他們的好朋友Z,他們先讓Z抄下X記的數(shù)字,這時,Z記得是5。然后,再讓X抄下Y記的數(shù),X記得是10。緊接著,Y去抄下Z記下的數(shù),Y抄下的,就是Z記的X的原本的數(shù)字,也就是5。那么,就成功地實(shí)現(xiàn)了交換數(shù)字了?,F(xiàn)在再回到計(jì)算機(jī)中,我們可以先引入一個變量Z,讓計(jì)算機(jī)執(zhí)行“將X值賦給Z”-“將Y值賦給X”-“將Z值賦給Y”,那么,問題就被成功地解決了。X=5,Y=10Z=XX=Y將X值賦給ZZX=5Y=ZX=10,Y=5將Y值賦給XXY=10將Z值賦給YYZ=5二、JavaScripta基礎(chǔ)也許有人在高中學(xué)過VisualBasic編程,但是,各種程序語言都有自己的語法,如Basic的輸出用的是print,Pascal的輸出用的是write。其實(shí),語法對比算法,實(shí)在不算重要那么下面我們來說一下JavaScript的基本語法。具體可以參考書本的4.5節(jié),從P160到P170。下面我列舉常用的一些語法。先說變量,來看下面三個表示式。x=5x=“abc”;x=“5”x=truex=5:這里的x是一個數(shù)值型變量x=“abc”;x=“5”:這里的x是一個字符串型變量,也就是說,x儲存的,不是一個數(shù)值,而是一個數(shù)字、一個字符,如“一鳴驚人”的“一”,與“1+2=3”中的“1”,一個是字符,一個是數(shù)字。引號是它的重要標(biāo)志。x=true:這里的x是一個布爾型變量,是用來表示命題的真假,它只有true和false兩個值。如1<2的值是true,5>9的值是false。y=10y10,為y賦值x=y將y值賦予x(不是判斷二者是否相等)x==y(!==)這個才是判斷x,y是否相等(不相等)y=113%10除取余,113÷10=10…3,y得到的值是3z=5+(-,*,/)3相加(減/乘/除),z得到的是8(2/15/1.666……)3>2&&4>5邏輯與(且/交集),此值為假3>2||4>5邏輯或(或/并集),此值為真sum+=i相當(dāng)于sum=sum+i*/%+-<<=>>===!=&&||=+=優(yōu)先級JavaScript是對大小寫敏感的,也就是說X與x是兩個不同的變量,Var與var也是不一樣的n=parseInt(WScript.StdIn.ReadLine());WScript.StdOut.WriteLine(N);這兩句是經(jīng)常使用的輸入輸出語句,PS:WScript.StdIn.ReadLine()輸入的是字符串,而parseInt是將字符串中的數(shù)字轉(zhuǎn)化為數(shù)值。在調(diào)試時,計(jì)算機(jī)會告訴我們錯誤于哪里,如WScript.StdOut.WriteLine(4;如果你運(yùn)用這個程序,計(jì)算機(jī)會顯示:“(1,27)編譯錯誤:缺少‘)’”PS:要修改可以直接“右鍵-編輯”,修改完記得按Ctrl+S或點(diǎn)“保存”保存哦。第1行第27個字符這里少了右括號一些建議這里給大家一些建議,在做題時經(jīng)常需要調(diào)試程序的。大家可以把用記事本寫好的程序以.js為擴(kuò)展名保存在桌面,并用英文來命名,如try.js。然后按“開始-運(yùn)行,輸入cmd”或者“開始-所有程序-附件-命令提示符”,進(jìn)入“命令提示符”。默認(rèn)是“我的文檔”的實(shí)際地址,大家只要輸入“cd桌面”(“cd文件夾名”是進(jìn)入該文件夾的DOS命令),進(jìn)入桌面后,輸入CScripttry.js,就可以在DOS中運(yùn)行你所編寫的程序了。因?yàn)樵赪indows打開是很麻煩的并且不能輸入數(shù)據(jù)。另外,在“命令提示符”中,只要按鍵盤的向上鍵,就可以重新使用之前所輸入的命令了,非常方便。三、三種基本流程結(jié)構(gòu)1966年,Bohm和Jacopini證明了只用三種基本的控制結(jié)構(gòu)就能實(shí)現(xiàn)任意單入口和單出口的程序,這三種基本控制結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。這三種結(jié)構(gòu),是我們解決編程問題的三把利劍,尤其是選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。我們先講順序結(jié)構(gòu)吧。所謂的順序結(jié)構(gòu),就依照指令的順序,一條一條地執(zhí)行,如前面的賦值。X=5,Y=10Z=XX=YY=ZX=10,Y=5接下來,我們講選擇結(jié)構(gòu)。這里,我們來舉例說明。問題:輸出X、Y中較大的值。其中,X=5,Y=10。在這里,我們的思路要換一換,除了“比較二者后輸出較大者”這種思路,還有另一種思路,那就是“判斷‘X>Y’這個命題是真還是假,如果是真,就輸出Y,如果是假,就輸出X”它的流程圖是這樣的:選擇結(jié)構(gòu)的流程圖如下選擇結(jié)構(gòu)在JavaScript中的常用格式If(判斷條件)語句1else語句2X=5,Y=10X>Y輸出X真輸出Y假varX=5,Y=10;if(X>Y){WScript.StdOut.WriteLine(X);}else{WScript.StdOut.WriteLine(Y);}選擇結(jié)構(gòu)常用于情況的判斷選擇,如題目“請輸入學(xué)生分?jǐn)?shù)X,如果大于或等于60,則顯示‘及格’,否則顯示‘不及格’”我們便可以使用判斷語句。if(x>=60)WScript.StdOut.WhiteLine(“及格”);elseWScript.StdOut.WhiteLine(“不及格”);最后,我們講循環(huán)結(jié)構(gòu)。還是通過舉例來說明。問題:請算出1+2+3+……+100的結(jié)果。顯然,計(jì)算機(jī)不會明白省略號的意義,但是要我們在計(jì)算機(jī)中輸入100個數(shù)字和99個加號顯然是不現(xiàn)實(shí)的。所以,我們就要用到循環(huán)結(jié)構(gòu)了。首先,我們將1+2+……+100理解為右圖的形式。它的規(guī)律是:A、B有個初始值0、1,先算A+B,然后讓下一式中的A等于上一式的和,B則等于上一式的B+1。這樣,我們只要告訴計(jì)算機(jī)首先“AA+B”,然后“BB+1”,接著又執(zhí)行相同的“AA+B”,“BB+1”,直到i等于100為止。1+2=33+3=66+4=100+1=1+1+1+1……4950+100=5050現(xiàn)在我們設(shè)sum=0,i=1,明顯這時符合i<=100的條件,計(jì)算機(jī)就往下執(zhí)行前面我們說的首先“sumsum+i”,然后“ii+1”,接著,返回并再次判斷是否符合i<=100的條件,此時sum等于1,i等于2,符合條件,計(jì)算機(jī)便往下執(zhí)行“sumsum+i”;“ii+1”,接著,返回并再次判斷是否符合i<=100的條件……不斷地返回、判斷,直到i遞加到101時,不符合i<=100,便跳出“sumsum+i”;“ii+1”這個循環(huán)體,往下執(zhí)行別的指令。sum=0;i=1i<=100sum=sum+i;i=i+1falsetruevarsum=0,i;for(i=1;i<=100;i++){sum+=i;}WScript.StdOut.WriteLine(sum);四、自定義函數(shù)與嵌套、遞歸所謂自定義函數(shù),就是一串由我們指定的指令而組成的一個小程序,使用函數(shù)的一個顯而易見的好處就是可重用性。如在前面的1+2+……100的問題中,“sum+=i;i++”是一串反復(fù)調(diào)用的語句,我們可以自定義一個函數(shù)qihe(sum,i),其內(nèi)容是“sum+=i;i++”。另一個例子請參考P196的例4.39可以用我們的數(shù)學(xué)思維去理解,比如公式:V(x,y,z)=xyz,這個公式是可以反復(fù)使用的,只要我們得知長寬高的值。只是編程中的自定義函數(shù)范圍更廣,內(nèi)容更多。returnReturn是自定義函數(shù)中常見的一個命令,其作用是結(jié)束函數(shù)體的執(zhí)行,并把其后的表達(dá)式的值返回到主程序。我們來看一個簡單的例子。functionyugi();n=5;returnn;varn=10;yugi();WScript.Echo(n);這條程序輸出的應(yīng)該是5,因?yàn)樽远x函數(shù)將5賦值了給n,returnn把“n的值是5”這個結(jié)果返回給主程序,因此,主程序輸出n,而n的值是5。那么,如果把returnn去掉。那輸出的又會是多少呢?functionyugi();n=5;varn=10;yugi();WScript.Echo(n);沒錯,是10。在主程序中定義了n并將10賦值給它,雖然在自定義函數(shù)中將5賦值給n,但是這個結(jié)果并不返回到主程序中,輸出的仍然是10。當(dāng)然,如果n在主程序中沒有賦值,那么,就算沒有return,也會返回n的值。嵌套所謂的嵌套,就是在一個函數(shù)的過程中,調(diào)用另一個函數(shù)的情況。如下圖:functionf(){…g()

…}functiong(){……

…}遞歸在實(shí)際中,有時會出現(xiàn)函數(shù)中調(diào)用自身的情況,稱之為“遞歸”。這也是本書編程部分個人認(rèn)為最難理解的部分。下面,我們通過P199的例4.42,來說明“遞歸”這種思維。問題:求階乘n!的值。現(xiàn)在要求n!的值,我們的思路是:主程序負(fù)責(zé)處理輸入n值,自定義一個jc()函數(shù),專門計(jì)算n!的值。varn,N=0;n=parseInt(WScript.StdIn.ReadLine());jc(n);WScript.StdOut.WriteLine(N);可以看到,主程序是非常簡單的。下面我們來看jc(n)這個函數(shù)如何編寫。functionjc(n){if(n>1)N=n*jc(n-1);elseN=1;returnN;}我們以n=5為例,算一下5的階乘。5>1,真N=5*jc(5-1)4>1,真N=4*jc(4-1)3>1,真N=3*jc(3-1)2>1,真N=2*jc(2-1)1>1,假N=112345,返回16,返回2*1=27,返回3*2=68,返回4*6=249,返回5*24=120從不符合條件到符合條件四、關(guān)于編程題的解答小題題型主要是一些涉及概念的考查,又或者是一些小程序的求解。如:請選出符合false||()為真的選項(xiàng)。A、”5==5”B、2>3C、falseD、5==5答案是D。A是一個字符串,不存在真與假的問題;B明顯是假;C也是假;D為真,故選D。判斷:JavaScript允許在一個函數(shù)的函數(shù)體中調(diào)用另一個函數(shù)。正確?錯誤?明顯正確。詳見“嵌套、遞歸”。下面哪一個語句定義了一個名為pageNumber的變量并將它的值賦為240?[A]varPageNumber=240[B]pagenumber=240[C]varpageNumber=240[D]varintnamedpageNumber=240A定義的是PageNumber;B定義的是pagenumber;D多了intnamed;正確答案是C表達(dá)式123%7的計(jì)算結(jié)果是_____。[A]2[B]3[C]4[D]5答案:C(123÷7=17……4)下面的哪一個表達(dá)式將返回真?[A](3==3)&&(5<1)[B]!(17<=20)[C](3!=3)||(7<2)[D](1==1)||(2<0)A:真&&假假;B:!(真)假C:假|(zhì)|假假;D:真||假真故選D目前,編程題的大題題型主要有:完善程序:給出問題和(或)答案,以及大部分程序,但關(guān)鍵部分留空,待答題者填上,我在免修試中只遇到過這種。編寫程序求解問題:給出一個人腦不可能在短時間內(nèi)解決只能通過編程讓計(jì)算機(jī)求解的問題,讓答題者求出答案讀程序?qū)懡Y(jié)果:要求答題者讀完程序后筆算出結(jié)果,我們考試是機(jī)試,所以一般不出這種題型。下面我們來舉幾個例子,首先是前面用遞歸解決的n!問題,現(xiàn)在我們想一想,能不能不用遞歸解決嗎?答案是可以的,但是遞歸思想是有它的先進(jìn)性的,對于編程解決許多問題是很有幫助的。好,回到正題,類似這種其中一個變量是以1遞增(1*2*3……)的問題。我們是毫不猶豫地選擇“循環(huán)”。仿照1+2+3……設(shè)計(jì)的“sum作累加i作遞增”的思路,我們用s作累乘器,i作遞增。那么,思路就出來了。s的初始值是1,i的初始值是1;s=s*i,i=i+1;i遞增到由用戶輸入的n為止。寫成程序,如下vars=1,i,n;n=parseInt(WScript.StdIn.ReadLine());for(i=1;i<=n;i++){s=s*i;}WScript.StdOut.WriteLine(s);完善程序題:參照書本P206的第20題的式子,計(jì)算Pi的值。程序以給出。varPi,i,n;n=parseInt(WScript.StdIn.ReadLine());for(……1……){if(…2…)Pi=Pi-1/(2*i-1);elsePi=Pi+1/(2*i-1);}WScript.StdOut.WriteLine(…3…);

明顯第三空填的是:4*Pi。第一個空是循環(huán)條件。很自然,我們知道,i的初始值是1,直到n結(jié)束,i=i+1。所以,第一空填的是:i=1;i<=n;i++接著,是一個判斷結(jié)構(gòu)。條件為真則Pi=Pi-1/(2*i-1),為假則Pi=Pi+1/(2*i-1)。那么條件應(yīng)該是什么呢?應(yīng)該是奇數(shù)項(xiàng)執(zhí)行+,偶數(shù)項(xiàng)執(zhí)行-,但是,并沒有一個指令用來判斷奇偶啊,怎么辦呢?我們知道,奇偶的本質(zhì)是:偶數(shù)能被2整除,而奇數(shù)不能被2整除而且余數(shù)肯定是1。余數(shù)?想到什么了?對了,是除取余%!我們可以通過除取余%來判斷余數(shù)是否為1(除以2余數(shù)不為1就為0),進(jìn)而得知某個數(shù)是奇是偶。那么問題就解決了!是為真(也就是i是偶數(shù))就執(zhí)行-,為假(也就是i是奇數(shù))就執(zhí)行+。第二空填的是:i%2==0(當(dāng)然,填:i%2!==1,也是可以的)注意:==是判斷二者是否相等,=是賦值。一些體會一點(diǎn)啟發(fā)相信到這里,大家都會感覺到,用編程來解題,其中很重要的一點(diǎn)就是轉(zhuǎn)化或者說是翻譯。要把思路、方法、條件等轉(zhuǎn)化、翻譯成計(jì)算機(jī)能看懂的語言。就像上面這題,計(jì)算機(jī)不會判斷奇偶,但會“除取余”這種運(yùn)算,會判斷兩個數(shù)是否相等。因此,我們要把判斷一個數(shù)的奇偶轉(zhuǎn)化成判斷這個數(shù)除以2的余數(shù)與1是否相等,才能為計(jì)算機(jī)所識別?,F(xiàn)在來看書本P206的19題?!办巢{契(Fibonacci)數(shù)列”的第1項(xiàng)和第2項(xiàng)都是1,之后各項(xiàng)是前兩項(xiàng)的和。1,1,2,3,5,8,13,21……現(xiàn)在要求第N項(xiàng)的值,我們用遞歸來解決,思維是:主程序負(fù)責(zé)處理輸入N值,自定義一個Fibo()函數(shù),專門計(jì)算第N項(xiàng)的值。varn,N;n=parseInt(WScript.StdIn.ReadLine());Fibo(n);WScript.StdOut.WriteLine(N);可以看到,主程序是非常簡單的。下面我們來看Fibo(n)這個函數(shù)如何編寫。functionFibo(n){if(n>2){N=Fibo(n-1)+Fibo(n-2);}else{N=1;}returnN;}下面我們以第五項(xiàng)(n=5)為例,來看一下遞歸思想。N=Fibo(5-1)+Fibo(5-2);5>2,真functionFibo(n){if(n>2){N=Fibo(n-1)+Fibo(n-2);}else{N=1;}returnN;}N=Fibo(4-1)+Fibo(4-2);4>2,真N=Fibo(3-1)+Fibo(3-2);3>2,真1>2,假N=12>2,假N=12>2,假N=1N=Fibo(3-1)+Fibo(3-2);3>2,真1>2,假N=12>2,假N=1現(xiàn)在再來思考,可不可以不用遞歸呢?答案也是可以的。但如何實(shí)現(xiàn)呢?我們會很正常地想到循環(huán)結(jié)構(gòu),但具體應(yīng)該如何實(shí)現(xiàn)呢?還是回到斐波納契數(shù)列的規(guī)律,頭兩項(xiàng)為1,之后每一項(xiàng)是前兩項(xiàng)的和。首先應(yīng)該有一個判斷,因?yàn)楫?dāng)用戶輸入1或2時,我們就讓計(jì)算機(jī)直接輸出“該項(xiàng)等于1”。if(n<=2)WScript.StdOut.WriteLine(“該項(xiàng)等于1”);else{……}現(xiàn)在重點(diǎn)是n>=3的情況。我們知道,循環(huán)結(jié)構(gòu)是反覆執(zhí)行相同的語句的。那么,對于此數(shù)列,我們可以假設(shè)c是第n項(xiàng),b是第n-1項(xiàng),a是第n-2項(xiàng)。初始,a=1,b=1ca+b(每一項(xiàng)是前兩項(xiàng)的和)那么,如果c是我們要輸出的那項(xiàng),便跳出循環(huán),如果不是,那么,對于下一項(xiàng),應(yīng)該是ab,bc然后又執(zhí)行ca+bvara=1,b=1,n,c;n=parseInt(WScript.StdIn.ReadLine());if(n<=2)WScript.StdOut.WriteLine("該項(xiàng)是1");else{for(i=3;i<=n;i++){c=a+b;a=b;b=c;}WScript.StdOut.WriteLine("該項(xiàng)是"+c);}現(xiàn)在我們再來看P206的18題。假設(shè)一共有N行,我們可以發(fā)現(xiàn)每一行的特點(diǎn)是:第n行有n個*;第n行的第一個*前面有N-n個空格。那么我們再來想想,這個程序能不能分成兩部分呢?一部分是負(fù)責(zé)依照N,n的值來輸出每一行的空格與*,一部分負(fù)責(zé)處理N,n的值。負(fù)責(zé)依照N,n的值來輸出每一行的空格與*functionhang(n,N){vars=““,x=“”,i,j;for(i=1;i<=N-n;i++)s+=““;for(j=1;j<=n;j++)x+=“*“;WScript.StdOut.WriteLine

溫馨提示

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

最新文檔

評論

0/150

提交評論