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

        ?

        “C程序設(shè)計”啟發(fā)式實例教學(xué)探討

        2008-12-31 00:00:00樊新華
        計算機教育 2008年18期

        文章編號:1672-5913(2008)18-0098-02

        摘要:本文通過一個例子來說明結(jié)合實例教學(xué)法和啟發(fā)式教學(xué)方法的教學(xué)過程,旨在為C語言程序設(shè)計課程提供一些有益的教學(xué)方法。

        關(guān)鍵詞:程序設(shè)計;實例教學(xué);啟發(fā)式教學(xué)

        中圖分類號:G642 文獻標識碼:B

        1傳統(tǒng)的實例教學(xué)方法

        在一些教學(xué)改革的文章中,都提出了通過實例來進行教學(xué),并且取得了較好的效果。這些文章中,所列的例子分為兩類:趣味程序[1-3]和實例程序[4-6]。

        趣味程序的例子可以激發(fā)學(xué)生的學(xué)習(xí)積極性,從而在實例中掌握C語言的語法和程序設(shè)計方法,因而趣味程序的例子的選擇至關(guān)重要。對于實例程序例子來說,分為章節(jié)實例和綜合實例。其中章節(jié)實例是為了章節(jié)教學(xué)服務(wù),而綜合實例是在學(xué)習(xí)整個課程后,提高學(xué)生能力,培養(yǎng)團隊合作能力服務(wù)。這些章節(jié)和綜合實例的選擇中,有些是前者與后者有聯(lián)系,這可以省去理解實例的時間,使學(xué)生掌握軟件開發(fā)的能力;有些是前者與后者沒有必然聯(lián)系,這樣就要做每個實例前,必須理解實例花費時間。

        這種方法的優(yōu)點是可以根據(jù)教學(xué)內(nèi)容,選擇合適的例子,以使學(xué)生掌握所學(xué)內(nèi)容。但是在每次舉例子時,沒有很好的、更深入的挖掘?qū)嵗械囊恍┥顚拥闹R點,這樣浪費了實例資源。并且,每個實例要花許多時間來理解實例,這給有限的課堂教學(xué)時間帶來了浪費。在此,我們通過較少的實例,并將此實例用不同章節(jié)的內(nèi)容實現(xiàn),這樣既可以節(jié)約分析實例的時間,又加深了對C語言的語法的理解和程序設(shè)計方法的訓(xùn)練。

        為了解決上面的問題,我們可以在每個實例的基礎(chǔ)上,對學(xué)生多提問,以進行擴展實例,以復(fù)習(xí)前面學(xué)過的知識,也可以鞏固當(dāng)前學(xué)習(xí)的內(nèi)容。下面通過一個簡單的例子說明具體的過程。在C語言程序設(shè)計時,許多教課書都用“Hello World”這個程序作為入門程序,此例只是讓我們對C語言程序有一個初步認識,但是在此后的教學(xué)中,我們已經(jīng)忘記了這個入門的例子,其實還可以挖掘出更多新的知識點。

        2啟發(fā)式教學(xué)

        在我們所見的教材中,“Hello World”例子除了在講C語言入門的知識外,別的地方?jīng)]有出現(xiàn)。而我們以它為例進行啟發(fā)式教學(xué),讓學(xué)生做更多的練習(xí),以加深對語法和程序設(shè)計方法的理解,并掌握其課程的精髓。我們采用兩種方法:第一種是針對同一問題使用多種方法處理;第二種是針對每一處理方法提出新的問題。

        2.1同一問題使用多種方法處理

        針對上的同一問題使用所講述的不同內(nèi)容的方法處理。具體過程如下:

        (1) 數(shù)組方式

        在講解字符數(shù)組時,我們知道字符串是如何保存在計算機中,并可以用數(shù)組的方式實現(xiàn)上述實例。如下程序:

        #include

        main()

        {

        char wh[]=\"Hello World!\";

        printf(\"%s\\",wh);

        }

        上例說明了數(shù)組的定義及初始化方式,在上述程序的基礎(chǔ)上,也可以將數(shù)組中的元素單個輸出,即printf(\"%s\\",wh); 語句換為int i; for(i=0;wh[i]!='\\0';i++) printf(\"%c\",wh[i]);語句。也可以使用字符串輸入輸出方式來實現(xiàn)同樣的功能。如下程序:

        #include

        main()

        {

        char wh[20];

        gets(wh);

        puts(wh);

        }

        如果將上面的程序中的gets(wh);語句換成scanf(\"%s\",wh);語句會出現(xiàn)什么情況,然后分析出現(xiàn)這種情況的原因。

        (2) 指針方式

        指針是C語言的核心,也是C語言的靈魂,所以它是教學(xué)法中的重點,也是難點。在教學(xué)法中,我們應(yīng)通過簡單的生活常識來說明它,也要用具體的實例來掌握它。在此,以上述實例說明,其實現(xiàn)過程是:

        #include

        main()

        {

        char *hp=\"hello World!\" ;

        printf(\"%s\\",hp);

        }

        在上面的例子中,可以將某一地址賦予指針變量,然后對其進行操作。前面講過數(shù)組內(nèi)容,其實數(shù)組就是一個連續(xù)的內(nèi)存空間,數(shù)組名代表其開始地址,所以也可用指針實現(xiàn)。其實現(xiàn)過程是:

        #include

        main()

        {

        char wh[]=\"hello World!\",*hp;

        hp=wh;

        printf(\"%s\\",hp);

        }

        由于指針變量指向某一開始地址,所以我們可以處理連續(xù)空間中的單個元素。上述的兩個程序中的printf(\"%s\\",hp);語句可以改為for(;*hp!='\\0';) printf(\"%c\",*hp++); printf(\"\\");語句,其運行結(jié)果不變。

        (3) 函數(shù)方式

        C語言程序是一系列函數(shù)的集合,每個函數(shù)都具有相對獨立的單一功能。我們可以將上述的功能作為一個函數(shù),以實現(xiàn)字符串的輸出。在此,可以實現(xiàn)整個串的輸出,也可以單個輸出其每個元素。其實現(xiàn)過程是:

        #include

        void sayhello1(char hello[])

        {

        printf(\"%s\\",hello);

        }

        void sayhello2(char hello[])

        {

        int i;

        for(i=0;hello[i]!= '\\0';i++)

        printf(\"%c\",hello[i]);

        printf(\"\\");

        }

        main()

        {

        char wh[]=\"hello World!\";

        sayhello1(wh);

        sayhello2(wh);

        }

        在上面的程序中,可以將形參char hello[]改為char *hello,程序的運行結(jié)果沒有任何變化。實際上,如果用數(shù)組向函數(shù)傳遞數(shù)據(jù)時,形參與實參的形式可以是指針、數(shù)組組合的任何形式。

        由于main()也是函數(shù),它也可以接受傳遞的參數(shù),也就是我們所說的命令行方式,但是main()函數(shù)的形式參數(shù)一般是固定的形式,如main(int argc,char *argv[]),其中argc是指參數(shù)個數(shù),argv是一個指向字符串的指針數(shù)組。其實現(xiàn)過程是:

        #include

        main(int argc,char *argv[])

        {

        while (argc>1)

        {

        ++argv;

        printf(\"%s\\",*argv);

        --argc;

        }

        }

        (4) 文件方式

        文件是存儲在外部介質(zhì)上的數(shù)據(jù)集合,它可以長期保存數(shù)據(jù)。在此,我們可以使用文件形式,將保存上述程序的結(jié)果。其簡單的實現(xiàn)過程是:

        #include

        #include

        main()

        {

        FILE *fp;

        char wh[] = \"hello World!\";

        char msg[20];

        if ((fp=fopen(\"savehi.txt\", \"w\"))==NULL)

        {

        printf(\"cannot open file!\");

        exit(0);

        }

        fputs(wh,fp);

        fclose(fp);

        if ((fp=fopen(\"savehello.txt\", \"r\"))==NULL)

        {

        printf(\"cannot open file!\");

        exit(0);

        }

        fgets(msg,strlen(wh)+1,fp);

        printf(\"%s\\",msg);

        fclose(fp);

        }

        上面的程序中是通過字符串的讀寫方式對文件進行操作,也可以使用單個字符方式對文件操作。在此基礎(chǔ)上,我們還可以練習(xí)文件操作的其他方法。

        通過上述的數(shù)組、指針、函數(shù)、文件等方式來實現(xiàn)“Hello world!”程序,不但加深了和擴展了各章節(jié)的知識,而且開拓了學(xué)生的編程思路。同時,也將C語言的知識串接起來了,有利于教師的講授和學(xué)生的學(xué)習(xí)。

        2.2針對每一處理方法提出新的問題

        由于篇幅的原因,下面只提出教學(xué)過程中的方法,不給出具體實現(xiàn)的程序。

        在講到數(shù)組一章時,我們可以上述實現(xiàn)程序的基礎(chǔ)上,提出以下問題,供課堂或?qū)W生課后練習(xí)。問題是:

        如何定義一個字符串?

        通過輸入/輸出函數(shù)來顯示“Hello World!”如:scanf()/printf()、gets()/puts()?

        統(tǒng)計字符串長度/單詞個數(shù)/單詞分行顯示?

        將字符串中的字母進行大小寫轉(zhuǎn)換?

        字符的倒置存貯/字符串的倒置顯示?

        等等。

        上述所提出的問題,我們也可以用指針方式、函數(shù)方式、文件方式等來實現(xiàn)。只有通過多練習(xí)、多思慮,才能掌握C語言的語法和程序設(shè)計方法。

        在實際的教學(xué)法中,應(yīng)該將上述提到的兩種方法有機的結(jié)合起來。因此,在具體的教學(xué)過程中,對于實際的問題,教師與學(xué)生要互動交流,想出更多的方法和提出更多的問題并以實現(xiàn)。

        3結(jié)束語

        總之,通過C語言程序設(shè)計的學(xué)習(xí),重點是培養(yǎng)學(xué)生掌握程序設(shè)計的思想和方法。在教學(xué)中,應(yīng)當(dāng)遵循“算法重于語法,語法重于編碼”的原則組織實施。本文所介紹的啟發(fā)式實例教學(xué)方法正是符合上述原則,并且將此法用于教學(xué)實踐中,尤其是在上機實踐中,讓學(xué)生按照上述所講的方法進行練習(xí),取得了良好的效果。另外,在其他編程語言(如Java、C#等)的教學(xué)中,也同樣借鑒上述介紹的方法進行教學(xué)。在Java、C#等語言程序設(shè)計中,也可以通過網(wǎng)絡(luò)傳輸“Hello World!”字符串。在此,我們通過“Hello World!”程序起到一個拋磚引玉的作用。在實際中,根據(jù)具體的情況,采用具體的實例和方法,以獲得最佳的教學(xué)效果。

        參 考 文 獻

        [1] 宋毓震,李兆鋒.C語言教學(xué)實踐與思考[J].內(nèi)江科技,2007,(07):14-15.

        [2] 張建珍.C語言教學(xué)方法探討[J].計算機教育,2007,(18).

        [3] 胡科.“C程序設(shè)計”實驗教學(xué)與實踐[J].計算機與信息技術(shù),2006,(12) :99-101.

        [4] 涂剛.“C語言”實驗教學(xué)的探討[J].中國水運(學(xué)術(shù)版),2006,(12):256-257.

        [5] 周余玲.C程序設(shè)計語言課程教學(xué)方法探析[J].科技資訊,2007,(05):197-198.

        [6] 許建豪.計算機語言教學(xué)方法探討[J]. 廣西教育學(xué)院學(xué)報,2006,(05):156-157.

        熟女少妇丰满一区二区| 亚洲av电影天堂男人的天堂| 精精国产xxxx视频在线| 无码a级毛片免费视频内谢| 亚洲一区在线二区三区| 免费观看mv大片高清| 97精品国产手机| 亚洲an日韩专区在线| 一区二区三区手机看片日本韩国| 丁香花五月六月综合激情| 人妻少妇精品视频三区二区一区| 精品国产乱码久久久软件下载| 中文字幕久久精品波多野结百度| 久久91精品国产91久久跳舞| 国产一区二区三区日韩精品| 开心五月激情综合婷婷色 | 久久se精品一区精品二区国产| 少妇激情一区二区三区久久大香香| 久久丁香花综合狼人| 自拍偷拍韩国三级视频| 亚洲夜夜性无码| 免费观看又污又黄的网站| 国产精品98视频全部国产| 成人大片在线观看视频| 成人网站在线进入爽爽爽| 成人无码区免费a片www| 国产成人精品人人做人人爽| 精品一区二区av在线| 国产精品泄火熟女| 婷婷成人亚洲| 日韩一区二区,亚洲一区二区视频 国产一区二区三区经典 | 亚洲中文字幕第一第二页| 人人人妻人人人妻人人人| 熟妇人妻无乱码中文字幕 | 国产女主播大秀在线观看| 中文字幕有码无码人妻av蜜桃 | 亚洲中文欧美日韩在线| 少妇被粗大的猛进69视频| 日本做受120秒免费视频| 国产精品视频牛仔裤一区| 91精品国产乱码久久久|