“自頂向下、逐步求精”的程序設(shè)計(jì)方法
用模塊化設(shè)計(jì)批量計(jì)算平均氣溫
“自頂向下、逐步求精”
先進(jìn)行頂層設(shè)計(jì),再對(duì)各部分進(jìn)行細(xì)化。這種程序設(shè)計(jì)方法使程序的結(jié)構(gòu)變得更加清晰,程序的調(diào)試也更加簡單。
輸入數(shù)據(jù)并做相應(yīng)調(diào)整的處理
大多數(shù)解決現(xiàn)實(shí)問題的程序都比本書中介紹的程序要大得多,對(duì)于一個(gè)復(fù)雜的問題通常需采取“分而治之”的策略,也就是模塊化設(shè)計(jì)的思想。
整個(gè)程序設(shè)計(jì)完成之后,就可以使用特定的程序設(shè)計(jì)語言來編寫程序。
需求分析所做的事情是根據(jù)用戶的要求確定程序應(yīng)當(dāng)具備哪些功能,達(dá)到什么性。
設(shè)計(jì)程序階段大致又可再分為兩個(gè)子階段,即程序的模塊化設(shè)計(jì)和模塊內(nèi)的邏輯設(shè)計(jì)。
一個(gè)程序的算法設(shè)計(jì)可以從三個(gè)基本步驟
枚舉法的基本原理是根據(jù)已知條件,在給定的范圍內(nèi)對(duì)所有可能的答案按某種順序進(jìn)行逐一枚舉和檢驗(yàn),從中找出那些符合要求的答案。
問題所涉及的情況有哪些,情況的種數(shù)是否可以確定。
盡可能縮小搜索范圍,減少求解時(shí)間。
分析出來的這些情況,須滿足什么條件才能成為問題的答案。
假設(shè)這個(gè)5位數(shù)為abcde,則abcde=ax10000+bx1000+cx100+dx10+e。本問題中,已知萬位、十位、個(gè)位上的數(shù)字a、d、e(可以由用戶輸入),而千位和百位上的數(shù)字b、c是待求的,因此可采用枚舉法列舉b、c所有可能的數(shù)字(0-9),每列舉一次,判斷構(gòu)造的號(hào)碼能否被57或67整除,若能則輸出該號(hào)碼。
1.輸入a、d、e; 2.循環(huán)b從0到9, step1;   2.1 循環(huán)c從0到9,step1;      2.1.1 number=ax1000+bx100+cx100+dx10+e;      2.1.2 如果 number能被57或67整除,則輸出 number。
在 Pythn語言中,可利用嵌套列表組織以上數(shù)據(jù):將每個(gè)月的日平均氣溫構(gòu)成的列表作為一個(gè)列表的數(shù)據(jù)項(xiàng)——子列表,構(gòu)成嵌套的列表,其形式如下: [ [ ],[ ],[ ],[ ]……] 使用下標(biāo)可以方便地訪問嵌套列表中的每一個(gè)子列表。
f=pen("c:\\sample\\2013avgtq.csv")yL=[]fr line in f line=line.replace("\n","") L=line.split(",") fr i in range(len(L)): L[i]=int(L[i]) yL.append(L) f.clse ()
Pythn語言對(duì)文件采用統(tǒng)一的操作步驟,即“打開--操作--關(guān)閉”。 pen函數(shù)用來打開文件(默認(rèn)用只讀方式打開),并返回文件對(duì)象。 fr line in f是逐行訪問文件對(duì)象f。 line表示一行字符串。
line. replace("\n","")是將每一行結(jié)束處的換行符"\n"用空串替代,相當(dāng)于刪除換行符。 Line.split(",")是按照逗號(hào)將line字符串切割為若干個(gè)字符串,返回一個(gè)列表。 yL.append(L)是將列表L追加到列表yL中,作為一個(gè)數(shù)據(jù)項(xiàng)。 clse函數(shù)用來關(guān)閉文件。
“自頂向下、逐步求精”的設(shè)計(jì)方法:選進(jìn)行頂層算法設(shè)計(jì),再對(duì)各組成部分進(jìn)行細(xì)化。 批量計(jì)算一年中12個(gè)月的月平均氣溫,可以使用“自頂向下、逐步求精”的方法來設(shè)計(jì)算法。
1.創(chuàng)建日平均氣溫列表;2.計(jì)算12個(gè)月的月平均氣溫;3.輸出12個(gè)月的月平均氣溫。
第1步算法細(xì)化1.1打開文件對(duì)象f;1.2初始化新列表dL;1.3逐行讀入文件數(shù)據(jù),將一行字符串切割,轉(zhuǎn)化為整型數(shù)據(jù)后,作為子列表追加到列表d中;1.4關(guān)閉文件。
算法步驟1.3是一個(gè)循環(huán)結(jié)構(gòu),1.3.2也是一個(gè)循環(huán)結(jié)構(gòu),在循環(huán)結(jié)構(gòu)中出現(xiàn)了另一個(gè)循環(huán)結(jié)構(gòu),這稱為循環(huán)的嵌套結(jié)構(gòu),也稱多重循環(huán)。
第1.3步算法細(xì)化1.3.1 按逗號(hào)切割字符串line中的數(shù)據(jù)到列表L;1.3.2 循環(huán)i從0到len(L)-1; 將L[i]轉(zhuǎn)化為整數(shù);1.3.3 將L追加到列表dL中。
第2步算法細(xì)化2.1 初始化avgy;2.2 迭代訪問dL中每一個(gè)子列表m; 2.2.1 列表m的平均值avg; 2.2.2 將avg追加到列表avgy中。
模塊化設(shè)計(jì)中的子模塊既可以用函數(shù)實(shí)現(xiàn),也可以直接用程序塊實(shí)現(xiàn)。下面以模塊1創(chuàng)建日平均氣溫列表為例,完成其函數(shù)實(shí)現(xiàn)。
在 Pythn Shell 中編寫并測試函數(shù) readNList,該函數(shù)功能為從參數(shù)中獲取指定文件名,讀入文件數(shù)據(jù)到列表,處理后得到包含12個(gè)月的日平均氣溫子列表的新列表,并返回新列表。
本問題所涉及的數(shù)據(jù)對(duì)象包括函數(shù)的輸入?yún)?shù)(文件名filename)、存放日平均氣溫 數(shù)據(jù)的嵌套列表dL、文件對(duì)象f。 函數(shù)的計(jì)算結(jié)果是包含12個(gè)月的日平均氣溫子列表的新列表,通過retum語句返回。
>>> def readNList(filename): f=pen(filename) dL=[] fr line in f: line=line.replace("\n", "") L=line split(",") fr i in range(len(L)): L[i]=int(L[i]) dL.append(L) f.clse() return dL
>>>filename=input("請(qǐng)輸入csv文件名:")請(qǐng)輸入csv文件名:c:\sanple\2013avgtq.csv>>> tqy=readNList(filename)>>> tqy
以下函數(shù)調(diào)用中,存儲(chǔ)文件名的變量為file,與函數(shù)定義時(shí)輸入?yún)?shù)的名稱 filename不一致。這種函數(shù)調(diào)用正確嗎?為什么?
>>> file="c: \\sample\\2013avgtq.csv" >>> tqy=readNList(file)>>> tqy

