郭建軍
(長治學(xué)院 數(shù)學(xué)系,山西 長治 046011)
程序設(shè)計(jì)是計(jì)算機(jī)知識(shí)的重要內(nèi)容之一。由于在計(jì)算機(jī)的許多應(yīng)用系統(tǒng)中都涉及到程序設(shè)計(jì),因此程序設(shè)計(jì)的學(xué)習(xí)與掌握顯得更為重要。例如:多媒體制作系統(tǒng)Authorware、動(dòng)畫制作Flash、辦公自動(dòng)化Office中的電子表格Excel等,都有程序設(shè)計(jì)的內(nèi)容。在系統(tǒng)學(xué)習(xí)某一種程序設(shè)計(jì)語言時(shí),一般都是編寫短小的程序,通過這些小的程序,可以了解和掌握這種程序語言中語句的功能、程序執(zhí)行的流程、變量隨著程序執(zhí)行時(shí)的變化情況。下面就C語言程序設(shè)計(jì)中的小程序進(jìn)行一些分析和介紹,希望能夠引起對(duì)短小程序的重視及作用的拓展。
在一定范圍內(nèi)求最大數(shù)和最小數(shù)是在系統(tǒng)學(xué)習(xí)程序設(shè)計(jì)時(shí)經(jīng)常編寫和分析的小程序,它可以求數(shù)值的最大和最小、字符串的最大和最小、年齡最大和最小、日期的最大和最小等。其中數(shù)值的最大和最小用的最多。例如,電視上的某些比賽,在評(píng)委打分后,為了保證評(píng)分的公平性,選手平均分是由去掉最高分和最低分后平均得到的。利用求最大數(shù)和最小數(shù)的小程序,就能得到選手的公平評(píng)分。
求最大數(shù)和最小數(shù)的程序:
如果要去掉的最高分和最低分不是一個(gè),而去掉的是兩個(gè)及兩個(gè)以上的最高分和最低分求平均分,利用多個(gè)數(shù)的排序程序小程序就可實(shí)現(xiàn)。
去掉多個(gè)最高分和最低分求平均分的程序:
下標(biāo)變量計(jì)數(shù)程序是系統(tǒng)學(xué)習(xí)程序設(shè)計(jì)時(shí)經(jīng)常分析和編寫的小程序。它是利用下標(biāo)變量下標(biāo)的值和統(tǒng)計(jì)的數(shù)據(jù)相匹配進(jìn)行計(jì)數(shù)的。通過計(jì)數(shù)的值,就可知道某個(gè)數(shù)的排名,而且數(shù)據(jù)相同,名次也相同?,F(xiàn)在許多單位招考錄用工作人員,最終成績由筆試和面試兩項(xiàng)來構(gòu)成,而且都是筆試后確定面試人數(shù),面試的人數(shù)往往比實(shí)際錄用的人數(shù)要多出幾個(gè)百分點(diǎn)。面試成績可能出現(xiàn)相同分?jǐn)?shù)。如何根據(jù)筆試分?jǐn)?shù)確定面試的人數(shù),同時(shí)也允許分?jǐn)?shù)相同的人也參加面試,這就存在一個(gè)合理排名次的問題。利用下標(biāo)變量計(jì)數(shù)小程序,就可實(shí)現(xiàn)同分?jǐn)?shù)同名次,從而確定參加面試的人數(shù)更加客觀和合理。
下標(biāo)變量計(jì)數(shù)程序,分別統(tǒng)計(jì)各個(gè)數(shù)的個(gè)數(shù):
在每年的高考錄取中,一旦閱卷工作結(jié)束,不同級(jí)別學(xué)校的錄取分?jǐn)?shù)線立即公布,解決這個(gè)問題的方法之一即通過下標(biāo)變量計(jì)數(shù)程序來實(shí)現(xiàn)。在今年的高考分?jǐn)?shù)公布后,每一個(gè)考生對(duì)自己在全省的所有考生中的排名都比較清楚,為考生報(bào)考志愿提供了更為清晰的第一手資料。這些數(shù)據(jù)的產(chǎn)生,可用下標(biāo)變量計(jì)數(shù)程序來生成該數(shù)據(jù)。
以上數(shù)據(jù)的生成可用如下的方法:定義一個(gè)下標(biāo)變量個(gè)數(shù)為751的一維數(shù)組(高考滿分為750分),分別用下標(biāo)值為750的下標(biāo)變量統(tǒng)計(jì)750分的人數(shù),用下標(biāo)值為749的下標(biāo)變量統(tǒng)計(jì)749分的人數(shù),……。經(jīng)過這樣統(tǒng)計(jì),每一個(gè)分?jǐn)?shù)的考生人數(shù)都統(tǒng)計(jì)出來了,再根據(jù)錄取的人數(shù),很快可計(jì)算出高考錄取的分?jǐn)?shù)線。只需把比該考生考的分?jǐn)?shù)高的下標(biāo)變量的值相加就知道了名次,但多1分和少1分可能相差的考生人數(shù)是相等多的。
查找程序也是程序設(shè)計(jì)中經(jīng)常編寫和分析的小程序,查找的關(guān)鍵字可以是多種形式的數(shù)據(jù),查找的方法有順序查找、二分查找等。在許多的計(jì)算機(jī)應(yīng)用系統(tǒng)中,為了方便編輯都有查找操作,這種嵌在系統(tǒng)中的功能模塊,其實(shí)就是由一段程序,即由查找程序來實(shí)現(xiàn)的。例如:在有些專業(yè)英語字典中,除了普通字典中應(yīng)有的項(xiàng)目和內(nèi)容外,還多了一項(xiàng)某個(gè)單詞在各類文章中出現(xiàn)頻率的數(shù)字,這個(gè)數(shù)字就是通過查找和統(tǒng)計(jì)得出來的。上述所使用的查找方法都是用的是順序查找。
在一個(gè)字符串中查找與統(tǒng)計(jì)某個(gè)子字符串個(gè)數(shù)的程序:
程序設(shè)計(jì)是計(jì)算機(jī)學(xué)習(xí)中的一個(gè)重要內(nèi)容,掌握了短小的程序的編寫和分析,并把它應(yīng)用和拓展到一些大的實(shí)際應(yīng)用中,不但可以體現(xiàn)小程序的價(jià)值,也為人們利用小程序編寫自己的實(shí)用程序打下了一個(gè)基礎(chǔ),也為程序設(shè)計(jì)的進(jìn)一步學(xué)習(xí),提供了一個(gè)很好的應(yīng)用平臺(tái)。程序設(shè)計(jì)的學(xué)習(xí)從編寫小程序?qū)W起,小程序也有大作用。
[1]黃春芳,宋穎.C 語言程序設(shè)計(jì)[M].天津:南開大學(xué)出版社,2009.
[2]譚浩強(qiáng),張基溫.C語言程序設(shè)計(jì)教程[M].第三版.北京:高等教育出版社,2010.
[3]耿國華.數(shù)據(jù)結(jié)構(gòu)—用C語言描述[M].北京:高等教育出版社,2011.