![[其它課程]算法與程序設計教育科學出版社_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/ecfdc19f-dab7-4fd7-a3ee-8b1c78e84c11/ecfdc19f-dab7-4fd7-a3ee-8b1c78e84c111.gif)
![[其它課程]算法與程序設計教育科學出版社_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/ecfdc19f-dab7-4fd7-a3ee-8b1c78e84c11/ecfdc19f-dab7-4fd7-a3ee-8b1c78e84c112.gif)
![[其它課程]算法與程序設計教育科學出版社_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/ecfdc19f-dab7-4fd7-a3ee-8b1c78e84c11/ecfdc19f-dab7-4fd7-a3ee-8b1c78e84c113.gif)
![[其它課程]算法與程序設計教育科學出版社_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/ecfdc19f-dab7-4fd7-a3ee-8b1c78e84c11/ecfdc19f-dab7-4fd7-a3ee-8b1c78e84c114.gif)
![[其它課程]算法與程序設計教育科學出版社_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/ecfdc19f-dab7-4fd7-a3ee-8b1c78e84c11/ecfdc19f-dab7-4fd7-a3ee-8b1c78e84c115.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、算法與程序設計算法與程序設計算法與程序設計算法與程序設計1.1 計算機解決問題的過程從一個生產方案問題了解用計算機解決問題的步驟:p3開始分析問題設計算法編寫程序運行程序驗證結果問題解決算法與程序設計算法與程序設計1、具體問題:、具體問題:相傳我國漢代有位大將軍叫韓信,他在點兵時讓士兵分別從13、15、17報數(shù),然后報告各次報數(shù)的余數(shù),這樣他就能推算出總共有多少士兵。假設余數(shù)分別為2、3、2探究的問題探究過程設所求的數(shù)為x,則x應該滿足:x整除3余2x整除5余3x整除7余21、令x為1。2、如果x整除3余2,x整除5余3,x整除7余2,則記下這個x的值。3、令x=x+1(為算下一個做準備)4、
2、如果求出了x,則結束程序,否則跳轉執(zhí)行第2步。5、輸出答案。2、分析問題:、分析問題:算法與程序設計算法與程序設計算法與程序設計算法與程序設計3、設計算法:、設計算法:算法與程序設計算法與程序設計4、編寫程序、編寫程序dim n as integer n = 1do if (n mod 3=2) and (n mod 5=3) and (n mod 7=2) then print n exit do end if n=n+1loop算法與程序設計算法與程序設計dim a as integer, b as integer, c as integer, d as integer, e as int
3、eger, f as integer, n as integern = text1.texta = text2.textb = text3.textc = text4.textd = text5.texte = text6.textf = text7.textfor i = 1 to n if i mod a = b and i mod c = d and i mod e = f then text8.text = i end ifnext i算法與程序設計算法與程序設計private sub about_click()msgbox 我的第一個vb程序!end subprivate sub c
4、ommand1_click()ysf.caption = +text3.text = val(text1.text) + val(text2.text)end subprivate sub command2_click()ysf.caption = -text3.text = val(text1.text) - val(text2.text)end subprivate sub command3_click()ysf.caption = *text3.text = val(text1.text) * val(text2.text)end subprivate sub command4_clic
5、k()if text2.text = 0 thenmsgbox 除數(shù)不能為0elseysf.caption = /text3.text = val(text1.text) / val(text2.text)end ifend subprivate sub command5_click()text1.text = text2.text = text3.text = end sub算法與程序設計算法與程序設計5、調試程序、得到結果、調試程序、得到結果1)、新建工程;2)、在窗體添加按鈕控件;3)、給按鈕添加單擊事件過程;4)、在單擊事件過程內輸入編寫好的程序;5)、運行程序調試結果。6、在計算機上
6、執(zhí)行該指令序列5、通過編輯、編譯和連接產生計算機能夠識別的指令序列4、選用一種編程語言根據(jù)算法編寫程序4、驗證計算結果3、生成解題算法3、用筆、紙和算盤、計算器等工具進行計算2、尋找解題的途徑和方法2、尋找解題的途徑和方法1、理解和分析所要解決的問題1、理解和分析所面臨的問題計算機解題步驟計算機解題步驟人工解題步驟人工解題步驟相同點:無論何種解題方式,在解決某一實際問題時,都應該正確的理解問題的題意,從看似復雜的問題中整理出一個頭緒,然后通過算法(即解決問題的一個一個步驟)描述出某一問題的解決過程,進行一定量的計算,最后都必須驗證計算結果。 不同點:當計算量較大時,人工解題就有點力不從心了,而
7、計算機每秒上億次的計算速度卻不在話下,并且只要算法正確,編程語句無誤的話,使用計算機編寫的解題程序可以反復使用。例如:sum=1+2+3+4+5+(n-1)+n這樣的問題。 算法與程序設計算法與程序設計1.2 算法描述與設計1、算法的概念、算法的概念算法是在有限步驟內求解某一問題所使用的一組定義明確的規(guī)則。即,用計算機求解某一問題的方法,是能被機械地執(zhí)行的動作或指令的有窮集合。算法的特征:1)、有0或多個輸入。解題算法中可以沒有數(shù)據(jù)輸入,也可以同時輸入多個需 要算法處理的數(shù)據(jù)。 2)、確定性。解題方法中的任何一個操作步驟都是清晰無誤的,不會使人產生 歧義或者誤解。 3)、有窮性。任何一種提出的
8、解題方法都是在有限的操作步驟內可以完成的, 哪怕是失敗的解題方法。 4)、有1個或多個輸出。一個算法執(zhí)行結束之后必須有數(shù)據(jù)處理結果輸出,哪怕 是輸出錯誤的數(shù)據(jù)結果,沒有輸出的算法使毫無意義的。 5)、能行性。解題方法中的任何一個操作步驟在現(xiàn)有計算機軟硬件條件下和邏 輯思維中都能夠實施實現(xiàn)。 算法與程序設計算法與程序設計輾轉相除法 又名歐幾里德算法(euclidean algorithm)是求兩個正整數(shù)之最大公約數(shù)的算法。它是已知最古老的算法, 其可追溯至前300年。它首次出現(xiàn)于歐幾里德的幾何原本(第vii卷,命題i和ii)中,而在中國則可以追溯至東漢出現(xiàn)的九章算術。它并不需要把二數(shù)作質因子分解
9、。 1. a b,令r為所得余數(shù)(0rb),若 r = 0,b 即為最大公約數(shù);算法結束 。 2. 互換:置 ab,br,并返回第一步。 例如:求112和64的最大公約數(shù).算法如下: (1).112除以64,余數(shù)為_; (2)_除以_余數(shù)為_; (3)_除以_余數(shù)為_. 答:112和64的最大公約數(shù)為_.兩數(shù)的最大公約數(shù)乘以其最小公倍數(shù)=兩數(shù)相乘例如:求112和64的最小公倍數(shù) (1).利用輾轉相除法求得它們的最大公約數(shù)為_; (2).利用表達式求得最小公倍數(shù): 答: 112和64的最小公倍數(shù)為_.練習:求164和64的最大公約數(shù)求256和24的最大公約數(shù)練習:求164和64的最小公倍數(shù)求25
10、6和24的最小公倍數(shù)算法與程序設計算法與程序設計2、算法的描述、算法的描述表示算法的語言有自然語言、流程圖、偽代碼等。1)、用自然語言描述算法;2)、用流程圖描述算法:掌握流程圖的基本圖形及其功能。3)、用偽代碼描述算法。注意對比三種算法描述方式的優(yōu)劣。1).輸入m和n的值;2).r=m除以n的余數(shù);3).如果r=0,則輸出n值; 否則令m=n,n=r返回第2步;4).結束.開始輸入正整數(shù)m和nr=m除以n的余數(shù)r=0m=n, n=r輸出n的值結束是否輸入m和n值r m mod ndo while r0m=nn=rr=m mod nloop輸出n值算法與程序設計算法與程序設計優(yōu)點缺點自然語言不
11、需專門訓練,通俗易懂p7流程圖描述清晰簡潔,容易表達選擇結構;利于不同環(huán)境的程序設計.p8無法被計算機直接接受并進行操作偽代碼書寫方便,格式緊湊,易于理解,便于向計算機程序設計語言過渡.p8種類繁多,語句不容易規(guī)范.p8三種算法描述方式的優(yōu)劣三種算法描述方式的優(yōu)劣算法與程序設計算法與程序設計使用自然語言描述算法的方法雖然比較容易掌握,但是存在著很大的缺陷。例如,當算法中含有多分支或循環(huán)操作時很難表述清楚。另外,使用自然語言描述算法還很容易造成歧義(稱之為二義性),譬如有這樣一句話“武松打死老虎”,我們既可以理解為“武松/打死老虎”,又可以理解為“武松/打/死老虎”。自然語言中的語氣和停頓不同,
12、就可能使他人對相同的一句話產生不同的理解。又如“你輸他贏”這句話,使用不同的語氣說,可以產生3種截然不同的意思,同學們不妨試試看。 無論是使用自然語言還是使用流程圖描述算法,僅僅是表述了編程者解決問題的一種思路,都無法被計算機直接接受并進行操作。 偽代碼通常采用自然語言、數(shù)學公式和符號來描述算法的操作步驟,同時采用計算機高級語言(如c、pascal、vb、c+、java等)的控制結構來描述算法步驟的執(zhí)行順序。 算法與程序設計算法與程序設計在運用計算機程序解決問題的過程中,算法設計有著舉足輕重的地位和作用,算法是程序設計的核心,是程序設計的靈魂.算法的好壞,直接影響著程序的通用性和有效性,影響著
13、問題解決的效率.程序的編制依賴于算法的設計。程序的效率主要取決于算法的效率。算法與程序設計算法與程序設計1.3、程序與程序設計語言、程序與程序設計語言1)、程序是一組機器操作的指令或語句的序列,是算法的一種描述。2)、程序的基本結構:p16順序結構:各語句依次按照順序執(zhí)行。選擇結構:通過檢驗條件是否成立來決定做還是不做的控件結構。循環(huán)結構:在一定條件下需要重復執(zhí)行的控件結構。任何復雜的算法都可以用順序結構、選擇結構、循環(huán)結構三種基本結構組合而成的程序表示。算法與程序設計算法與程序設計s1s2sncs1s2cs1順序結構選擇結構循環(huán)結構算法與程序設計算法與程序設計4)、程序設計:即是編寫程序的過
14、程。一個高質量的程序,應具備以下條件:(1)、建立正確的靈堂模型和確定有效的計算方法;(2)、運行結果必須正確,且在精度和其他各方面均滿足要求;(3)、程序本身具有良好的結構,邏輯清楚,易讀易懂。(4)、程序運行時間盡可能短,同時盡可能合理地使用內存;(5)、便于檢查、修正、移植和維護。5)、程序設計語言的產生與發(fā)展(p18)(1)、機器語言:由“0”和“1”組成的二進制代碼,是能夠被計算機直接接受和執(zhí)行的計算機語言。 優(yōu)缺點:(2)、匯編語言:采用類似英語縮寫略詞且?guī)в兄浶缘姆栃问酱娑M制 機器代碼的計算機語言。是符號化了的機器語言。用能反映 指令功能的助記符表達的計算機語言。 優(yōu)缺點
15、:(3)、高級語言:相對于匯編語言而言,它并不是特指某一種具體的語言,而是包括了很多編程語言,如vb、c、c+,vc、java、pascal等。算法與程序設計算法與程序設計語言種類優(yōu)勢不足機器語言能被計算機直接接受和執(zhí)行程序設計任務繁重,效率低下,與自然語言存在巨大鴻溝,程序員不易培養(yǎng)。匯編語言比機器語言更易理解必須有語言翻譯器支持,效率低,匯編源程序較冗長、復雜,容易出錯。高級語言更接近自然語言,移植性好。 要語言翻譯器支持。各種程序設計語言的比較算法與程序設計算法與程序設計程序的編輯和翻譯1、理解什么是源代碼、源文件、程序的編輯?2、高級語言的翻譯程序有兩種類型:編譯程序和解釋程序。編譯程
16、序:把用高級程序設計語言書寫的源程序,翻譯成等價的計算機匯編語言或機器語言書寫的目標程序的翻譯程序。解釋程序是高級語言翻譯程序的一種,它將源語言(如basic)書寫的源程序作為輸入,解釋一句后就提交計算機執(zhí)行一句,并不形成目標程序。vb主要功能和特點1. 具有面向對象的可視化設計工具;2. 事件驅動的編程機制;3. 提供了易學易用的應用程序集成開發(fā)環(huán)境;4. 結構化的程序設計語言;5. 支持多種數(shù)據(jù)庫系統(tǒng)的訪問;6. active技術;7. vb 6.0在開發(fā)環(huán)境上、網(wǎng)絡功能等的增強;8. 完備的help聯(lián)機幫助功能。visual basic程序的書寫規(guī)則任何計算機語言在使用時都有一些約定,書
17、寫程序時要遵循這些約定。1vb代碼中英文字母不區(qū)分大小寫。 但是在代碼窗口向計算機內輸入代碼時,vb將把程序中用到的關鍵字的首字母自動轉換成大寫,其余轉換成小寫,如果關鍵字由多個英文單詞組成,vb將把每個英文單詞首字母轉換成大寫,其余轉換成小寫。2程序書寫方法。 程序書寫時,一般一行只寫一個語句. 如果一行要放幾個語句,各語句之間可以用冒號分開。 如果語句太長窗口一行放不下,可以續(xù)行,續(xù)行的方法是在行后使用續(xù)行符,續(xù)行符是由一個空格加一個下劃字符”_”組成,但一個行最多寫255個字符。3注釋語句。 注釋語句的作用是對程序或者程序段進行說明。注釋語句使用單撇號時,可以放在被注釋語句的后邊 注釋語
18、句使用rem或者單撇號開頭。 例如: rem 求解方程,或者: 求解方程。visual basic 6.0的集成開發(fā)環(huán)境的集成開發(fā)環(huán)境 菜單欄工具欄代碼窗口工具箱窗體窗口立即窗口監(jiān)視窗口工程窗口屬性窗口布局窗口1. 主窗口 應用程序窗口,由標題欄、菜單欄和工具欄組成。2. 窗體(form)窗口 設計vb程序的界面。3. 代碼(code)窗口 編輯窗體、標準模塊中的代碼。4. 屬性(properties)窗口 所有窗體或控件的屬性設置。5. 工程資源管理器(project expror)窗口 保存一個應用程序所有的文件。6. 工具箱(toolbox)窗口 顯示各種控件的制作工具,供用戶在窗體上設
19、計。7. 窗體布局窗口8. 立即窗口2.窗體(form)設計窗口 窗體設計窗口是屏幕中央的主窗口,它可以作窗體設計窗口是屏幕中央的主窗口,它可以作為自定義窗口用來設計應用程序的界面。用戶可以為自定義窗口用來設計應用程序的界面。用戶可以在窗體中添加控件、圖形和圖片來創(chuàng)建所希望的外在窗體中添加控件、圖形和圖片來創(chuàng)建所希望的外觀。每個窗口必須有一個的窗體名字,建立窗體時觀。每個窗口必須有一個的窗體名字,建立窗體時缺省名為缺省名為form1,form2, . . .。應注意窗體名即應注意窗體名即name屬性和窗體文件名的區(qū)別屬性和窗體文件名的區(qū)別 窗體設計窗口窗體設計窗口窗體名窗體名窗體文件名窗體文件
20、名3.代碼(code)窗口 在設計模式中,通過雙擊窗體或窗體上任何對象或通過在設計模式中,通過雙擊窗體或窗體上任何對象或通過“工程資源管理器工程資源管理器”窗口中的窗口中的“查看代碼查看代碼”按鈕來打開代碼編輯器窗口。代碼編輯器是輸入應用程序代按鈕來打開代碼編輯器窗口。代碼編輯器是輸入應用程序代碼的編輯器。碼的編輯器。 4. 屬性(properties)窗口 屬性是指對象的特征,如大小、標題或顏色等屬性是指對象的特征,如大小、標題或顏色等數(shù)據(jù)。在數(shù)據(jù)。在visual basic6.0設計模式中,屬性窗口列設計模式中,屬性窗口列出了當前選定窗體或控件的屬性的值,用戶可以對出了當前選定窗體或控件的
21、屬性的值,用戶可以對這些屬性值進行設置。這些屬性值進行設置。 工程是指用于創(chuàng)建一個應用程序的文件的集合。工程資源管理器列出了當前工程中的窗體和模塊 5. 工程資源管理器工程資源管理器(project explorer)(project explorer)窗口窗口 工具箱提供一組工具,用于設計時在窗體中放置控件生成應用程序的用戶接口。系統(tǒng)啟動后缺省的general工具箱就會出現(xiàn)在屏幕左邊,上面有常用“部件” 6. 工具箱工具箱(toolbox)(toolbox)窗口窗口 窗體布局窗口顯示在屏幕右下角。用戶可使用表示屏幕的小圖像來布置應用程序中各窗體的位置。這個窗口在多窗體應用程序中很有用,因為這
22、可以指定每個窗體相對于主窗體的位置。 7 7窗體布局窗口窗體布局窗口順序結構是最簡單的程序結構,它是由若干個依次執(zhí)行的處理步驟組成的。如圖,a語句和b語句是依次執(zhí)行的,只有在執(zhí)行完a語句后,才能接著執(zhí)行b語句。 順序結構順序結構題目:輸入兩個數(shù),然后交換這兩個數(shù),再輸出它們交換后的結果。(1)分析問題。 要交換兩個數(shù),要利用幾個變量來保存數(shù)據(jù)?順序結構順序結構(2)分析程序的執(zhí)行步驟,畫出流程圖。第一步:輸入兩個變量a、b的值。第二步:利用第三個變量c來進行交換,交換的過程如下: c=a a=b b=c第三步:輸出交換后a、b的值。順序結構順序結構(3)講解程序的編寫。private sub
23、command1_click()a=inputbox(輸入第一個數(shù)a:)b=inputbox(輸入第二個數(shù)b:)c=aa=bb=cprint 交換后a=;a, 交換后b=;bend sub順序結構順序結構順序結構的特點:1. 執(zhí)行過程是按順序從第一條語句執(zhí)行到最后一條語句。2. 在程序運行的過程中,順序結構程序中的任何一條語句都要運行一次,而且也只能運行一次。順序結構順序結構在處理實際問題時,只有順序結構是不夠的,經常會遇到一些條件的判斷,流程根據(jù)條件是否成立有不同的流向。如下圖所示,程序根據(jù)給定的條件p是否成立而選擇執(zhí)行a操作或b操作這種先根據(jù)條件做出判斷,再決定執(zhí)行哪一種操作的結構稱為分支
24、結構,也稱為選擇結構。選擇結構選擇結構應用舉例:判斷輸入的一個正整數(shù),是偶數(shù)還是奇數(shù)。題目:輸入一個正整數(shù),判斷它是偶數(shù)還是奇數(shù)。(1)分析問題。提示要判斷一個正整數(shù)是偶數(shù)還是奇數(shù),判斷的條件是什么? 選擇結構選擇結構(2)分析程序的執(zhí)行步驟,畫出流程圖。 第一步:輸入一個正整數(shù)n; 第二步:判斷n是否能被2整除,即判斷條件n mod 2=0是否成立; 第三步:若判斷條件成立,則輸出該正整數(shù)是偶數(shù),否則輸出該正整數(shù)是奇數(shù)選擇結構選擇結構(3)講解程序的編寫。private sub command1_click()n=inputbox(輸入一個正整數(shù):)if (n mod 2=0) thenprint n; 是偶數(shù)。elseprint n;是奇數(shù)。end ifend sub選擇結構選擇結構小結分支結構的特點。 分支結構是根據(jù)不同的條件判斷來決定程序執(zhí)行走向的結構。 在程序運行的過程中,在分支結構內,無論p條件是否成立,只能執(zhí)行a操作或b操作之一,不可能既執(zhí)行a操作又執(zhí)行b操作,也不可能a操作和b操作都不執(zhí)行。選擇結構選擇
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB 20943-2025交流-直流和交流-交流電源能效限定值及能效等級
- 抗震支座鋼筋施工方案
- 果園道路安全施工方案
- 二零二五年度信用卡聯(lián)名信用卡與專屬客戶關懷服務合同
- 二零二五年度勞動合同解除及競業(yè)限制合同模板
- 二零二五年度旅行社與旅行社旅游意外險合作合同
- 2025年度電子商務就業(yè)人員勞動合同范本
- 二零二五年度股權激勵計劃股份占比變更合同范本
- 二零二五年度辦公用品代理銷售服務合同
- 2025年度股東合作分紅與信息安全保障協(xié)議
- 積極情緒的力量
- 自相矛盾課件(省一等獎)
- 小學數(shù)學思想方法(課件)
- 中學地理課堂教學設計課件
- 焊工安全技術操作規(guī)程
- 義務教育道德與法治課程標準(2022年版)
- 生理學第六章消化與吸收(供中等衛(wèi)生職業(yè)教育)課件
- 現(xiàn)代文學新詩課件
- 讀書書香校園課件
- 中醫(yī)基礎理論:經絡 第二節(jié) 十二經脈課件
- 家庭急救知識(異物卡喉的急救)共45張課件
評論
0/150
提交評論