亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C語(yǔ)言的數(shù)學(xué)菜單的設(shè)計(jì)與實(shí)現(xiàn)

        2021-12-17 00:50:31嚴(yán)宇
        電腦知識(shí)與技術(shù) 2021年33期
        關(guān)鍵詞:函數(shù)調(diào)用

        嚴(yán)宇

        摘要:函數(shù)的定義與調(diào)用是C語(yǔ)言初學(xué)者的一個(gè)難點(diǎn),用已知的數(shù)學(xué)知識(shí)去輔助理解未知的C語(yǔ)言函數(shù)知識(shí),可以加速對(duì)新知識(shí)自定義C語(yǔ)言函數(shù)的學(xué)習(xí)過(guò)程,新知識(shí)可以反過(guò)來(lái)提升老知識(shí)的泛化能力。運(yùn)用C語(yǔ)言編寫了實(shí)現(xiàn)數(shù)學(xué)功能的三個(gè)函數(shù),由易到難,從簡(jiǎn)單到復(fù)雜地定義和調(diào)用函數(shù),取得較好的學(xué)習(xí)效果。

        關(guān)鍵詞: C語(yǔ)言; 函數(shù)定義;函數(shù)調(diào)用; 遷移學(xué)習(xí)法

        中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

        文章編號(hào):1009-3044(2021)33-0063-02

        開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

        Design and Realization of Math Menu Based on C Language Application of case-when in MySQL

        YAN Yu

        (Henan Normal University, Xinxiang 453007 China)

        Abstract: Function definition and call is a difficult point for beginners of C language. Using known mathematical knowledge to assist in understanding unknown C language function knowledge can accelerate the learning process of customizing C language function with new knowledge, and the new knowledge can in turn improve the generalization ability of the old knowledge. Using C language to write three functions to realize the mathematical function, from easy to difficult, from simple to complex to define and call the function, get better learning effect.

        Key words:C language; function definition;function call; transfer learning method

        1 問(wèn)題提出

        C語(yǔ)言是多數(shù)專業(yè)的大一新生必學(xué)的一門專業(yè)基礎(chǔ)課,學(xué)習(xí)目的是掌握程序設(shè)計(jì)的基本方法,會(huì)用計(jì)算機(jī)解決本專業(yè)的實(shí)際問(wèn)題。C 語(yǔ)言是函數(shù)的語(yǔ)言,自定義函數(shù)的定義與調(diào)用是C語(yǔ)言初學(xué)者的一個(gè)重難點(diǎn),很多初學(xué)者學(xué)習(xí)函數(shù)時(shí)非常吃力,不能靈活應(yīng)用函數(shù)進(jìn)行程序設(shè)計(jì)。

        為了突破C語(yǔ)言函數(shù)學(xué)習(xí)這一難點(diǎn),培養(yǎng)正確定義函數(shù)和調(diào)用函數(shù)解決實(shí)際問(wèn)題的能力,筆者采用了遷移學(xué)習(xí)法,用已知的數(shù)學(xué)知識(shí)去輔助理解未知的C語(yǔ)言函數(shù)知識(shí),可以加速對(duì)新知識(shí)自定義C語(yǔ)言函數(shù)的學(xué)習(xí)過(guò)程,新知識(shí)可以反過(guò)來(lái)提升老知識(shí)的泛化能力。解除了學(xué)習(xí)C語(yǔ)言函數(shù)的疑惑,取得較好的學(xué)習(xí)效果。

        2 實(shí)現(xiàn)方案

        實(shí)踐表明,初學(xué)者不能正確運(yùn)用函數(shù)解決實(shí)際問(wèn)題的原因主要有兩個(gè),一方面是不能合理地確定參數(shù)的個(gè)數(shù)和類型,即正確定義函數(shù);另一方面是不能適當(dāng)?shù)剡x取實(shí)參,正確調(diào)用函數(shù)。為了破解這些學(xué)習(xí)難點(diǎn),以及對(duì)函數(shù)的定義和調(diào)用做到舉一反三的考慮,也為了方便日常的數(shù)學(xué)計(jì)算,運(yùn)用C語(yǔ)言編寫了實(shí)現(xiàn)數(shù)學(xué)功能的三個(gè)函數(shù),并且以菜單的形式進(jìn)行展現(xiàn)和調(diào)用。

        2.1 菜單設(shè)計(jì)

        先確定一個(gè)主菜單,運(yùn)用多路選擇的switch語(yǔ)句設(shè)計(jì),將其分為求組合數(shù),求階乘,求斐波那契數(shù)列三個(gè)部分,用戶可根據(jù)所需情況選擇相應(yīng)的函數(shù)計(jì)算,而后分析各個(gè)函數(shù)執(zhí)行的功能,分別定義相應(yīng)函數(shù),編寫各種語(yǔ)句以實(shí)現(xiàn)函數(shù)功能,最后在主函數(shù)上實(shí)現(xiàn)函數(shù)調(diào)用,用于日常數(shù)學(xué)的快速運(yùn)算,增加用戶的辦事效率和準(zhǔn)確性。

        2.2 菜單簡(jiǎn)介

        為了方便用戶快速熟悉并使用程序進(jìn)行數(shù)學(xué)計(jì)算,主菜單有詳細(xì)的文字介紹,用戶打開程序會(huì)直接彈出能進(jìn)行的三項(xiàng)數(shù)學(xué)運(yùn)算,以阿拉伯?dāng)?shù)字加以區(qū)分,最下方的有可選擇項(xiàng),用戶根據(jù)所需選擇對(duì)應(yīng)的阿拉伯?dāng)?shù)字,程序會(huì)跳轉(zhuǎn)至具體子菜單,用戶根據(jù)提示輸入具體數(shù)字參與運(yùn)算。主菜單與子菜單的存在將使用戶操作更加便捷易懂,增加用戶體驗(yàn)感。

        3 具體實(shí)現(xiàn)

        3.1 主菜單的設(shè)計(jì)和實(shí)現(xiàn)

        為了增強(qiáng)界面的整齊性和美觀性,主菜單在功能介紹的前后分別用符號(hào)分隔開,整體使用漢語(yǔ)解釋說(shuō)明以方便用戶操作,主菜單的程序代碼和運(yùn)行結(jié)果如下。

        main()

        {int n,num,k;

        printf("\t\t\t? 歡迎來(lái)到數(shù)學(xué)王國(guó) \n\n");

        printf("-----------------------------------------------------\n");

        printf("可進(jìn)行的數(shù)學(xué)運(yùn)算有:\n");

        printf("\t\t\t 1.計(jì)算組合數(shù):\n\n");

        printf("\t\t\t 2,求斐波那契數(shù)列:\n\n");

        printf("\t\t\t 3.計(jì)算n的階乘:\n\n");

        printf("-----------------------------------------------------\n");

        printf("請(qǐng)選擇,輸入數(shù)字n:");

        scanf("%d",&n);

        printf("請(qǐng)輸入?yún)⑴c運(yùn)算數(shù)num,k:");

        scanf("%d%d",&num,&k);

        switch(n)

        {case 1:Zuheshu(num,k);

        break;

        case 2:Fib(num,k);

        break;

        case 3:printf("n的階乘為%ld:\n",F(xiàn)act(num));

        break;}}

        3.2 階乘函數(shù)的設(shè)計(jì)與實(shí)現(xiàn)

        求正整數(shù)n的階乘這個(gè)問(wèn)題,需要知道正整數(shù)n的值 ,才能求解出來(lái)n這個(gè)正整數(shù)的階乘的值 。所以,定義階乘函數(shù)時(shí),依據(jù)實(shí)際需求,確定該函數(shù)的形式參數(shù)有而且只有一個(gè)整數(shù)n,又因?yàn)閚的階乘的值仍然是整數(shù) ,但是數(shù)值較大,因此函數(shù)的返回值類型需要定義為長(zhǎng)整型。確定了函數(shù)返回值的類型、形式參數(shù)的個(gè)數(shù)與 類型,再遵循見名知義的原則確定函數(shù)的名稱,就可以定義函數(shù)首部為:

        unsigned long Fact(unsigned int n)

        常用來(lái)求階乘的方法有五種:用for循環(huán)求階乘、用while語(yǔ)句求n的階乘、用do-while語(yǔ)句求n的階乘、用靜態(tài)變量求n的階乘、用迭代法計(jì)算無(wú)符號(hào)整型變量n的階乘,文章采用第五種方法求階乘。

        unsigned long Fact(unsigned int n)

        {unsigned int i;

        unsigned long combnum=1;

        for(i=2;i<=n;i++)

        combnum*=i;

        return combnum;}

        3.3 組合數(shù)函數(shù)的設(shè)計(jì)與實(shí)現(xiàn)

        函數(shù)定義是函數(shù)應(yīng)用中較為關(guān)鍵的一步,因?yàn)樗械挠脩糇远x函數(shù)均要“先定義,后使用”。定義的目的是通知編譯系統(tǒng)函數(shù)返回值的類型、函數(shù)的名字、函數(shù)的參數(shù)個(gè)數(shù)與類型以及函數(shù)實(shí)現(xiàn)什么功能。定義函數(shù)的目的是重復(fù)使用,因此只有在程序中調(diào)用函數(shù)才能實(shí)現(xiàn)函數(shù)的功能。C語(yǔ)言程序從 main函數(shù)開始執(zhí)行,自定義函數(shù)的執(zhí)行通過(guò)被別的函數(shù)調(diào)用來(lái)實(shí)現(xiàn)。

        組合數(shù)的計(jì)算問(wèn)題實(shí)質(zhì)是多個(gè)階乘的乘除,因此組合函數(shù)需要調(diào)用階乘函數(shù),這就需要正確進(jìn)行函數(shù)調(diào)用。函數(shù)調(diào)用的一般形式是:函數(shù)名(實(shí)際參數(shù)列表)。函數(shù)調(diào)用的方式按出現(xiàn)的位置有函數(shù)語(yǔ)句和函數(shù)表達(dá)式兩種。調(diào)用函數(shù)時(shí)使用的函數(shù)名要和定義函數(shù)時(shí)的完全一致,并且實(shí)參的個(gè)數(shù)和類型要和形參的一一對(duì)應(yīng)。計(jì)算組合數(shù)時(shí)需要用到階乘函數(shù)的返回值,這種情況下,調(diào)用函數(shù)需要以表達(dá)式的成分出現(xiàn),為此,組合函數(shù)的實(shí)現(xiàn)代碼如下。

        int Zuheshu(int num,int k)

        {unsigned long p;

        p=Fact(num)/(Fact(k)*Fact(num-k));

        printf("p=%lu\n",p);

        return 0;}

        3.4 斐波那契數(shù)列函數(shù)的設(shè)計(jì)與實(shí)現(xiàn)

        主菜單中用戶輸入數(shù)字2后,將進(jìn)行斐波那契數(shù)列的計(jì)算,這里設(shè)置循環(huán)會(huì)將所求項(xiàng)及之前所有項(xiàng)對(duì)應(yīng)的斐波那契數(shù)一一顯示出來(lái),設(shè)定好基線情況和一般情況,隨后用遞歸法求得各項(xiàng)斐波那契數(shù)。為了方便第一項(xiàng)主菜單設(shè)置輸入兩個(gè)數(shù)字,第二項(xiàng)只需一個(gè)有效數(shù)字,在主菜單的設(shè)置中,前一個(gè)數(shù)字代表項(xiàng)數(shù),因此第一位填入所需斐波那契項(xiàng)數(shù),第二個(gè)數(shù)字一般填1。

        //函數(shù)功能:求斐波那契數(shù)列

        int Fib(int k)

        {int i,x;

        for(i=1;i<=k;i++)

        {x=Fi(i);? //調(diào)用遞歸函數(shù)Fi()計(jì)算數(shù)列第n項(xiàng)

        printf("Fib(%d)=%d\n",i,x);}

        return 0;}

        //函數(shù)功能:用遞歸法計(jì)算數(shù)列中的第n項(xiàng)

        long Fi(int n)

        {if(n==0) return 0;? //基線情況

        else if(n==1) return 1;? //基線情況

        else return(Fi(n-1)+Fi(n-2)); } //一般情況

        運(yùn)行結(jié)果如圖2。

        4 結(jié)論

        編寫一個(gè)C語(yǔ)言程序解決一個(gè)實(shí)際問(wèn)題,初學(xué)者往往將程序所有語(yǔ)句寫在main 主函數(shù) 中,這樣不利于閱讀和調(diào)試。恰當(dāng)?shù)乩煤瘮?shù)將復(fù)雜問(wèn)題分解為若干個(gè)相對(duì)簡(jiǎn)單的子問(wèn)題,每個(gè)子問(wèn)題完成一項(xiàng)具體任務(wù),由一個(gè)函數(shù)實(shí)現(xiàn),如果已有解決子問(wèn)題的函數(shù)代碼,就可以直接調(diào)用函數(shù)解決復(fù)雜問(wèn)題。這樣的程序可讀性強(qiáng),調(diào)試方便,也有利于提高程序代碼的利用率,實(shí)現(xiàn)模塊化。“函數(shù)”能夠簡(jiǎn)化程序 ,化難為易。學(xué)習(xí)過(guò)程中,注重培養(yǎng)使用“函數(shù)”的習(xí)慣,正確定義和調(diào)用函數(shù)。

        參考文獻(xiàn):

        [1] 楊泉.C語(yǔ)言程序設(shè)計(jì)中函數(shù)參數(shù)傳遞的研究[J].福建電腦,2020,36(12):108-109.

        [2] 楊新宇,蘭全祥.C語(yǔ)言中遞歸的分析及應(yīng)用[J].電腦知識(shí)與技術(shù),2020,16(22):237-238,243.

        [3] 張曉雯,祁薇.任務(wù)驅(qū)動(dòng)的C語(yǔ)言函數(shù)課堂教學(xué)設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2018,14(30):129-131.

        [4] 黃敏.淺析程序設(shè)計(jì)與數(shù)學(xué)的關(guān)系——C語(yǔ)言程序設(shè)計(jì)為例[J].重慶工貿(mào)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007(3):37-38.

        [5] 陶予祺,王卓瑜,郭雨.基于C語(yǔ)言的數(shù)學(xué)競(jìng)賽成績(jī)管理系統(tǒng)設(shè)計(jì)[J].信息與電腦,2017(2):144-146.

        【通聯(lián)編輯:唐一東】

        猜你喜歡
        函數(shù)調(diào)用
        基于D1-H應(yīng)用處理器的RT-Thread駐留方法
        C程序設(shè)計(jì)課程教學(xué)中知識(shí)點(diǎn)與德育點(diǎn)映射
        JavaScript混淆惡意代碼檢測(cè)方法
        LLVM中靜態(tài)程序信息的過(guò)程間分析方法
        基于函數(shù)調(diào)用序列模式和函數(shù)調(diào)用圖的程序缺陷檢測(cè)方法*
        探討C++編程中避免代碼冗余的技巧
        基于QEMU的動(dòng)態(tài)函數(shù)調(diào)用跟蹤
        基于靜態(tài)分析的Android GUI遍歷方法
        Unity3D項(xiàng)目腳本優(yōu)化分析與研究
        C、C++、Fortran混合編程技術(shù)研究與問(wèn)題處理
        電子世界(2014年21期)2014-04-29 00:44:03
        人妻被猛烈进入中文字幕| 无码精品一区二区三区超碰| 99国产精品丝袜久久久久| 国产剧情无码中文字幕在线观看不卡视频 | 男人扒开女人下面狂躁小视频| 久久婷婷五月综合97色一本一本| 久久国产精品久久久久久| 最近最好的中文字幕2019免费| 毛片免费在线播放| 欧美日韩免费一区中文字幕| 亚洲无码视频一区:| 99久久无色码中文字幕鲁信| 亚洲中文乱码在线视频| 国产一区二区精品亚洲| 欧美亚洲一区二区三区| 亚洲av无码久久精品狠狠爱浪潮| 亚洲va在线∨a天堂va欧美va| 亚洲熟妇色xxxxx欧美老妇| 亚洲AV无码日韩一区二区乱| 亚洲精品中文字幕乱码三区99| 日韩av一区二区不卡| 天天爽夜夜爽夜夜爽精品视频 | 蜜臀av毛片一区二区三区| 在线观看特色大片免费视频| 国产台湾无码av片在线观看| 两个人看的www中文在线观看| 国产亚洲第一精品| 九九久久精品一区二区三区av| 熟妇高潮一区二区三区在线观看| 久久亚洲精品成人av无码网站 | 亚洲国产一区二区三区亚瑟| 国产成人无精品久久久| 亚洲国产综合久久精品| 青青草在线免费播放视频| 玩弄人妻少妇精品视频| 天天爽夜夜爽夜夜爽| 手机看片福利日韩国产| 黑丝美腿国产在线观看| 高清午夜福利电影在线| 亚洲av天天做在线观看 | 午夜免费福利一区二区无码AV |