




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Pascal語言程序設計信息學奧賽的內容:
程序=計算機語言+數據結構+算法FreePascalC/C++1、觀察和分析問題的能力;2、將實際問題轉化為數學模型的能力;3、靈活地運用各種算法的能力;4、熟練編寫程序并將其調試通過的能力;5、根據題目的要求,自己設計測試數據,檢查自己的解法是否正確、是否完備的能力.
6、具有很強的自學能力,需要學習有關組合數學、圖論、基本算法、數據結構、人工智能搜索算法及數學建模等知識,還要學會高級語言和編程技巧,要具備很強的上機操作能力.考察的能力:選手應具備的條件:前提:綜合成績突出1、扎實的數學基礎。2、很強的自學能力。3、與同學之間的密切友好的合作與交流。4、持之以恒,堅持不懈的學習。5、耐得住枯燥與寂寞。6、不能以參加競賽為理由而耽誤了其他課程的學習。7、堅決抵制玩游戲、上網聊天。
要將一張100元的大鈔票,換成等值的10元、5元、2元、1元一張的小鈔票,每次換成40張小鈔票,每種至少1張。如,有一種換法:
10元:1張
5元:5張
2元:31張
1元:3張問:一共有多少種換法。問題舉例:【引例1】:換錢問題已知:
s=1+1/2+1/3+…+1/n求:使s的值大于10時最小的n。【引例2】:求最小的n枚舉
已知正整數a和b,a<b,求a除以b的值,精確到小數點后1000位。【引例3】:除法問題高精度n個客人圍著一個桌子吃飯,每一個人都至少認識其他的2個客人。請設計程序求得n個人的一種坐法,使得每個人都認識他左右的客人。【引例4】:安排座位12435模型轉化:構造一個圖:人看成頂點,認識關系看成一條邊。目標:找一個環,包含所有的點。哈密頓回路
有兩個無刻度標志的水杯,分別可裝滿x升和y升的水。設另一個水缸,可以用來向水杯灌水或從水杯向水缸里倒水,兩個水杯之間也可以相互倒水。已知x升的水杯開始是盛滿水的,y升的杯子是空的,問如何通過倒水和灌水操作,用最少的步數能在y升的杯子里量出z升水。YX水缸(足夠的水,未滿)X=20Y=15Z=10?Y—>10【引例5】:倒水問題開始:200step1:515step2:015step3:150step4:1515step5:2010XY算法:廣度優先搜索數據結構:隊列【引例6】:解n元一次方程組N<=100,給定系數aij和常數bi,求出方程組的解得情況。第一講Pascal語言基礎一程序的基本結構
程序的上機調試和運行語言基礎一例1:要將一張100元的大鈔票,換成等值的10元、5元、2元、1元一張的小鈔票,每次換成40張小鈔票,每種至少1張。如,有一種換法:10元:9張5元:1張2元:2張1元:1張問:一共有多少種換法。程序的上機調試和運行program
ex1;varx1,x2,x3,x4,n:integer;beginn:=0;forx1:=1to10doforx2:=1to20doforx3:=1to50doforx4:=1to100doif(10*x1+5*x2+2*x3+x4=100)and(x1+x2+x3+x4=40)then
n:=n+1;writeln(n);end.例2
、已知:
s=1+1/2+1/3+…+1/n求:使s的值大于10時最小的n。vars:real;n:integer;begins:=0;n:=0;whiles<=10dobeginn:=n+1;s:=s+1/n;end;writeln(n);end.例3、編一個程序,從鍵盤輸入一個真分數的分子和分母,輸出它的小數形式,精確到小數點后1000位。varn,m,r,q,i:integer;beginread(n,m);r:=n;write('0.');i:=1;whilei<=1000dobeginq:=10*rdivm;r:=10*rmodm;write(q);i:=i+1;end;end.上機調試運行步驟:1、運行:FreePascal2、filenew:新建文件3、compilemake:編譯,找錯誤。4、run—〉run:運行5、debugoutput(Alt+F5):察看結果program程序名;{可以省略}
var變量說明;
begin
語句;
語句;
……
語句;
end.Pascal程序的基本結構
vars:real;n:integer;begins:=0;n:=0;whiles<=10dobeginn:=n+1;s:=s+1/n;end;writeln(n);end.示例:程序的基本結構
一、變量的定義說明:二、Pascal數據類型(整型、實型)三、基本語句(賦值語句、輸入語句read、輸出語句write)四、算術運算符和算術表達式五、標準函數(數值型函數)語言基礎一一、變量的定義說明:在程序中用到的所有變量必須事先定義。格式:Var<變量表>
:
<變量類型>;
┆
<變量表>
:
<變量類型>;如:輸入3個整數,求這3個數的平均值。Vara,b,c:integer;aver:real;說明:1)、同一類型的變量可以放在一起,也可分開寫,不同類型的不能放在一起。2)、變量名:可以是一個字母,也可以是多個字母和數字的組合,但字母開頭。3)、不能重復定義變量。二、Pascal數據類型Vara,b,c:integer;Beginreadln(a);readln(b);c:=a+b;writeln(c):End.12020010000200002000030000試以下3組數據:輸入整數a和b,輸出a+b的值。整型、實型、(字符型和布爾型)1、整型
類型數值范圍占字節數
Byte0..2551Word0..655352Shortint-128..1271
Integer-32768..32767;2
Longint-2147483648..21474836474Longword0..42949672954
Int64-9223372036854775808..
92233720368547758078QWord0..1844674407370955161582、實數
類型范圍有效位數占用字節
Real2.9e-39..1.7e38
11..126
Single1.5E-45..3.4E387-84Double5.0E-324..1.7E30815-168Extended1.9E-4951..1.1E493219-2010Comp-2E64+1..2E63-119-208Varbeginread(a,b);c:=a*b;d:=a/b;writeln(c);writeln(d);End.?例:輸入:兩個整數a、b(<=3000),輸出它們的乘積c,商d。實數的定點型格式輸出:實數表達式:域寬:小數位數T=63.123write(t);6.312300000000E+01write(t:6:2);63.12write(t:6:5);63.12300如果要求小數點后精確2位小數.Writeln(x:0:2);a,b:integer;C:longint;d:real;Writeln(d:0:2);字符類型Char類型用單引號括起來一個單個字符。字母作為字符型時,大小寫是不等價的,并且字符型只允許單引號中有一個字符,否則就是字符串。Vars:char;s:=‘B’布爾類型Boolean類型一個布爾型數據用來存放邏輯值(布爾值)。
只有兩個真和假,分別用標準常量true和False來表示。布爾類型的運算符有:not(非)、and(與)、or(或)vara,b:boolean;A:=4>3;b:=2>3;1、賦值語句
賦值語句是最簡單的語句.
1)、賦值語句的格式變量名:=表達式;其中“:=”稱為賦值號。
2)、執行過程計算機先計算賦值號右邊表達式的值,然后將表達式的值賦給變量名代表的變量。如:A:=(9*8)-(2-1);
A:=A+1
三、基本語句2、輸入語句read和readln功能:從鍵盤讀入數據項,并把它存到變量中去,使該數據能在以后的計算中使用。輸入語句的一般形式為:
read(v1,v2,…,vn);
readln(v1,v2,…,vn);從鍵盤逐次讀入數據,分別賦給變量v1,v2,…,vn,一行輸入多個變量值時,要求數據之間用空格分隔,readln語句要求輸入數據后必須回車,使得后繼操作從下一行的頭上開始。read語句與readln語句區別是:
1)read語句是一個接一個地讀數據,在執行完本Read語句(讀完本語句中變量所需的數據)后,下一個讀語句接著從該數據輸入行中繼續讀數據,也就是說,不換行。如:
Read(a,b);Read(c,d);Read(e);
如果輸入數據行如下:1□2□3←┘4□5□6□←┘則a,b,c,d,e的值分別為1,2,3,4,5,如果后面無讀語句則數據6是多余的,這是允許的。
Readln則不同,在讀完本Readln語句中變量所需的數據后,該數據行中剩余的數據多余無用,或者說,在讀完本Readln語句中變量所需數據后,一定要讀到一個回車,否則多余的數據無用。設有下列語句:read(a,b,c);readln(d,e);readln;readln(f,g);其中,所有變量均為整型。設輸入的數據如下:
1□2←┘3□4□5□6□7□8←┘9□10←┘11□12□13←┘
Vara,b,c,d,e,f,g:integer;beginread(a,b,c);readln(d,e);readln;readln(f,g);writeln(a,‘',b,‘',c,‘',d,‘',e,‘',f,‘',g);end.2)readln語句與read語句的第二個區別是:read后一定要有參數表,readln可以不帶參數表,即可以沒有任何輸入項,只是等待讀入一個換行符(回車)。經常用于暫停程序的運行,直到輸入一個回車3輸出語句write和writeln功能:把程序計算的結果,按適當的形式輸出到屏幕。1)、write語句格式Write(表達式1,表達式2,……);如:write(x,5,a+b);write(‘MynameisLiping’);2)、writeln語句格式:Write(表達式1,表達式2,……)或writelnWrite語句與writeln語句格式上都相似,但它們在功能上有所不同,兩個語句的區別在于:write語句將其后括號中的表達式一個接一個輸出后,沒有換行。而writeln語句則在輸出各個表達式的值后換行。例如以下兩個程序段的輸出分別為:write(1,2,3,4);write(5,6);輸出為:123456writeln(1,2,3,4);write(5,6);輸出為:1234564實數的輸出格式實數(real)以浮點型格式輸出。例如805.67對應的浮點數為8.056700000000E+02。這種實數表達方式很不方便。我們可以通過下述形式強迫實數以定點型格式輸出:實數表達式:域寬:小數位數例如,t的值設為63.123。下面三條輸出語句分別有它們右邊所示的輸出格式:
write(t);6.312300000000E+01write(t:6:2);63.12write(t:6:5);63.12300write(t:0:0);var
a,b,t:integer;
begin
read(a,b);
t:=a;
a:=b;
b:=t;
writeln('a=',a,'b=',b)
end.例:輸入兩個整數a,b,交換他們的值,并輸出.如:輸入:3034
輸出:3430四、算術運算符和算術表達式
1.算術運算符
運算符運算運算對象結果類型
+加整型、實型只要有一個運算對象是實型,結果就
-減整型、實型是實型,如果全部的運算對象都是整
*乘整型、實型型并且運算不是除法,則結果為整型
/除整型、實型若運算是除法,則結果是實型。
div整除整型整型
mod取余整型整型2、表達式是通過運算符把常量、變量、函數調用結合起來組成的。
3+x1+b除法運算1、整除運算:運算符為“div”
結果為兩個整型數除法的整數商。例如:10Div4=22、求余數運算:運算符為“mod”
結果為兩個整型數除法的余數。例如:10mod3=13、普通除法:運算符為“/”
結果為兩個任意數值相除的商(含小數)。例如:10/4=2.5整數的運算符有:DIV(整除)、mod(取余)。15Div6=2
(-15)div6=-2
15Div(-6)=-2
(-15)div(-6)=215mod6=3
(-15)mod6=-3
15mod(-6)=3
(-15)mod(-6)=-3Programex1_5;Consta=128;Varb,d:integer;c:real;Beginb:=adiv16;c:=a/b;d:=a;write(a:4,b:4,c:4,d:4);end.是通過運算符把常量、變量、函數調用結合起來組成的。
3+x1+bPASCAL表達式有以下計算優先順序規則:
1.括號內的表達式首先計算;
2.運算符的優先級有四級,按其優先順序從高到低排列為:
not;*,/,div,mod,and;
+,-,or;
=,<>,>,<,<=,>=,IN;不同優先級的兩運算符之間的操作數先與具有較高優先級的運算符進行運算;
3.同級的運算從左到右進行;另外,有一點需要指出的是,因為關系運算符的優先級最低,當用關系式構造復雜的布爾表達式時,這些關系式作為初等條件必須放在括號里。如:(x<y)and(z=y)or(x=0)若不加括號,就是一個錯誤的表達式。表達式上機練習題目:輸入一個3位的正整數,輸出他們的各位數字之和與乘積。如:輸入:436輸出:1372varn,a,b,c,x,y:integer;beginreadln(n);a:=ndiv100;b:=(ndiv10)mod10;c:=nmod10;x:=a+b+c;y:=a*b*c;writeln(x);writeln(y);end.展示實力1、寫出下列表達式的值。
12*3+6/4= 45div4= 98mod10=2、寫出下列程序段的運行結果。
Varmy:real;Beginmy:=18/4-3;Writeln(my:10:2)End.Varn,v:integer;Beginread(n);v:=nmod5;writeln(‘VP=’,v)End.{運行時輸入34}Varw1,w2:integer;Beginwriteln(‘Enter’);Read(w1,w2);W1:=0;W1:=w1+w2;Writeln(w1)End.{運行時輸入15,36}Vark1,k2,fn:integer;BeginRead(k1,k2);fn:=k1+2*k2;Iffn<7thenwriteln(fn)End.{運行時輸入1,2,3}展示實力3、從鍵盤輸入一個字符,然后顯示一個由該字符組成的圖案。輸入樣例 輸出樣例K k kkk kkkkk4、輸入兩個整數,讓計算機來求它們的和、差、積、商、整數商和余數。輸入樣例 輸出樣例5 18+5=23 18-5=13 18*5=90 18/5=3.60 18div5=3 18mod5=3展示實力3、從鍵盤輸入一個字符,然后顯示一個由該字符組成的圖案。輸入樣例 輸出樣例K k kkk kkkkk4、輸入兩個整數,讓計算機來求它們的和、差、積、商、整數商和余數。輸入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CNFAGS 13-2024液體無水氨質量分級及運輸要求
- T/CHES 119-2023洪水演進水動力實時模擬技術規程
- T/CAEPI 72-2023袋式除塵用折式濾筒技術要求
- 專業消殺試題及答案
- 上海安全員c證考試題庫及答案
- 家具專賣店加盟合同協議書4篇
- 圖書管理系統詳細設計
- 鳥的雙重呼吸
- 工控裝備:溫度控制調節器項目績效評估報告
- Γ-FE2O3項目績效評估報告
- 石墨產品設計與生產中的質量控制與優化
- 郵政郵件內部處理業務外包服務投標方案(技術方案)
- 申請軟著流程
- 食品公司配送路線優化流程
- 房屋安全性鑒定培訓
- 抑郁癥與rTMS治療
- 康復家居活動改造課件
- DB23T 3630-2023黑龍江省超低能耗建筑節能工程施工質量驗收標準
- 2024版建筑工程外架拆除承包合同2篇
- 3D打印技術基礎知到智慧樹章節測試課后答案2024年秋武漢職業技術學院
- SVG工作原理及基礎知識
評論
0/150
提交評論