程序設計的結(jié)構(gòu)8篇

時間:2023-07-19 09:28:52

緒論:在尋找寫作靈感嗎?愛發(fā)表網(wǎng)為您精選了8篇程序設計的結(jié)構(gòu),愿這些內(nèi)容能夠啟迪您的思維,激發(fā)您的創(chuàng)作熱情,歡迎您的閱讀與分享!

程序設計的結(jié)構(gòu)

篇1

關鍵詞:C語言;程序設計;教學;結(jié)構(gòu)體;實驗

中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2015)09-0163-02

Abstract: C language programming is a profession course in the computer special field of study, and it is usually the first programming course to the students. So the experiment teaching of the course is too important. It mainly discusses the teaching design of structures in this paper, which can help the students to grasp the basic knowledge about structures, and can solve problems by using arrays of structure and linked lists. It proves that the teaching design can stimulate the students’ study interest.

Key words:C language; programming; teaching; structure; experiment

《C語言程序設計》這門課一般是計算機專業(yè)學生入學時所接觸到的第一門程序設計課程,這門課程需要學生掌握程序設計的方法,用C語言編程解決問題。在現(xiàn)實問題求解時,往往用簡單數(shù)據(jù)類型描述問題對象時可能不是很方便和準確,例如,描述職工信息這樣不同類型的數(shù)據(jù)組合時,這時就需要定義一種構(gòu)造類型的數(shù)據(jù)結(jié)構(gòu)來描述,這就是結(jié)構(gòu)體。而且,本文認為結(jié)構(gòu)體是實現(xiàn)了數(shù)據(jù)的封裝,在一定程度上體現(xiàn)了封裝的特性,對后續(xù)課程的教學有一定的啟發(fā)性。所以,結(jié)構(gòu)體教學是C語言程序設計的一個重要的部分,同樣,在實驗課教學中結(jié)構(gòu)體的實驗教學也是重要的一個環(huán)節(jié),特別是鏈表方面的實驗教學對后續(xù)課程,如《數(shù)據(jù)結(jié)構(gòu)》起著基礎性的作用。本文主要是對結(jié)構(gòu)體的實驗教學的設計進行探討。

1 結(jié)構(gòu)體實驗教學的設計

結(jié)構(gòu)體實驗教學在教學時設計了3個實驗題目,這三個實驗題目的難度由易到難,試圖讓學生掌握結(jié)構(gòu)體變量、結(jié)構(gòu)體數(shù)組和鏈表的使用。

1.1 結(jié)構(gòu)體變量的實驗設計

結(jié)構(gòu)體變量的實驗屬于結(jié)構(gòu)體實驗中比較簡單的實驗,這個實驗就是讓學生練習如何根據(jù)實際問題,用結(jié)構(gòu)體定義自己所需的類型,再使用這種類型定義變量,編寫程序去解決問題。

在實驗教學中,教師要求學生解決如下的問題:要求用戶輸入三個點的坐標,編程判斷這三個點是否可以構(gòu)成一個三角形,如果可以則輸出三角形的類型,即直角三角形、銳角三角形或者鈍角三角形。這個題目在實驗課上是以程序填空題的形式提供,這樣既可以引導學生初次使用結(jié)構(gòu)體進行編程,在填寫缺失的代碼過程中,鍛煉學生的程序閱讀能力。在題目設計中盡可能的考察學生以前的所學知識點,比如,函數(shù)形參、函數(shù)調(diào)用、選擇結(jié)構(gòu)編程等等。

這個程序填空題首先要求完成圖1中所示的點的結(jié)構(gòu)體的設計,從而讓學生掌握如何根據(jù)實際需要來定義結(jié)構(gòu)體這種類型。再要求學生完成圖1中input函數(shù)和len函數(shù)的填寫,讓學生掌握如何使用結(jié)構(gòu)體變量的成員分量,并注意函數(shù)的類型;judgeexist函數(shù)用于判斷三個點能否構(gòu)成三角形,在這個函數(shù)中強調(diào)邏輯運算符的使用,同時讓學生注意函數(shù)的返回值類型,強調(diào)C語言的數(shù)據(jù)類型沒有邏輯型,若想表示真假這樣的邏輯型值可以用1和0這樣的數(shù)值型數(shù)據(jù)來表示。

圖2中的qcos函數(shù)在設計填空時主要考察的是指針的使用,讓學生加深指針作為函數(shù)形參傳遞的是地址值這一個概念的理解。這個函數(shù)在編寫時并不是很難,就是三角形余弦函數(shù)的使用,關鍵在于形參變量中指

針變量的引用,即諸如*cosA的賦值。而圖2中judgetype函數(shù)就是依據(jù)三個角的余弦值來判斷三角形是直角三角形、銳角三角形,還是鈍角三角形。這個函數(shù)在設計填空時,主要是考察學生關系運算符的使用,以及嵌套的選擇if語句的理解和應用。圖3中主函數(shù)的設計填空主要是考察學生是否了解上述用戶自定義函數(shù)的功能,并通過填寫函數(shù)調(diào)用語句能正確的使用這些函數(shù),此外,還考察了switch多分支語句的使用。

這個題目總體來說設計的并不是很難,當學生完成程序填空后,要求學生必須完成4種情況,即無法構(gòu)成三角形、構(gòu)成直角三角形、銳角三角形和鈍角三角形的數(shù)據(jù)測試,通過輸出的結(jié)果與預期結(jié)果作比較,從而檢查程序是否編寫正確。

1.2 結(jié)構(gòu)體數(shù)組的實驗設計

結(jié)構(gòu)體數(shù)組的實驗在結(jié)構(gòu)體實驗中是中等難度的實驗,這個實驗題目的設計主要是讓學生掌握結(jié)構(gòu)體數(shù)組的定義,讓學生了解結(jié)構(gòu)體數(shù)組元素的訪問和其他基本數(shù)據(jù)類型的數(shù)組元素訪問是類似的,如若要訪問某個數(shù)組元素的成員分量時,需要在結(jié)構(gòu)體數(shù)組元素后加上“.成員分量名”。

