程序设计的基本方法
3
程序的三种基本结构
算法
编写程序应具备的知识
程序设计的一般步骤
练习与拓展
我们学过的VB语句有?
1、“赋值语句” A=A+2 赋值号“=”
2、“打印语句” PRINT
3、“条件语句”
IF-THEN-ELSE-END IF
4、“循环语句” FOR-NEXT
等等
按一定的逻辑关系组合起来
一、程序的三种基本结构
1、顺序结构:
语句1
语句2
语句n
是最基本的结构
对应学过的“赋值语句”
=
“打印语句”
PRINT
等
程序的执行是按照书写的顺序,从左到右,从上到下的顺序来执行。
返回
2、分支结构:
语句块1
语句块2
执行条件语句的后继语句
又称为选择结构
是否满足条件?
是
否
对应学过的“条件语句”
IF-THEN
一、程序的三种基本结构
返回
3、循环结构:
执行一次循环体
执行条件语句的后继语句
又称为重复结构
是否满足
循环条件
是
否
对应学过的“循环语句”
FOR-NEXT
一、程序的三种基本结构
返回
程序设计方法有多种,其中有一种叫“结构化程序设计”,认为:任何复杂的程序都是由顺序、分支和循环三种基本结构控制结构组合而成。灵活运用好这三种基本结构,就可以编写出各种各样的程序,解决许多实际问题。
一、程序的三种基本结构
开始
产生一个1~100的随机整数
结束
显示“猜对了,真聪明”
用户输入所猜的数
是否猜对?
是
否
是否太大?
提示“太小”
提示“太大”
是
否
返回
砌积木
1、过河游戏
第一步:把( )带到对岸;
第二步:返回;
第三步:把( )带到对岸;
第四步:返回时把( )带回原岸;
第五步:把( )带到对岸;
第六步:返回;
第七步:最后把( )带到对岸。
一个猎人带着一只山羊、一只狼和一棵大白菜回家,路上遇到一条河。河边只有一条小船,小船太小,猎人每次只能带一样东西过河。但猎人不在时,狼要吃山羊,山羊要吃大白菜。请问怎样才能把狼、山羊和大白菜都安全运过河?请你设计一个可行的步骤,让猎人安全过河:
山羊
狼 A
山羊
大白菜B
山羊
二、算法
算法:是指为解决某个问题而采取的方法和步骤。
返回
狼 A
大白菜B
这里有一个1到100之间的整数,
你用什么最快的方法,猜它是多少?
1
100
2、猜数游戏
二、算法
25
1
49
26
49
37
说明:A组同学(做电脑)出迷底和提示,B组同学猜,C组记录猜了多少次,D、E组做观众留意他们有没有答错。
你
猜
猜
返回
50
太大!
太小!
(3)电脑判断是否猜对了,有三种情况(4—6):
(1)电脑产生一个1至100之间的随机整数;
(2)由猜方确定(输入)一个自己所猜的数;
(4)若所猜的数比结果大,则提示“太大!”,
并转步骤(2);
若所猜的数比结果小,则提示“太小!”,
并转步骤(2);
(5)若猜对了,则显示“猜对了,真聪明!”,
并结束程序。
“猜数游戏”算法用自然语言(文字)描述:
3、“猜数游戏”的算法描述
二、算法
返回
二、算法
描述算法也可以使用程序流程图。
“猜数游戏”算法用程序流程图表示如右图:
开始
结束
是否猜对?
是
否
产生一个1~100的随机整数
是否太大?
用户输入所猜的数
提示“太小”
提示“太大”
显示“猜对了,真聪明”
是
否
4、“猜数游戏”的程序流程图
返回
2、掌握程序设计的方法
1、应用领域方面的知识
自顶向下的方法(基本思想)
自底向上的方法(基本思想)
两种方法
相结合
如:编一个象棋游戏;
又如:模拟银河系运转。
三、编写程序应具备的知识
返回
自顶向下的方法
两种方法相结合进行
一个
大型的系统
子
系统1
子
系统2
子
系统n
细小子
系统2A
细小子
系统2B
细小子
系统2N
自底向上的方法
一个大型的
综合系统
子
系统1
学习子
系统2
子
系统n
A同学的
历史系统
B同学的
数学系统
N同学的
化学系统
……
划分
……
划分
……
合并
……
合并
返回
上图所示是属于结构化程序设计方法中的( )方法。
A、智能型程序设计 B、自顶向下 C、自底向上 D、面向对象
一个
大型的系统
子
系统1
子
系统2
子
系统n
细小子
系统2A
细小子
系统2B
细小子
系统2N
……
划分
……
划分
返回
3、程序设计语言
程序设计环境与工具是指什么?
4、程序设计环境与工具
当前,计算机高级语言有上百种,其中广泛应用的程序设计语言有十几种。如C语言、C++、PASCAL、VB、JAVA、ASP等,我们学习的是Visual Basic 6.0 。
三、编写程序应具备的知识
返回
VB的开发环境
1、分析问题
下面我们把“猜数游戏”用VB程序实现。
D、处理的结果是什么,怎样
表示及输出显示?等等……
A、这个问题能否用VB程序解决?
C、对输入的数怎样处理?
整数随机产生,猜数通过键盘输入。
两个数怎样进行比较,产生三种情况:相等、大于和小于时怎样处理。
使用Print显示提示和结果。
四、程序设计的一般步骤
返回
B、如何产生一个数?
如何输入数?
能!
2、设计算法
四、程序设计的一般步骤
(3)电脑判断是否猜对了,有三种情况(4—6):
(1)电脑产生一个1至100之间的随机整数;
(2)由猜方确定(输入)一个自己所猜的数;
(4)若所猜的数比结果大,则提示“太大!”,
并转步骤(2);
若所猜的数比结果小,则提示“太小!”,
并转步骤(2);
(5)若猜对了,则显示“猜对了,真聪明!”,
并结束程序。
返回
四、程序设计的一般步骤
(3)电脑判断是否猜对了,
有三种情况(4—6):
(1)电脑产生一个1至100之间
的随机整数;
(2)由猜方确定(输入)一个
自己所猜的数;
(4)若所猜的数比结果大,
则提示“太大!”,
并转步骤(2);
若所猜的数比结果小,
则提示“太小!”,
并转步骤(2);
(5)若猜对了,则显示
“猜对了,真聪明!”,
并结束程序。
3、编写程序代码
Randomize
X = Int(Rnd() * 100)+1
Print “猜对了,真聪明! "
Do While GUESS <> X
GUESS = InputBox(" 你猜它是:")
If GUESS > X Then
Print “太大!"
Else
If GUESS < X Then
Print “太小!"
End If
End If
Loop
GUESS = InputBox(" 你猜它是:")
返回
3、编写程序代码
Dim X, GUESS As Integer
Randomize
X = Int(Rnd() * 100)+1
GUESS = 0
Do While GUESS <> X
GUESS = InputBox(" 你猜它是:")
If GUESS > X Then
Print “太大!"
Else
If GUESS < X Then
Print “太小!"
End If
End If
Loop
Print “猜对了,真聪明! "
(1) 打开VB,添加一个按钮,输入该程序,试运行。
四、程序设计的一般步骤
返回
问题B:请大家修改猜数程序,使程序能
打印出猜了多少次才猜对。
在发送给大家的程序中,比上述程序增加了两行:
CS=0
和
CS=CS+1
四、程序设计的一般步骤
问题A:这两行程序有什么用?
返回
(2) 思考拓展:
Dim X, GUESS As Integer
Randomize
X = Int(Rnd() * 100)+1
GUESS = -1
cs = 0
Do While GUESS <> X
GUESS = InputBox(" 你猜它是:")
cs = cs + 1
If GUESS > X Then
Print "太大了"
Else
If GUESS < X Then
Print "太小了"
End If
End If
Loop
Print “你真聪明!猜对了。”
返回
Print “猜的次数是:"; cs
4、运行调试程序
由于各种原因,程序会存在错误,通过上机
运行调试,发现和纠正错误,使程序正确运行。
刚才大家所做的事情就是运行调试程序。
四、程序设计的一般步骤
加分
返回
从前面的程序设计过程,我们可以归纳出程序设计的一般步骤,如下图所示:
四、程序设计的一般步骤
图示:程序设计的一般步骤
返回
以下算法用于求长方形的面积,其中s记录面积,长、宽分别为a、b表示。那么横线①应该填上( )。
五、练习与拓展
1、练习:
S=____________
输入长a、宽b的值
显示长方形的面积S
结束
开始
1
返回
以下算法用于输入三个数,然后显示输出最大的值。请在①、②位置上填上适当内容使算法完整,其中max记录最大值,三个数为a、b、c。
第②个空应该填上( )。
第①个空应该填上( )。
五、练习与拓展
2、分组拓展练习:
先分组讨论,然后每组派一个代表出来写结果,最后分组记分。
返回
填写格式为:1( ) 2( )
开始
将c的值赋给max
结束
将a的值赋给max
b>max?
是
否
_____①_____
输入三个数a、b、c
输出最大值max
__②__
是
否
老师已经给出了不完整的程序,请在VB中添加第二个按钮,输入程序,修改完整并试运行。
五、练习与拓展
2、分组拓展练习:
返回
开始
将c的值赋给max
结束
将a的值赋给max
b>max?
是
否
_____①_____
输入三个数a、b、c
输出最大值max
__②__
是
否
Dim a, b, c, max As Integer
a = InputBox("a的值是:")
b = InputBox("b的值是:")
c = InputBox("c的值是:")
max = a
If b > max Then
End If
If Then
max = c
End If
Print "最大值是:"; max
加分
课堂情况分析与小结
本节的主要内容:
1、掌握程序的三种基本结构
2、了解算法及其表示
3、了解程序设计的一般步骤
学生学习情况:
作业布置:完成本节课本后的练习1、2。
(在书本上完成)
返回