中文字幕巨乳人妻在线-国产久久久自拍视频在线观看-中文字幕久精品免费视频-91桃色国产在线观看免费

首頁 優(yōu)秀范文 程序設計的基本結構

程序設計的基本結構賞析八篇

發(fā)布時間:2023-08-04 17:18:31

序言:寫作是分享個人見解和探索未知領域的橋梁,我們?yōu)槟x了8篇的程序設計的基本結構樣本,期待這些樣本能夠為您提供豐富的參考和啟發(fā),請盡情閱讀。

程序設計的基本結構

第1篇

關鍵詞:結構化程序設計 數(shù)據(jù)結構 算法 設計技巧

近年來,計算機程序設計技術已從結構化程序設計技術逐步向對象程序設計技術過渡,特別是當設計一個較大規(guī)模的應用程序時,面向對象設計思路成為首選。縱觀計算機軟件技術的發(fā)展,在局部功能的實現(xiàn)上及功能模塊的設計上,結構化程序設計仍然有其不可替代的獨特魅力。在結構化程序設計中(以C語言為例),巧妙地運用一些設計技巧,對增強程序的穩(wěn)定性和可靠性,簡化程序操作步聚,提高程序的運行效率十分有效。

結構化程序設計的概念最初是由荷蘭學者E?W?DUKSTRA等人在20世紀60年代提出的,它的基本思路是:以模塊化設計為中心,將原來較為復雜的問題簡化為一系列簡單模塊的設計,也就是將一個大的計算任務劃分為若干個較小的任務,這些小任務均由函數(shù)來完成。函數(shù)既可以是C語言定義的標準庫函數(shù),也可以是自定義函數(shù)。在實際應用程序中,一個具備一定規(guī)模的C語言程序往往由多個函數(shù)組成,其中必有一個命名為main的主函數(shù),由main來調用其他函數(shù)。必要時,其他函數(shù)還可以調用另外的函數(shù),同一函數(shù)可以被一個或多個函數(shù)調用一次或多次。

結構化程序設計把程序歸結為用順序結構、選擇結構和循環(huán)結構等三種基本結構來描述的邏輯問題。順序結構的程序流程是按語句的書寫順序依次執(zhí)行;在C語言中,有4種語句是順序執(zhí)行的:即空語句、表達式語句、函數(shù)調用語句及復合語句;選擇結構是對給定條件進行判斷,根據(jù)判斷結果決定執(zhí)行兩分支中的一個分支或多分支中的一個分支,選擇語句有if語句和switch語句;循環(huán)結構是在給定條件成立的情況下,反復執(zhí)行某個程序段,循環(huán)語句有for,while和do-while語句以及一些輔助流程轉向語句如continue,break,go to等等。以上三種結構通過流程控制語句來實現(xiàn)。流程控制語句在程序設計中起著十分重要的作用,通過三種基本控制結構的合理調配使結構化程序具有唯一的入口和出口,不會出現(xiàn)死循環(huán),而且程序的靜態(tài)形式與動態(tài)執(zhí)行形式之間具有良好的對應關系。

從以上結構化程序的基本特點分析,結構化程序設計主要強調的是程序。程序=算法+數(shù)據(jù)結構+程序設計方法+語言工具和環(huán)境,其中算法是靈魂,是解決“做什么”和“怎么做”的問題;數(shù)據(jù)結構是加工對象;語言是工具;編程需要采用合適的方法。具體解決主要問題包含以下幾個步驟:

分析問題,找出解決問題的模型根據(jù)模型設計出適合計算機特點的處理方法即算法進行編程程序,以實現(xiàn)算法上機編輯(.c)、編譯(.obj)、連接(.exe)、運行所編制的程序,直到得出正確結果對結果進行分析,整理出文字材料。

程序設計的任務不只是編寫出一個能得到正確結果的程序,還應考慮程序的質量,否則編寫的程序就會出現(xiàn)質量低下、可靠性差、開發(fā)周期長、維護費用高等不良后果,即所謂的的“軟件危機”,它會嚴重阻礙計算機應用的發(fā)展。由于大多高級語言都支持結構化程序設計方法,其語法上都含有表示三種基本結構的語句,所以用結構化程序設計方法設計的模塊從結構到程序的實現(xiàn)是直接轉換的,只需用相應的語句結構代替標準的控制結構即可。筆者在實際應用中,總結出以下幾點實用技巧。

一、通過引申法廓清思路,選準目標

“引申法”就是通過對某一結論的合理引申,結合已經(jīng)解決的問題,因勢利導,在此基礎上解決相關聯(lián)的其他問題。“引申法”可以培養(yǎng)人們在程序設計方面的發(fā)散思維,提高程序設計的應變能力。問題是活的,但程序是有章可循的;語法是有限的,可解決的問題是無限的。程序設計相當一部分工作是分析問題,找到解決問題的方法,再以相應的語言寫出代碼。要熟練掌握一些簡單的算法,根據(jù)不同的問題,再靈活應用。如用100元錢買100只雞,公雞、母雞、小雞分別是5元、3元、1元一只。在數(shù)學上解三元一次方程,三個未知數(shù),兩個方程好像解不出來。通過“窮舉法”,我們要費好大一番工夫才能算出結果,但是通過計算機“引申”編程運算卻不用一秒鐘即可解決問題。只有在分析實際向題的基礎上,以清晰的思路去設計算法,才能舉一反三,以不變應萬變。通過“引申”法,我們可使初學者對函數(shù)設計的關鍵問題有清晰的認識,利于從統(tǒng)籌全局的角度去考慮問題,體現(xiàn)了程序設計逐步求精的思路。

二、利用框架法培養(yǎng)全局思維和算法的整體設計能力

其具體體現(xiàn)在兩方面。一是在有了一點編程基礎后要利用偽代碼或流程圖,從算法設計的角度講解編程思路,而不應拘泥于語法細節(jié),不分主次、逐條語句地講解代碼。這樣可以層次分明,突出算法設計的關鍵,利于培養(yǎng)編程思路。二是在學習重點章節(jié)函數(shù)時,由于新的算法已很少,主要是學習用函數(shù)調用的方法來重新編制以前所熟悉的程序,我們可以把著眼點放在函數(shù)的設計框架上,體現(xiàn)參數(shù)設計、返回值設計等關鍵問題,而無需細講函數(shù)體的實現(xiàn)細節(jié)。結構化構造減小了程序的復雜性,提高了可靠性、可測試性和可維護性,使用少數(shù)的基本結構,就可使程序邏輯結構清晰,易讀易懂,并且容易驗證程序的正確性。

三、借助求異法引導新思路,啟迪新思維

結構化程序設計方法的基本思路是:把一個復雜的問題的求解過程分階段進行,每個階段處理的問題都控制在人們容易理解和處理的范圍內。一個固定的問題,解決的方法可能不唯一,如果能啟發(fā)人們多角度、多側面去尋求解決問題的辦法,則可激發(fā)思考的積極性,提高其學習興致。對一個初學計算機語言的人來說,最重要的就是要有正確的程序流程概念,不僅要懂得,而且要靈活應用。由此可見,用結構化方法設計的結構是清晰的,有利于編寫出結構良好的程序。在C語言中一題多解的情況有很多,有意識地引導新思路,鼓勵新方法,以培養(yǎng)人們在編程中的求異思維,而不是死記硬背,墨守成規(guī)。結構化程序設計強調程序設計風格和程序結構的規(guī)范化,提倡清晰的結構。

四、選準切入口,合理劃分功能模塊“分而治之”

結構化程序設計的關鍵在于功能模塊的選定和劃分。模塊化設計的思想實際上是一種“分而治之”的思想,把一個大任務分為若干個子任務,每一個子任務的劃分以相對簡單為前提。劃分子模塊時我們應注意模塊的獨立性,即:使一個模塊完成一項功能,耦合性愈少愈好。具體應用時從問題本身入手,自頂向下,逐步細化,精益求精,將解決問題的步驟分解為由基本程序結構模塊組成的通過程序流程圖、N-S圖、PAD圖表格等表示的結構化程序框圖。在實踐應用中往往會出現(xiàn)以下幾個問題:一是用戶要求難以在系統(tǒng)分析階段準確定義,致使系統(tǒng)在交付使用時產生許多問題。二是用系統(tǒng)開發(fā)每個階段的成果來進行控制,不能適應事物變化的要求。三是系統(tǒng)的開發(fā)周期較長。

