![pascal(高等難度)試題_第1頁](http://file4.renrendoc.com/view/bc16f9122f8224f16711d4a403bd7ee1/bc16f9122f8224f16711d4a403bd7ee11.gif)
![pascal(高等難度)試題_第2頁](http://file4.renrendoc.com/view/bc16f9122f8224f16711d4a403bd7ee1/bc16f9122f8224f16711d4a403bd7ee12.gif)
![pascal(高等難度)試題_第3頁](http://file4.renrendoc.com/view/bc16f9122f8224f16711d4a403bd7ee1/bc16f9122f8224f16711d4a403bd7ee13.gif)
![pascal(高等難度)試題_第4頁](http://file4.renrendoc.com/view/bc16f9122f8224f16711d4a403bd7ee1/bc16f9122f8224f16711d4a403bd7ee14.gif)
![pascal(高等難度)試題_第5頁](http://file4.renrendoc.com/view/bc16f9122f8224f16711d4a403bd7ee1/bc16f9122f8224f16711d4a403bd7ee15.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
例題分析-PAGE5-AUTHOR振華中學(xué) 第5頁 DATE04-2-3輔導(dǎo)教師:張曉剛問題1方陣填數(shù)1【題目】方陣填數(shù):在一個N×N的方陣中,填入1,2,.....N×N個數(shù),并要求構(gòu)成如下的格式:如N=4N=51011121131415161916132122324172815143112225183765410212019498765【算法分析】例如N=4,觀察圖案,填數(shù)大致規(guī)律如下:2程序中用k來控制每一次連續(xù)填多少個數(shù)──→│j控制填數(shù)方向↑│2│3│1↑↓│4個數(shù)│←1│←─────↓3個數(shù)【參考程序】Varj:Integer;n,i,k,x,y,Number:Byte;Result:Array[1..25,1..25]ofByte;BeginWrite('N=');Readln(n);Forx:=1tondofory:=1tondoResult[x,y]:=0;{初始化數(shù)組}X:=0;Y:=N;i:=0;k:=N;j:=1;{j表示填數(shù)方向。從左→右或從上→下,j=1;否則j=-1}Whilei<N*NdoBeginFori:=i+1toi+kdo{縱向填k個數(shù)}BeginX:=X+j;Result[x,y]:=i;End;Dec(k);{K:填多少個數(shù),其規(guī)律是遞減:n,n-1,n-2,,2,1}Ifj=1thenj:=-1elsej:=1;{改變方向}Fori:=i+1toi+kdo{橫向填k個數(shù)}Beginy:=y+j;Result[x,y]:=i;End;End;Forx:=1tondo{輸出}BeginFory:=1tondoWrite(Result[x,y]:3);Writeln;End;End.問題2方陣填數(shù)2【題目】方陣填數(shù):在一個N×N的方陣中,填入1,2,.....N×N個數(shù),并要求構(gòu)成如下的格式:N=4N=51341013410112591125912196812156813182071314167141721241516222325【算法分析】例如N=4,觀察圖案,是以右上→左下,或左下→右上這樣的斜向來填數(shù)的。1234這個方向可用j取1與-1來控制。////3一共有7個斜行,每一斜行數(shù)的個數(shù)的規(guī)律1,2,3,4,3,2,1////2例如第三斜行,其坐標(biāo)變化規(guī)律:a[1,3]->a[2,2]->a[3,1]////1第四斜行,a[4,1]->a[3,2]->a[2,3]->a[1,4]////坐標(biāo)變化規(guī)律均是:在上一坐標(biāo)基礎(chǔ)上加1或減1
【參考程序】vara:array[1..20,1..20]ofinteger;n,x,y,i,j,k,ii:integer;beginwriteln('inputn:');readln(n);{輸入N}fillchar(a,sizeof(a),0);i:=0;x:=1;y:=1;k:=1;j:=1;{i:第i個數(shù);x,y:坐標(biāo);k:每一斜行循環(huán)填的次數(shù)}{j:方向,由右上→左下,j=1;由左下→右上,j=-1}whilei<>n*ndobegin{未填完}forii:=1tokdobegin{每一斜行要填k個數(shù)}ifii>1thenbeginx:=x+j;y:=y-j;end;{斜行的頭一個數(shù),坐標(biāo)不變}{其他的要在原基礎(chǔ)上根據(jù)方向j改動}inc(i);{i存放填的數(shù)字}a[x,y]:=i;{填于數(shù)組相應(yīng)位置}end;{以下確定下一斜行的首坐標(biāo),填多少個數(shù)K(即循環(huán)次數(shù)K),方向j取反}ifj=-1theninc(y)elseinc(x);{根據(jù)上一斜行確定下一斜行的起始坐標(biāo)}j:=-j;{方向取反}ify>nthenbeginy:=n;x:=x+1;end;{調(diào)整坐標(biāo),使之不出界}ifx>nthenbeginx:=n;y:=y+1;end;ifx+y<=n+1theninc(k)elsedec(k);{確定下一斜行要填多少個數(shù)}end;fori:=1tondobeginforj:=1tondowrite(a[i,j]:4);writeln;end;{輸出}end.問題3階乘【題目】數(shù)學(xué)上定義:n!=1×2×3×...×(n-1)×n(N>0)0!=1若用integer型數(shù)據(jù)表示階乘,最多可到7!,用Longint類型也只能到12!要求輸入正整數(shù)n,求n!的精確表示【算法分析】用數(shù)組存放結(jié)果,模擬人工計算過程,逐位去乘,注意進(jìn)位情況的處理?!緟⒖汲绦颍薄縞onstmax=1000;varn,i,j,jinwei,weishu:integer;result:array[1..max]ofinteger;{result數(shù)組放結(jié)果}beginwriteln('inputn:');readln(n);{輸入n}fillchar(result,sizeof(result),0);result[1]:=1;{從1開始乘起}jinwei:=0;{jinwei:進(jìn)位}weishu:=1;{weishu:結(jié)果的位數(shù)}fori:=2tondobegin{從2開始,一直乘到n}jinwei:=0;{進(jìn)位預(yù)置為0}forj:=1toweishudobegin{×i,用result數(shù)組逐位去乘}result[j]:=result[j]*i+jinwei;{加上上一次的進(jìn)位}jinwei:=result[j]div10;{逢10進(jìn)位,生成新的進(jìn)位}result[j]:=result[j]mod10;{result數(shù)組只放10以內(nèi)的數(shù)字}end;whilejinwei<>0dobegin{一輪算完后,有新的進(jìn)位時}weishu:=weishu+1;{位數(shù)加1}result[weishu]:=jinweimod10;{循環(huán)處理進(jìn)位,直到為0}jinwei:=jinweidiv10;{因為進(jìn)位可能不只一位數(shù)}end;ifweishu>maxthenbeginwriteln('error!');halt;end;{超過預(yù)定位數(shù),出錯}end;write(n,'!=');fori:=weishudownto1dowrite(result[i]);readln;{輸出}end.
【參考程序2】vara:array[1..10000]ofinteger;b,c,d,t,x:integer;beginwrite('inputnumber:');readln(x);if(x<0)thenbeginwriteln('error!');readln;halt;end;fort:=1to10000doa[t]:=0;d:=1;a[1]:=1;forc:=1toxdo{一直乘到x}begint:=1;b:=0;{t:第幾位數(shù)b:進(jìn)位d:總位數(shù)}repeata[t]:=a[t]*c+b;{數(shù)組每位均乘上c,同時加上進(jìn)位}b:=a[t]div10;{分離出進(jìn)位}ifa[t]>=10thenif(t=d)thend:=d+1;{假如最后一位乘時有}{進(jìn)位,則總位數(shù)加1}a[t]:=a[t]mod10;inc(t);{數(shù)組下一位}until(t>d);{直到乘完數(shù)組的每一位數(shù)字}end;write(x,'!=');fort:=ddownto1dowrite(a[t]);{輸出}end.問題4乘法【題目】求m×n的值。(m與n的位數(shù)均不超過255位)【算法分析】由于m與n的位數(shù)太大,所以必須用高精度運(yùn)算。與高精度階乘不同之處在于,如何處理部分積相加的問題.兩數(shù)相乘的高精度運(yùn)算,其實即是用計算機(jī)來模擬手工進(jìn)行兩數(shù)相乘。試看n=811,m=98的情況:811用m的每一位(從低位到高位)去乘n的每一位,×9864887299<注意這里如何處理相加.同理,m的百位,千位乘n后的結(jié)果如何相加,也要處理好.79478【參考答案】123456789*123456789=152415787501905211111111*111=1233333219999999*99=989999901987654321*987654321=97546105778997104199999999999999999999*99999999999999999999=9999999999999999999800000000000000000001
【參考程序】constmax=10000;vari,j,jinwei,weishu:integer;n,m:string;n_length,m_length:integer;result:array[1..max]ofinteger;beginwriteln('inputn:');readln(n);{m,n均用字符串輸入}writeln('inputm:');readln(m);fillchar(result,sizeof(result),0);n_length:=length(n);{n_length:被乘數(shù)n的位數(shù)}m_length:=length(m);{m_length:乘數(shù)m的位數(shù)}fori:=1tom_lengthdobegin{用m的每個數(shù)字去乘n}jinwei:=0;{預(yù)置進(jìn)位為0}forj:=1ton_lengthdobegin{因n也是大數(shù),故要一位一位地去乘}result[j+i-1]:=(ord(n[n_length+1-j])-48)*(ord(m[m_length+1-i])-48)+jinwei+result[j+i-1];{相乘的結(jié)果放數(shù)組result,其下標(biāo)j+i-1同時反應(yīng)了應(yīng)該加在哪個位上}{注意要把字符串的數(shù)字轉(zhuǎn)換成數(shù)值才能相乘}jinwei:=result[j+i-1]div10;{處理進(jìn)位}result[j+i-1]:=result[j+i-1]mod10;end;weishu:=n_length+i-1;{乘完一輪后,已有的位數(shù)}whilejinwei<>0dobegin{處理乘完一輪后,產(chǎn)生的進(jìn)位}weishu:=weishu+1;result[weishu]:=(jinwei+result[weishu]);jinwei:=(result[weishu])div10;result[weishu]:=(result[weishu])mod10;end;ifweishu>maxthenbeginwriteln('error!');halt;end;{超過預(yù)定位數(shù),出錯}end;
write(n,'*',m,'=');{輸出}fori:=weishudownto1dowrite(result[i]);readln;end.問題5統(tǒng)計單詞數(shù)【題目】讀入一英文句子,單詞之間用空格或逗號隔開,統(tǒng)計其中單詞個數(shù),并輸出各個字母出現(xiàn)的頻率。(句子末尾不一定用"."結(jié)束)【算法分析】要注意連續(xù)兩個空格或逗號與空格連在一起時的誤判斷。例如輸入以下字符串:"abc_abc___abc,_abc___,_abc_,_."('_'代表空格)【參考程序】vara:string;i,t:byte;wor:boolean;j:char;b:array['A'..'Z']of65..90;beginfillchar(b,sizeof(b),0);writeln('inputastring:');readln(a);t:=1;{t:單詞數(shù)}fori:=1tolength(a)dobegin{逐個字符檢測}if(ord(upcase(a[i]))in[65..90])thenbegin{如果是字母}wor:=true;{則為某一單詞的開頭}b[(upcase(a[i]))]:=b[(upcase(a[i]))]+1;{相應(yīng)字母的個數(shù)加1}end;ifworand((a[i]='')or(a[i]=','))then{如為","或空格,且之前為單詞}begininc(t);wor:=false;end;{單詞結(jié)束,單詞數(shù)加1}end;ifwor=falsethendec(t);{判斷行末多余的空格或","}writeln('words:',t);{輸出單詞總數(shù)}forj:='A'TO'Z'doifb[j]<>0thenwriteln(j,'',b[j],'');{各字母個數(shù)}end.問題7【題目】一個句子,只含英文字母,單詞間用空格或逗號作為分隔符。統(tǒng)計句子中的單詞數(shù),如果含有其他的字符,則只要求輸出錯誤信息及錯誤類型。含有大寫字母錯誤類型error1數(shù)字(0-9)錯誤類型error2其他非法字符錯誤類型error3如輸入:Itis12!輸出:error123輸入:iam,astudent輸出:4
【參考程序】vara:string;ok:boolean;error:array[1..3]ofboole
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)藝設(shè)計中的材質(zhì)與質(zhì)感現(xiàn)代辦公空間應(yīng)用案例
- 環(huán)境影響綜合評估的實踐與思考
- 現(xiàn)代網(wǎng)絡(luò)編程語言的性能優(yōu)化探討
- 11 爸爸媽媽在我心中(說課稿)-統(tǒng)編版道德與法治三年級上冊
- 9古詩三首《題西林壁》說課稿-2024-2025學(xué)年統(tǒng)編版語文四年級上冊
- 《5 童年在游戲中成長》說課稿-2024-2025學(xué)年三年級上冊綜合實踐活動長春版
- Unit 4 Position Lesson 1 The Magic Show(說課稿)-2024-2025學(xué)年北師大版(三起)英語五年級上冊
- 2023三年級數(shù)學(xué)上冊 3 測量第1課時 毫米的認(rèn)識說課稿 新人教版
- 7 小書包 說課稿-2024-2025學(xué)年語文一年級上冊統(tǒng)編版
- 16大家一起來合作-團(tuán)結(jié)合作快樂多(說課稿)-統(tǒng)編版道德與法治一年級下冊
- 名著閱讀:簡答、閱讀題(解析版)-2025年中考語文復(fù)習(xí)專練
- 2021-2022學(xué)年遼寧省重點(diǎn)高中協(xié)作校高一上學(xué)期期末語文試題
- 2024義務(wù)教育道德與法治課程標(biāo)準(zhǔn)(2022版)
- 墓地個人協(xié)議合同模板
- 2024年部編版初中語文各年級教師用書七年級(上冊)
- 企事業(yè)單位公建項目物業(yè)管理全套方案
- 2024年北京市房山區(qū)初三語文一模試卷及答案
- 4P、4C、4R-營銷理論簡析
- 三創(chuàng)賽獲獎-非遺文化創(chuàng)新創(chuàng)業(yè)計劃書
- 伊立替康對耐藥腫瘤細(xì)胞的作用機(jī)制研究
- 《美容心理學(xué)》課件-容貌的社會心理價值
評論
0/150
提交評論