在實驗課時,布置了如下的實驗題目:輸入職工的職工號、姓名、工資和出生年、月、日,按職工工資由高到低輸出職工的職工號、姓名和周歲年齡。注意:輸入“#”表示輸入結(jié)束,假設最多只處理200個職工記錄。此題在定義職工信息這種數(shù)據(jù)類型時,涉及到了出生年、月、日這種日期類型,而C語言的基本類型中沒有這種類型,因此,教師可以引導學生先寫出如圖4(a)所示的日期類型struct date,再引導學生思考職工類型如何定義,提示學生職工信息包含出生日期這樣的日期型數(shù)據(jù),建議定義出如圖4(b)所示的職工信息類型struct zg。一般地,學生會依據(jù)題目要求定義出struct zg的數(shù)組,其數(shù)組的大小為200。這個題目之所以這樣設計就是希望通過這個練習讓學生了解結(jié)構(gòu)體類型中的成員分量沒有具體類型要求,完全根據(jù)需要而設。

此題的另一個設計要點是排序算法在結(jié)構(gòu)體數(shù)組中的應用,在課堂練習時,有的學生使用的是冒泡排序法,有的則使用選擇排序法,但是在交換兩個struct zg的數(shù)組元素時,有部分學生會注意交換結(jié)構(gòu)體數(shù)組元素的成員分量,那么這時就需要聲明交換結(jié)構(gòu)體數(shù)組元素和交換整型數(shù)組元素的方法類似,將結(jié)構(gòu)體數(shù)組元素看作一個整體。這個設計要點在于復習數(shù)組章節(jié)中所提到的排序算法。

此題最后一個設計要點是由已知的職工出生年、月、日求出該職工的周歲年齡,此處要求學生使用計算機的系統(tǒng)時間計算出職工的周歲年齡。為了能成功獲取計算機的系統(tǒng)時間,則要求學生在幫助菜單或者網(wǎng)上查找C中“time.h”所定義的time_t這個數(shù)據(jù)類型,讓學生了解typedef的用法;了解函數(shù)time()和localtime的用法,并能在程序中正確的使用;了解結(jié)構(gòu)體struct tm,掌握該結(jié)構(gòu)體中關于年、月、日表示的成員分量,讓學生特別注意每個成員分量所表示的意義及其取值的范圍,例如,成員分量tm_year表示的是年份,但是它的取值是從1900開始的一個整數(shù),若想正確獲得當前的年份值,應該是tm_year+1900。當學生能正確地完成獲取系統(tǒng)時間的年、月、日的程序代碼設計后,引導學生思考如何計算周歲年齡,實際上就是用if嵌套語句完成多分支結(jié)構(gòu)的設計。這個設計要點是希望學生了解C程序設計過程中可能會出現(xiàn)書本上所未介紹過的知識,這就需要學生通過其他方式,例如查閱工具書或者上網(wǎng)等手段來獲取所需的知識,同時,也復習了多分支結(jié)構(gòu)的程序設計。

此外,在編程時要求學生盡量不要程序中只有一個main()函數(shù),要盡量根據(jù)需要編寫用戶自定義函數(shù)。

1.3 鏈表的實驗設計

鏈表實驗的題目主要是讓學生熟悉結(jié)構(gòu)體與指針相結(jié)合,對鏈表有個初步認識,了解鏈表中的一些操作。題目與1.2中結(jié)構(gòu)體數(shù)組的題目非常類似,但是要求必須用鏈表來完成,從而讓學生熟悉鏈表這種結(jié)構(gòu)。實驗題目是:輸入學生的學號、姓名和年齡,要求按學號由小到大輸出學生的學號、姓名和年齡,要求輸入“#”表示輸入結(jié)束。這個題目解決的方法很多,因為學生初次接觸鏈表,因此實驗教學時沒有提出任何方法的限制,只是要求學生用單鏈表求解,在求解過程中要求學生注意鏈表的創(chuàng)建算法,鏈表的輸出算法,以及鏈表修改結(jié)點指針的一些操作。

首先,教師要引導學生正確的完成鏈表結(jié)點的定義,即指針與結(jié)構(gòu)體相結(jié)合,學生信息結(jié)點的定義可以如圖5所示。在求解問題時,需要學生注意結(jié)點指針的操作。實驗課上,有的學生在輸入學生信息時,即建鏈表時采用插入排序的思想,將待插入的學生信息的結(jié)點插入到已建好的且有序的鏈表中,用這種方法創(chuàng)建鏈表后,鏈表本身就是有序的,那么只需用循環(huán)結(jié)構(gòu)輸出鏈表就可以完成問題的求解。在實驗課上,會發(fā)現(xiàn)有的學生有了這個想法但是算法編寫有問題,教師在指導的過程中可以建議學生在建鏈表過程中,每插入一個結(jié)點后就完成當前鏈表的輸出,從而有助于發(fā)現(xiàn)算法設計出錯之處。

在實驗課上,有的學生則先是創(chuàng)建鏈表,即將學生信息結(jié)點按輸入的順序插入到鏈表中,此時鏈表中的學生信息結(jié)點是無序的,再采用冒泡排序法或者選擇排序法對鏈表中的結(jié)點調(diào)整順序,最后編寫循環(huán)完成鏈表輸出。在調(diào)整結(jié)點時有的學生會出現(xiàn)算法思路不夠清晰,有點混亂這種現(xiàn)象,這時教師可以建議學生在草稿紙畫出鏈表結(jié)點的調(diào)整草圖,再依據(jù)圖示編寫代碼。在實驗課上,有的學生采用排序算法調(diào)整結(jié)點時直接交換圖5所示結(jié)點的no、name和age值,這種方法很便捷,但是達不到鏈表練習的目的,因此,教師可以鼓勵學生再換一種算法。

2 結(jié)束語