為解決這些問題,我們要求模塊的設計要簡潔明了,語句的選用要直觀,不要拖泥帶水。下面是一段小程序,從中可以看出一些語句選用的技巧。

某淘寶商城為鼓勵更多網(wǎng)友光臨本店,對新老網(wǎng)友給出如下優(yōu)惠:凡是購買10件以上者,打9折;20件以上者,8.5折優(yōu)惠;30件以上者,8折優(yōu)惠,40件以上者,7.5折優(yōu)惠。如用習慣上的if嵌套語句編寫程序如下:

Main()

{float x,y;

printf(“請輸入優(yōu)惠購額款X:\n”);

scanf(“%f”,&x);

if(x

y=x;

else if(x

y=0.9*x;

else if(x

y=0.85*x;

else if(x

y=0.8*x;

else

y=0.75*x;

printf(“網(wǎng)友應付優(yōu)惠后款額Y為:y);}

顯然,這段程序冗長,一旦情況有變化,難以擴展。轉換為switch語句結構后,程序就變得相對簡單:

Main()

{float x,y;

Int t;

Printf(“請輸入優(yōu)惠購額款X:\n”);

Scanf(“%f”,&x);

If(x>=40)

t =4;

elst

t=(in)(x/10);

switch(t)

{case 0:y=x;break;

case1:y=0.9*x;break;

case2:y=0.85*x;break;

case3:y=0.8*x;break;

case4:y=0.75*x;break;}

printf(“網(wǎng)友應付優(yōu)惠后款額Y為:y);}

兩種方法可謂異曲同工,但是對于程序的調試性和可維護性卻有天壤之別。在結構化程序的編程實踐中,我們要查找某些錯誤比較困難,所以要盡可能避免出現(xiàn)這些問題。編程技巧需要在編制和調試結構化程序時不斷總結和完善,力求找出最簡便、最直觀的方法。

總之,結構化程序設計方法在實際應用中有許多技巧可以合理運用,這需要我們對算法和數(shù)據(jù)結構展開深入分析,尋找最佳結合點,有的放矢,對癥下藥;更需要在實踐中不斷總結和積累。在編寫過程中我們覺得有些程序沒什么問題,但是一上機調試,就出現(xiàn)這樣或那樣的問題,這說明程序還不完善,還需要調整或改進。當今,高效率和快節(jié)湊的生活與工作方式對程序的設計提出了更高的要求和更苛刻的標準,我們只有不斷創(chuàng)新設計理念和方法,才能編制出更多高質量、高性能、低故障的優(yōu)質程序。

參考文獻:

[1]林銳等編著.高質量程序設計指南[M].北京:電子工業(yè)出版社,2002.

第2篇

關鍵詞: 高級語言程序設計 流程圖 控件 子程序 參數(shù)傳遞

一方面中職學生在初中階段基礎較差,另一方面對于高級語言程序設計的教學不同教材編寫者有不同的思路,為了適應中職學生的學習,在教學中如何更便于學生掌握高級語言程序設計,我在長期從事高級語言程序設計教學的過程中摸索出一套針對中職學生教學的組織教材的思路,下面就以Visual Basic語言為教學背景談談教材組織,請同行予以批評指正。

首先,讓學生熟悉所學的高級語言程序設計的程序結構。不同的高級語言的程序結構的描述過程是不同的,以Visual Basic語言為例,它的程序結構大至如下:

End Sub

因此,讓學生熟悉上述的結構描述方法,讓它像模板一樣印在學生的腦袋中,對于學生對該語言的編寫格式的直觀認識及后續(xù)的學習會起到良好的作用,同時也會為后續(xù)學習數(shù)據(jù)類型、運算符、表達式和常用函數(shù)的上機調試掃除障礙。

其次,讓學生熟悉所學的高級語言程序設計上機的調試環(huán)境和掌握基本的調試步驟。對于程序設計的最終結果是否正確,上機調試是必過的一關,不同的高級語言程序上機的調試環(huán)境是不同的,有的調試環(huán)境功能單一,有的調試環(huán)境功能很多,我認為首先掌握基本的調試功能,再根據(jù)需要逐步介紹和掌握調試環(huán)境所提供的其他功能,這樣更有利于學生學習。以Visual Basic語言為例,我們要求學生首先掌握以下幾個技能:建立一個新的工程,打開代碼編寫環(huán)境,保存一個工程,打開已有的工程,知道運行程序,自如查看運行的結果,并從運行結果中返回并重新修改程序。至于Visual Basic語言集成開發(fā)環(huán)境中所具有的其他功能,則根據(jù)具體調試演示時的需要零散分開,并個別介紹,這樣學生將掌握得較好。

再次,讓學生掌握程序的基本輸入、輸出語句或函數(shù)的功能及用法。程序要進行調試就要有各種各樣測試的數(shù)據(jù)及根據(jù)測試數(shù)據(jù)運行后顯示出的測試結果,以驗證所編寫程序是否正確,這就要求掌握基本的輸入輸出語句的用法。在Visual Basic語言中,inputbox()函數(shù)和print語句的用法就是必須掌握的。通過以上,學生掌握了程序設計的基本“骨架”,以及輸入輸出語句的用法,就可以進行最簡單的順序結構程序的設計了,從而在較短的時間里體驗到成就感,為后繼學習樹立信心。

另外,在講解順序結構程序設計的過程中就要開始逐步地把流程圖的識讀及使用方法教授給學生。流程圖能直觀地表示整個程序設計的流程, 程序的編寫只是對流程圖的一種語句的細化過程,因此看懂流程圖既方便程序設計的講解,又便于學生在課后通過流程圖了解程序設計的思路進行復習或思考,從而避免由于對識讀程序的困難造成理解上的不便。我曾試圖讓學生沒看流程圖而直接通過程序語句來理解程序設計思路,與讓學生通過流程圖來理解程序設計的思路相比,顯然前一種方式對學生來說要困難得多,而且時間長了就很難再理解,而通過流程圖顯然更容易,即使時間久了重新識讀起來也相當容易。

不要把控件的功能及屬性單獨介紹。以Visual Basic語言為例,很多教材都是以順序結構、選擇結構、循環(huán)結構、常用控件的順序來組織教學,我認為這樣讓學生感到很枯燥。因為很多實例在內容上涉及許多數(shù)學的知識,而學生本來數(shù)學基礎就很差,這樣學生厭學的情緒會增加,既不利于教學,又不利于學生學習。因此在教學中應把后面要掌握的控件分別有意識地穿插在順序結構、選擇結構、循環(huán)結構課堂的實例中,讓學生生動地用各種控件結合順序結構、選擇結構、循環(huán)結構程序實例來學習程序設計。一方面,學生不僅有濃厚的興趣而且很容易體驗到成功的喜悅,另一方面又聯(lián)系緊密、節(jié)省課時。當然這樣穿插教學,程序樣例的選擇就非常關鍵,每個樣例都要精挑細選,每節(jié)新課牽涉到的控件以1~2個為宜,否則控件太多的話就會造成課堂時間不足,學生掌握得也不好。

最后就是子程序與參數(shù)的傳遞要放在該門課程快結束時再介紹。這部分內容對學生來說相對較難,特別是參數(shù)傳遞,若在學生還未掌握好程序設計或程序設計還不熟練時就介紹,學生就會思路混亂,從而增加學習難度。若學生都已經(jīng)能熟練地進行程序設計,在此基礎上再進一步地增加子程序與參數(shù)的傳遞的知識,就會錦上添花,學生和老師都會有事半功倍的體驗。

當然,對于教材中的其他內容,則基本上根據(jù)教材編寫的既定內容進行講授。以上是我在高級語言程序設計教學中的體會,至于是否適應其他老師的課堂教學要求,還要在實際教學中進一步探討。

參考文獻:

第3篇

[關鍵詞]C語言程序設計 探究教學 實施目標

中圖分類號:TP312.1-4 文獻標識碼:A 文章編號:1009-914X(2014)17-0126-01

一、 C語言程序設計探究教學實施的目標:情感目標、能力目標和認知目標

1、體驗C語言程序設計的編程思想,激發(fā)和保持對C語言程序設計課程的求知欲,形成積極主動地學習和參與C語言程序設計課程探究活動的態(tài)度。

2、能辯證地認識C語言程序設計對社會發(fā)展、科技進步和日常生活學習的影響。

3、獲得親自參與研究探索的積極體驗、培養(yǎng)嚴謹?shù)目茖W態(tài)度。

4、能從日常生活、學習中發(fā)現(xiàn)或歸納可以利用C語言程序設計解決的問題,通過問題分析確定程序功能。

5、能根據(jù)任務的要求,確定所需信息的類型和來源,并鑒別信息的真實性、準確性和相關性。

6、掌握計算機程序的基本概念,理解并掌握C語言程序設計語言的基本知識,包括語句、數(shù)據(jù)類型、變量、常量、表達式、函數(shù)等,熟悉語言的語法規(guī)則,熟悉計算機程序執(zhí)行的基本過程。

7、了解C語言程序設計語言,掌握編寫程序、編譯程序、連接程序以及程序開發(fā)環(huán)境等基本知識,掌握調試、運行程序的基本方法與技巧。

二、C語言程序設計探究教學實施的條件

1、掌握一定的計算機操作基礎

C語言程序設計課程由于其學科自身的特點,需要在計算機上調試程序,所以要求學生具有一定的計算機操作知識,如:開關機、鍵盤和鼠標的使用、文件的建立與查找、常用軟件的使用等。

2、良好的C語言程序設計認知結構

認知結構就是學生頭腦里的知識結構,是學習者觀念的全部內容和組織。奧蘇伯爾的認知結構理論是針對新學習內容的影響(即遷移)提出的,良好的認知結構有利于知識的提取和正向遷移。C語言程序設計探究教學強調在已有知識經(jīng)驗上的主動建構,面對新的問題和任務,需要學生及時從頭腦中提取信息,建立新舊知識間的聯(lián)系,在已有C語言程序設計知識的基礎上思考解決新問題的辦法,并試圖將新知識納入自己的認知結構中。

3、良好的探究環(huán)境

良好的探究環(huán)境是學生順利進行探究的保證,至少包含兩方面的內容:(1)要有充足的探究時間和靈活的探究條件。探究時間應該根據(jù)學習任務進行合理安排,應該考慮到學生假設錯誤時所耽誤的時間以及討論交流所需要的時間。探究教學中可能需要查閱大量的資料,教師還應該準備書籍、網(wǎng)絡等輔助資源。(2)學生在探究學習的時候不能有太多壓力,不同的學生由于其自身的因素不可能以相同的速度學習,所以教師在進行評價的時候也應該因人而異,應該為每個學生提供充分的思考機會和時間,讓每個學生都能以自己的進度進行探索,并在此過程中感受到樂趣。

三、C語言程序設計探究教學情境的創(chuàng)設

心理學研究表明,恰當、適宜的環(huán)境能有效激發(fā)人的熱烈情緒,提高活動的質量和效果。教學情境是指教師人為創(chuàng)造的“典型場景”,創(chuàng)設目的在于引出教學任務,將學生的注意力吸引到學習任務中來。教師把將要學習的C語言程序設計知識通過一定的情境呈現(xiàn)給學生,使得學生認知結構與周圍環(huán)境不平衡,引起他們對學習目標的注意和興趣,并通過探究活動把學生過去的活動和將來的活動聯(lián)系在心理學研究表明,恰當、適宜的環(huán)境能有效激發(fā)人的熱烈情緒,提高活動的質量和效果。教學情境是指教師人為創(chuàng)造的“典型場景”,創(chuàng)設目的在于引出教學任務,將學生的注意力吸引到學習任務中來。教師把將要學習的C語言程序設計知識通過一定的情境呈現(xiàn)給學生,使得學生認知結構與周圍環(huán)境不平衡,引起他們對學習目標的注意和興趣,并通過探究活動把學生過去的活動和將來的活動聯(lián)系在一體。探究教學情境的創(chuàng)設應做到:(1)創(chuàng)設的情境是為C語言程序設計教學服務的,要以C語言程序設計探究教學目標為依據(jù)。(2)探究情境要接近學生的真實生活經(jīng)驗,能夠吸引學生的注意力,激發(fā)他們的認知沖突和求知欲。(3)學生在情境中能夠感覺到問題的存在,自然地將新舊知識聯(lián)系起來。(4)情境中必須包含學生未知的新內容,而且是能夠通過探究掌握的。

四、C語言程序設計課程中的探究形式

C語言程序設計課程中開展探究教學主要有4種形式:探究性提問、探究性討論、探究性演示和探究性實驗。這4種形式是相輔相承的,而不是孤立存在的,在C語言程序設計探究教學中,需要用到多種形式來構成一個完整的探究教學過程。C語言程序設計探究教學通常都是由探究性提問開始,然后進行探究性討論、探究性演示或探究性實驗;也可能從探究性演示或探究性實驗開始,在演示或實驗的過程中發(fā)現(xiàn)問題,再進行探究性討論。在實際教學過程中,要根據(jù)學習內容和課堂情況靈活地選用這些形式。

五、C語言程序設計探究教學評價

教學評價指依據(jù)一定的標準,通過各種策略和相關資料的收集,對教學活動及其效果進行客觀衡量和科學判定的系統(tǒng)過程。C語言程序設計探究教學評價是對C語言程序設計探究教學過程及其影響的測量、分析和評定,評價中我們更關注學生學習和成長的過程,尋找適合學生發(fā)展的學習方式,滿足學生知識和能力發(fā)展的需要。評價對探究教學的積極作用是很明顯的,但是如果評價指標制定不合理,或者評價方法的選用、評價結果的表述不當,不僅不能達到預期效果,還會對學生的C語言程序設計學習產生消極影響。

參考文獻

[1] 《基礎教育課程改革綱要(試行)》教育部文件,教基[2001]17號.

[2] 保羅 朗格朗.終身教育引論瞰[M].北京:中國對外翻譯出版公司,1985,p15~31.

[3] 聯(lián)合國教科文組織.學會生存――教育世界的今天和明天[M].上海:上海譯文出.

版社,1979,p2.

[4] 張大均。教育心理學[M].北京:人民教育出版社,2005,p68--71.

[5] 靳玉樂.探究教學論[M].重慶:西南師范大學出版社,200l.

第4篇

關鍵詞:C語言;程序設計;for循環(huán)語句;程序算法

中圖分類號:G433 文獻標識碼:A 文章編號:16727800(2013)003018403

0 引言

設計程序就好比寫文章和蓋房子,寫文章要有文章結構,蓋房子要事先設計房子的建筑結構,設計程序則要有程序結構。早在1966年,Bohm和Jacopini提出了程序設計的3種基本結構:順序結構程序設計、選擇結構程序設計和循環(huán)結構程序設計,并且已經(jīng)證明所有程序都可以由這3種基本結構組合而成。其中,循環(huán)結構程序設計是《C語言程序設計》中最重要和最難掌握的一種結構,幾乎每一個實用的程序都少不了循環(huán)結構。因此,循環(huán)結構程序的教學內容對《C語言程序設計》的學習非常重要,在《C語言程序設計》中提供了3種循環(huán)語句:while循環(huán)語句、do~while循環(huán)語句和for循環(huán)語句。其中,for循環(huán)語句是最難掌握和最難使用的一種語句,是整個C語言程序結構中的一個重點內容,也是初學者最難理解的一種語句。在《C語言程序設計》中,for循環(huán)語句是最常使用的“計數(shù)”型循環(huán)結構語句。解決實際問題時,一般情況下,如果題目中明確給出循環(huán)次數(shù),應該首選for循環(huán)語句設計程序,因為for循環(huán)語句看起來結構最清晰、最緊湊,在語句結構中循環(huán)結構程序設計的四要素一目了然,而且執(zhí)行效率高,使用靈活,可以完全取代while語句和do~while語句。當然,對于一些循環(huán)次數(shù)不明確的問題,同樣也可以使用for語句來解決。

1 教學問題分析

for循環(huán)語句是3種循環(huán)語句之一,一般情況下,教學是在學生掌握了《C語言程序設計》的基本語法知識、順序結構和選擇結構,學習了while循環(huán)語句和do~while循環(huán)語句后,對循環(huán)結構程序設計的進一步學習。for循環(huán)語句對于那些沒有學習《C語言程序設計》的初學者來說,的確有點難度。但是,學好for循環(huán)語句對后續(xù)章節(jié)內容的學習相當重要,因此,作為教師一定要清楚學生學好for循環(huán)語句的重要性,明確教學目標。對于學生而言,能夠靈活地使用for循環(huán)語句解決實際問題,并非一件容易的事情。在多年教學實踐中,筆者發(fā)現(xiàn)學生學習for循環(huán)語句時主要存在以下幾個方面的問題:①不清楚什么樣的問題需要循環(huán)結構來處理;②對for循環(huán)語句的執(zhí)行過程不易掌握和理解;③不能靈活地使用for循環(huán)語句解決實際問題;④編寫的程序經(jīng)常出現(xiàn)死循環(huán)。2 教學問題解決

教師在教學過程中如何取得良好的教學效果,并很好地達到教學目標,離不開教師的“教”和學生的“學”,如何“教”和怎樣引導學生“學”是教師所要探討的問題。整個教學過程的教學設計、教學環(huán)節(jié)、教學方法、教學手段和教學思路都特別重要。對《C語言程序設計》這門課程中的for循環(huán)語句來說,根據(jù)知識點的特點,主要應采用案例教學法和任務驅動教學法,并通過遷移式指導的學習方法,引導學生學會如何運用新知識解決實際問題。

在教學活動中,學生掌握for循環(huán)語句的格式,并能夠正確地理解for循環(huán)語句的流程和功能,對于學生學習和使用for循環(huán)語句來編寫程序相當重要。所以,本節(jié)課的重點確定為“掌握for循環(huán)語句的結構”。學生掌握for語句的結構和用法并不困難,難的是在實際應用中,如何分析問題、解決問題,使程序變得更加簡潔、高效。因此,本節(jié)課的難點確定為“for循環(huán)語句的應用”。為了取得良好的教學效果,讓學生很好地掌握for循環(huán)語句,根據(jù)知識點的特點,設計的教學思路是:厚基礎、抓重點、破難點。根據(jù)知識點難易程度的不同,把教學新內容由易到難、由淺入深地劃分為3個層次進行講解。

第一:講解for循環(huán)語句的一般格式和流程。

在教學過程中,主要采用的辦法是把教材原本復雜的內容簡單化,變得易于理解和掌握。針對語句格式,首先講解語句的一般格式:

for(表達式1;表達式2;表達式3)

{ 循環(huán)體語句; }

進一步講解易于理解的應用格式:

for( 循環(huán)變量初始化;循環(huán)控制條件;修正循環(huán)變量 )

{ 循環(huán)體語句; }

最后講解簡化為容易掌握的四要素格式:

for( 1 ; 2 ; 4 )

{ 3; }

同時,為加深學生對知識點的理解,將for循環(huán)語句與while循環(huán)語句、do~while循環(huán)語句進行比較學習,并且強調應用for語句格式應注意的事項。

針對語句的流程,并沒有講解教材中描述的復雜流程圖,而是想辦法把復雜內容簡單化后再講解。在for循環(huán)語句四要素格式的基礎上,給出一種能夠將語句的流程在語句格式上體現(xiàn)得清晰、明了的 “語句格式流程圖”。見圖1。

在講解了語句格式和流程后,緊接著采用案例教學法和任務驅動教學法,引導學生自己設計一個簡單程序:運用for語句在屏幕上輸出20個“*”。主要目的是給學生創(chuàng)造一定的條件,引導學生主動探索、獨立思考、發(fā)現(xiàn)問題、分析問題和解決問題,以培養(yǎng)學生的探索精神和自學能力,從而提高學生學習新知識、解決新問題的能力。

第二:講解for循環(huán)語句靈活多變的語句格式。

for循環(huán)語句靈活多變的格式是學習for循環(huán)語句的重點內容。緊抓重點,在教學活動中主要采用遷移式指導的學習方法,教師“舉一”,主要以輸出20個“*”的問題為例,培養(yǎng)學生“反三”,反復變化for語句的格式來解決同一個問題。結合循環(huán)結構程序設計的四要素,對for循環(huán)語句的各種形式進行詳細地剖析,并且演示程序的運行結果,使學生完全透徹地理解for語句靈活多變的結構。從而解決教學的重點內容:for語句的結構,并從中拓展以提高學生對知識點的學習。

第三:for循環(huán)語句的應用。

運用for循環(huán)語句解決實際問題是教學的難點所在。教師在授課時應盡量結合生活中的實際問題,講解程序設計的基本思想和方法。既讓學生掌握for循環(huán)程序設計的思路和方法,同時教會學生學習新知識,并培養(yǎng)其解決實際問題的能力。在教學活動中通過解決一個實際問題:判斷素數(shù)(輸入一個正整數(shù)m,判斷它是否為素數(shù)),來突破教學的難點內容。教學活動中采用了案例教學法和情景教學法,并輔以任務驅動及討論的方式。從問題的概念出發(fā),教學活動通過如下的一系列問答來開展:

問:什么是素數(shù)?

答:除了1和它本身,不能被其它數(shù)整除的數(shù)叫素數(shù)。

問:17是不是素數(shù)?

答:是。

問:你們是怎么知道17是素數(shù)的?怎么才能讓計算機明白?

答:從2開始一個一個去找,看是否能找到一個能被17整除的數(shù),如果找到了,就不是素數(shù),如果找不到,就是素數(shù)。

教學的目的是為學生創(chuàng)造自主體驗的情景和語言描述的情景,使學生在課堂上處于主體地位,并且為學生提供良好的暗示和啟迪,從而鍛煉學生的創(chuàng)造性思維,以培養(yǎng)學生的適應能力為目標。在學生主動參與教學活動的前提下,詳細講解算法分析,從而獲得良好的教學效果。

算法分析如下:

判斷一個數(shù)m是否為素數(shù),需要判斷該數(shù)是否能被除了1和自身以外的其它數(shù)整除,即判斷m能否能被2~m-1之間的數(shù)整除。運用C語言算術運算符中的求余運算來判斷整除。

設i取值\[2,m-1\],如果判斷m不能被該區(qū)間上的任何一個數(shù)整除,即對每個i,m%i都不為0,則m是素數(shù);但是只要m能被該區(qū)間上的某個數(shù)整除,即只要找到一個i,使m%i為0,則m肯定不是素數(shù)。顯然,這個判斷過程是一個循環(huán)問題。

從數(shù)學的角度考慮,m不可能被大于m/2的數(shù)整除,所以上述i的取值區(qū)間可以縮小到\[2,m/2\]。

引導學生編寫程序代碼如下:

#include

void main ( )

{ int i , m ;

printf (“ 請輸入m的值:”);

scanf (“%d” , &m);

for ( i=2 ; i

if ( m%i==0 ) break ;

if ( i>m/2)

printf (“%d是一個素數(shù)\n” , m);

else printf (“%d不是素數(shù)\n” , m);

}

數(shù)學上可以充分證明,i的取值區(qū)間還可以縮小到\[2,sqrt(m)\]。從減少判斷范圍的角度出發(fā),進一步優(yōu)化程序的算法,編寫出更加簡潔、高效的程序,從而提高學生的程序設計能力,激發(fā)學生的編程興趣。

#include

#include

void main ( )

{ int i , m ;

printf (“ 請輸入m的值:”);

scanf (“%d” , &m);

for ( i=2 ; i

if ( m%i==0 ) break ;

if ( i>sqrt(m))

printf (“%d是一個素數(shù)\n” , m);

else printf (“%d不是素數(shù)\n” , m);;

}

為鞏固學生對新知識點的掌握,安排課堂作業(yè):仍然解決判斷素數(shù)的問題,在以上講解的基礎上,引導學生從排除偶數(shù)的角度出發(fā),進一步優(yōu)化程序的算法,要求學生分組討論問題,課堂完成作業(yè)。教學設計的主要目的是實現(xiàn)學生情感目標的培養(yǎng),增強學生的編程興趣,提高學生的學習積極性。

3 循環(huán)程序實現(xiàn)要點

實現(xiàn)循環(huán)結構程序必須具備4個組成部分:循環(huán)變量的初始化;循環(huán)控制條件;循環(huán)體語句;循環(huán)變量的修改。其中,最關鍵的是要確定以下兩點:①歸納出哪些操作需要反復執(zhí)行?――循環(huán)體語句;②這些操作在什么情況下重復執(zhí)行?――循環(huán)控制條件。只要明確地分析出循環(huán)體語句和循環(huán)控制條件,那么循環(huán)結構也就基本確定了,再根據(jù)具體問題,加上循環(huán)變量的初始化和循環(huán)變量的修改,最后從《C語言程序設計》提供的3種循環(huán)語句中選擇一種具體循環(huán)語句來實現(xiàn)程序代碼。

4 結語

for循環(huán)語句在整個《C語言程序設計》的學習中相當重要,在程序設計中幾乎是無處不用。因此,在教學過程中一定要想辦法讓學生很好地掌握for循環(huán)語句,為學好《C語言程序設計》打下堅實的基礎。

參考文獻:

\[1\] 廖雷.C語言程序設計\[M\].北京:高等教育出版社,2002.

[2] 譚浩強.C語言程序設計\[M\].北京:清華大學出版社,2000.

[3] 楊起帆.C語言程序設計\[M\].杭州:浙江大學出版社,2006.

第5篇

論文摘要 針對現(xiàn)階段程序設計語言教學中存在的普遍問題,在對程序設計教學思想、程序設計能力認識分析的基礎上,提出程序設計語言教學中的若干要點。

1 引言

在計算機專業(yè)和非計算機專業(yè)的計算機教學中,學校幾乎都設置了高級語言程序設計課程。與一些應用軟件或工具軟件相比,編程課程的教學具有較大的靈活性。很多學生的學習能力較差,課后不肯花時間,久而久之,導致聽不懂,給計算機編程語言課的教學帶來一定的難度。采用何種教學模式進行教學就成為編程語言教學的一個關鍵。

2 現(xiàn)階段程序設計語言教學中存在的普遍問題

根據(jù)以往的教學經(jīng)驗和通過與學生、同事之間的交流,得知部分學生反映上課時都能聽懂講解,可在涉及到具體的編程及上機操作時,往往會出現(xiàn)沒有思路、無從下手或錯誤百出,不會調試程序等各種情況,究其原因,在教學方面可能存在以下2個問題。

2.1 過于注重對語句語法的講解,缺乏以算法為核心的編程題教學教師鐘情于舉一反三地對使用語句、語法的深入教學,而不是有機地結合算法思想進行教學,貼近生活并引起學生興趣的編程題講得很少。由于教學不是站在如何應用計算機工具編程解決實際問題或實際項目的角度,就沒有把邏輯與編程解題思路放在主體地位,也就沒有很好講解如何分析問題和解決問題。結果導致學生程序設計能力、上機解題能力訓練不夠,更談不上引導學生進行課題研究和科研探索。

2.2 學生厭倦傳統(tǒng)的課堂教學,缺乏師生之間的溝通交流學生對于先講后編、先聽后編這一傳統(tǒng)的課堂教學方式有厭倦心理。課堂成了教師的“一言堂”,教與學不能銜接起來。有時教師為了趕進度,講授法成了唯一的教學方法,師生之間缺乏足夠的交流和溝通,學生沒有有效、實用的學習輔助途徑,也間接影響著學生的學習興趣和學習效果。

3 程序設計教學思想解析

學生與教師的角色改變,就是教與學相互滲透的結果。教學中突出學生的主體能動性,是現(xiàn)代教學方法的核心。教學過程是教師根據(jù)教學的目的和任務以及學生身心發(fā)展的特點有計劃地引導學生掌握知識、認識客觀世界的過程,是通過知識的傳授和掌握來促進學生身心全面發(fā)展的過程。而在教學過程中一定要按照教學規(guī)律,只有按照教學規(guī)律辦事,才能提高教學質量,增強教學效果,并促進學生思維的拓展和能力的提高。

教學應該在理論與實際的結合過程中傳授和學習基本知識,從而引導學生運用所掌握的知識去分析問題和解決問題,在動手實踐中達到培養(yǎng)學生手腦并用能力的目的。除了進行一些必要的概念講解之外,教師主要應該讓學生通過上機實踐的辦法來掌握所學內容。一方面,通過上機實踐可以加深對課堂理論內容的理解和掌握;另一方面,通過上機實踐可以提高學生上機調試程序的能力,提高學生的編程能力,提高學生分析問題和解決問題的能力。

4 程序設計能力認識

程序是軟件的本體,程序設計(Programming)是指設計、編制、調試程序的方法和過程。它應排除軟件開發(fā)中的工程與管理因素,主要指軟件開發(fā)過程中的技術因素,尤其是計算機技術因素。

根據(jù)調查分析,合格程序員必須具有:1)扎實的專業(yè)基礎知識;2)很強的綜合分析和解決問題的能力;3)熟練的編程調試能力;4)創(chuàng)新能力;5)團隊合作能力;6)持續(xù)的自學能力;7)強烈的好奇心;8)較高的英語水平和軟件工程的實踐能力等。

