• 實(shí)訓(xùn)指導(dǎo)
    您當(dāng)前的位置: 首頁>實(shí)訓(xùn)指導(dǎo)

    實(shí)驗(yàn)七

    子程序、過程與函數(shù)的使用

    發(fā)布時(shí)間: 2018-11-27      信息來源:       閱讀次數(shù):

    實(shí)驗(yàn)七    子程序、過程與函數(shù)的使用

    一、實(shí)驗(yàn)?zāi)康?
    1.
    掌握用戶自定義函數(shù)、過程的定義。
    2.
    掌握用戶自定義函數(shù)及過程的建立方法。
    3.
    掌握子程序的建立和調(diào)用方法。
    4.
    理解在調(diào)用過程和函數(shù)時(shí)參數(shù)傳遞的意義和功能。

    二、實(shí)驗(yàn)內(nèi)容及上機(jī)步驟
    【上機(jī)題一】
    編寫自定義函數(shù)求一自然數(shù)x的階乘。在主程序中調(diào)用函數(shù),計(jì)算s=a!+b!+c!
    操作要求:
    1. 由鍵盤輸入3個(gè)數(shù),分別存放在變量a,b,c中。
    2. 設(shè)計(jì)一個(gè)自定義函數(shù)FAC(),用它來求x!
    3. 由主程序調(diào)用3次函數(shù),即求得結(jié)果。
    【上機(jī)步驟】
    本題的知識(shí)點(diǎn)是用戶自定義函數(shù)的建立及調(diào)用方法,程序代碼如下:
    CLEAR
    SET TALK OFF
    INPUT
    “請(qǐng)輸入a” TO a
    INPUT “請(qǐng)輸入b” TO b
    INPUT “請(qǐng)輸入c” TO c
    s=FAC(a)+FAC(b)+FAC(c)

    ?
    “三個(gè)數(shù)的階乘之和為”,s
    SET TALK ON
    RETURN
    FUNCTION FAC()
    PARAMETERS n
    f=1
    FOR i=1 to n
    f=f*i
    ENDFOR
    RETURN f

    【上機(jī)題二】
    用過程的方法來求1000內(nèi)的素?cái)?shù)的個(gè)數(shù)。
    【上機(jī)步驟】
    本題的知識(shí)點(diǎn)是過程的建立方法。素?cái)?shù)的算法需要用到雙重循環(huán),外層循環(huán)用來循環(huán)1到1000每個(gè)數(shù),內(nèi)層循環(huán)進(jìn)行素?cái)?shù)的判斷。
    用過程的方法來解決,則把內(nèi)層循環(huán)的內(nèi)容用過程來描述,程序代碼如下:
    CLEAR
    SET TALK OFF
    sum=0
    For i=1 to 1000
    prime=.T.
    DO SUB1 WITH i
    IF prime
    sum=sum+1
    ENDIF
    ENDFOR
    ?
    “1000內(nèi)素?cái)?shù)的個(gè)數(shù)為:”,sum
    SET TALK ON
    RETURN
    PROCEDURE SUB1
    PARAMETERS x
    FOR j=2 TO INT(SQRT(x))
    IF MOD(x,j)=0
    prime=.F.
    EXIT
    ENDIF
    ENDFOR
    RETURN

    【上機(jī)題三】
    驗(yàn)證以下過程程序,并檢查輸出結(jié)果。
    【上機(jī)步驟】
    本題的知識(shí)點(diǎn)是理解在調(diào)用過程或函數(shù)時(shí)參數(shù)傳遞的意義和功能。
    (1)建立一個(gè)程序文件,程序代碼如下:
    SET TALK OFF
    x=15
    y=7
    DO SUB WITH x,(y)
    ? x,y
    SET TALK ON
    RETURN
    PROCEDURE SUB
    PARAMETERS a,b
    a=a
    +b
    b=a-b
    RETURN
    保存該程序文件并運(yùn)行程序,輸出結(jié)果為22,7。因?yàn)閤為按地址傳遞,其值會(huì)隨著形參的變化而變化。y為值傳遞,不管形參如何變化,實(shí)參y的值不變。
    把x,y都改成地址傳遞,再次運(yùn)行程序,觀察程序運(yùn)行結(jié)果有沒有變化?
    (2) 建立一個(gè)程序文件,程序代碼如下:
    SET TALK OFF
    x=9
    y=13
    z=FU(x,y)
    ? z
    SET TALK ON
    RETURN
    FUNCTION FU
    PARAMETERS a,b
    a=a*b
    RETURN (a)
    保存該程序文件并運(yùn)行程序,輸出結(jié)果為117。

    把自定義函數(shù)中的RETURN(a)語句改為RETURN(b-a),再次運(yùn)行程序,觀察返回結(jié)果是多少?


    午夜免费啪在线观看视频,国产日韩欧美久久一区,久久无码高潮喷潮,国产日韩久久久久老熟女 亚太影院 柯西贝尔-游戏赚网 在线观看肉片AV网站免费