本文給出了結(jié)構(gòu)體實驗教學的三個實驗題目,這三個題目有各自的重點,而且題目有程序填空,也有程序設計,讓學生由淺入深地逐步掌握結(jié)構(gòu)體的定義,使用結(jié)構(gòu)體變量和數(shù)組編程求解實際問題。并且實驗題目中有的內(nèi)容是對課本上的知識進行一定的擴展,力圖培養(yǎng)學生的自學能力,因為在實際解決問題時,有的知識可能是課堂上沒有提到的,因此,學生要學會查閱資料進行自學。

參考文獻:

[1] 胡明, 王紅梅. 程序設計基礎――從問題到程序[M]. 北京: 清華大學出版社, 2011.

[2] 孫燮華. C程序設計導引實驗與習題解答[M]. 北京: 清華大學出版社, 2011.

[3] 羅永龍, 方群. C語言程序設計[M]. 北京: 科學出版社, 2013.

篇2

全書共20章。1.Python編程101:對使用Python語言編程進行總體介紹,包括創(chuàng)建對象、對象調(diào)用方法、運算符重載、讀取文件方法、XML文件等內(nèi)容;2.計算復雜度:包括計算機體系結(jié)構(gòu)介紹、常見的計算復雜性、攤銷復雜度的方法等;3.遞歸:包括時棧和堆的概念、簡單遞歸函數(shù)的編寫、運行,遞歸計算機圖形學、列表與字符串等;4.排序:包括選擇排序、歸并排序、快速排序、鏈表、棧和隊列等內(nèi)容;5.集合與映射:數(shù)獨游戲介紹、集、散列等相關概念,最后分析規(guī)劃問題;6.樹:抽象語法樹和表達、前綴和后綴表達式、解析前綴表達式、二叉搜索樹等內(nèi)容;7.圖:包括圖的定義及理論、存儲結(jié)構(gòu)及算法實現(xiàn)、Kruskal算法、Dijkstra算法、圖的表示方法等;8.Bloom過濾器、Trie數(shù)據(jù)類型等相關內(nèi)容;9.堆:包括堆的主要思想及其建立、排序算法、與其他算法的比較等;10.平衡二叉搜索樹:二叉搜索樹的概念、存儲結(jié)構(gòu)與性質(zhì)、AVL樹與 Splay樹等具體實例;11.B樹:包括關系型數(shù)據(jù)庫的概念、B樹的組織結(jié)構(gòu)、優(yōu)勢、實現(xiàn)、B樹的插入與刪除等內(nèi)容;12.啟發(fā)式搜索:包括深度優(yōu)先搜索與廣度優(yōu)先搜索、A*搜索、最佳搜索等相關內(nèi)容;13.附錄A:整數(shù)操作符;14.附錄B:浮算子;15.附錄C:字符串運算符和方法;16.附錄D:列表操作符和方法;17.附錄E:字典操作和方法;18.附錄F:Turtle方法;19附錄G:TurtleScreen方法;20.附錄H:完整的程序。

作者Kent D.Lee博士是美國艾奧瓦洲路德學院計算機科學教授,已成功出版兩本著作:Python編程基礎和編程語言基礎。另一作者Steve Hubbard博士是路德學院數(shù)學與計算機科學系教授。

本書介紹了初級與高級的數(shù)據(jù)結(jié)構(gòu)和算法問題,每一章開始提供了學習目標,復習題和編程練習,以及眾多的例證;同時在相關的網(wǎng)站提供可下載的程序和補充文件。本書可以作為計算機學科相關專業(yè)的教材或參考書,同時對計算機科技工作者也有參考價值。

篇3

關鍵詞:循環(huán)結(jié)構(gòu);C語言程序設計;非計算機專業(yè)

中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2012)26-6323-05

Discussion on Loop Structure Teaching in C Language Programming of Non-computer Specialty

XIA Yun

(College of Mathematics and Computer Science, Anhui Normal University , Wuhu 241000 , China)

Abstract: The teaching of loop structure is an important component in C language programming. This paper designed 5 teach? ing examples for the students of non-computer specialty. This paper analyzes the teaching progress in detail and emphasizes the teaching points of the loop structure teaching. And it produces a good effect in the actual teaching progress.

Key words: loop structure; C Language programming; non-computer specialty

大學計算機應用基礎作為一門課程大約于20世紀90年代中期開設,現(xiàn)在已成為大學里的計算機學習基礎課程,是所有非計算機專業(yè)大一新生的必修公共基礎課,也是培養(yǎng)學生基本素質(zhì)的一門重要課程[1]。作為大學計算機應用基礎課程,理工類專業(yè)大部分會開設程序設計課程,有部分專業(yè)會開設C程序設計課程。C語言是一種語法靈活、適用范圍廣的高級程序設計語言。結(jié)構(gòu)化程序設計方法有三種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)和分支結(jié)構(gòu)比較簡單,循環(huán)結(jié)構(gòu)從教學上來說是重點也是難點。本文主要對C語言循環(huán)結(jié)構(gòu)教學進行探討。

1教學內(nèi)容的分析

C語言循環(huán)結(jié)構(gòu)編程主要涉及到三種循環(huán)結(jié)構(gòu)語句while、do-while和for。本文作者認為非計算機專業(yè)開設這門課程,主要是講解程序設計的方法,培養(yǎng)學生的編程能力和思維能力,因此,在教學中上述的三種語句可以以while語句為重點,講解循環(huán)結(jié)構(gòu)編程的思想,do-while和for語句可以簡單舉例說明它們的流程。在講解循環(huán)結(jié)構(gòu)編程分析時,可以以流程圖或者用自然語言逐步描述操作步驟的形式,指出循環(huán)結(jié)構(gòu)編程關鍵是找到在什么情況下需要反復執(zhí)行某些操作,并找到這些反復執(zhí)行的操作是什么。

2教學用例的分析

在課程教學過程中,需要用一些例子來配合講解循環(huán)結(jié)構(gòu)的編程。在教學時,選取一些比較合適的例子,可以很好地幫助學生理解所教授的內(nèi)容。教師在教學過程中除了要加強課堂啟發(fā)外,盡可能結(jié)合課程自身的特點,注重學生現(xiàn)場演練,并采用任務驅(qū)動、師生互動、鼓勵學生等教學手段來提高其學習的主動性和積極性[2]。

2.1導入的例子

