第4章 控制结构程序设计
第四章 控制结构程序设计.ppt
IF <条件> Then <语句组>
2019年8月21
感谢你的观看
12
块结构条件语句 单分支和双分支选择的块形式
x < y False
True
t=x x=y y=t
T
表达式
F
语句组1
语句组2
If <条件> Then
<语句组>
End If
2019年8月21
If <条件> Then <语句组1>
感谢你的观看
14
条件语句
a=3 b=2 if a>b then
msgbox “a大于b” Else
msgbox “a小于b” End if
2019年8月21
感谢你的观看
15
条件语句
a=3 b=2 c=1 if a>b and a>c then
msgbox “a最大” End if
2019年8月21
If Ucase(strC) >= "A" And Ucase(strC) <="Z" Then Print strC + "是字母字符"
ElseIf strC >="0" And strC <= "9" Then Print strC + "是数字字符"
Else Print strC + "是其它字符"
End If
2019年8月21
感谢你的观看
21
程序的基本组成
程序设计的一般步骤:
C语言程序设计第4章
4.2.2 逻辑表达式
例:设a=3,b=4,x=0,y=0,求值: 结果:0 1、a < b && x > y 结果:1 2、a = = b || x = = y 3、! a || a > b 结果:0 4、! a && b || x > y 结果:0 5、int a=-1,b=1,c=2,d=3,m=5,n=2,k; k=(m=a+b)&&(n=c+d) k为0 ,m为0, n为2
当尝试对该程序进行编译时,C语言编译器会报告 "illegal else without matching if"的语法错误。 28
4.3.4使用if语句应注意的问题
void main() { int x; x=1; if(x==1) printf("x等于1\n"); else ; /*这里多加了个分号*/ printf("x不等于1\n"); }
if(表达式) 语句1 else 语句2
真 表达式 语句1 语句2 假
如果括号内的表达式为真,则执行括号后面的 语句1。如果表达式值为假,则执行else后面的 语句2;语句1和语句2只能有一个被执行。
21
4.3.2 else子句
【例4-2】输入两个整数,将较大者输出。 /*程序4-2*/ #include<stdio.h> void main () { int a, b, max; printf("Please input the data a and b:"); scanf("%d, %d",&a, &b); if(a>=b) max=a; else max=b; printf("The max is %d\n", max); }
Python程序设计 实验报告 第4章 程序控制结构的应用
实验4程序控制结构的应用[实验目的]•了解程序的基本结构;•掌握分支结构的类型和使用方法;•掌握循环结构的类型和使用方法;•理解程序设计的流程控制语句;•掌握循环语句的结构特点;•具备使用循环结构并能够完成简单编程的能力。
要求:所有操作结果均以截图的形式保存,截取的图上尽可能的出现自己的个人信息。
[实验设备]PC机一台;Pycharm;Win7/11操作系统。
[实验任务]任务4-1判断奇偶数任务4-2鸡兔同笼的问题任务4-3输出美元符号($)阵列任务4-4继续嵌套循环任务4-5输出IOO以内的素数任务4-6求1-2+3-4+5...99的所有数的和[实验流程]任务4・1判断奇偶数【任务需求】编写一个程序,判断输入的整数,利用流程分支语句去判断是奇数还是偶数,按编程顺序进行编写。
【任务完成效果图】请按照任务需求将完成的效果图放在下方。
任务4-2鸡兔同笼的问题【任务需求】一个笼子中有鸡X只,兔y只,使用a和b定义鸡和兔子的头和脚,求鸡兔各有几只,运用关系式判断鸡的数量和兔子的数量如果f1ag=1则成立,如果f1ag=O则输出错误(使用for循环解决)。
【任务完成效果图】请按照任务需求将完成的效果图放在下方。
任务4-3输出美元符号($)阵列【任务需求】分别使用for循环和使用whi1e循环,运用range函数设置循环的次数,输出每次i+1后的$号,接着按要求进行程序编写。
【任务完成效果图】请按照任务需求将完成的效果图放在下方。
任务4-4继续嵌套循环【任务需求】某课程的百分之分数m,将其变换为5分制(优、良、中、及格、不及格)的评定等级grade,评定条件以下:优:m>=90>良:80<=m<90>中:70<=m<80>及格:60<=m<70.不及格:m<60,首先创建以对象名为“m”,接着按要求进行程序编写。
【任务完成效果图】请按照任务需求将完成的效果图放在下方。
第04章VB控制结构
陈章良
E-MAIL:CHENZHL_YT@
第四章 VB控制结构
4.0 程序结构
4.1 顺序结构
4.2 选择结构
4.3 循环结构 4.4 其他辅助控制语句 4.5 综合应用 4.6 程序调试
4.0 程序结构
一个VB程序由两部分组成:
Viasual ,是由众多的对象构成了程序的可视 界面。 Basic,是响应各种事件的程序代码,也是程 序设计的重点和难点。
(1)对象:窗体、图形框或打印机。缺省为窗体。 (2)Spc(n):从当前位置起空n个空格 (3)Tab(n):从最左端开始计算的第n列 (4)分号:定位在上一个被显示的字符之后 (5)逗号:定位在下一个打印区开始处(每区14列) 例4.3 Print方法输出图mat格式输出函数 Format函数用于制定字符串或数字的输出 格式。
逻辑数据转换 为整形数据时 ,True为-1, False为0
1.5
其他类型数据转换 为逻辑数据时, 非0转换为True, 0转换为False
2.5
4.1.1 赋值语句
(4)任何非字符类型赋值给字符类型, 自动转换为字符类型。
例:strBh$=6012 【注意】
赋值号左边只能是变量,不能是常量 、常数符号或表达式。
3)If … Then … ElseIf语句(多分支结构)
4)If 语句的嵌套
4.2.1 If条件语句
1. If…Then语句(单分支结构) 形式:If <表达式> Then
语句块(一条或多条语句)
End If
或
If <表达式> Then <语句>
IF演示
程序设计初步—控制结构4—11
Y 语句1
条件
N 语句2
(3)if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 …… else if(表达式m)语句m else 语句n
例:
if (number>500)cost=0.15; else if(number>300)cost=0.10; else if(number>100)cost=0.075; else if(number>50)cost=0.05; else cost=0;
例4.3 从键盘输入一个大写字母,要求改用小写字 母输出。 #include <stdio.h> 运行情况: void main() A↙ { char c1,c2; A,65 c1=getchar(); a,97 printf("%c,%d\n",c1,c1); c2=c1+32; printf("%c,%d\n",c2,c2); }
例4.4 求ax2+bx+c=0方程的根。
a,b,c由键盘输入,设 b 2 4ac >0。 众所周知,一元二次方程式的根为 x1= b b 4ac 2a
2
b b 2 4ac x2= 2a
可以将上面的分式分为两项: p= b 2a
b 2 4ac , q= 2a
x1=p+q,
说明:
(1).3种形式的if语句中在if后面都有表达式,一般为逻
辑表达式或关系表达式。
(2).if语句中有内嵌语句,每个内嵌语句必须以分 号结束。 (3).else语句不能作为语句单独使用,它是if 语句的一部分,必须与if配对使用。
(4).在if和else后面可以只含有一个内嵌的操作语句,
第4章VisualBasic程序控制结构
4.1.3注释语句
为了提高程序的可读性,通常应在程序的适当位置加上必要的注释,
Visual Basic中的注释是“Rem”或“’”,一般格式为:
Rem
’
例如:Rem 交换变量a和b的值
c = a ´c
a = b:b = c
说明:
注释语句是非执行语句,仅对程序的有关内容起注释作用,它不
被解释和编译,但在程序清单中能被完整地列出。
赋值语句是在任何程序设计中最基本、最常用的语句。 它的作用是把计算右边表达式的运算结果赋值给左端的变量,Visual Basic使用赋值号“=”来赋值。
格式: [Let] 变量名=表达式 [Let] [<对象名.>]<属性名>=<表达式> 其中:Let表示赋值语句的关键字,通常可以省略。 功能:赋值语句具有计算和赋值的双重功能,它首先计算右端 的表达式,并把结果赋值给左边的变量,Visual Basic使用赋值号“=” 来赋值。 表达式:其类型应与变量名的类型一致,即同时为数值型或同 时为字符型等等。当两边同为数值型,但精度不同时,强制转换成 左边的精度,然后赋值。
电子教案 第4章 程序的控制结构
9 10 11 12 13
>>> 请输出一个百分制成绩:80 对应的五分制成绩是:D
多分支结构: if-elif-else语句
n 显然,百分制80分不应该是等级D,上述代码运行正确 但逻辑存在错误,在于弄错了多个逻辑条件的先后关 系,修改后代码如下。
1 2 3 4 5 6 7 8
9 10 11 12 13
n 在三种基本控制逻辑基础上,Python语言进行 了必要且适当的扩展。 n 在分支结构原理的基础上,Python增加了异常 处理,使用try-except保留字 n 异常处理以程序异常为判断条件,根据一段代 码执行的正确性进行程序逻辑选择。异常处理 是分支结构的一种扩展。
程序的基本结构
n 在循环结构原理的基础上,Python提供两个循 环控制符break和continue,对循环的执行过程 进行控制。break控制符用来结束当前循环, continue控制符用来结束当前循环的当次循环 过程,
# 判断用户输入数字的某个属性 1 s = eval(input("请输出一个整数:")) 2 if s % 3 == 0 and s % 5 == 0: 3 print("这个数字能够同时被3和5整除") 4 else: 5 print("这个数字不能够同时被3和5整除")
二分支结构: if-else语句
n Python的二分支结构使用if-else保留字对条件 进行判断,语法格式如下: if <条件>: <语句块1> else: <语句块2> n 其中,if、:和语句块前的缩进都是语法的一部 分。
二分支结构: if-else语句
n <语句块1>在if中<条件>满足即为True时执行, <语句块2>在if中<条件>不满足即为False时执 行。简单说,二分支结构根据条件的True或 False结果产生两条路径。
Visual Basic程序设计实践教程的第4章
语法形式1: If <条件表达式1> Then <语句块> E1se If <条件表达式21> <语句块> EndIf „ EndIf
Then
语法形式2: If <条件表达式1> Then If <条件表达式21> <语句块> EndIf „ E1se <语句块> EndIf
Then
4.If…Then…ElseIf语句
Do While | Until <条件表达式> <循环体语句> [Exit Do]
Loop
15
(2)直到型循环结构的语法形式为: Do <循环体语句块> [Exit Do] Loop While | Unti1
While...Wend语句是另一种循环控制语句,只要指定 的条件为True,则会重复执行一系列的语句,其语法为: While<条件表达式> <循环体语句块> Wend
29
2.编写如图4.2所示的应用程序,计算应缴纳的个人 所得税额,个人所得税缴纳的起点是3500元,个人应缴纳 的税率如表4.1所示。
30
图4.2 程序运行的参考界面
31
表4.1
个人所得税税率表
32
3.某商场搞促销活动,在购买物品时,按照所标明
的价格用以下数学公式所对应的折扣付款。编写程序,根
据购买价格计算应付金额。应用程序的参考界面如图4.3所 示。
If„Then„ElseIf语句可以用来处理If语句的嵌套情 况,而且这种形式的语句在结构上更紧凑,更易于阅读、 调试和维护。其语法形式如下:
8
If <条件表达式1> Then <语句块1> ElseIf <条件表达式2> Then <语句块2> „ ElseIf <条件表达式n> Then <语句块n> E1se <语句块n+1> EndIf
第4章 结构化程序设计和控制结构[68页]
测试 假 条件
真 子任务
选择
– if – if-else – switch
控制结构
循环
– while – for – do-while
if (条件) 行为;
if
条件
F
条件 ,一个C表达式, TRUE (non-zero) 或 FALSE (zero). 行为 ,一条C语句, 简单语句或复合语句.
do-while
do 循环体;
while (条件);
循环体
在循环体被执行一次之后再计算
条件
条件表达式的值
T
F
示例
i=0; do {
printf ("%d\n" , i); i=i+1; } while ( i < 10 );
编程风格
• 对于以上三种类型的循环结构,哪些情况下 采用while,哪些情况采用for,哪些情况采用 do-while?
if (key == ‘K’)
numK++;
if (month= =4 | | month= =6 | | month= =9 | | month= =11)
printf ("The month has 30 days\n");
常见错误
if(18<= age <=25)
num++;
/*此条件总是为真*/
#include <stdio.h> int main(){
int i; for (i=0;i<10;i++)
printf ("%d ",i); }
示例
• /*---这个循环会输出什么?---*/ for (i=0; i<=10; i++)
第4章 程序控制结构
4.1 顺序结构程序设计
4.1.4 数据的输入
InputBox函数的定义格式: 变量=InputBox(<提示项> [,<标题>][,<缺省>] [,<x坐标位置>][,<y坐标位置>]) 功能:产生一个对话框,等待用户键入文本或选择一个按钮后, 将会返回对话框中文本框的内容。 使用说明: (1)<提示项>为字符串表达式,不能省略,在对话框中作为显示信 息。 (2)<标题>为字符串表达式,是对话框的标题。若缺省,则默认显 示应用程序名在标题栏中。 (3)<缺省>为字符串表达式,用来作为对话框中用户输入区域的默 认值,一旦用户输入数据,则该数据立即取代默认值,若省略该参 数,则默认值为空白。
4.1.2
Print方法(2)
逗号(,):各输出项按分区格式输出,即将一个输出行以14 个字符的宽度为单位分成若干区段(称为“打印区”),每个区 段输出一个表达式的值。 如果调用Print方法的语句以分号或逗号结束,则下一次执行 Print方法时将在同一行输出;否则,每执行一次Print方法即自 动换行。
4.2 选择结构程序设计
4.2.1 简单的分支结构
简单分支结构分为单分支选择结构和双分支选择结构语句形式。 1.单分支选择结构 格式一: If <表达式> Then <语句块> End If 格式二: If <表达式> Then <语句> 功能:先计算<表达式>的值,若值 为True,则执行<语句块>或<语句>操 作,否则跳过<语句块>或<语句>操作 ,直接执行End If后面的语句。
第4章 程序控制结构
Visual Basic 2010 应用程序设计
6
4.2.2 算法的描述方法
开始 输入n S=0 i=1 S=S+i i=i+1
输入n S=0 i=1 S=S+i i=i+1
i<=n
T i<=n F
输出S 累加和N-S图
输出S 结束 累加和流程图
Visual Basic 2010 应用程序设计
7
4.3 顺序结构
Visual Basic 2010 应用程序设计
8
A
B
顺序结构
Visual Basic 2010 应用程序设计
9
4.3.1 赋值语句
变量名/属性名=表达式 功能: 计算表达式的值,将结果赋值给左端的变量或对象的属性。
实例4.1代码: Private Sub Button1_Click(…) Handles Button1.Click c a, b, c As Integer Dim a = Val(TextBox1.Text) ③ ① b = Val(TextBox2.Text) b a ②a c= a= b 实例 4.1 变量 交换过程 b=c TextBox1.Text = a TextBox2.Text = b End Sub
Visual Basic 2010
应用程序设计
—— 安 杰
赵艳君 山艳
主 编 副主编
1
本章重点:
顺序结构 选择结构 循环结构 常用控件介绍
第4章 程序控制结构
Visual Basic 2010 应用程序设计 2
主要内容
4.1 程序控制结构实例
4.2 算法及其描述 4.3 顺序结构 4.4 选择结构
第4部分控制结构程序设计方案-PPT精品
p2
B…
pn N
b b
2019/8/10
《解析C程序设计》第4章 控制结构程序设计
20
开始
输入i、j、k
Y
i>j
N
max=i
max=j
Y
k>max N
max=k
2019/8/10
输出max
结束
《解析C程序设计》第4章 控制结构程序设计
21
流程图举例
用流程图表示出求 1111... ..1.1 的算法。
2019/8/10
《解析C程序设计》第4章 控制结构程序设计
6
常用算法
●递推化算法(牛顿迭代法、二分法、梯形法、穷举法等); ●排序算法(选择法、冒泡法); ●查找算法(顺序查找、折半查找); ●有序数列的插入、删除操作; ●存储区的动态分配与释放,单向线性链表的建立、查找、 插入、删除操作; ●初等数论问题求解的有关算法(最大公约数、最小公倍数、 素数等); ●递归算法(求最大公约数、阶乘等); ●字符串的处理(字符和字符串的插入、删除、字符串的连 接、比较等)。
●输入:一个算法应具有零个或多个输入。 (无输入情况:如求:1*2*3*4*5)。
●输出:一个算法应具有一个或多个输入。
2019/8/10
《解析C程序设计》第4章 控制结构程序设计
8
算法的设计目标
●正确性:设计的算法应当满足具有输入、输出和加工处理等明确的无歧 义
性的描述的具体问题的需求。验证正确性通常有4个层次: ①程序不含语法错误; ②程序对于几组输入数据能够得出满足规格说明要求的结果; ③程序对于精心选择的典型、苛刻而带有刁难性的几组输入数 据
PAD图表示的三种基本结构如下所示:
第四章结构化程序设计控制结构
•
PRINT*,‘X1=’,X1,’,X2=’,X2
•
40 RETURN
• END SUBROUTINE
3. IF 块
IF 块的构造形式为:
•
IF condition THEN
•
block1
•
[ELSE
•
blockE]
•
END IF
其中,condition是一个逻辑表达式,其结果不外乎真或假。 block1 和 blockE是语句块,当条件为真,block1 被执行; 否则,blockE 被执行。ELSE 块是可选的。
•
[CASE DEFAULT
•
blockD]
•
END SELECT
其中expr 必须是整型、字符型或者逻辑型变量。Selector 可以是同一类型, 非交叉的值或值范围(:用来规定值的范围)的列表。用CASE块统计 学生得分如下:
SELECT CASE ( INT(Final))
•
CASE (90:)
•
case default
•
PRINT*,‘Consonant’
•
END SELECT
•
ELSE
•
PRINT*,‘Something else’
CASE块的构造形式为:
•
SELECT CASE (expr)
•
CASE (selector1)
•
block1
•
CASE (selector2)
•
block2
•
D=D+1
•
ELSE
•
F=F+1
•
END IF
程序执行一旦发现某个逻辑条件为真,就不会再去判断其他
第4章程序的控制结构PPT课件
{
语句;
表达式3;
}
22
注意
在for和while语句之后一般没有分号 有分号表示循环体就是分号之前的内容(空循
环体)
while (i < 100); i++;
for (i = 0; i < 100; i++); printf("%d", i);
for通常ቤተ መጻሕፍቲ ባይዱ一个循环变量控制循环的次数,不 要在循环体内改变这个变量
else部分可以没有。 if (表达式) 语句1; 语句3
当表达式值为0时,直接执行语句3
if-else嵌套使用时,注意else和谁配对的问 15
else-if
if的一种扩展形式
if (表达式) 语句1;
else if (表达式) 语句2;
else if (表达式) 语句3;
…………
else
}
20
while
while (表达式) { 语句; }
只要表达式的值为非0,就重复执行语句, 直到表达式值为0时止
21
fforor(表达式1; 表达式2; 表达式3)
{ 语句;
} 首先执行表达式1。如果表达式2的值为非0,
就重复执行语句和表达式3,直到表达式2的值 为0时止
相当于: 表达式1; while (表达式2)
用3种方法编程:
算法1:用不带else子句的if语句编程
17
switch
多路选择 switch (表达式)
{ case 常数1: 语句序列1; case 常数2: 语句序列2; ………… default: 语句序列3;
}
default可以没有,但最好不省略
第4章控制结构程序设计
《解析C程序设计》第4章 控制结构程序设计
*
算法的五个特性
●有穷性:对任何合法的输入值,算法中每个步骤由计算机执行的次数及时间都是有限的。 ●确定性:算法中每个步骤含义明确,无二义性。在任何条件下,相同的输入,必有相同的输出。 ●可行性:算法中描述的操作都可通过有限次的基本运算来实现。 ●输入:一个算法应具有零个或多个输入。 (无输入情况:如求:1*2*3*4*5)。 ●输出:一个算法应具有一个或多个输入。
*
《解析C程序设计》第4章 控制结构程序设计
*
【例4-1】输入三个数,然后输出其中最大的数。 (1) 输入A,B,C。 (2) 若A > B,则MAX=A;否则MAX=B。 (3) 若C > MAX,则MAX=C。 (4) 输出MAX,MAX即为最大数。
*
《解析C程序设计》第4章 控制结构程序设计
*
常用算法
●递推化算法(牛顿迭代法、二分法、梯形法、穷举法等); ●排序算法(选择法、冒泡法); ●查找算法(顺序查找、折半查找); ●有序数列的插入、删除操作; ●存储区的动态分配与释放,单向线性链表的建立、查找、插入、删除操作; ●初等数论问题求解的有关算法(最大公约数、最小公倍数、素数等); ●递归算法(求最大公约数、阶乘等); ●字符串的处理(字符和字符串的插入、删除、字符串的连接、比较等)。
的算法。
开始
1 ==> sign
1 ==> sum
2 ==> deno
a
deno+1 ==> deno
(-1)*sign ==> sign
sign*(1/deno) ==> term
sum+term ==> sum
程序设计控制结构
❖ 传递参数:DO <文件名> WITH <传递参数>
❖ 接受参数:PARAMETERS <接受参数>
❖ 规则
▪ 传递参数命令在调用子程序处;接受参数命令在子程序第一行
▪ 传递方式:
传递参数
相应位置 接受参数
• 引用:传递参数被隐藏起来,但其值伴随被调用程序 中接受参数旳变化而变化()
• 传值:体现式列表或单个内存变量用圆括号,参数传 递为传值方式。即传递参数不被隐藏,其值也不伴随 被调用程序中接受参数旳变化而变化
递接调用关系
跨接调用关系
***P1.PRG … … DO P2 … … RETURN
***P2.PRG … … DO P3 … … RETURN
***P3.PRG … … … … … RETURN
***P1.PRG … … DO P2 … … RETURN
***P2.PRG … … DO P3 … … RETURN
私有属性Private变量变化DEMO
本地属性Local
❖ 本地属性旳内存变量含义:是指具有既类似私有属 性又不影响下属子程序中同名内存变量属性旳内存 变量。本地属性旳内存变量必须先尤其定义后方能 使用。
❖ 本地属性旳内存变量特点
▪ 定义格式:LOCAL<内存变量列表>] ▪ 作用范围:该程序本身。 ▪ 传递方向:无。 ▪ 变量寿命:程序运营结束后,该变量被自动删除。 ▪ 特殊作用:可屏蔽(隐藏)上级(主)程序中与目前途序同名
❖ 调用与返回
▪ 调用:DO <文件名> [WITH <参数列表>] ▪ 返回:RETURN [TO MASTER][<体现式>] ▪ Notice:子程序执行时直到遇到下列情况时,自动结束返
面向对象程序设计第四章 基本的控制结构
思考:如果在 For语句尾部 加上Step 2, 结果怎样?
4.3 循环结构
❖ 当需要重复执行多次相似的任务时 1、For Next语句:使用Exit For强制退出循环
Dim i As Integer, sum As Integer sum = 0 For i = 1 To 100
End Sub
4.5.1 On Error GoTo 语句
Private Sub Command1_Click() On Error GoTo CHEN If Not IsNumeric(Text1) Or Not IsNumeric(Text2) Then MsgBox "两个文本框都必须输入数字" Else MsgBox "这两个数相除的结果为:" & CDbl(Text1) / CDbl(Text2) End If Exit Sub
End Sub
4.4 怎样设计程序的结构
❖ 任务2解决
Dim i As Integer If (X Mod 2) = 0 Then
MsgBox X & "不是质数" Else
For i = 3 To Sqr(X) Step 2 If (X Mod i) = 0 Then MsgBox X & "不是质数" Exit For End If
上程序在执行时会出现什么结果? 这样改写后,程序就不会死循环了,但满足题意吗?
4.3 循环结构
❖ 当需要重复执行多次相似的任务时 2、Do Loop语句:使用Exit Do强制退出循环
Dim i As Integer, sum As Integer i=1 sum = 0 Do
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章 控制结构程序设计
2020/10/10
本章内容
1
算法的基础知识
2
大小写字母转换问题
顺序结构程序的概念 字符数据的输入输出
3
闰年问题
选择结构程序的概念 if语句 switch语句
4
平均成绩问题
循环结构程序的概念 自增自减运算符与逗号表达式 while循环 do-while循环 for循环 转移语句
《解析C程序设计(第2版)》第4章 控制结构程序设计
2
❖面对各种需要解决的问题,人们必须首先 对各类问题进行分析,确定解决问题的方
法和步骤即算法,再借助某一种编程语言 编制好一组让计算机执行的指令(即程 序),让计算机按人们指定的步骤有效地
工作。
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
12
流程图——顺序结构
顺序结构是程序设计中最简单的 一种基本结构。
如右图所示,形象地描述了一个 最简单的顺序结构:图中虚线框内是 一个顺序结构。其中A和B两个框是顺 序执行的,即在执行完A框所指定的 操作后,必然接着执行B框所指定的 操作。
❖a8= 2 * (a9+ 1)
❖…
❖a1= 2 * (a2+ 1)即ai= 2 * (ai+1 + 1 ),i=9,8,7,6,…,1
❖ 这就是本题的数学模型。
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
6
❖ 再考察上面从a9、a8直至a1的计算过程,这其 实是一个递推过程,这种递推的方法在计算机解 题中经常用到。另一方面,这9步运算从形式上 完全一样,不同的只是ai的下标。由此,可引入 循环的处理方法,并统一用a0表示前一天的桃 子数,a1表示后一天的桃子数,将算法改写如 下:
起止框 输入输出框 判断框
处理框
或 流程线
连接点
注释框
三种基本结构:
为了解决程序设计混乱的问题,1966年提出了三种基本结构:顺序结构、选 择结构、循环结构,然后由这些基本结构按一定规律组成一个算法结构,整个 算法结构是由上而下将各个基本结构顺序排列起来的。使用这三种基本结构顺 序组成的算法结构,可以解决任何复杂的问题,并且是“结构化”的算法。
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
11
算法的描述——流程图
用流程图表示算法,形象直观,比较清楚地显示出各个框之间的逻辑关系, 易于理解。但流程图占用篇幅较多,当算法较复杂时,画流程图既费时,又不 方便。但必须掌握。
美国国家标准化协会ANSI规定了一些常用的流程图符号,并已被世界各国 程序工作者采用:
a
A
B
b
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
13
流程图——选择结构
选择结构(或称选取结构,或称分支结构):
如下图所示,虚线框内是一个选择结构。此结构必包括一个判断框,根据给 定的条件p是否成立,而选择执行A框或B框。
注意:无论条件p是否成立,只能执行A框或B框之一,不可能既执行A框又执 行B框。A或B两个框中可以有一个是空的,即该空框不执行任何操作。
❖ 本题初看起来有些无从下手的感觉,那么怎样开 始呢?假设第一天开始时有a1个桃子,第二天 有a2个,…,第9天有a9个,第10天有a10个 ,在a1,a2,…,a10中,只有a10=1是知 道的,现要求a1,由题意可知,a1,a2,…, a10之间存在一个简单的关系:
❖a9= 2 * (a10+ 1)
如右图所示,虚线框内是一
个while型结构。它的功能是当给
定的条件p成立时,执行A框操作, 执行完A后再判断条件p是否成立, 如果仍然成立,再执行A框,如此 反复执行A框,直到某一次p条件 不成立为止,此时不执行A框,而 是从b点脱离循环结构。
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
7
(1)a1 = 1; /*第10天的桃子数作为a1的初 值*/
i = 9。/*计数器初值为9*/
(ห้องสมุดไป่ตู้)a0= 2 * (a1+ 1)。/*计算当天的桃子 数*/
(3)a1= a0。/*将当天的桃子数作为下一次计 算的初值*/
a
a
成立
A
不成立
P B
成立
A
不成立
P
b
b
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
14
流程图——当型循环结构
循环结构(或称重复结构):
循环结构即反复执行某一部分的操作,分为当型(while型)循环结构和直到
型(until型)循环结构两类。
a
当型(while型)循环结构:
4
提出问题
❖猴子吃桃问题: 有一堆桃子不知数目,猴子第一 天吃掉一半,觉得不过瘾,又多吃了一个,第二 天照此办理,吃掉剩下桃子的一半另加一个,天 天如此,到第十天早上,猴子发现只剩一个桃子 了,问这堆桃子原来有多少个?
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
5
分析问题
3
❖根据算法,依据某种编程语言的语法规则 编写计算机执行的命令序列,就是程序设 计。
❖著名计算机科学家沃思(Nikiklaus Wirth) 提出了一个公式:“数据结构+算法=程 序”,即程序设计包括算法设计和数据存 储。除此之外,还有结构化程序设计方法 和计算机语言。
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
PAD图 伪代码
自然语言
N-S图 流程图
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
10
用自然语言表示算法
❖【例4-1】输入三个数,然后输出其中最大 的数。
❖(1) 输入A,B,C。 ❖(2) 若A > B,则MAX=A;否则MAX=B。 ❖(3) 若C > MAX,则MAX=C。 ❖(4) 输出MAX,MAX即为最大数。
(4)i=i-1。
(5)若i>= 1,转(2)。
(6)输出a0的值。
其中(2)~(5)步为循环。
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
8
算法的基础知识
❖重点掌握算法的描述方法!
2020/10/10
《解析C程序设计(第2版)》第4章 控制结构程序设计
9
算法的描述方法