應看到,程序設計能力,并非完全等價于程序員所應具備的專業(yè)素質,它還包括其他一些內容,如:1)理解問題,根據(jù)已知條件,找出求解該問題的數(shù)學方法或建立相應的數(shù)學模型;2)歸納程序的基本功能;3)設計數(shù)據(jù)結構和算法;4)用程序設計語言實現(xiàn)算法描述;5)編譯與調試;6)測試程序,保證程序正常運行。

綜上所述,可以將程序設計能力定義為:依據(jù)程序設計思想與觀念,應用程序設計語言,采用相應程序開發(fā)技術和環(huán)境,進行程序設計并達到預計結果的程度。

5 程序設計語言教學要點分析

基于對程序設計教學思想、程序設計能力的認識,為使學生充分掌握程序設計的思想和方法,有效實現(xiàn)程序設計課程教學目標,我認為程序設計教學還應注意并強調以下幾個基本的教學任務和要求。

5.1 程序設計基本概念的灌輸在整個課程教學過程中,結合具體實例的演示,應向學生反復強調程序,注意學生程序設計中基本概念的理解。學生只有對程序設計基本概念有了正確的掌握,才會為以后課程學習打下基礎,為學習興趣培養(yǎng)埋下伏筆;同時程序設計作為一門特殊意義上的課程,包含了許多計算機用于數(shù)據(jù)處理的基本原理、基本過程和特點,這些知識蘊藏于程序的基本概念之中,同時這些概念也是程序設計思想與觀念的載體。