在教學活動中,講授后面知識內(nèi)容時要與前面知識相互呼應[3],因此,在上課時,可以以這樣的問題開始,例題1:用戶輸入正整數(shù)n值的大小后,要求計算1+2+3+…+n,將所得出的結(jié)果輸出。這個例題主要是復習前面的內(nèi)容,復習輸入、輸出函數(shù)和分支結(jié)構(gòu)的編程。該問題提出后,可以讓同學們思考一下,然后再進行提問,提問時可以讓學生說出編程思路,若課堂時間比較多也可以請學生直接編寫源代碼并運行。

提問時,有的同學可能給出如下的順序結(jié)構(gòu)編程的解答:

步驟1:輸入整數(shù)n

步驟2:求s=(1+n)*n/2

步驟3:輸出s

while (j

{輸出i*j

j++;}

由此,得出在循環(huán)while (i

循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設計的一種重要結(jié)構(gòu),在教學中不僅需要學生掌握這種結(jié)構(gòu)的語法,更重要的是培養(yǎng)學生的設計思維和思考方法,本文主要是從教學的角度,對循環(huán)結(jié)構(gòu)的整個教學過程設計了5個教學用例,并對其進行展開分析,重點是讓學生掌握循環(huán)結(jié)構(gòu)編程的思想,實際上就是在問題分析過程中找循環(huán)條件和循環(huán)操作,在實際教學中取得了較好的效果。

[1]何文海,吳明珠,謝劍剛.情商與智商相結(jié)合的教學模式[J].現(xiàn)代計算機,2007(8):73-75.

[2]郭?;?陳允芳,王健.非計算機專業(yè)中“VB程序設計”教學方法初探[J].計算機教育,2009(18):98-100.

篇4

1、整體思路清楚,目標明確。

2、設計工作中階段性非常強,有利于系統(tǒng)開發(fā)的總體管理和控制。

3、在系統(tǒng)分析時可以診斷出原系統(tǒng)中存在的問題和結(jié)構(gòu)上的缺陷。

4、用戶要求難以在系統(tǒng)分析階段準確定義,致使系統(tǒng)在交付使用時產(chǎn)生許多問題。

5、用系統(tǒng)開發(fā)每個階段的成果來進行控制,不能適應事物變化的要求。

6、系統(tǒng)的開發(fā)周期長。

篇5

關鍵詞:教學設計;分支結(jié)構(gòu);IF語句

中圖分類號:G633.67 文獻標志碼:A 文章編號:1674-9324(2012)03-0226-02

教材分析:

該課題的內(nèi)容選自于《算法與程序設計》教材,該教材是上海市高中信息科技課程選修模塊。學習本模塊的內(nèi)容,目的是進一步激發(fā)學生對計算機探索學習的興趣,培養(yǎng)運用計算機解決具體問題的基礎能力,養(yǎng)成良好的思維與程序設計基本習慣。

《分支結(jié)構(gòu)的程序?qū)崿F(xiàn)》是本模塊第四章第一節(jié)的內(nèi)容。分支結(jié)構(gòu)的授課分為兩課時,第一課時:分支結(jié)構(gòu)的流程圖繪制;第二課時:分支結(jié)構(gòu)的程序?qū)崿F(xiàn)。本課為第二課時,主要內(nèi)容是用IF語句解決日常生活中涉及分支結(jié)構(gòu)的實際問題。

通過本課的學習,有助于學生體會和理解程序設計的思想,提升學生解決問題的能力,而且也為之后循環(huán)結(jié)構(gòu)、枚舉算法的學習打下基礎。

學情分析:

學生在學習本課內(nèi)容前,需有兩方面的知識儲備:

1.通過分支結(jié)構(gòu)第一課時“分支結(jié)構(gòu)的流程圖繪制”知識的學習,理解并掌握分支結(jié)構(gòu)的特點、執(zhí)行流程及其作用。

2.通過“順序結(jié)構(gòu)及其程序?qū)崿F(xiàn)”知識的學習,基本掌握VB控件的設置、動作的實現(xiàn)等內(nèi)容,對于VB程序的建立、運行、調(diào)試過程也有一定的實踐經(jīng)驗。

對上述內(nèi)容的學習和掌握為本節(jié)課的學習奠定了一定的基礎。另外,高一的學生分析解決問題的能力、自我探究的能力也有了一定的水平。

教學資源:

根據(jù)教學內(nèi)容和學生實際,在教學資源方面做如下準備:

1.技術準備:計算機網(wǎng)絡機房、多媒體廣播軟件、Microsoft Visual Basic 6.0中文版

2.資源。①教師機:1個PPT課件,2個程序(1個“猜價格”的演示程序,1個“ATM機錄入密碼”半成品程序)②學生機:1個“半成品”程序(包含3個小任務)

教學目標分析:

1.知識與技能:①掌握分支選擇中IF語句(塊語句)的格式和功能。②學會用IF語句解決日常生活中的實際問題。

2.過程與方法:①通過依次學習單分支語句、雙分支語句,再到分支嵌套語句,學生能循序漸進地掌握分支結(jié)構(gòu)。②通過采用VB半成品加工策略來完善程序,學生能體驗運用編寫程序解決問題的基本過程。

3.情感態(tài)度與價值觀:①培養(yǎng)學生嚴密的邏輯思維能力、自主探究能力。②加強學生利用本學科解決日常學習生活中問題的意識。

教學重點難點:

教學重點:掌握分支結(jié)構(gòu)IF語句的格式。

教學難點:能根據(jù)實際分析問題,寫出程序并調(diào)試成功。

教法與學法:

1.教法:半成品加工方法。采用半成品加工方法,可以淡化與分支結(jié)構(gòu)無關的內(nèi)容,例如可視化VB界面的設計,從而有效提高課堂效率,這種方式在鞏固練習中使用非常合適。

2.學法:自主學習、小組討論、組間交流。學生作為學習的個人主體,必須通過自主學習掌握本節(jié)課的學習內(nèi)容,從而培養(yǎng)學生獨立解決問題的能力。采用小組討論、組間交流的方法,培養(yǎng)學生互助、團結(jié)協(xié)作的良好品質(zhì);增強學生協(xié)作學習、與人合作交流的意識;形成積極主動的學習和使用信息技術、參與信息活動的態(tài)度。

