第1講-Pascal語言基礎(chǔ)知識一_第1頁
第1講-Pascal語言基礎(chǔ)知識一_第2頁
第1講-Pascal語言基礎(chǔ)知識一_第3頁
第1講-Pascal語言基礎(chǔ)知識一_第4頁
第1講-Pascal語言基礎(chǔ)知識一_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論