5.2 結構化程序設計基本概念的培養(yǎng)結合控制語句結構和函數(shù)的學習,應著重培養(yǎng)學生的結構化程序設計的基本觀念。結構化程序設計的基本思想是采用“自頂向下,逐步求精”的程序設計方法和“單入口單出口”的控制結構,它是程序設計的基本原理之一。貫徹課程始終、通過具體實例潛移默化地培養(yǎng)這一思想,比在軟件工程中空洞的說教,更容易被學生理解和接收。

5.3 計算機算法觀念的培養(yǎng)通過控制結構、函數(shù)等學習,初步培養(yǎng)學生在程序設計中的算法觀念。如同數(shù)據(jù)結構觀念培養(yǎng)一樣,一則增強學生的程序設計觀念,二則也為學生留下廣闊的思考空間,以增強學習興趣。再次,通過這種觀念的培養(yǎng),能夠直接提高學生初步的程序設計能力。

5.4 通過優(yōu)秀的有趣的實例,激發(fā)學生學習興趣恩格斯說“興趣與愛好是最好的老師”。為了使初學者能盡快地掌握計算機知識,進入計算機的應用領域,在課程講授過程中,要特別注意培養(yǎng)學生的學習興趣。學習興趣就是學生在心理上對學習活動產生愛好、追求和向往的傾向,是推動學生積極主動學習的直接動力。學習興趣直接關系到教學效果的好壞。為提高學生的學習興趣,筆者歸納出6個辦法:1)通過演示程序突出程序語言的實用性;2)通過簡單的編程練習突出語言的易學性;3)運用恰當?shù)念惐仁箯碗s問題形象化、簡單化;4)做到一題多解;5)要善于舉一反三;6)通過解決實際問題使學生樂學。