教學過程設計:

(一)創(chuàng)設情境,激發(fā)興趣

1.教師演示猜價格的小程序。

2.提出問題:該程序是一種什么結(jié)構(gòu)?順序結(jié)構(gòu)?還是分支結(jié)構(gòu)?

3.舉例:生活中有很多分支結(jié)構(gòu)的問題。

4.引出分支結(jié)構(gòu)的程序?qū)崿F(xiàn)。

(設計意圖:從生活中提取問題,讓學生能有學習興趣,并能及時了解本節(jié)課的學習任務。)

(二)合作探究,獲得新知

以“銀行ATM機錄入密碼”程序為例:

1.教師展示“密碼判斷”的單分支結(jié)構(gòu)流程圖,請同學用自然語言來描述。學生回答:如果(用戶輸入的密碼為999)那么(程序提示密碼正確)。

2.教師引出VB中單分支結(jié)構(gòu)IF語句的基本用法。同時讓同學們討論IF…THEN…中省略號代表什么含義。學生回答:IF(條件)THEN(條件成立時執(zhí)行的語句)。

3.師生共同共同編寫代碼,程序?qū)崿F(xiàn)。

4.教師提出問題:如果密碼是錯誤的,那么將會出現(xiàn)什么情況?如果要讓程序在密碼輸入錯誤時,也要出現(xiàn)提示,該如何做。

5.教師展示雙分支結(jié)構(gòu)流程圖,請同學用自然語言來描述算法。學生回答:如果(用戶輸入的密碼為999)那么(程序提示密碼正確)否則(程序提示密碼錯誤)。

6.教師引出VB中雙分支結(jié)構(gòu)IF語句的基本用法,同時讓學生討論IF…THEN…ELSE…中省略號代表什么含義。學生回答:IF(條件)THEN(條件成立時執(zhí)行的語句)ELSE(條件不成立時執(zhí)行的語句)。

7.師生共同編寫代碼,程序?qū)崿F(xiàn)。

8.教師講解IF語句的兩種格式:行IF語句和塊IF語句的用法。

(設計意圖:通過自然語言與程序設計語言的比對,加深學生對分支結(jié)構(gòu)的認識。通過師生共同參與改寫程序,使學生了解IF語句的書寫格式,并感受程序語言的嚴謹性。)

(三)學生實踐,解決問題

1.教師布置3個任務,學生選擇其中一個進行操作,要求自主完成。①判斷是否中獎,要求如下:程序設置初始中獎號碼,若用戶輸入的號碼為中獎號碼,程序則顯示“恭喜您,您中獎啦!”②判斷是否打折,超市進行蘋果促銷,如果買5斤以內(nèi)就按價格4.5元/斤計算,如果大于等于5斤,總價可打九折。要求如下:輸入你買的蘋果重量(單位:斤),程序顯示總金額。③判斷一元二次方程是否有解。要求:輸入一元二次方程的系數(shù)a,b,c,判斷該方程是否有解,如果有解,則輸出解,如果沒有解,則輸出“該方程無解”。

2.任務分析:判斷是單分支還是雙分支結(jié)構(gòu)?鼓勵學生可多選任務來完成。

3.展示成果,教師強調(diào)IF語句的格式規(guī)范。

(設計意圖:通過三道難易不同的題目進行分層訓練,讓不同知識基礎和思維能力的學生都能夠體驗到成功的喜悅,提高學生分析問題、解決問題的能力,突出本課的重點。)

(四)交流提升,應用拓展

1.教師提出在任務2中,若要求如下:輸入斤數(shù),如果小于5斤,就按價格4.5元/斤計算,如果大于等于5斤,就打九折,如果大于等于10斤就打八折,程序顯示總金額,該如何設計算法?學生回答:利用分支嵌套結(jié)構(gòu)可以實現(xiàn)該算法。

2.教師展示分支嵌套流程圖。

3.學生小組討論,組間交流。

4.學生組內(nèi)共同撰寫程序。

5.教師展示學生的代碼,再次強調(diào)語句撰寫的規(guī)范。

(設計意圖:通過對新任務的探討、分析,加深學生對分支結(jié)構(gòu)嵌套語句的理解。同時進一步養(yǎng)成良好的編程習慣。)

(五)總結(jié)回顧,布置作業(yè)

篇6

關鍵詞:PLC;結(jié)構(gòu)化;給排水

1 引言

隨著現(xiàn)代工業(yè)發(fā)展進程的不斷加快,工業(yè)自動化控制技術發(fā)揮著越來越大的作用,PLC控制系統(tǒng)的應用也日益廣泛。PLC程序設計的水平優(yōu)劣往往決定著工程能否及時竣工投產(chǎn),工業(yè)設備能否充分發(fā)揮其設計生產(chǎn)能力。傳統(tǒng)的PLC編程方式程序繁瑣冗長,結(jié)構(gòu)不清晰,不利于控制程序在多個項目中的重復使用。如何迅速、優(yōu)質(zhì)地編制符合不同設備工藝特點,參數(shù)的PLC程序,對工業(yè)控制系統(tǒng)的及時完工,提高自動化控制水平具有較大的意義。本文結(jié)合給排水行業(yè)常用設備及工藝程序的編寫,對結(jié)構(gòu)化編程在PLC中的應用進行了初步的探索,取得了較理想的效果。

2 PLC程序設計方法簡介

常見的程序設計方法分為三種:線性化方法、模塊化方法以及結(jié)構(gòu)化方法[1]。

線性化編程方法:將所有的程序代碼全部放在一個程序塊中,如對S7-300/400來說,在OB1中寫入數(shù)據(jù)采集、設備控制、臺時統(tǒng)計等全部用戶程序。該方法與PLC所代替的繼電器控制電路類似,系統(tǒng)按照順序處理各條指令。它適用于小型設備配套PLC的編程,對于大中型項目則顯得程序結(jié)構(gòu)不清晰,同時由于需要對不同設備編制大量類似的代碼,導致代碼冗長,難以調(diào)試和維護。

