關(guān)于全局變量和局部變量_第1頁
關(guān)于全局變量和局部變量_第2頁
關(guān)于全局變量和局部變量_第3頁
關(guān)于全局變量和局部變量_第4頁
關(guān)于全局變量和局部變量_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、關(guān)于全局變量和局部變量     在子程序中定義的變量稱為局部變量,在程序的一開始定義的變量稱為全局變量。全局變量作用域是整個(gè)程序;局部變量作用域是定義該變量的子程序。當(dāng)全局變量與局部變量同名時(shí):在定義局部變量的子程序內(nèi),局部變量起作用;在其它地方全局變量起作用。 例:全局變量和局部變量。 program local_global;var i,k:integer;procedure sub1;var i,j:integer; begin  i:=17;  writeln('i in sub=',i);  wri

2、teln('k in sub=',k); end;begin i:=2;k:=9; writeln('i in main=',i); writeln('k in sub=',k); sub1; writeln('i in main=',i); writeln('j in main=',j); end. 上述程序運(yùn)行時(shí)將出現(xiàn)Unknown Identfier;因?yàn)樽兞縥在主程序中沒定義。 當(dāng)刪除本語句時(shí)。運(yùn)行結(jié)果如下: i in main

3、2 k in main9 i in sub17 k in sub9 i in main2自定義函數(shù)Pascal允許用戶在程序中自己說明定義新的函數(shù)并在程序中調(diào)用這些函數(shù)。函數(shù)說明的一般形式Function <函數(shù)名>(<參數(shù)表>):<函數(shù)類型><說明部分>Begin<函數(shù)體>End;注:1、保留字function必不可省,函數(shù)名由合法的標(biāo)識(shí)符指出。參數(shù)表由形式參數(shù)名表,和說明形式參數(shù)的類型標(biāo)識(shí)符組成。函數(shù)類型即結(jié)果類型。 2、在說明部分可以包括函數(shù)所需要的常量說明、類型說明和變量說明,也可以包括其它函數(shù)或過程說明。也可以沒有說明。 3

4、、函數(shù)體描述了函數(shù)執(zhí)行的數(shù)據(jù)處理。其中至少包括一個(gè)給函數(shù)名賦值的語句 <函數(shù)名>:=表達(dá)式 4、函數(shù)調(diào)用格式:<函數(shù)名>(<實(shí)在參數(shù)表>)例5.1:利用自定義函數(shù)求x3+x6Program ex51; Var x,y:real; 函數(shù)SC的說明Function sc(t:real):real; Begin Sc:=t*t*t; End;主程序Begin Read(x); y:=sc(x)+sqr(sc(x);write(y)end.例5.2編程找出由鍵盤任意輸入五個(gè)整數(shù)中的最大整數(shù)。解:設(shè)輸入的五個(gè)整數(shù)為n1、n2、n3、n4、n5,為了便于處理,引入一個(gè)中

5、間變量t1,按如下步驟處理:令t1=n1;將t1與n2比較,將兩者中較大數(shù)放入t1;將t1與n3比較,將兩者中較大數(shù)放入t1; 將t1與n4比較將兩者中較大數(shù)放入t1;  將t1與n5比較將兩者中較大放入t1; 經(jīng)過以上5步處理后,t1即為5個(gè)數(shù)中最大者。從上面規(guī)劃的步驟看來,從步驟到步驟 需處理的目標(biāo)是相同的,因此我們可以設(shè)計(jì)一段子程序Max(x1,x2),以找出x1和x2中最大的值并返回。Pascal程序:Program Exam41_a;Var n1,n2,n3,n4,n5,t1 : integer;Function max(x1,x2 : integer)

6、 : integer;Begin  If x1>x2 then Max := x1            Else Max := x2;End; Begin Readln(n1,n2,n3,n4,n5);T1 := n1;T1 := Max(t1,n2);T1 := Max(t1,n3);T1 := Max(t1,n4);T1 := Max(t1,n5);Writeln(Max number : ,t1);End. 例5.2求任意輸入的五個(gè)自然數(shù)的最

7、大公約數(shù)。解:自定義一個(gè)專門求兩自然數(shù)的最大公約數(shù)的函數(shù)GCD;   調(diào)用自定義函數(shù),第一次求前兩個(gè)數(shù)的最大公約數(shù);從第二次開始,用每次求得的最大公約數(shù)與下一個(gè)數(shù)再求兩個(gè)數(shù)最大公約數(shù),直到最后。本題共四次“求兩個(gè)數(shù)的最大公約數(shù)”, 設(shè)輸入的五個(gè)自然數(shù)分別是a1,a2,a3,a4,a5,采用如下步驟:求a1, a2兩個(gè)數(shù)的最大公約數(shù)存入a1;求a1, a3兩個(gè)數(shù)的最大公約數(shù)存入a1;求a1, a4兩個(gè)數(shù)的最大公約數(shù)存入a1;求a1, a5兩個(gè)數(shù)的最大公約數(shù)存入a1; 輸出 a1,此時(shí)的a1已是五個(gè)數(shù)的最大公約數(shù)。Pascal程序:Program Exam42;Var a1,a

8、2,a3,a4,a5: integder;function GCD(x1,x2: integer): integer;         自定義函數(shù) Var temp:integer;begin  While  x20  do  begin    temp:=x1 mod x2; x1:=x2;x2:=tempend;  GCD:=x1end; Begin      

9、  主程序   readln(a1,a2,a3,a4,a5);          a1:GCD(a1,a2);                               調(diào)用函數(shù)GCD &

10、#160; a1:GCD(a1,a3);  a1:GCD(a1,a4);  a1:GCD(a1,a5);  Writeln(a1);End.練習(xí)1:求一個(gè)整數(shù)從右邊開始數(shù)第K個(gè)數(shù)字的值。program ex52; var n,k,x:integer; function dig(n,k:integer):integer; begin repeat dig:=n mod 10; n:=n div 10; k:=k-1; until k=0; end; begin read(n,k); x:=dig(n,k); write(x); end.練習(xí)2:判斷某個(gè)數(shù)字是否在某個(gè)

11、整數(shù)中出現(xiàn)。Program ex; Var n,d:integer;che:boolean;function check(n,d:integer):Boolean; var m:integer;begin repeat m:=n mod 10;n:=n div 10until (m=d) or (n=0);check:=m=dend;beginread(n,d);che:=check(n,d);write(che)end.例5.3 定義產(chǎn)生隨數(shù)的函數(shù),并借助它生成兩位整數(shù)乘法的算式,讓學(xué)生回答,計(jì)算機(jī)給出正確與否的判斷。當(dāng)學(xué)生回答-1是結(jié)束。program game; var x,y,z,an

12、swer:integer; seed:real; function rand(var seed:real):real; const a=93.0; m=8192.0; c=1.0; begin seed:=a*seed+c; seed:=round(seed/m-trunc(seed/m)*m); rand:=seed/m end; begin seed:=0.7823; repeat x:=trunc(rand(seed)*100); y:=trunc(rand(seed)*100); write(x:2,'*',y:2,'='); read(answer); if answer=x*y then writeln('right') else writeln('wrong'); until

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論