資源簡介 第四章 計算與問題解決知識點匯總:計算機解決問題的過程:分析問題——》設計算法——》編寫代碼——》調試運行算法:算法解決問題的過程和方法,也是一種數學模型。算法描述:自然語言、流程圖、偽代碼、PAD圖等算法5大特征:有窮性:有限步驟后能終止。確切性:每一次運算都有明確的定義,具有無二義性。輸入:有0個或多個輸入。輸出:一定要有輸出。可行性:可以在有限時間內完成。算法的三種結構:順序結構、分支結構和循環結構。常見算法:枚舉法(窮舉法)、解析法、二分查找法、順序查找法、哈希查找法、迭代算法和遞歸算法等。枚舉法(窮舉法):把所有可能的答案一一列舉,找到合適的保留,不合適的就丟棄。解析法:通過代數數學公式計算的得到答案。二分查找法:必須是有序的序列,折半查找。迭代算法:每一次對過程的重復稱為迭代。遞歸算法:直接或間接的調用自身的方法稱為遞歸。本章用到的模塊:numpy:科學計算包,包含很多數學函數。matplotlib:繪圖庫。Python中加載模塊的方法:import numpy 或 import numpy as np #加載numpy模塊并取名npimport matplobtlib.pyplot 或 import matplobtlib.pyplot as plt #加載matplobtlib.pyplot模塊并取名plt習題檢測:1.圖一程序 是算法 結構;2.圖二自定義函數名稱 。3.圖三程序使用了 算法。4.圖四程序使用了 算法。5.以下關于算法中輸入、輸出的描述正確的是( )。A.算法可以沒有輸入,表示該算法不涉及任何數據信息B.算法可以沒有輸出,表示該算法運行結果為“無解”C.算法必須要有輸入,否則算法無法進行D.算法至少要有一個輸出6.采用盲目搜索的方法,在搜索的過程中,對所得的結果逐一篩選,排除不符合要求的結果,保留那些符合要求的結果,這種方法叫做( )。A.解析法 B.遞推法 C.枚舉法 D.選擇法7.在軟件的生命周期中,明確軟件系統具備哪些功能的階段是( )。A.可行性分析 B.需求分析 C.概要設計 D.詳細設計8.圖中代碼輸入是()A.輸入是1 B.輸入是s C.輸入是0 D.沒有輸入9.有N根小棒(N是偶數),沒根小棒長1厘米,要將這些小棒拼成矩形,怎樣拼才能使其面積最大?分析:用什么算法解決問題?課本程序分析課本88頁尋找“開關對應關系”流程圖課本p90頁 尋找被刪的ID號課本p91頁課本P95頁利用python繪制正弦曲線y1=sin(x)、y2=sin(-x)、y3=sin(2*x)/2程序import numpy as np #加載numpy模塊并取別名為npimport matplotlib.pyplot as plt #加載matplotlib.pyplot并取別名為pltx=np.arange(0,2*np.pi,0.01) #列表x在0到2π之間,毎隔0.01取一個點y1=np.sin(x) #求sin(x)對應的列表y1的值y2=np.sin(-x) #求sin(-x)對立的列表y2的值y3=np.sin(2*x)/2 #求sin(2x)/2對應的列表y3的值plt.plot(x,y1) #繪制sin(x)的圖像plt.plot(x,y2) #繪制sin(-x)的圖像plt.plot(x,y3) #繪制sin(2x)/ 2的圖像plt.title(‘sin(x)’) #設置圖像標題plt.xlabel(‘X’) #設置X軸標題plt.ylabel(‘Y’) #設置Y軸標題plt.show( ) #將繪制的函數圖像窗口顯示出來課本p98頁Python程序代碼如下:def fib(n):#迭代求Fibonacci數列f2=f1=1 #第1個月、第2個月初始值的設定for i in range(3,n+1): #從第3個月至第n個月依次計算f1,f2=f2,f1+f2return f2n=int(input('輸入需要計算的月份數:'))print('兔子總對數為:',fib(n)) #輸出最終值課本p102頁 二分查找x=int(input("請輸入要查找的1000以內的整數:"))step=0flag1=1flag2=1000while(flag1<=flag2):mid=(flag1+flag2)//2if mid>x:flag2=mid-1elif midflag1=mid+1else:breakprint("查找次數為:",step)課本拼104頁漢諾塔def hanno(n,s,m,t):#定義一個函數,n層塔,將盤子從s借助m移動到tif n==1:print(s,'-->',t) #將一個盤子從s移動到telse:hanno(n-1,s,t,m) #將前n-1個盤子從s移動到m上print(s,'-->',t) #將最底下的最后一個盤子從s移動到t上hanno(n-1,m,s,t) #將m上的n-1個盤子移動到t上#主程序n=int(input('請輸入漢諾塔的層數:'))hanno(n,'A','B','C') 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