模塊化編程方法:將程序根據(jù)不同功能需求分成不同的塊,每個功能的控制指令在各自的塊內(nèi),OB1按順序調(diào)用每個塊。該方法程序結(jié)構(gòu)清晰,便于調(diào)試和維護,但僅將功能按塊分配,加以有條件的調(diào)用,故雖然CPU效率得到提高,但代碼冗長、調(diào)試困難的缺點未得到明顯改善。

結(jié)構(gòu)化編程方法:將復雜的自動化任務分割成過程相關的功能或可多次處理的小任務,以提供可以用于類似任務的通用的程序代碼,這樣更易于控制復雜任務。而這些小任務以相應的程序段表示,稱為塊。只需要在調(diào)用程序塊時針對不同的設備和工藝流程代入不同的參數(shù)或地址,即可實現(xiàn)不同設備的控制,無須多處重復輸入相同功能的代碼。當需要對功能進行修改時只需要修改程序塊即可,提高了編程的效率和可靠性。

3 結(jié)構(gòu)化編程方法設計實例

在實際應用中,在對給排水行業(yè)通用設備和工藝進行詳細分析的基礎上,針對典型設備和工藝分別編制了水泵、儀表、閥門、泵站水泵調(diào)度、自動加藥等不同的控制模塊,使高效開發(fā)PLC程序在給排水行業(yè)的應用成為可能。下面以變頻水泵及泵站的水泵調(diào)度為例來介紹結(jié)構(gòu)化編程方法。

3.1 變頻水泵功能塊

變頻水泵是給排水行業(yè)最常見的設備,其調(diào)用如圖2所示。

圖2為變頻水泵控制塊的調(diào)用實例,該FB的輸入輸出參數(shù)如圖3示。

功能塊接口參數(shù)共分為三種類型:輸入(INPUT);輸出(OUTPUT);輸入輸出(IN_OUT)。其中輸入?yún)?shù)主要有:遠程信號,上電信號,運行信號,水泵故障,電回路故障,變頻器故障,頻率輸入等;輸出參數(shù)主要有:開??刂疲l率控制輸出,實際運行頻率等;輸入輸出類型參數(shù)主要有:變頻電機狀態(tài),變頻電機控制命令,電機臺時及開停次數(shù)統(tǒng)計,頻率設定值等。

輸入輸出類型參數(shù)可由人工或自控程序在功能塊外部進行賦值,也可由本功能塊內(nèi)部邏輯進行修改。其中的State、Command等參數(shù)均為WORD類型,其每一位分別代表了不同的含義。

該功能塊包含了除電流外的變頻水泵常見的絕大部分信號處理及控制功能,對于部分實際工程中未使用的參數(shù),可通過直接設置默認值或空置的方式進行處理。水泵電流可通過專門的模擬量處理程序塊進行數(shù)據(jù)轉(zhuǎn)換和上下限報警判斷,當電流超過上下限設定值時發(fā)出報警信號(過流、欠流)傳送給變頻水泵功能塊,從而實現(xiàn)水泵的電流超限保護功能。

3.2 泵站水泵調(diào)度功能塊

污水廠一般具有進水泵房、中間提升泵站、出水泵房等工藝段,其水泵控制模式基本相同,都是根據(jù)液位的變化來調(diào)節(jié)運行的水泵頻率和臺數(shù),調(diào)泵時又要考慮單臺設備的運行臺時和啟停間隔等因素。其基本原理介紹如下:

泵站的液位控制一般采用根據(jù)液位分段啟停泵的模式,不同的液位分別對應當前需要開泵的臺數(shù),同時具備死區(qū)保護功能,停泵液位設定值比啟泵液位設定值略低,以防止特殊情況下水泵的頻繁啟停[2]。

水泵的啟停選擇需要考慮以下幾個條件:

(1)熱備狀態(tài)。PLC首先檢測水泵上電情況,遠程狀態(tài),控制模式,故障情況等,當以上條件均滿足時認為該泵處于熱備狀態(tài),可被自控程序進行開停調(diào)度。

(2)平衡調(diào)泵。累計運行時間最短的泵優(yōu)先被啟動,運行時間最長的泵優(yōu)先停止,使每臺泵運轉(zhuǎn)時間大致相等。當運行時間相同時,按泵的順序啟停。

(3)啟動間隔保護。控制程序使每一臺泵每小時起動次數(shù)少于6次,兩次起動間隔≥10分鐘,且不論何種情況,不同時起動2臺及2臺以上水泵。

在實際應用中,根據(jù)分段啟泵原理以及低水位保護等條件編制泵站自控功能塊,計算當前需要開泵臺數(shù)。根據(jù)上述三條件,編制了水泵啟停調(diào)度選擇功能塊,用于選擇當前需要啟動的水泵編號。兩功能塊配套使用,可快速完成泵站自動調(diào)泵程序的編制工作。限于篇幅,本處不再詳述其具體實現(xiàn)過程。

篇7

關鍵詞:實例拓展;結(jié)構(gòu)化;程序設計教學;教學應用

中圖分類號:TP311.1

在計算機專業(yè)的教學中,程序設計是一門最基礎,也是最重要的課程之一,是培養(yǎng)學生計算編程能力的主要課程[1]。但是又因為這門課程涉及到很多理論性極強的內(nèi)容和大量的編碼知識,不容易被學生理解,所以是計算機專業(yè)教學的重點和難點。在過去傳統(tǒng)的教學方式之下,老師只是按照大綱的順序來講解相關的知識點,即使舉例也只是引用一些比較典型的例題,例題和例題之間缺乏聯(lián)系,使得學生只能進行生硬的記憶法來掌握程序設計各種語句,不能真正理解這些編程方法,達不到自主編程的教學目的,收效甚微。為了改變這一現(xiàn)狀,讓學生能夠真正理解程序結(jié)構(gòu)之間的關系,能夠靈活運用各種編程方法進行自主編程,在教學的過程中怎樣選擇具合適的實例已經(jīng)成為提高教學效果的關鍵。我校推行的實例拓展教學法很好地解決了這一難題,在我校大力推行之后,受到廣大師生的好評,結(jié)構(gòu)化程序設計的教學效果明顯。