5.5 有選擇地運用多媒體教學直觀、形象、便捷的多媒體教學可以使學生在有限時間內迅速理解、掌握、獲取更多知識和信息,在教學過程中,我們有選擇地使用多媒體教學,將編程語言語法中的深奧理論和邏輯推理的內容,運用多媒體教學直觀、形象地講授給學生,加深其對問題的理解。這樣的多媒體教學,收到了將抽象問題形象化、枯燥問題生動化的效果。對于多媒體教學不易實施的程序設計方法的講解,我們可以采用傳統(tǒng)的教學方法,教會學生如何思考、推理,如何用語句實現(xiàn)算法,培養(yǎng)了學生的抽象思維、邏輯推理能力。這樣,將傳統(tǒng)的教學方法與多媒體教學相結合,大大提高了學生的綜合思維能力。

5.6 教師在教學過程中,應當注意設置疑難問題,引導學生思考和探索教學時發(fā)現(xiàn),學生問不出問題的原因往往在于沒有真正學好。實際上,問題是最好的老師,是學生學習的引導者,沒有問題便沒有深入。在教學過程中,引導學生在問題解決中學習,即提出問題,留給學生時間思考、討論、解決問題,從而更深入地展開學習。實踐證明,這種教學方法充分調動了學生學習的積極性和主動性。

