中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

第二單元 微項目4 用排序算法進行數據整理 課件(共17張PPT)-泰山版(2019)初中信息技術第二冊

資源下載
  1. 二一教育資源

第二單元 微項目4 用排序算法進行數據整理 課件(共17張PPT)-泰山版(2019)初中信息技術第二冊

資源簡介

(共17張PPT)
微項目4
用排序算法進行數據整理
Phthon編程------4 排序算法
學習目標
1.通過計算選手得分活動 ,查找最大數、最小數,了解如何進行數據比較 解決如何比較數據大小問題。
2.通過為選手排名次活動, 觀察冒泡排序的基本過程,探索序列的生成過程,理解 冒泡排序中的數據交換如何實現。
學習活動 過程與目標 核心問題
學校舉行歌手大獎賽,需要設計一個程序,對選手比賽成績進行處理。比賽規則是滿分為10分且評委打分均為整數;每位選手最終得分為去掉1個最高分和1個最低分后的平均分。評委共有12位,參賽選手10位,如何計算并顯示所有選手最終得分并排出名次
項目實施
活動一 計算選手得分
活動一
項目實施:——解決生活種的問題
學校舉行歌手大獎賽,需要設計一個程序,對選手比賽成績進行處理。比賽規則是滿分為10分且評委打分均為整數;每位選手最終得分為去掉1個最高分和1個最低分后的平均分。評委共有12位,參賽選手10位,如何計算并顯示所有選手最終得分并排出名次
問題分析:
首先輸入評委打分,
接著通過判斷找到最大數、最小數,最后針對有效打分求解平均數,獲得選手得分。需要將12位評委打分一次性錄人,分數之間用英文逗號分隔。
按Enter鍵,結束輸入。
參照下列代碼完成給一個選手的打分錄人程序。
1.輸入評委打分
#!/usr/bin/env python3
a=input(”輸入評委打分,并以英文逗號分隔:").split(",") #輸入數值以逗號分隔
b=[int(x) for x in a] #將字符串型的得分轉換為數字型數據(整數)并存儲
print("評委打分為:",a) #顯示未轉換類型的數據
print("評委打分為:",b) #顯示轉換類型后的數據
2.判斷最大數、最小數
#!/usr/bin/env python3
a=input("輸入評委打分,以英文逗號分隔:").split(",") #輸入得分數值以逗號分隔
b = [int(x) for xin a] #將輸入的字符串型得分轉換為數字型數據(整數)并存儲
d=b[0]
for i in b: #訪問列表中所有數值進行判斷
if i>d:
d=i
print("最大數為",d)
找最大數
問題:通過對列表中數據進行逐個判斷,找出最大數和最小數。下面代碼初始化最大數變量d為第1個元素,通過循環訪問整個列表,最終找出最大數。
3.計算選手平均分
根據規則,從所有評委打分之和中減去最高分與最低分,然后除以有效打分個數求得該選手的最終得分。
#!/usr/bin/env python3
a=input("輸入評委打分以英文逗號分隔:").split(",")
b=[int(x) for xin a]
d=b[0]
x=b[0]
for i in b: # 遍歷列表中所有數值進行判斷
if i>d:
d=i
if ix=i
m=sum(b)-d-x#求和,并減去最高分、最低分
n=len(b)-2 #求有效分的個數
k=m/n # 求平均
print("選手得分:",b)
print("去掉一個最高分:",d)
print("去掉一個最低分:",x)
print("最終平均得分:",k)
活動一 為選手排名次
活動二
解決問題:
按照得分高則名次靠前的原則,需要將10位選手的最終得分按照從高到低進行排序。計算機如何完成對選手成績的排序呢
在程序設計中,冒泡排序是比較常見的一種排序算法。下面,一起來探究該算法的實現過程。
1.冒泡排序算法的執行過程
1.冒泡排序算法的執行過程
所謂冒泡排序,就是從初始位置開始,每次對相鄰兩個數據進行比較,如順序無誤保持位置不變,順序錯誤則交換位置,不斷進行下一次比較,直至數據順序調整完畢。
7
9
5
6
4
7
9
5
6
4
7
5
9
6
4
7
5
6
9
4
7
5
6
4
9
7
5
6
4
9
5
7
6
4
9
5
6
7
4
9
5
6
4
7
9
5
6
4
7
9
原始數據
第1次比較后
第2次比較后
第3次比較后
第4次比較后
第1次比較后
第2次比較后
第3次比較后
第4次比較后
從第1輪比較結果開始
第1輪比較
第2輪比較
(1)觀察冒泡排序的基本過程
第1輪如何比較?
第2輪如何比較?
討論:
如何進行第三輪比較呢?
以對7、9、5、6、4從小到大排序為例,我們先嘗試兩輪冒泡排序過程
根據前兩輪排序過程,推演冒泡排序的全部過程。
(2)分析冒泡排序的基本規律
討論:
n個數進行冒泡排序,除第一輪比較外,每輪比較需要n-1次嗎?
一共需要比較多少輪?
2.編寫冒泡排序程序進行實驗——雙重循環
通過使用雙重循環,很容易實現冒泡排序的程序設計:
用外層循環控制比較輪次,用內層循環控制每輪內的數據比較次數;
每次比較后可顯示比較結果,每輪比較后顯示當前結果。
通過排序實驗的過程數據,會直觀地看出整個冒泡排序的過程。實驗中,可用“#”臨時屏蔽每次比較后的結果顯示,直觀觀察所有輪次的比較過程。
#!/usr/bin/env python3
#冒泡排序實驗
#9個測試數據存儲在s[0]-s[8]
s=[9,8,7,6,5,4,3,2,1]
print(”參與排序的數據:", s)
for k in range(0,len(s)-1): #控制比較輪數
for i in range(0,len(s)-k-1): #每輪比較次數
if s[i]>s[i+1]: #判斷相鄰兩數值的大小
s[i],s[i+1]=s[i+1],s[i] #符合判斷條件情況,交換位置
print("第",i+1,"次比較結果:"s) #顯示比較過程
print("第",k+1,"輪比較結果:",s )#顯示當前結果
print()
討論:
1.用測試數據運行程序有什么好處
2.如何刪除測試數據,為選手得分排序
雙重循環 —— 程序實現
3.用冒泡排序的降序方式為選手成績排序
#!/usr/bin/env python3
s=[5.3,6.0,4.1,7.5,9.6,4.7.7.2,8.6,6.3.9.2]#選手成績列表
for k in range(0,len(s)-1):
for i in range(len(s)-k-1):
If s[i]s[i],s[i+1]=s[i+1].s[i] #小數交換到后面位置
print("成績從高到低排序結果:",s)
冒泡排序不僅可以升序排序,通過修改比較運算符,還可以進行降序排序。參考以下程序,請對選手成績從高到低進行排序。
在程序中:
①在Python中,s[i],s[i+1]=s[i+1],s[i]語句直接完成變量值的交換,不用第三個變量。
② print("第%d名得分:%.2f 選手:%s”%(i+1,s[i],c[i]))語句中采用了輸出格式的設置。
%f;輸出對應的浮點數,%.2f是保留2位小數。本程序在執行時%.2f對應輸出s[ī]。
%s:輸出對應的字符串。本程序在執行時%s對應輸出c[i]。
4.同時交換選手編號與得分
僅對分數排序,無法區分是哪位選手的成績。使用列表c輔助,可以實現編號與得分對應,符合交換條件時同步交換,從而能夠確定某位選手的具體得分和位次。
m!/usr/binfeny python
s=[5.3,6.0,4.1,7.5,9.6,4. 7,7.2,8.6,6.3,9.2]#選手成績列表
c=[“001”,”002”,” 003” ,”004,””005”,”006”,”007”,“008”,”009”]#選于編號
for k in range(O,len(s)-1)
for i in range(len(s)-k-1):
if s[i]s[1].s[1+1]**[1+1].s[0
c[i].c[i-]]*c[i+1].c[i] x編號網修交換
for i in range(0,len(s)):
print(“第%d名 得分:%.2f 選手:%s” %(i+1,s[1],cti]))
編號對應程序
討論
1.如有相同得分,如何顯示并列名次
2. 將排序、編號對應的兩個程序連續起來,如何修改可以完成10位選手的成績錄入和排序工作
課堂小結:
排序算法的思想是什么?
升序和降序是如何在排序算法中實現的

展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 凌海市| 渝中区| 香港 | 婺源县| 祁东县| 宜阳县| 磐安县| 昭通市| 潞城市| 宁乡县| 青海省| 仙居县| 郯城县| 璧山县| 宝鸡市| 宁晋县| 旌德县| 分宜县| 博兴县| 临泉县| 句容市| 凤城市| 梅河口市| 北辰区| 横山县| 石渠县| 龙门县| 永嘉县| 镇远县| 通辽市| 绵阳市| 洞头县| 资阳市| 新宾| 望都县| 集贤县| 张北县| 浪卡子县| 定结县| 永兴县| 高淳县|