1 實例拓展法概述

實例拓展教學法屬于教學方式創(chuàng)新的表現(xiàn)形式之一。在這種教學方法中,實例就是整個教學的中心,所有的教學活動都可以通過實例來完成,這也是這種教學方法最典型的特征[2]。運用實例拓展法進行教學,學王可以充分利用各種學習資源,通過自主探索或者相互合作的方式來完成實例任務,同時又會催生出一種新的實例。這種重在學生實踐活動的教學方式就被稱之為拓展實例法。這種教學方法有助于培養(yǎng)學生的自主學習能力,提高他們獨立分析問題和解決問題的能力。在計算機結(jié)構(gòu)化程序設計這種實踐性較強的課程教學中,尤其適合使用這種方法。

2 實例拓展法在結(jié)構(gòu)化程序設計教學中的實際應用

在計算機程序設計中,VB語言是一門重要的課程,所以我們就以這門課程為例,對實例拓展教學方法在課堂上的具體應用進行具體。為了便于學生理解和練習,我們將實例分成了兩種,一種在老師進行課堂理論教學時應用,另一種則在上機實踐活動中應用,下面我們對實例的應用進行出詳細介紹。

老師在進行教學設計時,如何安排實例是教學活動的核心所在。在對教學實例進行安排時,老師一定要結(jié)合中專學生的年齡特點、心理發(fā)展水平和實際生活的需要等因素。同時,實例的拓展應該遵循教育學的客觀規(guī)律,從易到難,由淺入深,便于學生進行理解[3]。另外,實例的難度應該適中,既不能讓他們一看就明白,也不能讓他們冥思苦想而不得,要讓大部分學生通過自己的思考能夠完成,而且要將相關的知識點囊括其中,這樣才能充分實例拓展的作用。

在VB結(jié)構(gòu)化程序設計的教學中,課堂內(nèi)容可以被大致分成順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組應用和過程設計等五個部分[4]。老師在進行教學的過程中一定要全面掌握這些內(nèi)容之間的內(nèi)在關系。在本文中,我們將省略比較復雜的程序代碼,對這5部分內(nèi)容運用到的實例進行簡單分析。

在進行順序結(jié)構(gòu)這一內(nèi)容的教學時,我們可以以計算圓的面積為例,在輸入圓的半徑之后就可以計算出來。這一實例可以作為入門介紹,理解起來并不困難。在這個實例中,融入了程序的三大基本組成部分,即數(shù)據(jù)輸入、處理和輸出,在講解實例的過程中,就能讓學生掌握這一知識點。

在結(jié)構(gòu)程序的教學中,可以在對上述實例進行拓展,提出問題:“假設圓的半徑的小于0時該怎們辦?”讓學生進行思考,然后提出程序設計中的基本語句――選擇結(jié)構(gòu)的if語句。為了讓學生理解if語句的語法,老師可以讓學生在鍵盤上隨意輸入三個數(shù)字,求解最大值和最小值,在這個過程中介紹if語句的兩種格式,即單行格式和多行格式。到這里,我們就在前兩個實例的基礎上衍生出了新的實例。在了解if語句的格式之后,老師還可以對實例進行進一步拓展,讓學生求解分段函數(shù),明確if語句和Select Case這兩種多支結(jié)構(gòu)的語句格式。

在循環(huán)結(jié)構(gòu)的教學中,我們可以引入一個新的實例來介紹循環(huán)結(jié)構(gòu)For Next語句,例如在窗體上顯示出1、3、5、7、9這五個奇數(shù)。然后讓學生對求解上述數(shù)字之和,對上述實例進行拓展。進一步掌握For Next語句。在求和的基礎上,再一次對實例進行拓展,讓學生在100以內(nèi),求出1+3+5+7+……的最大奇數(shù)值,在講解實例的過程中引入循環(huán)結(jié)構(gòu)中一種重要的語句形式――Do Loop語句。

在講解數(shù)組應用這一內(nèi)容時,可以在任意輸入3個數(shù)字求解最大值和最小值這一實例的基礎上加以拓展,讓學生思考怎樣求出任意10個數(shù)字的最大值和最小值,通過這個實例引入數(shù)組概念和靜態(tài)數(shù)組的使用方法。在這一實例的基礎上還能進一步拓展,求出任意數(shù)字的最大值和最小,引入動態(tài)數(shù)組的概念的和具體的使用方法。

在進行過程設計這一內(nèi)容的教學時,依然在任意求解3個數(shù)字的最大值和最小值這一實例的基礎上加以拓展,將它們分成兩個函數(shù),在講解的過程中讓學生掌握過程的概念以及Function過程的建立和使用方法。在此基礎上,對實例進一步拓展,將3個數(shù)字的最大值和最小值看成兩個Sub過程,讓學生通過老師對實例的講解掌握Sub過程的建立和使用方法[5],并與Function過程進行對比。

以上的實例主要是在引入相關概念和講解程序基本原理時使用的,需要在多個課時中講解。根據(jù)所講內(nèi)容的課時安排,可適當補充其他實例,更加詳細地講解相關知識,也可以補充一些比較有趣實用的綜合例子,如制作計算器、打印九九乘法表等,進一步開闊學生的眼界。

經(jīng)過多年的教學實踐,筆者發(fā)現(xiàn)在運用實力拓展法之后,學生對程序設計的學習興趣大增,不管是課堂表現(xiàn)還是作業(yè)完成情況都有了明顯改善,考試成績也得到了大幅度提升。通過這種教學方法,學生能夠從中學到自己需要的知識,并真正將其轉(zhuǎn)化為實際應用,設計出實用的小軟件來,對于他們將來學習其他知識和提高計算機操作水平都有很大的促進作用。

3 結(jié)束語