5.7 充分利用上機實踐程序設計語言,學生與教師在理論課與實踐課的角色是不同的。教師從課堂上的教學組織者轉變?yōu)樯蠙C操作的指導者。作為教學組織者,負責知識點的傳授,此時教師有較充分的主動性,易于控制所傳遞的知識內容,可使學生在較短時間內獲得較多的知識。但學生只是被動地接受知識,學生的積極參與少。上機操作是實現(xiàn)檢驗計算機編程語言課堂教學效果的重要方面。此時的教師是上機的輔導者,學生親自動手、動腦參與教學活動。但是上機操作課對學生來說是輕松的,若教師管理不當,會造成學生無所事事的局面。上機課是對理論課的應用和檢驗,對教師有更高的要求,因此,上機操作前教師要根據(jù)知識點布置相應的練習任務,編程序或調試程序。同時學生要完成有針對性的上機報告,進一步鞏固上機成果。

5.8 布置代表性的作業(yè)做作業(yè)是復習、練習的過程,也是繼續(xù)和深入學習的過程。我們每次課后給學生布置一些有代表性、恰當?shù)牧曨},以鞏固課堂上所學的內容。也通過學生所做作業(yè)的好壞來了解學生對課程內容的掌握程度以及教師的教學效果。對作業(yè)中比較普遍出現(xiàn)的錯誤,我們都要在下節(jié)課上當堂講解,因為那是在上節(jié)課沒講清楚所致。作業(yè)中表現(xiàn)出與眾不同的、新穎的程序設計方法和思路,也要當堂宣講或作業(yè)批注,以鼓勵這種另辟新徑的有創(chuàng)意的學風。

在程序設計語言教學中,尤其語言基本要素的講解過程中,或隱或顯地,把如上幾點教學內容納入到課堂中,程序設計語言教學必定會從一種就語言而教語言的呆板模式中走出來,充分發(fā)揮出其在程序設計能力培養(yǎng)中的作用。

第6篇

關鍵詞:研究;計算機編程思想;結構化程序設計思想;面向對象的程序設計思想;AOP編程思想

中圖分類號:TP3文獻標識碼:A文章編號:1007-9599 (2012) 05-0000-02

隨著經(jīng)濟社會的發(fā)展,信息技術也迎來了前所未有的快速發(fā)展,計算機編程的應用范圍也愈加廣泛。而其中的編程思想,作為一個主要條件,可以使編程人員編出更好的程序,本文分析了目前編程界最為主流的兩種計算機編程思想,同時和將要興起的新技術AOP,與OOP相比,其影響力巨大。因此,本文分析了其編程思想以及優(yōu)越性,還闡述了開發(fā)步驟。

一、計算機編程思想研究

(一)結構化程序設計

對于結構化編程思想,其為面對繁雜任務的時候,防止混亂的一種編程思想,重視將程序結構進行規(guī)范化,要按照大腦極易理解的方式,合理組織繁雜問題的求解過程。針對此編程思想,編程者應該遵循結構形式,進行程序的設計及編寫,保證程序的正確結構,方便地進行程序正確性的證明,該思想重點有以下幾點內容:

運用由頂往下逐漸細化的方法。因為結構化編程運用了功能抽象與模塊分解,其能合理地把繁雜程序任務分解為容易處理及控制的一些子任務,隨后實施級別更細的任務分類,保證最終分出的子任務均是進行獨立編程的子程序模塊。隨后根據(jù)某些調用以及結構關系,將子程序模塊進行合理組織,最終得出需要的程序。根據(jù)結構化程序設計思想,得出的程序具有如下好處:很好的結構、每個模塊之間有著簡單清楚的關系、在各個模塊內,均有基本單元構成。因此,得出的程序清楚易讀,良好的可理解性,正確性還易驗證,維護、調試以及修改容易進行。出現(xiàn)了結構化編程思想,使之前軟件開發(fā)存在的混亂狀況消除,編程人員編寫的程序存在優(yōu)越的結構。還因為運用“自頂向下以及逐步細化”的方法,使人們智力合理地組織起來,對軟件工程化研發(fā)是有益的。所以程序維護以及設計工作效率得以提升。

若干基本結構構成程序,對于任意的大型程序,均包括三種基本結構,這些基本結構使某個結構化的程序得以順序地組成。主要有順序、選擇以及循環(huán)結構這三種基本結構。軟件界的具體實踐以及結構化定理已證明,對于任意繁雜問題的程序設計,均可運用順序結構、選擇結構以及循環(huán)結構構成,同時還具備下面一些特征:僅一個入口及出口;在結構內,沒有死循環(huán),在程序內,以上三種基本結構的順序執(zhí)行關系得以構成。

根據(jù)功能,能把大型程序劃分為若干基本功能模塊。一些子模塊一起構成各個模塊,每個模塊在功能方面互相獨立,各個功能模塊均有進行計算機控制以及數(shù)據(jù)處理的功能。盡量使模塊間的聯(lián)系簡潔。最終將模塊根據(jù)某些層次關系,實施組織,繁雜程序的功能得以構成。

(二)面向對象的程序設計

針對面向對象的程序設計,其編程思想是運用消息、對象、類、繼承以及封裝等這些基本概念,實施程序設計。為使結構化程序設計方法處理不了的代碼重用這些問題得以解決,便給出了面向對象程序設計技術,面向對象的程序設計編程思想包括如下特點:面向對象的特點之一就是封裝,其為類與對象概念的重要特征。封裝給模塊帶來了比較良好的獨立性,程序修改與維護起來較為簡單。抽象包括數(shù)據(jù)與過程抽象。繼承性使軟件的可重用性這個問題得到良好處理。多態(tài)性使應用程序函數(shù)的同名這類問題得到良好解決。

面向對象的編程思想存在很多優(yōu)越性,其減少了程序開發(fā)時間,提升了可靠性,開發(fā)出來的程序更有強壯性,維護起來更容易。面向對象編程因為具有較高的可重用性,針對應用程序,能積極運用成熟的類庫,進而使軟件開發(fā)效率得以極大提高,所以,軟件界對這種面向對象的編程思想進行提倡運用。日益增多的編程人員認可并運用了面向對象的編程思想,同時結構化編程思想在進行具有比較強功能性的軟件設計里,其指導作用仍然得以發(fā)揮。實際上,以上兩種編程思想沒有互相隔離,卻是相互支持、聯(lián)系的。在如今的軟件界,進行面向對象程序設計的時候,具有公認的編程公式:其一為對象=算法十數(shù)據(jù)結構,其二為程序=對象+對象,通過公式,能觀察出以上兩種編程思想的關系及區(qū)別。進行面向對象的程序設計時候,仍然不能脫離完成算法的結構化程序設計,其中的結構化程序設計還是編寫對象進行操作的重要所在。