相關(guān)課件

高中信息技術(shù)滬教版(2019)必修2 信息系統(tǒng)與社會(huì)4.了解網(wǎng)絡(luò)社交的道德規(guī)范與法律法規(guī)優(yōu)質(zhì)ppt課件:

這是一份高中信息技術(shù)滬教版(2019)必修2 信息系統(tǒng)與社會(huì)4.了解網(wǎng)絡(luò)社交的道德規(guī)范與法律法規(guī)優(yōu)質(zhì)ppt課件,文件包含滬科版2019高中必修2信息技術(shù)項(xiàng)目82了解網(wǎng)絡(luò)社交的道德規(guī)范與法律法規(guī)課件pptx、滬科版2019高中必修2信息技術(shù)項(xiàng)目82了解網(wǎng)絡(luò)社交的道德規(guī)范與法律法規(guī)教案doc、項(xiàng)目八第二課時(shí)了解網(wǎng)絡(luò)社交的道德規(guī)范與法律法規(guī)mp4、項(xiàng)目八第二課時(shí)了解網(wǎng)絡(luò)社交的道德規(guī)范與法律法規(guī)1mp4等4份課件配套教學(xué)資源,其中PPT共26頁, 歡迎下載使用。

2020-2021學(xué)年3.探究點(diǎn)餐數(shù)據(jù)的計(jì)算機(jī)處理過程精品ppt課件:

這是一份2020-2021學(xué)年3.探究點(diǎn)餐數(shù)據(jù)的計(jì)算機(jī)處理過程精品ppt課件

高中信息技術(shù)滬教版(2019)必修1 數(shù)據(jù)與計(jì)算4.評(píng)估手寫數(shù)字識(shí)別模型并開展應(yīng)用精品ppt課件:

這是一份高中信息技術(shù)滬教版(2019)必修1 數(shù)據(jù)與計(jì)算4.評(píng)估手寫數(shù)字識(shí)別模型并開展應(yīng)用精品ppt課件,文件包含滬科版2019高中必修1信息技術(shù)項(xiàng)目94評(píng)估手寫識(shí)別模型并開展應(yīng)用課件pptx、滬科版2019高中必修1信息技術(shù)項(xiàng)目94評(píng)估手寫識(shí)別模型并開展應(yīng)用教案doc等2份課件配套教學(xué)資源,其中PPT共26頁, 歡迎下載使用。

英語朗讀寶

相關(guān)課件 更多

信息技術(shù)必修1 數(shù)據(jù)與計(jì)算1.用列表表示和計(jì)算平均氣溫精品課件ppt

信息技術(shù)必修1 數(shù)據(jù)與計(jì)算1.用列表表示和計(jì)算平均氣溫精品課件ppt

高中信息技術(shù)2.設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算精品課件ppt

高中信息技術(shù)2.設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算精品課件ppt

滬教版(2019)必修1 數(shù)據(jù)與計(jì)算1. 設(shè)計(jì)算法實(shí)現(xiàn)用數(shù)學(xué)公式計(jì)算公開課ppt課件

滬教版(2019)必修1 數(shù)據(jù)與計(jì)算1. 設(shè)計(jì)算法實(shí)現(xiàn)用數(shù)學(xué)公式計(jì)算公開課ppt課件

高中信息技術(shù)滬教版(2019)必修1 數(shù)據(jù)與計(jì)算1.用列表表示和計(jì)算平均氣溫優(yōu)秀課件ppt

高中信息技術(shù)滬教版(2019)必修1 數(shù)據(jù)與計(jì)算1.用列表表示和計(jì)算平均氣溫優(yōu)秀課件ppt

資料下載及使用幫助
版權(quán)申訴
版權(quán)申訴
若您為此資料的原創(chuàng)作者,認(rèn)為該資料內(nèi)容侵犯了您的知識(shí)產(chǎn)權(quán),請(qǐng)掃碼添加我們的相關(guān)工作人員,我們盡可能的保護(hù)您的合法權(quán)益。
入駐教習(xí)網(wǎng),可獲得資源免費(fèi)推廣曝光,還可獲得多重現(xiàn)金獎(jiǎng)勵(lì),申請(qǐng) 精品資源制作, 工作室入駐。
版權(quán)申訴二維碼
高中信息技術(shù)滬教版 (2019)必修1 數(shù)據(jù)與計(jì)算電子課本

2. 用模塊化設(shè)計(jì)批量計(jì)算平均氣溫

版本: 滬教版 (2019)

年級(jí): 必修1 數(shù)據(jù)與計(jì)算

切換課文
所有DOC左下方推薦
歡迎來到教習(xí)網(wǎng)
  • 900萬優(yōu)選資源,讓備課更輕松
  • 600萬優(yōu)選試題,支持自由組卷
  • 高質(zhì)量可編輯,日均更新2000+
  • 百萬教師選擇,專業(yè)更值得信賴
微信掃碼注冊
qrcode
二維碼已過期
刷新

微信掃碼,快速注冊

手機(jī)號(hào)注冊
手機(jī)號(hào)碼

手機(jī)號(hào)格式錯(cuò)誤

手機(jī)驗(yàn)證碼 獲取驗(yàn)證碼

手機(jī)驗(yàn)證碼已經(jīng)成功發(fā)送,5分鐘內(nèi)有效

設(shè)置密碼

6-20個(gè)字符,數(shù)字、字母或符號(hào)

注冊即視為同意教習(xí)網(wǎng)「注冊協(xié)議」「隱私條款」
QQ注冊
手機(jī)號(hào)注冊
微信注冊

注冊成功

返回
頂部