綜上所述,在結(jié)構(gòu)化程序設計的教學中,實力拓展法對于提高教學效果,培養(yǎng)學生的計算機運用能力具有非常重要的作用。但是在具體的教學過程中還要從學生的實際情況出發(fā),進行靈活地調(diào)整,才能真正激發(fā)出學生的興趣,充分發(fā)揮實例拓展法的作用。

參考文獻:

[1]武相軍,白晨希.實例拓展法在結(jié)構(gòu)化程序設計教學中的應用[J].計算機教育,2013(17):47-49.

[2]傅籬.計算機結(jié)構(gòu)化程序設計教學探索與實踐[J].計算機教育,2009(12):78-80.

[3]孫英,徐順瓊,李興美.C語言中循環(huán)結(jié)構(gòu)程序課的教學設計與探討[J].計算機教育,2009(07):186-187.

[4]周顯春.合作探究式教學法在結(jié)構(gòu)化程序設計教學中的運用[J].學習月刊,2010(30):91-92.

篇8

關鍵詞:液壓支架;結(jié)構(gòu)件斷面;抗彎強度計算;VB軟件計算

DOI:10.16640/ki.37-1222/t.2017.02.034

1 引言 背景技術

液壓支架為煤礦機械化采煤的主要支護設備,結(jié)構(gòu)件是液壓支架的主體框架,其結(jié)構(gòu)多呈箱型,目前,對于液壓支架結(jié)構(gòu)件箱體斷面抗彎強度設計計算,多為依靠OPT液壓支架計算程序、采用邁實軟件或人工列方程計算等方式進行計算,前者涉及到程序不能升級、不能支持win7以上操作系統(tǒng),且界面可視化程度不好;中者為采用導入截面圖形來識別各個截面圖形尺寸分別對每塊板進行計算,原理不同,使用起來效率方面并不算出眾;而后者在計算時效性方面計算太煩瑣,耗時耗力,多已放棄采用。

2 計算原理

根據(jù)液壓支架受力分析給出結(jié)構(gòu)件危險斷面的最大彎矩M進行抗彎強度校核,畫出該部件危險斷面圖,該斷面圖通常為數(shù)十塊鋼板拼裝組成,首先需對相同類型尺寸鋼板進行歸類,整理出若干組鋼板類型;分別對每組鋼板進行截面積、截面型心高度計算,進而計算出斷面的總型心高度、并分別計算出每組鋼板的矩形截面慣性矩,進而計算出斷面總慣性矩J;依次計算出最大、最小彎曲應力、、最大最小安全系數(shù);通過使用VB語言編制出自動計算結(jié)構(gòu)件斷面抗彎強度計算分析程序,獲得相應安全系數(shù)并校核出該斷面是否設計合理;如圖1所示為某一部件危險斷面圖:

3 設計意圖及VB程序的實現(xiàn)

(1)設計意圖:使用VB語言編寫程序代替人工計算意義在于利用計算機快捷準確、功能強大以及具有可視化界;本程序設計目的在于克服上述缺點,基于VB語言設計,對各功能模塊編寫代碼、并進行編譯生成可執(zhí)行exe文件。該程序包括信息參數(shù)輸入模塊、導入導出模塊、計算結(jié)果顯示模塊,并設有計算按鈕、導入、導出、清除按鈕;斷面抗彎強度計算分析截圖如2所示:

(2)信息參數(shù)輸入模塊:可按要求將已知的箱體截面的組件數(shù)量、斷面最大高度、箱體選用的材料強度、斷面位置所受最大彎矩,各組件的寬度、高度、形心高度、塊數(shù)依次輸入模塊;如該斷面中有某組鋼板高于或低其他材料強度,可按相應的板材屈服強度比比值換算出該組鋼板在與其他鋼板使用相同材料強度時的厚度換算輸入即可;如鋼板組數(shù)9為使用Q690材料,其他各組鋼板都采用Q550材料,相應厚度換算為30*690/550=37.636。

(3)計算結(jié)果顯示模塊:點擊計算按鈕后,計算程序就會根據(jù)信息參數(shù)輸入模塊中的數(shù)據(jù)計算出截面形心高度y、截面慣性矩Jz、最大彎曲應力σmax、最小彎曲應力σmin、最大安全系數(shù)Nmax、最小安全系數(shù)Nmin,并在計算結(jié)果顯示模塊中相應位置顯示出來,液壓支架工藝設計人員可根據(jù)計算分析安全系數(shù)大小作出相應的強度增補或驗證措施。

(4)導入導出模塊:點擊導出按鈕后,計算程序會彈出另存為對話框,將信息參數(shù)輸入數(shù)據(jù)及輸出分析按txt格式保存;以備后期存檔或方便查看。點擊導入按鈕后,計算程序會彈出打開對話框,供工藝設計人員選擇已保存的txt文件進行導入至信息參數(shù)輸入模塊,方便設計人員及時驗算用;既可在信息參數(shù)輸入模塊直接輸入數(shù)據(jù)方式,也可按導入txt數(shù)據(jù)文件方式計算,期間可以根據(jù)設計意圖臨時更改輸入的參數(shù),并且還可識別原OPT生成格式文件進行導入、計算分析進而實現(xiàn)新舊計算工具的融合體現(xiàn)。

4 使用效果及結(jié)語

使用效果:在進行液壓支架結(jié)構(gòu)件箱體設計計算時,將技術人員從繁重的強度計算中解放出來,實現(xiàn)了方便快捷的抗彎強度計算過程,而且計算結(jié)果可靠,經(jīng)驗證與OPT液壓支架優(yōu)化軟件計算結(jié)果一致,界面友好,計算結(jié)果可靠,簡單易用、不受操作系統(tǒng)限制,適用所有windows98以上系統(tǒng),所用時間相對較少。

推薦期刊
九九热国产视频精品,免费国产不卡一级αⅴ片,欧美日韩蜜桃在线播放,精品国内自产拍99在线观看
天天综合一区二区三区 | 亚洲欧美天堂综合一区 | 中文字幕婷婷日韩欧美亚洲 | 久久免费人成看片中文 | 思思久久69视频 | 久久精品无限国产资源好片 |