PASCAL第7講 函數和過程二_第1頁
PASCAL第7講 函數和過程二_第2頁
PASCAL第7講 函數和過程二_第3頁
PASCAL第7講 函數和過程二_第4頁
PASCAL第7講 函數和過程二_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第7講函數和過程二例1、

var

x,y:integer;Procedurechange;

var

x:integer;beginx:=2;y:=2;

writeln(x,y);end;Beginx:=1;y:=1;

writeln(x,y);change;

writeln(x,y);End.答案:11

22

12一、全局變量和局部變量1、在子程序中定義的變量稱為局部變量。2、在程序的一開始定義的變量稱為全局變量。一般情況下:全局變量作用域是整個程序;局部變量作用域是定義該變量的子程序。特殊情況下:當全局變量與局部變量同名時:在定義局部變量的子程序內,局部變量起作用;全局變量不起作用。例2、var

a,b:integer;

proceduref(a,b:integer);

var

c:integer;begina:=5;b:=7;c:=a+b;end;begina:=2;b:=3;

f(a,b);

writeln(a,'',b);end.{23}二、值參和變量參數1、var

a,b:integer;

proceduref(a,b:integer);begina:=a+1;b:=b+3;

writeln(a,'',b);end;begina:=2;b:=3;

f(a,b);

writeln(a,'',b);end.2、var

a,b:integer;

proceduref(var

x,y:integer);beginx:=x+1;y:=y+3;

writeln(x,'',y);end;begina:=2;b:=3;

f(a,b);

writeln(a,'',b);end.3623636◆子程序中的參數是形式參數,簡稱形參.◆主程序中調用時的參數是實參.形參分為:值形參、變量形參1、值形參——傳值:調用時臨時開辟內存空間,調用結束,內存空間釋放,所以不改變實在參數的值。

2a3b2x3y2、變量形參(有var說明)——傳地址:調用時不再開辟內存單元空間,變量參數直接指向相應的實參地址,所以改變了變量形參相當于改變了實參的值。2a3bxy3、var

a,b:integer;proceduref(var

x:integer;y:integer);beginx:=x+1;y:=y+3;

writeln(x,'',y);end;begina:=2;b:=3;

f(a,b);

writeln(a,'',b);end.4、var

a,b:integer;procedurechange(a,b:integer);

var

t:integer;begint:=a;a:=b;b:=t;

writeln(a,'',b);end;begina:=5;b:=8;

change(a,b);

writeln(a,'',b);end.5、var

a,b:integer;procedurechange(var

a,b:integer);

var

t:integer;begint:=a;a:=b;b:=t;

writeln(a,'',b);end;begina:=5;b:=8;

change(a,b);

writeln(a,'',b);end.重點:如果通過調用子程序來改變主程序中變量的值。兩種方法:

1)、使用變量參數。

2)、或者使用無參過程。var

a,b:integer;procedurechange;

var

t:integer;begint:=a;a:=b;b:=t;end;begina:=5;b:=8;change;

writeln(a,'',b);end.var

a,b:integer;procedurechange(var

x,y:integer);

var

t:integer;begint:=x;x:=y;y:=t;end;begina:=5;b:=8;

change(a,b);

writeln(a,'',b);end.使用全避變量使用變量形參2、排序算法//1vara:array[1..10]ofinteger;

n,i,j:integer;

procedureswap(x,y:integer);

var

t:integer;begint:=x;x:=y;y:=t;end;begin

readln(n);fori:=1tondoread(a[i]);fori:=1ton-1doforj:=i+1tondoifa[i]>a[j]thenswap(a[i],a[j]);fori:=1tondowrite(a[i],'');end.//2變量參數vara:array[1..10]ofinteger;

n,i,j:integer;procedureswap(var

x,y:integer);

var

t:integer;begint:=x;x:=y;y:=t;end;begin

readln(n);fori:=1tondoread(a[i]);fori:=1ton-1doforj:=i+1tondoifa[i]>a[j]thenswap(a[i],a[j]);fori:=1tondowrite(a[i],'');end.//3全局變量vara:array[1..10]ofinteger;

n,i,j:integer;procedureswap;

var

t:integer;begint:=a[i];a[i]:=a[j];a[j]:=t;end;begin

readln(n);fori:=1tondoread(a[i]);fori:=1ton-1doforj:=i+1tondoifa[i]>a[j]thenswap;fori:=1tondowrite(a[i],'');end.//4變量參數type

datatype=array[1..10]ofinteger;var

a:datatype;

n,i,j:integer;proceduresort(var

a:datatype);

var

i,j,t:integer;beginfori:=1ton-1doforj:=i+1tondoifa[i]>a[j]thenbegin

t:=a[i];a[i]:=a[j];a[j]:=t;

end;end;begin

readln(n);fori:=1tondoread(a[i]);

sort(a);fori:=1tondowrite(a[i],'');end.//3全局變量vara:array[1..10]ofinteger;

n,i,j:integer;proceduresort;

var

t:integer;beginfori:=1ton-1doforj:=i+1tondoifa[i]>a[j]thenbegin

t:=a[i];a[i]:=a[j];a[j]:=t;

end;end;begin

readln(n);fori:=1tondoread(a[i]);sort;fori:=1tondowrite(a[i],'');end.練習1、Var

x,u:integer;Procedu

溫馨提示

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

評論

0/150

提交評論