二、AOP編程思想研究

(一)AOP將系統(tǒng)視為關注點

其實它為GOF(Observer Design Pattern)設計模式的一種持續(xù),進行了被調用者與調用者間解耦的強調,給開發(fā)人員帶來進行橫切關注點-Crosscutting Concern描述的合理機制,還可以把橫切關注點主動地織入-weaving于面向對象的軟件系統(tǒng)內,確保橫切關注點模塊化得以實現(xiàn),進行方面-Aspect代碼的合理劃分,橫切關注點顯得極易進行處理。開發(fā)人員進行編譯的時候,插入、更改或者除去系統(tǒng)的方面,更可能重用系統(tǒng)的方面。由于開發(fā)環(huán)境各不相同,關于概念也會有所不同。

(二)針對的問題

AOP通?;谶M行業(yè)務處理中的切面實施提取,進行處理的時候,其面對著其中的一個步驟或者哪個環(huán)節(jié),以確保整個邏輯中每個部分間低耦合性產生的隔離作用。針對動詞方面,其重視的為橫向的,即為整個邏輯中一個方面或者某個片段,例如:權限以及日志管理,一般情況下,其進行某些軟件系統(tǒng)自身東西的關注。并非面向對象進行業(yè)務邏輯的關注。運用有效松散方式,使系統(tǒng)間的耦合度這些問題減少,方面即為它的模塊化單位。

(三)軟件性能

1.代碼擴展性

對于AOP,因為方面模塊并不了解橫切關注點,因此極易進行新方面的增加,并投入新功能。同時,把新的模塊加到系統(tǒng)中的時候,已經(jīng)存在的方面會自動橫切進入,確保系統(tǒng)容易擴展。

2.代碼冗余度

運用最小的耦合進行各個關注點的有效處理,保證雖然為橫切關注點,還是模塊化。如此實現(xiàn)的系統(tǒng),它的代碼冗余不大。進行模塊化實現(xiàn),促使系統(tǒng)的維護與理解更為容易。

3.代碼重用性

AOP將各個方面變成為獨立模塊,在模塊間,其為松散耦合。能使用其它獨立的日志寫入器取代此時的,進而將日志合理地寫入數(shù)據(jù)庫中,保證與各種日志寫入要求相符。正確實現(xiàn)松散耦合,經(jīng)常象征著代碼重用性更為良好。

(四)AOP的開發(fā)程序

基于面向對象編程-OOP這種方法,AOP才得以改進,其為具有創(chuàng)新性的一種軟件開發(fā)方法。一般具有如下的幾個開發(fā)程序:

1.方面分解

進行分解,要得出橫切關注點。在這個步驟中,將系統(tǒng)級的橫切關注點與核心模塊級關注點進行合理分離。

2.關注點實現(xiàn)

進行關注點的獨立實現(xiàn),將各個需求映射成為代碼,編譯器隨后將其翻譯成為一些可執(zhí)行代碼。能依靠另外的編程范型,把其當作前提,確?;A范型具有的優(yōu)勢還得以保留。比如:AOP能利用OOP當作基礎范型,直接地將OOP擅長處理普通關注點的優(yōu)勢引用來。利用如此的實現(xiàn),一般的獨立關注點能利用OOP技術,其和過程型語言為很多OOP語言的基礎相似。關注點實現(xiàn)因為按照指定過程這一形式產生,能運用C、C++或者Java這些傳統(tǒng)語言。

3.方面的重新組合

在此步驟中,方面集成器進行某個模塊單元的建立,也就是方面,進行重組標準的指定,常把重組過程稱為結合或者織入,運用合適的信息進行最終系統(tǒng)的組建。

AOP實現(xiàn)能夠運用許多方式進行織入的實現(xiàn),進行源碼至源碼的變換,進行各方面源碼的預處理,織入過的源碼得以出現(xiàn),再將織入過的源碼傳到編譯器,最終可執(zhí)行代碼得以生成。運用此方式,基于Java的一個AOP實現(xiàn),能將很多方面變換為Java源代碼,隨后通過Java編譯器,將其變換為字節(jié)碼,還能處于字節(jié)碼級別進行織入的執(zhí)行,實際上,字節(jié)碼自身也為一種源碼。同時,對于底層中的執(zhí)行系統(tǒng)Java虛擬機,還能設計成為對AOP支持?;贘ava的AOP實現(xiàn)要是運用此方式,能在虛擬機中,把織入規(guī)則載入,隨后就之后載入的類均利用此規(guī)則,實際上,其能進行just-in-time方面織入的執(zhí)行。

三、總結

由于編程實踐的一直開展,編程思想就會產生,產生的各種新編程思想,均對編程實踐進行合理指導,且均使計算機軟件開發(fā)的質量與速度得以提升。在當今,AOP實現(xiàn)與語法尚未進行完全規(guī)范,其為基于OOP以后的編程思想的一種創(chuàng)新,其能選用OOP當作基礎范型,具有讓人無法抗拒的好處,業(yè)界會進行認可、接受,但是還要更深刻地探究其中存在的問題。

參考文獻:

[1]李明.C++程序設計[M].北京:中央廣播電視大學出版社,2008:l96-198

第7篇

1.思維導圖

思維導圖(Mind Maps)是英國人東尼?博贊(Tony Buzan)在20世紀70年代提出的一種先進的記筆記方法,一般通過帶順序標號的樹狀結構來實現(xiàn)思維過程,它是以圖和直觀形象的線條進行思考和表達的,并將放射性思考實現(xiàn)具體化。國外的一些世界500強企業(yè),如微軟、IBM、惠普等,都是思維導圖的第一受益者和倡導者。思維導圖主要由圖像、顏色、曲線和關鍵詞等元素構成,其主要特點有:主題主干作為分支呈放射狀、注意力主要集中在中央圖形上、分支構成一個連接的節(jié)點結構體系、由關鍵詞或關鍵圖形構成分支。

2.“C語言程序設計”課堂教學的現(xiàn)狀

《C語言程序設計》是一門理論與實踐并重的程序設計課程,教學難度較大,對于很多知識,學生總是似是而非,概念模糊,不能完全理解和掌握。

目前,《C語言程序設計》課程教學情況主要表現(xiàn)在以下幾個方面:

(1)在教學模式上,教師多采用多媒體教學,課堂理論加上機實驗的教學模式,課堂理論為主;

(2)在教學手段上,教師按照CAI教學課件進行講解,學生所接受的都是零散的知識,這一節(jié)課學完,下一節(jié)課可能就忘記了最基本的知識點;

(3)在教學方法上,以教師講授為主,缺乏師生互動和驅動式任務教學,對于課程和章節(jié),學生也不能從整體進行認識和掌握;

(4)在實驗環(huán)節(jié)中,由于學生對基礎理論知識掌握的不夠扎實,在上機課時,只是機械的照搬教材代碼,以驗證課堂內容為主,不能很好地理解程序的編程思路和方法,以致于課程結束時,學生不能很好地開發(fā)一個小的C語言程序。

為了加強學生的邏輯思維能力,提高學生學習效果,我們將思維導圖這一教學方法應用在《C語言程序設計》課堂教學中。

3.思維導圖在C語言程序設計課堂教學中的探索

在《C語言程序設計》這門課程中,教學內容非常多, 包括程序設計基礎知識、常量變量、數(shù)據(jù)類型和表達式、順序結構程序設計、選擇結構程序設計、循環(huán)結構程序設計、數(shù)組、函數(shù)、指針、用戶自己建立用戶類型、文件的輸入輸出等。

(1)課程的綜合性設計。由于C語言內容較多,學生對知識只是進行線性的接受,不能對課程形成整體的認識,因此,首先對課程進行整體設計。

采用XMind思維導圖設計軟件,對C語言課程整體結構圖進行設計,如圖1所示。

在第一節(jié)課授課過程中,教師采用思維導圖呈現(xiàn)給學生這門課程的整體結構,學生頭腦中能夠對課程有整體的認識和了解,有助于提高學生的學習興趣和求知欲望,便于學生進一步學習。

