版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Pascal語言程序設(shè)計(jì)信息學(xué)奧賽的內(nèi)容:
程序=計(jì)算機(jī)語言+數(shù)據(jù)結(jié)構(gòu)+算法FreePascalC/C++1、觀察和分析問題的能力;2、將實(shí)際問題轉(zhuǎn)化為數(shù)學(xué)模型的能力;3、靈活地運(yùn)用各種算法的能力;4、熟練編寫程序并將其調(diào)試通過的能力;5、根據(jù)題目的要求,自己設(shè)計(jì)測試數(shù)據(jù),檢查自己的解法是否正確、是否完備的能力.
6、具有很強(qiáng)的自學(xué)能力,需要學(xué)習(xí)有關(guān)組合數(shù)學(xué)、圖論、基本算法、數(shù)據(jù)結(jié)構(gòu)、人工智能搜索算法及數(shù)學(xué)建模等知識,還要學(xué)會高級語言和編程技巧,要具備很強(qiáng)的上機(jī)操作能力.考察的能力:選手應(yīng)具備的條件:前提:綜合成績突出1、扎實(shí)的數(shù)學(xué)基礎(chǔ)。2、很強(qiáng)的自學(xué)能力。3、與同學(xué)之間的密切友好的合作與交流。4、持之以恒,堅(jiān)持不懈的學(xué)習(xí)。5、耐得住枯燥與寂寞。6、不能以參加競賽為理由而耽誤了其他課程的學(xué)習(xí)。7、堅(jiān)決抵制玩游戲、上網(wǎng)聊天。
要將一張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時(shí)最小的n?!疽?】:求最小的n枚舉
已知正整數(shù)a和b,a<b,求a除以b的值,精確到小數(shù)點(diǎn)后1000位?!疽?】:除法問題高精度n個(gè)客人圍著一個(gè)桌子吃飯,每一個(gè)人都至少認(rèn)識其他的2個(gè)客人。請?jiān)O(shè)計(jì)程序求得n個(gè)人的一種坐法,使得每個(gè)人都認(rèn)識他左右的客人?!疽?】:安排座位12435模型轉(zhuǎn)化:構(gòu)造一個(gè)圖:人看成頂點(diǎn),認(rèn)識關(guān)系看成一條邊。目標(biāo):找一個(gè)環(huán),包含所有的點(diǎn)。哈密頓回路
有兩個(gè)無刻度標(biāo)志的水杯,分別可裝滿x升和y升的水。設(shè)另一個(gè)水缸,可以用來向水杯灌水或從水杯向水缸里倒水,兩個(gè)水杯之間也可以相互倒水。已知x升的水杯開始是盛滿水的,y升的杯子是空的,問如何通過倒水和灌水操作,用最少的步數(shù)能在y升的杯子里量出z升水。YX水缸(足夠的水,未滿)X=20Y=15Z=10?Y—>10【引例5】:倒水問題開始:200step1:515step2:015step3:150step4:1515step5:2010XY算法:廣度優(yōu)先搜索數(shù)據(jù)結(jié)構(gòu):隊(duì)列【引例6】:解n元一次方程組N<=100,給定系數(shù)aij和常數(shù)bi,求出方程組的解得情況。第一講Pascal語言基礎(chǔ)一程序的基本結(jié)構(gòu)
程序的上機(jī)調(diào)試和運(yùn)行語言基礎(chǔ)一例1:要將一張100元的大鈔票,換成等值的10元、5元、2元、1元一張的小鈔票,每次換成40張小鈔票,每種至少1張。如,有一種換法:10元:9張5元:1張2元:2張1元:1張問:一共有多少種換法。程序的上機(jī)調(diào)試和運(yùn)行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時(shí)最小的n。vars:real;n:integer;begins:=0;n:=0;whiles<=10dobeginn:=n+1;s:=s+1/n;end;writeln(n);end.例3、編一個(gè)程序,從鍵盤輸入一個(gè)真分?jǐn)?shù)的分子和分母,輸出它的小數(shù)形式,精確到小數(shù)點(diǎn)后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.上機(jī)調(diào)試運(yùn)行步驟:1、運(yùn)行:FreePascal2、filenew:新建文件3、compilemake:編譯,找錯(cuò)誤。4、run—〉run:運(yùn)行5、debugoutput(Alt+F5):察看結(jié)果program程序名;{可以省略}
var變量說明;
begin
語句;
語句;
……
語句;
end.Pascal程序的基本結(jié)構(gòu)
vars:real;n:integer;begins:=0;n:=0;whiles<=10dobeginn:=n+1;s:=s+1/n;end;writeln(n);end.示例:程序的基本結(jié)構(gòu)
一、變量的定義說明:二、Pascal數(shù)據(jù)類型(整型、實(shí)型)三、基本語句(賦值語句、輸入語句read、輸出語句write)四、算術(shù)運(yùn)算符和算術(shù)表達(dá)式五、標(biāo)準(zhǔn)函數(shù)(數(shù)值型函數(shù))語言基礎(chǔ)一一、變量的定義說明:在程序中用到的所有變量必須事先定義。格式:Var<變量表>
:
<變量類型>;
┆
<變量表>
:
<變量類型>;如:輸入3個(gè)整數(shù),求這3個(gè)數(shù)的平均值。Vara,b,c:integer;aver:real;說明:1)、同一類型的變量可以放在一起,也可分開寫,不同類型的不能放在一起。2)、變量名:可以是一個(gè)字母,也可以是多個(gè)字母和數(shù)字的組合,但字母開頭。3)、不能重復(fù)定義變量。二、Pascal數(shù)據(jù)類型Vara,b,c:integer;Beginreadln(a);readln(b);c:=a+b;writeln(c):End.12020010000200002000030000試以下3組數(shù)據(jù):輸入整數(shù)a和b,輸出a+b的值。整型、實(shí)型、(字符型和布爾型)1、整型
類型數(shù)值范圍占字節(jié)數(shù)
Byte0..2551Word0..655352Shortint-128..1271
Integer-32768..32767;2
Longint-2147483648..21474836474Longword0..42949672954
Int64-9223372036854775808..
92233720368547758078QWord0..1844674407370955161582、實(shí)數(shù)
類型范圍有效位數(shù)占用字節(jié)
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.?例:輸入:兩個(gè)整數(shù)a、b(<=3000),輸出它們的乘積c,商d。實(shí)數(shù)的定點(diǎn)型格式輸出:實(shí)數(shù)表達(dá)式:域?qū)挘盒?shù)位數(shù)T=63.123write(t);6.312300000000E+01write(t:6:2);63.12write(t:6:5);63.12300如果要求小數(shù)點(diǎn)后精確2位小數(shù).Writeln(x:0:2);a,b:integer;C:longint;d:real;Writeln(d:0:2);字符類型Char類型用單引號括起來一個(gè)單個(gè)字符。字母作為字符型時(shí),大小寫是不等價(jià)的,并且字符型只允許單引號中有一個(gè)字符,否則就是字符串。Vars:char;s:=‘B’布爾類型Boolean類型一個(gè)布爾型數(shù)據(jù)用來存放邏輯值(布爾值)。
只有兩個(gè)真和假,分別用標(biāo)準(zhǔn)常量true和False來表示。布爾類型的運(yùn)算符有:not(非)、and(與)、or(或)vara,b:boolean;A:=4>3;b:=2>3;1、賦值語句
賦值語句是最簡單的語句.
1)、賦值語句的格式變量名:=表達(dá)式;其中“:=”稱為賦值號。
2)、執(zhí)行過程計(jì)算機(jī)先計(jì)算賦值號右邊表達(dá)式的值,然后將表達(dá)式的值賦給變量名代表的變量。如:A:=(9*8)-(2-1);
A:=A+1
三、基本語句2、輸入語句read和readln功能:從鍵盤讀入數(shù)據(jù)項(xiàng),并把它存到變量中去,使該數(shù)據(jù)能在以后的計(jì)算中使用。輸入語句的一般形式為:
read(v1,v2,…,vn);
readln(v1,v2,…,vn);從鍵盤逐次讀入數(shù)據(jù),分別賦給變量v1,v2,…,vn,一行輸入多個(gè)變量值時(shí),要求數(shù)據(jù)之間用空格分隔,readln語句要求輸入數(shù)據(jù)后必須回車,使得后繼操作從下一行的頭上開始。read語句與readln語句區(qū)別是:
1)read語句是一個(gè)接一個(gè)地讀數(shù)據(jù),在執(zhí)行完本Read語句(讀完本語句中變量所需的數(shù)據(jù))后,下一個(gè)讀語句接著從該數(shù)據(jù)輸入行中繼續(xù)讀數(shù)據(jù),也就是說,不換行。如:
Read(a,b);Read(c,d);Read(e);
如果輸入數(shù)據(jù)行如下:1□2□3←┘4□5□6□←┘則a,b,c,d,e的值分別為1,2,3,4,5,如果后面無讀語句則數(shù)據(jù)6是多余的,這是允許的。
Readln則不同,在讀完本Readln語句中變量所需的數(shù)據(jù)后,該數(shù)據(jù)行中剩余的數(shù)據(jù)多余無用,或者說,在讀完本Readln語句中變量所需數(shù)據(jù)后,一定要讀到一個(gè)回車,否則多余的數(shù)據(jù)無用。設(shè)有下列語句:read(a,b,c);readln(d,e);readln;readln(f,g);其中,所有變量均為整型。設(shè)輸入的數(shù)據(jù)如下:
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語句的第二個(gè)區(qū)別是:read后一定要有參數(shù)表,readln可以不帶參數(shù)表,即可以沒有任何輸入項(xiàng),只是等待讀入一個(gè)換行符(回車)。經(jīng)常用于暫停程序的運(yùn)行,直到輸入一個(gè)回車3輸出語句write和writeln功能:把程序計(jì)算的結(jié)果,按適當(dāng)?shù)男问捷敵龅狡聊弧?)、write語句格式Write(表達(dá)式1,表達(dá)式2,……);如:write(x,5,a+b);write(‘MynameisLiping’);2)、writeln語句格式:Write(表達(dá)式1,表達(dá)式2,……)或writelnWrite語句與writeln語句格式上都相似,但它們在功能上有所不同,兩個(gè)語句的區(qū)別在于:write語句將其后括號中的表達(dá)式一個(gè)接一個(gè)輸出后,沒有換行。而writeln語句則在輸出各個(gè)表達(dá)式的值后換行。例如以下兩個(gè)程序段的輸出分別為:write(1,2,3,4);write(5,6);輸出為:123456writeln(1,2,3,4);write(5,6);輸出為:1234564實(shí)數(shù)的輸出格式實(shí)數(shù)(real)以浮點(diǎn)型格式輸出。例如805.67對應(yīng)的浮點(diǎn)數(shù)為8.056700000000E+02。這種實(shí)數(shù)表達(dá)方式很不方便。我們可以通過下述形式強(qiáng)迫實(shí)數(shù)以定點(diǎn)型格式輸出:實(shí)數(shù)表達(dá)式:域?qū)挘盒?shù)位數(shù)例如,t的值設(shè)為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.例:輸入兩個(gè)整數(shù)a,b,交換他們的值,并輸出.如:輸入:3034
輸出:3430四、算術(shù)運(yùn)算符和算術(shù)表達(dá)式
1.算術(shù)運(yùn)算符
運(yùn)算符運(yùn)算運(yùn)算對象結(jié)果類型
+加整型、實(shí)型只要有一個(gè)運(yùn)算對象是實(shí)型,結(jié)果就
-減整型、實(shí)型是實(shí)型,如果全部的運(yùn)算對象都是整
*乘整型、實(shí)型型并且運(yùn)算不是除法,則結(jié)果為整型
/除整型、實(shí)型若運(yùn)算是除法,則結(jié)果是實(shí)型。
div整除整型整型
mod取余整型整型2、表達(dá)式是通過運(yùn)算符把常量、變量、函數(shù)調(diào)用結(jié)合起來組成的。
3+x1+b除法運(yùn)算1、整除運(yùn)算:運(yùn)算符為“div”
結(jié)果為兩個(gè)整型數(shù)除法的整數(shù)商。例如:10Div4=22、求余數(shù)運(yùn)算:運(yùn)算符為“mod”
結(jié)果為兩個(gè)整型數(shù)除法的余數(shù)。例如:10mod3=13、普通除法:運(yùn)算符為“/”
結(jié)果為兩個(gè)任意數(shù)值相除的商(含小數(shù))。例如:10/4=2.5整數(shù)的運(yùn)算符有: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.是通過運(yùn)算符把常量、變量、函數(shù)調(diào)用結(jié)合起來組成的。
3+x1+bPASCAL表達(dá)式有以下計(jì)算優(yōu)先順序規(guī)則:
1.括號內(nèi)的表達(dá)式首先計(jì)算;
2.運(yùn)算符的優(yōu)先級有四級,按其優(yōu)先順序從高到低排列為:
not;*,/,div,mod,and;
+,-,or;
=,<>,>,<,<=,>=,IN;不同優(yōu)先級的兩運(yùn)算符之間的操作數(shù)先與具有較高優(yōu)先級的運(yùn)算符進(jìn)行運(yùn)算;
3.同級的運(yùn)算從左到右進(jìn)行;另外,有一點(diǎn)需要指出的是,因?yàn)殛P(guān)系運(yùn)算符的優(yōu)先級最低,當(dāng)用關(guān)系式構(gòu)造復(fù)雜的布爾表達(dá)式時(shí),這些關(guān)系式作為初等條件必須放在括號里。如:(x<y)and(z=y)or(x=0)若不加括號,就是一個(gè)錯(cuò)誤的表達(dá)式。表達(dá)式上機(jī)練習(xí)題目:輸入一個(gè)3位的正整數(shù),輸出他們的各位數(shù)字之和與乘積。如:輸入: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.展示實(shí)力1、寫出下列表達(dá)式的值。
12*3+6/4= 45div4= 98mod10=2、寫出下列程序段的運(yùn)行結(jié)果。
Varmy:real;Beginmy:=18/4-3;Writeln(my:10:2)End.Varn,v:integer;Beginread(n);v:=nmod5;writeln(‘VP=’,v)End.{運(yùn)行時(shí)輸入34}Varw1,w2:integer;Beginwriteln(‘Enter’);Read(w1,w2);W1:=0;W1:=w1+w2;Writeln(w1)End.{運(yùn)行時(shí)輸入15,36}Vark1,k2,fn:integer;BeginRead(k1,k2);fn:=k1+2*k2;Iffn<7thenwriteln(fn)End.{運(yùn)行時(shí)輸入1,2,3}展示實(shí)力3、從鍵盤輸入一個(gè)字符,然后顯示一個(gè)由該字符組成的圖案。輸入樣例 輸出樣例K k kkk kkkkk4、輸入兩個(gè)整數(shù),讓計(jì)算機(jī)來求它們的和、差、積、商、整數(shù)商和余數(shù)。輸入樣例 輸出樣例5 18+5=23 18-5=13 18*5=90 18/5=3.60 18div5=3 18mod5=3展示實(shí)力3、從鍵盤輸入一個(gè)字符,然后顯示一個(gè)由該字符組成的圖案。輸入樣例 輸出樣例K k kkk kkkkk4、輸入兩個(gè)整數(shù),讓計(jì)算機(jī)來求它們的和、差、積、商、整數(shù)商和余數(shù)。輸入
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡易房屋加固維修合同
- 展覽合作履約保證協(xié)議書
- 土地租賃居間合同2024年
- 2024年紅磚買賣合同范本
- 2024年軟件開發(fā)工程項(xiàng)目居間合同協(xié)議
- 派遣合同法律風(fēng)險(xiǎn)防控
- 建筑安裝工程安全合同書模板
- 標(biāo)準(zhǔn)建筑施工合同書格式
- 婚禮慶典合作服務(wù)合同范本
- 2024二手設(shè)備買賣協(xié)議書
- 2024-2025學(xué)年二年級上學(xué)期數(shù)學(xué)期中模擬試卷(蘇教版)(含答案解析)
- 勞務(wù)派遣 投標(biāo)方案(技術(shù)方案)
- 遼寧抗日戰(zhàn)爭的起始地
- 小學(xué)六年級數(shù)學(xué)100道題解分?jǐn)?shù)方程
- 禮修于心 儀養(yǎng)于行 課件-2023-2024學(xué)年高一上學(xué)期文明禮儀在心中養(yǎng)成教育主題班會
- 麻醉學(xué)第二十二章 多器官功能障礙綜合征
- 入團(tuán)志愿書(2016版本)(可編輯打印標(biāo)準(zhǔn)A4) (1)
- 實(shí)驗(yàn)室各崗位及操作生物安全風(fēng)險(xiǎn)評估完整版
- 《現(xiàn)代酒店管理概論》第十一章酒店安全與危機(jī)管理
- 客戶資信管理制度
- 大學(xué)生網(wǎng)購市場調(diào)研報(bào)告
評論
0/150
提交評論