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

        ?

        基于“信息學(xué)奧林匹克競賽”培養(yǎng)程序設(shè)計習(xí)慣的研究

        2009-01-20 01:55:54李軍玲邵洪艷
        計算機教育 2009年24期
        關(guān)鍵詞:信息學(xué)程序設(shè)計習(xí)慣

        李軍玲 邵洪艷

        摘要:本文針對NOIP競賽中學(xué)生普遍不重視養(yǎng)成良好程序設(shè)計習(xí)慣的問題,通過以競賽試題中閱讀程序為例,分析說明培養(yǎng)程序設(shè)計習(xí)慣的措施,提出正確使用程序設(shè)計工具,以達到養(yǎng)成良好的程序設(shè)計風(fēng)格、加強良好程序設(shè)計習(xí)慣養(yǎng)成的目的,這對提高學(xué)生的程序設(shè)計能力具有較好的現(xiàn)實指導(dǎo)意義。

        關(guān)鍵詞:信息學(xué);奧林匹克競賽;程序設(shè)計;習(xí)慣

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

        1現(xiàn)狀與對策

        全國青少年信息學(xué)奧林匹克聯(lián)賽(National Olympiad in Informatics in Provinces,簡稱NOIP)是全國信息學(xué)奧林匹克競賽(NOI)系列活動中的一個重要組成部分,旨在向中學(xué)生普及計算機基礎(chǔ)知識。從早期只考核學(xué)生對程序設(shè)計語言的理解、熟悉程度以及編程技巧發(fā)展到模型設(shè)計、離散數(shù)學(xué)、動態(tài)規(guī)劃的思想及算法,由單純的培養(yǎng)學(xué)生學(xué)習(xí)興趣轉(zhuǎn)變?yōu)閯?chuàng)造性地運用程序設(shè)計知識解決實際問題的能力。然而學(xué)生在程序設(shè)計習(xí)慣方面普遍重視不夠,為軟件項目開發(fā)埋下了巨大隱患。

        1.1現(xiàn)實中存在的問題

        信息學(xué)奧林匹克競賽上由于教學(xué)單位出現(xiàn)急功近利的思想,造成學(xué)生不能較好地正確掌握計算機程序設(shè)計過程,沒有養(yǎng)成良好的程序編程習(xí)慣。在現(xiàn)實中,程序設(shè)計普遍存在以下一些共性問題:

        (1) 不愿意讀別人的程序。強調(diào)自己程序設(shè)計方法的優(yōu)點,不愿意學(xué)習(xí)和借鑒他人的設(shè)計思路。

        (2) 不畫流程圖。程序流程圖本來是程序設(shè)計的最簡單最直白書面表達,然而沒有得到足夠的重視與平時養(yǎng)成,學(xué)生不樂意用流程圖來表達設(shè)計思想與過程,實際上往往導(dǎo)致程序邏輯交叉,當程序出錯時排除費時費力。

        (3) 不寫程序功能說明。程序設(shè)計過程中普遍存在只寫源代碼的語句,對程序?qū)崿F(xiàn)的功能沒有描述,別人閱讀程序很難,有時編程者自己對程序的處理技術(shù)方法也遺忘。

        (4) 不寫代碼的注釋。不對程序進行必要的注釋,造成閱讀困難,程序可讀性差。

        (5) 忽視出錯處理。只完成程序功能的單一實現(xiàn)過程,對程序可能的具體出錯處理分析不夠。

        (6) 忽視程序算法分析。程序算法對程序運行的效率影響是非常大的,程序算法的復(fù)雜度直接影響程序的時間和空間。

        (7) 忽視程序設(shè)計過程中文檔資料的積累。普遍認為編程就是寫程序和調(diào)試過程,忽視文檔的書寫,其后果導(dǎo)致程序維護困難。

        1.2對策

        信息學(xué)奧林匹克競賽注重學(xué)生終生學(xué)習(xí)能力的培養(yǎng),而不停留在唯競賽而學(xué)。在平時的教學(xué)中培養(yǎng)學(xué)生良好的程序設(shè)計習(xí)慣,使學(xué)生學(xué)會準確運用程序設(shè)計工具,養(yǎng)成良好的程序設(shè)計風(fēng)格,將達到事半功倍的效果。

        (1) 勤于思考、克服困難的習(xí)慣。由于學(xué)生對知識層次理解的深度有限,思維是發(fā)散而新穎,學(xué)生所編寫的程序必然有別于專業(yè)人員,但是要培養(yǎng)其具有專業(yè)人員的素養(yǎng),要養(yǎng)成解決問題的好習(xí)慣,從解決方法和基本原理上勤于推敲。

        (2) 與人協(xié)作的習(xí)慣。NOIP考試形式上看是學(xué)生個人的行為,而真實的軟件工程是多人合作、信息共享的活動,互學(xué)互助、取長補短、與人溝通、信息交流的好習(xí)慣將使學(xué)生受益終身。

        (3) 培養(yǎng)全局規(guī)劃習(xí)慣。不論是程序語言的學(xué)習(xí)例題還是NOIP的考試命題,題目功能典型,學(xué)生要善于從短小的程序代碼中分析計算機解決問題的方式、途徑,將小代碼功能擴充完善,利用程序設(shè)計工具對問題從全局角度進行分析處理。

        (4) 良好的代碼編寫習(xí)慣。包括程序流程圖、變量命名、代碼標注、功能注釋、捕獲代碼異常、測試樣例、文檔記錄等多個環(huán)節(jié)。如果在軟件開發(fā)和程序編寫過程中養(yǎng)成良好的習(xí)慣,那么程序中存在的漏洞就易于發(fā)現(xiàn),為將來大型軟件項目的開發(fā)打下良好基礎(chǔ)。

        (5) 養(yǎng)成善于總結(jié)分析、勤于記錄文檔資料的習(xí)慣。建立自己的知識庫,不僅有源程序代碼,還要有完備的文檔資料記錄。

        2培養(yǎng)正確程序設(shè)計習(xí)慣的措施

        學(xué)生在學(xué)習(xí)過程中主要接觸的是以掌握基本算法為主的程序例題和NOIP獨立命題題目,而軟件開發(fā)過程是一系列活動,包括方法、工具和過程三個要素。因此,如何讓學(xué)生以小見大,培養(yǎng)良好的程序設(shè)計習(xí)慣才是學(xué)習(xí)的根本。以第14屆NOIP提高組C++初賽題目閱讀程序4為例題,說明如何借助程序設(shè)計工具,養(yǎng)成良好的程序設(shè)計風(fēng)格,培養(yǎng)良好的程序設(shè)計習(xí)慣,例題的源程序如下。

        #include

        #include

        using namespace std;

        int i,j,len;

        char s[50];

        int main()

        { cin>>s;

        len=strlen(s);

        for(i=0;i

        {if (s[i]>='A'&&s[i]<='Z') s[i]- ='A'-'a';}

        for(i=0;i

        {if(s[i]<'x') s[i]+=3;else s[i]+= -23;}

        cout<

        for(j=1;j<4;j++)

        { for(i=0;i

        {s[i]=s[i+j];}

        }

        cout<

        return 0;

        }

        2.1準確使用程序工具的習(xí)慣

        學(xué)生在學(xué)習(xí)程序設(shè)計過程中不要過分強調(diào)上機調(diào)試運行,學(xué)會正確運用程序設(shè)計工具是根本。程序設(shè)計工具不僅能正確將程序分析過程轉(zhuǎn)變?yōu)槌绦驅(qū)崿F(xiàn),而且還能夠幫助學(xué)生快速分析源程序的語句功能,生成程序設(shè)計過程中所需要的文檔資料。

        2.1.1數(shù)據(jù)字典

        數(shù)據(jù)字典以字典式順序組織精確嚴格地定義了每個數(shù)據(jù)元素。通過讀例題源程序,得到例題的數(shù)據(jù)變量的數(shù)據(jù)字典,具體變量描述如表1所示,這有助于理解各變量在程序中的輸入、輸出、存儲和中間計算。

        2.1.2N-S圖

        N-S圖是適應(yīng)結(jié)構(gòu)化程序設(shè)計特點,逐步求精模塊化程序設(shè)計方法的有力工具。閱讀例題源程序語句可以快速畫出它的N-S圖(圖1),從而確定例題的程序順序結(jié)構(gòu)功能,如圖2所示。

        2.2良好程序書寫風(fēng)格的養(yǎng)成

        程序不僅要保證運行正確,也是讓別人讀的。程序書寫設(shè)計風(fēng)格包括4個方面:源程序文檔化、數(shù)據(jù)說明、語句結(jié)構(gòu)和輸入輸出方法。針對NOIP命題特點,學(xué)會從編碼原則提高程序的可讀性著手。由于例題已具有完好的縮進格式,只需要加入相關(guān)的序言性和語句注釋。程序部分修改內(nèi)容如下。

        /* 4.cpp 程序功能: */

        /*首先,大小寫混合字母的字符串變成小寫字母;然后以26字母循環(huán)形式,逐個字符替換為其位置后的第3個字符;最后,重新賦值指定位置字符。*/

        ....

        int main()

        { cin>>s; //字符串s初始化

        len=strlen(s); //求s長度

        for(i=0;i

        ...

        //逐字符轉(zhuǎn)換為其后面的第3個字符

        for(i=0;i

        ...

        cout<

        //3次循環(huán)將s指定字符s[i]重新賦值s[i+j]

        for(j=1;j<4;j++)

        ...

        cout<

        return 0; //返回

        }

        2.3程序算法分析的習(xí)慣

        算法的空間復(fù)雜度和時間復(fù)雜度是分析一個程序算法的執(zhí)行效率與存儲需求,可以有效避免只強調(diào)偏僻技巧而忽略算法復(fù)雜性。

        int main()

        { cin>>s; //執(zhí)行次數(shù)1

        len=strlen(s); //執(zhí)行次數(shù)1

        for(i=0;i

        ...

        for(i=0;i

        ...

        for(j=1;j<4;j++) //執(zhí)行次數(shù)4

        for((i=0;i

        s[i]=s[i+j] //執(zhí)行次數(shù)4*n

        cout<

        }

        通過對例題的基本語句執(zhí)行次數(shù)分析,得出程序的時間復(fù)雜度為O(n2)。

        2.4面向?qū)ο蟪绦蛟O(shè)計的習(xí)慣

        目前面向?qū)ο蟮某绦蛟O(shè)計技術(shù)在軟件開發(fā)中占據(jù)主導(dǎo)地位,是指導(dǎo)學(xué)生學(xué)習(xí)軟件的發(fā)展方向。根據(jù)例題程序的功能實現(xiàn),通過定義一個obj類,含有實現(xiàn)程序功能的4個成員函數(shù),將例題的面向過程編程改寫為面向?qū)ο蟮某绦蛟O(shè)計,使數(shù)據(jù)和操作具有封裝性。改寫后的程序源代碼如下。

        #include

        #include

        using namespace std;

        class obj //定義obj類

        {public: //定義公有成員函數(shù)

        obj( ) {*s=NULL;len=0;} //定義構(gòu)造函數(shù)

        void input( ); //輸入函數(shù)

        void change( ); //字符轉(zhuǎn)換函數(shù)

        void setvalue( ); //字符重賦值函數(shù)

        //定義輸出函數(shù)

        void print(){cout<<"s="<

        private: //定義私有成員變量

        char s[50]; //字符串s

        int len; //字符串長度len

        };

        void obj::input( ) //定義輸入函數(shù)

        {cout<<"inputs=";

        cin>>s;

        len=strlen(s);

        }

        void obj::change( ) //定義轉(zhuǎn)換函數(shù)

        { for(int i=0;i

        {if (s[i]>='A'&&s[i]<='Z') s[i]- ='A'-'a';}

        for(i=0;i

        {if(s[i]<'x') s[i]+=3;else s[i]+= -23;}

        }

        void obj::setvalue ( ) //定義字符重賦值函數(shù)

        { for(int j=1;j<4;j++)

        { for(int i=0;i

        s[i]=s[i+j];}

        }

        int main( ) //主函數(shù)

        { obj x; //obj類的對象x

        x.input ( );

        x.change ( );

        x.setvalue ( );

        x.print ( );

        return 0;

        }

        3結(jié)語

        NOIP重點是培養(yǎng)學(xué)生學(xué)習(xí)計算機的興趣,使學(xué)生對信息技術(shù)的一些核心內(nèi)容有更多的了解,提高創(chuàng)造性地運用程序設(shè)計知識解決實際問題的能力,而不是一味學(xué)習(xí)專業(yè)教材。因此,只有開始養(yǎng)成一個良好的程序設(shè)計習(xí)慣,才能為將來的軟件開發(fā)打下好基礎(chǔ),而不是追求唯競賽而學(xué)的短期效果。

        參考文獻:

        [1] 馬苗,田紅鵬. “面向?qū)ο蟪绦蛟O(shè)計與C++”教學(xué)中的問題與思考[J]. 計算機教育,2008(6):81-82.

        [2] 楊顯霞. 信息學(xué)奧林匹克競賽教學(xué)模式初探[J]. 西南農(nóng)業(yè)大學(xué)學(xué)報:社會科學(xué)版,2008(4):169-171.

        [3] 林小華. 計算機程序設(shè)計風(fēng)格探討[J]. 軟件導(dǎo)刊,2006(17):33-35.

        [4] 譚浩強. C++程序設(shè)計[M]. 北京:清華大學(xué)出版社,2004.

        [5] 覃征,何堅,高洪江,等. 軟件工程與管理[M]. 北京:清華大學(xué)出版社,2005.

        猜你喜歡
        信息學(xué)程序設(shè)計習(xí)慣
        習(xí)慣(外二首)
        雞NRF1基因啟動子區(qū)生物信息學(xué)分析
        上課好習(xí)慣
        基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
        計算機教育(2020年5期)2020-07-24 08:52:56
        從細節(jié)入手,談PLC程序設(shè)計技巧
        電子制作(2019年9期)2019-05-30 09:42:04
        初論博物館信息學(xué)的形成
        中國博物館(2018年2期)2018-12-05 05:28:50
        當你不喜歡,你就不習(xí)慣
        文苑(2018年20期)2018-11-09 01:36:02
        好習(xí)慣
        高職高專院校C語言程序設(shè)計教學(xué)改革探索
        PLC梯形圖程序設(shè)計技巧及應(yīng)用
        欧美日韩视频在线第一区| 国产一级一厂片内射视频播放| 人妖与人妖免费黄色片| 美女用丝袜脚玩我下面| 绝顶潮喷绝叫在线观看| 天天干成人网| 成人国产精品高清在线观看| 国产一区二区三区尤物| 欧美成人国产精品高潮| 台湾佬娱乐中文22vvvv| 揄拍成人国产精品视频肥熟女| 精品女人一区二区三区| 国精产品一区一区三区有限在线| 99精品国产一区二区三区a片| 免费AV一区二区三区无码| 亚洲老女人区一区二视频| 蜜臀av毛片一区二区三区| 久久婷婷人人澡人人喊人人爽| 在线观看av中文字幕不卡| 日本av在线精品视频| 自拍偷自拍亚洲一区二区| 性裸交a片一区二区三区| 欧美成人三级一区二区在线观看| 亚洲av熟女天堂系列| 蜜桃高清视频在线看免费1| 国精品人妻无码一区二区三区性色| 丰满爆乳一区二区三区| 亚洲成AV人片无码不卡| 亚洲视频在线观看第一页| а√天堂8资源中文在线| 日本免费人成视频播放| 91尤物在线看| 日韩一区二区三区精品视频| 亚洲综合在线一区二区三区| 五月婷婷激情小说| 日本在线一区二区在线| 精品熟人妻一区二区三区四区不卡 | 亚洲色图在线免费视频| 国产精品激情| 日韩区在线| 在线亚洲精品免费视频|