(2)章節(jié)的連續(xù)性設計。C語言中的三種程序設計結構在知識講授結束時,要進行章節(jié)的總結,將三種程序結構的相關知識以思維導圖的形式展現(xiàn)出來,一方面不僅可以加深了學生對知識的理解和掌握,另一方面也潛移默化地引導學生主動學習和對知識連續(xù)記憶的能力。

(3)知識點的擴展性設計。在引入新章節(jié)時,教師首先向學生展示章節(jié)完整的思維導圖,將其作為目標教學的工具。思維導圖的運用能使學生明確學習目標、學習內容與范圍,以及各知識點之間的先后順序,能夠更形象、更直觀、更全面的表述學習進度目標。以循環(huán)結構一章為例,教師首先給出整體的章節(jié)結構,同時每個知識點都可以進行擴展,輔助學生記憶。

(4)學生的自主性設計。在進行章節(jié)復習時,教師展示章節(jié)完整思維導圖的同時,引導學生自行繪制出思維導圖,教師也可以只給出提示或關鍵詞,引導學生建立內容全面、詳實的思維導圖,從而建立自己的知識結構,更好地掌握知識。

教師通過學生設計的思維導圖能夠發(fā)現(xiàn)學生的知識結構和對知識的理解和認知程度,從而更好的優(yōu)化教學。學生在自我設計過程中,能夠及時發(fā)現(xiàn)知識的盲點區(qū),不斷學習并進行彌補,提高自己對知識的掌握。

第8篇

初中信息技術選修部分主要介紹VB程序設計,學生剛接觸到它會感到陌生,并帶有一種神秘感,認為程序設計一定很難,只有高手才能學會編寫程序。有了這樣的想法,就為教師的教學帶來一定的困難。那么,程序設計這部分內容怎樣教,才能讓學生順利地掌握這些內容,為升入高一級學校繼續(xù)學習程序設計打下堅實的基礎呢?經(jīng)過幾年的程序設計教學,要讓學生掌握以下幾個方面,就會很輕松地完成教學目標。

一、什么是程序和程序設計

首先要讓學生理解什么是程序。程序是為實現(xiàn)特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。要讓學生理解它,必須從學生熟悉的實例入手。教材中舉了一個“獵人過河”的趣味問題,獵人怎樣順利一把一只狼、一頭羊和一些白菜帶過河,只要按照如下的指令做,就能順利過河:

第1條:把羊帶到對岸;

第2條:返回;

第3條:把狼帶到對岸;

第4條:返回時把羊帶回原岸;

第5條:把菜帶到對岸;

第6條:返回;

第7條:把羊帶到對岸。

通過執(zhí)行這些有序的指令完成了“獵人過河”這一具體的工作,這些指令的集合就是程序。這個程序是用人類語言描述的,計算機不能識別,如果用計算機能識別的語言來描述這些指令,這就是計算機程序。

其次要知道什么是程序設計。程序設計是給出解決特定問題程序的過程,可以用一個公式來說明:程序設計=數(shù)據(jù)結構+算法。

按照百度百科的定義:數(shù)據(jù)結構求助編輯百科名片數(shù)據(jù)結構是計算機存儲、組織數(shù)據(jù)的方式;數(shù)據(jù)結構是指相互之間存在一種或多種特定關系的數(shù)據(jù)元素的集合。算法是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問題的策略機制。

如果把程序設計當成蓋房子,那么數(shù)據(jù)結構就像磚、瓦,而算法就是設計圖紙。你若想蓋房子首先必須有原料(數(shù)據(jù)結構),但是這些原料不能自動地蓋起了你想要的房子;你必須按照設計圖紙(算法)上的說明一磚一瓦地去砌。這樣你才能擁有你想要的房子。程序設計也一樣,你使用的編譯工具中有各種功能語句或基本結構,它們不會自動排列成你要的程序代碼。你得按照程序規(guī)定的功能去編寫,而程序的功能是實現(xiàn)算法的具體體現(xiàn)。所以通俗地說:你必須按照特定的規(guī)則,把特定的功能語句和基本結構按照特定的順序排列起來,形成一個有特定功能的程序,這就是:程序設計=數(shù)據(jù)結構+算法。

二、學好數(shù)據(jù)結構是學好程序設計的第一步,也是關鍵的一步。

三、學好算法,這個是程序設計的重點,也是難點。

四、要讓學生養(yǎng)成一個良好的程序設計風格和習慣。

首先,要讓學生養(yǎng)成自上向下逐步求精的程序設計思想和方法。怎樣才是自上向下逐步求精的程序設計呢。舉個例子,有這樣一個問題:求1+2+3+…+N。

現(xiàn)在,當你看到這個問題時,你不要立即下手去編寫,而是要思考一下怎樣才能求解(算法),然后把它寫下來以免忘記。于是就寫了一級算法:

1.輸入N;

2.計算S=1+2+3+…+N;

3.輸出S。

當你寫完之后,你若覺得第2步不太清晰,還不能寫出代碼,那就繼續(xù)求精,二級求精:

2-1.S初始為0;i初始為1;

2-2.第i次循環(huán)將i累加到S;

2-3.i每循環(huán)一次增加1,直到i等于N后結束。

這樣問題就得到了解決,接著就可以輕松的編代碼了。再仔細看看上面的步驟:先寫出一級算法,如果覺得由此還是得不到源代碼,或者是其中有一步還有很多步驟要寫,那么就繼續(xù)求精,直到你認為可以很清晰的寫出代碼為止。但是求精可以因人而異,像上面的題目,若是一個編過很多程序的人來說,可能不用什么求精,代碼就可以直接寫出來了;但要是一個初學者來說就可能要寫到二級求精。

這樣說來,有人可能認為這個求精是不是太慢,抑或根本就是在浪費時間。這可是眾多的編程先驅推薦的基本方法。你知道編程中,主要時間用在了哪里嗎?不是編寫代碼,而是用在了求解算法和調試程序上了!而算法的求精就是縮短這些時間的最好的方法。它可以使你不用再很費力的苦思冥想到底該怎樣構造算法,使這個過程更條理、更簡明;它也很可能使你不用再為了一個小小BUG而調試半天,因為,它給出的算法已經(jīng)趨于完美。其實,列一個小提綱(算法)就可以解決很多的問題,生活中不也是如此嗎?所以,求精算法這個最重要的習慣一定要養(yǎng)成的。

其次,要讓學生養(yǎng)成一個良好的習慣就是要做到程序源代碼的清晰度與可讀性一定要高。

第三,要少用goto語句跳來跳去,雖然增加了編寫代碼的靈活性,可是卻嚴重破壞了程序的結構化,容易造成程序運行和大腦思維的邏輯混亂,很可能導致一些很不容易發(fā)現(xiàn)的錯誤。而且所有的goto都可以用其他的語句來代替。

男男啪啪猛进猛出无遮挡| 久久中文字幕av一区| 综合av在线一区天堂| 很黄很刺激的视频中文字幕| 亚洲欧洲另类美女久久精品| 91日韩中文字幕在线观看| 99精品热视频在线观看| 国产成人在线免费短视频| 国产精品久久av高潮呻吟| 黄色免费av片在线观看| 日韩高清精品一区二区| 亚洲精品乱码国产妇女毛片| 日韩中文字幕精品一区| 一区二区亚洲国产精品| 日韩在线视频观看一区二区三区 | 精品一区2区3区4区| 中文字幕国产精品欧美| 麻豆久久av免费观看| 一区二区三区四区自拍偷拍视频| 日本一区二区三区免费不卡视频| 国产精品一级自拍视频| 久久久国产精品调教网站| 日本熟女视频中文字幕| 欧美一区日韩二区国产三区| 91白丝视频在线观看| 日本高清加勒比免费在线| 国产一区二区爽爽爽视频| 久久五十路六十路熟妇中出| 人妻露脸国语对白字幕| 超碰97精品在线观看| 婷婷激情六月中文字幕| 日本精品在线不卡视频| 中文字幕国产精品综合一区| 精品亚洲一区二区三区四区 | 亚洲美女香蕉视频在线| 免费爱爱视频在线观看| 欧美日韩亚洲人人夜夜澡| 日韩av在线不卡一区二区| 国产精品国产亚洲精品| 午夜福利尤物一区二区| 国产欧美又粗又猛又爽老|