程序設計的基本方法(精選2篇)
程序設計的基本方法 篇1
一、課題:
二、教學目標:
⑴ 理解算法的概念,了解描述算法的兩種方法——自然語言和流程圖,知道各自的優缺點。
⑵ 初步掌握用流程圖描述算法。
三、教學的重點和難點:
⑴ 算法的概念。
⑵ 用流程圖描述算法。
四、教學過程:
新課導入
我們在日常生活中經常要處理一些事情,就拿郵寄一封信來說吧,大致可以將寄信的過程分為這樣的幾個步驟:寫信、寫信封、貼郵票、投入信箱等四個步驟。將信地投入到信箱后,我們就說寄信過程結束了。
那么在計算機中,它是如何來處理問題的呢?是否和我們日常處理事情的過程很類似呢?
回答是肯定的,例如要設計一個程序讓計算機求1+1=?,那么我們就要先編寫程序。在編寫程序前需要先確定解決問題的思路和方法,并要正確地寫出求解步驟,這就是算法。
新授課
一、算法的概念
為了更好地理解算法,舉幾個例子說明:
例1 交換兩個變量中的數據。
先請學生考慮解決這個問題的方法,然后請一個學生說一說自己想到的解決方法。如學生回答不出來,作適當提示:如果要將醋瓶中的醋和酒瓶中的酒互換應怎么做?學生會很容易地想到要借助于一只空瓶子。
分析題意:已知變量x和y中分別存放了數據,現在要交換其中的數據。為了達到交換的目的,需要引進一個類似于空瓶子的中間變量m。交換兩變量中數據的具體算法如下:
①將x中的數據送給變量m,即x→m;
②將y中的數據送給變量x,即y→x;
③將m中的數據送給變量y,即m→y。
總結:在程序設計中,交換變量中的數據常用在排序算法中。
例2 輸入三個不相同的數,求出其中的最小數。
同樣,先請學生思考,然后請學生說出他所想到的解決該問題的方法。
教師分析:先設置一個變量min,用于存放最小數。當輸入a、b、c三個不相同的數后,先將a與b進行比較,把小者送給變量min,再把c與min進行比較,若c<min,則將c的數值送給min,最后min中就是三個數中的最小數,具體算法如下:
①若a<b,則a→min, 否則b→min;
②再將c與min進行比較,若c<min,則c→min。這樣,min中存放的即是三個數中的最小數。
請學生思考以下兩個問題:
⑴ 如果要求出三個不相同數中的最大數,該如何設計算法?
⑵ 如果是n個不相同的數,求出其中的最小數呢?
例3 輸入兩個正整數a和b (a>b)求它們的最大公約數。
提問:什么叫最大公約數?
給學生思考后回答。然后舉一個用歐幾里德法求最大公約數的例子,如求 56 和32的最大公約數的過程如下:
56 ,32 ,24,8,0
則8就是56和32的最大公約數。從第三項開始的各項,分別是前兩項相除所得的余數,如果余數為0,它的前一項就是a和b 的最大公約數。
算法如下:
①輸入a,b(a>b);
②求a/b的余數r;
③如果r≠0則將bàa,ràb,再次求a/b的余數r,轉③;
④輸出最大公約數b。
總結:對于同一個問題,可以有不同的解決方法,即有不同的算法。
二、算法的描述
為了描述一個算法,可以用自然語言、流程圖或其他形式進行。
前面的三個例子就是用自然語言描述的。自然語言就是人們日常使用的語言。用自然語言描述算法,人們比較容易接受。但有個缺點就是敘述比較繁瑣和冗長,容易出現“歧義性”。
請學生閱讀課本中的討論與思考,然后分別請學生將自己所理解的含義表述出來。學生可能有兩種理解:“老張不認識這個人”和“這個人不認識老張”,從而說明自然語言表述容易產生“歧義”。為了能夠將解決問題的算法清晰、直觀地表示出來,我們一起來學習流程圖。
⑴ 讓學生看大屏幕投影,簡單介紹流程圖的基本圖形符號及其含義。
⑵ 用流程圖描述例6-1-3的算法,并對照流程圖講解各個符號的意義和作用。
⑶ 請學生對照課本例6-1-1、例6-1-2的算法,觀察圖6-1、圖6-2,進一步理解流程圖各個符號的含義,并體會如何用流程圖描述算法,時間5分鐘。
鞏固練習
請學生寫出求一元二次方程的根的算法,要求:
① 用自然語言描述;
② 用流程圖描述。
課堂總結
請學生用自己的語言總結這節課的學習內容:
⑴ 算法是指解決問題的思路和方法。
⑵ 描述算法的形式有多種,常用的有:自然語言和流程圖。
用自然語言描述算法比較容易接受,但敘述冗長,容易產生“歧義”。用流程圖描述算法比較清晰、直觀,不容易產生“歧義”。
⑶ 流程圖中常用符號的含義。
布置課后練習
節后練習1、2、4①
程序設計的基本方法 篇2
一、教學目標
1.理解算法的概念;
2.知道兩種算法的描述方法—語言描述法和流程圖的區別
3.能初步利用算法解決簡單的問題。
4.培養學生的理論聯系實際能力和動手操作能力。
二、教學重難點
1.重點:算法的描述
2.難點:算法的描述
三、教材分析
本節所講算法主要是指計算機解決問題的方法和步驟。美國著名計算機科學家克努特教授提出了”計算機科學就是研究算法的科學”的著名論斷,說明了算法在設計程序中的重要性,解決任何問題都必須設計算法,所以本節內容起來統領全章的作用。
但是,對于初學者而言,本節內容屬于理論知識,具有一定的抽象性。建構主義理論認為學習是新舊知識的聯系,是學習者主動建構內在心理結構的過程。而在初學者原有的認知結構中沒有關于算法的認知。如果直接講算法,學生很難實現新舊知識的聯系,無法做到意義建構和有意義的學習,對于算法的含義就難以做到真正理解。按照從感性到理性、從已知到未知的認知規律,我從學生的感性認知入手,從學生的興趣出發,將第一節和第二節調整了順序,先教vb的基本操作,在學生能掌握vb的基本操作,并能用vb解決簡單問題的基礎上,通過對具體問題的討論,使學生明白解決任何問題都需要有清晰的解決思路和解題步驟,再通過人-機解決問題方法的比較,得出計算機解決問題和人解決問題一樣都需要有明確的解題步驟,而計算機的解題步驟就稱為算法,這樣就很自然地引入了算法的概念。易于學生接受和理解。
對于本節內容的重難點,即算法的描述,主要是通過對實際問題的解決來突破的。本節所講算法的實例,不在于程序的難易,而在于要易于學生接受。為了便于學生理解第一個算法-交換兩個變量的值。我加了交換兩個杯中液體的算法設計,通過這個簡單的算法的設計,可以讓學生了解變量的概念及計算機內部存諸數據的原理,這樣,學生對于書中的例子就很容易接受了。關于語言描述算法及流程圖描述算法的特點,我的做法是通過學生對二者的比較,既掌握了二者的區別,也知道了二者的優缺點。在突出重點、突破難點的基礎上,我對本節內容進行了提升,學習算法不是為了單純的學習概念,而是為了應用,為了理論聯系實際,做到用理論解決實際問題。所以我將第三種算法的描述方法—程序向學生作了介紹,三種算法的描述方式的比較,使得學生對于算法的做用有了進一步的理解,根據算法可以寫出代碼,并解決問題。這樣既解決了學理論難的問題,又做到了對同學們的引導,最后留一些時間給學生進行上機操作,讓他們有成功的體驗,學了就可以致用,而且用vb編程并不象他們想象的如此難于接受。這對于學生來說,可以幫助他們減少學習vb的畏懼心理,又可以提高學習的興趣。對于學vb的語言規則起著承前啟后的作用。
四、教學方法
討論、講解、操作相結合。
五、教具:多媒體電腦配合課件
六、教學過程
(一)算法的概念
【教師】通過前面的學習,我們已經會用vb來解決簡單的問題,請同學們將下面問題的解決步驟寫出來
【問題1】兩個大人和兩個小孩一起渡河,渡口只有一條小船,一次只能渡過一個大人或兩個小孩,他們四人都會劃船,但都不會游泳。請寫一寫你的渡河方案。
〖學生〗學生討論回答。
【問題2】展示課件:寫出求一元二次方程ax2+bx+c=0的實數根的解題步驟。
〖學生〗學生討論回答。
【答案展示】
【問題3】如果讓計算機來解決這個問題應該怎么做呢?
〖學生〗學生討論回答。
【答案展示】
1、讓計算機根據a、b、c的值,求出△(delta);
2、讓計算機判斷△(delta)的值;
3、讓計算機求出x1;
4、讓計算機求出x2 。
5、讓計算機輸出x1、x2的值
【教師】由此可以知道,計算機解決問題和人解決問題一樣需要有清晰的解題步驟。而對于計算機而言,這種解題步驟就稱為算法。
【課件展示】算法的概念:
我們解決問題都需要遵循一定的方法和思路并正確的列出各個求解步驟。計算機解決問題的求解步驟叫做算法。
或:
計算機處理程序的過程與我們平時解決問題的過程是十分相似的,也就是在規定的條件下完成一定的操作序列。而這樣的操作序列對于計算機而言就是算法。
【課件展示】美國著名計算機科學家克努特教授(d.e.knuth)提出了“計算機科學就是研究算法的科學”的著名論斷
二、算法的描述
1、語言描述
【算法描述1】描述交換兩個杯中液體的算法
〖學生〗學生討論
【課件展示】動態顯示交換過程。并展示文字描述。
【算法描述2】交換兩個變量中的數據。
【教師】講解計算機內部對于數據存儲的原理。即按地址保存。
〖學生〗學生討論
【課件展示】展示文字描述。并配以教師的講解分析。
已知變量x和y中分別存放了數據,現在要交換其中的數據。為了達到交換的目的,需要引進一個中間變量m,其算法如下:
① 將x中的數據送給變量m,即x→m;
② 將y中的數據送給變量x,即y→x;
③ 將m中的數據送給變量y,即m→y。
【算法描述3】輸入三個不相同的數,求出其中的最小數。
〖學生〗學生討論
【教師】引導學生討論解題思路:
先設置一個變量min,用于存放最小數。當輸入a、b、c三個不相同的數后,先將a與b進行比較,把小者送給變量min,再把c與min 進行比較,若c
【課件展示】展示文字描述。
【教師】引導學生討論語言描述的特點:易于理解和接受。但對于復雜的問題描述太麻煩。
【教師】請說出下面這句話的含義:“這個人連老張也不認識”
〖學生〗學生討論回答
【教師】由此可以看出語言描述有時有岐義,但計算機解決問題時每一步必須有清楚的定義,不能有二義性或模棱兩可的解釋,我們可以用另外一種方法來描述算法
2、流程圖
【課件展示】算法2、3的描述流程圖:
【課件展示】
流程圖的概念:
流程圖是用一組幾何圖形表示各種類型的操作,在圖形上用簡明扼要的文字和符號表示具體的操作,并用帶有箭頭的流線表示操作的先后次序。
圖形符號
名 稱
含 義
起止框
表示算法的開始或結束
輸入、輸出框
表示輸入輸出操作
處理框
表示處理或運算的功能
判斷框
用來根據給定的條件是否滿足決定執行兩條路徑中的某一路徑
流線
表示程序執行的路徑,箭頭代表方向
連接符
表示算法流向的出口連接點或入口連接點,同一對出口與入口的連接符內必須標以相同的數字或字母
【課件展示】算法描述方法的比較:
(1)第一個算法描述方法的比較(語言描述法、流程圖、程序)
【教師】引導學生討論出算法的特點,并初步理解。
(2)第二個算法描述方法的比較(語言描述法、流程圖、程序)
【教師】請同學們利用vb將這兩種算法實現。
【思考題】輸入三個不相同的數,求出其中的最大數。請分別用語言、流程圖、程序進行算法描述。
〖學生〗學生上機操作實踐
【教師】教師輔導
【教師】總結、下課。
作者簡介:劉群,女,江蘇省豐縣中學一級教師,研究生在讀。曾獲市優質課一等獎、市優秀電教課一等獎、市教學技能比賽個人全能二等獎、市職工計算機比賽個人第五名、團體一等獎。