C语言教程第4章程序的控制结构.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言大学实用教程
第4章 程序的控制结构
2020/4/12
1
C语言大学实用教程
第4章 程序的控制结构
本章主要教学内容 算法的描述方法
基本控制结构及基本控制语句
常用算法
程序的基本版式
结构化程序设计的基本思想
程序测试与改错
2020/4/12
2
C语言大学实用教程
4.1 算法的概念及其描述
数据结构+算法=程序 算法:为解决一个具体问题而采取的确定的有 限的操作步骤。 算法特性:
头文件名 math.h string.h stdio.h stdlib.h/malloc.h
2020/4/12
18
C语言大学实用教程
4.3 选择结构
问题的提出: 作用:根据条件控制程序流向。
条件的组成: 各种类型的常量、变量、表达式
(常用:关系/逻辑表达式)
注意各种表达式的用法
2020/4/12
19
注意:
以#开头;每条一行;不是C语句
2020/4/12
16
C语言大学实用教程
编译预处理命令
查询情况 (1)用<>将头文件名括起,则在
include 子目录中查询 (2)用" "将头文件名括起,则先在
当前目录中查找若无继续搜索
C子目录。
2020/4/12
17
C语言大学实用教程
常ห้องสมุดไป่ตู้函数对应的头文件
函数 数学函数 字符串函数 输入、输出函数 动态存储分配函数
step3:输出结果
2020/4/12
9
C语言大学实用教程
开始
()
2
r=1.5


L=2*3.14*r


s=3.14*r*r

输出L,s
结束
2020/4/12
10
C语言大学实用教程
# include <stdio.h>
()
3
# define PI 3.14

main()

{ float r,l,s;
解: (1)问题分析: (算法) step1:给出存款利率rate
step2:给出年n、本金captial(键盘输入)
step3:n年后本利之和deposit
公式:deposit=captial*(1+rate)n
step4:输出结果
2020/4/12
12
C语言大学实用教程
开始
()
2
rate=0.0225

r=1.5;
程 图
l=2*PI*r;

s=PI*r*r;

printf("\nl=%f,s=%f",l,s);
2020/4/12
}
11
C语言大学实用教程
顺序结构——应用举例(2)
例4.1 设银行存款利率rate为2.25%,存款期为n 年,本金为captial元,编程计算n年后的本利之 和deposit
7
C语言大学实用教程
4.2 顺序结构
A
A
B
传统流程图
2020/4/12
B NS图
8
C语言大学实用教程
顺序结构——应用举例(1)
例:设半径为1.5,求圆周长及面积。
解:(1)问题分析: (算法)
step1:给出圆的半径r=1.5
step2:求圆的周长及面积
圆周长=2*3.14*r 公式:
圆面积=3.14*r*r

printf("please enter year,capital:");

scanf("%d%lf",&n,&capital);

deposit=capital*pow(1+rate,n);
printf("deposit=%lf\n",deposit);
}
2020/4/12
14
C语言大学实用教程
2020/4/12
6
C语言大学实用教程
结构化程序设计的核心思想
采用顺序、选择和循环三种基本结构作为程 序设计的基本单元
只有一个入口; 只有一个出口; 无死语句,即不存在永远都执行不到的语句; 无死循环,即不存在永远都执行不完的循环。
采用“自顶向下、逐步求精”和模块化的方 法进行结构化程序设计
2020/4/12
简单的C程序结构框架
以#开始的编译预处理命令
main()
{ 局部变量说明语句;
执行语句;
}
2020/4/12
15
C语言大学实用教程
编译预处理命令
文件包含编译预处理命令#include指示编 译系统将一个源文件嵌入到含有#include 指令的源文件中该指令所在的位置处。
使用形式:
# include <头文件名>/"头文件名"
else 语句n;
2020/4/12
23
C语言大学实用教程
分支嵌套
一般形式: if (表达式1) if (表达式2)语句1; else 语句2;
else if (表达式3)语句3; else 语句4;
yes 条件成立否 no
程序段A
程序段B
2020/4/12
21
C语言大学实用教程
多分支选择结构
T 表达式1 F
语句1
T 表达式2 F
语句2
T 表达式3 F
语句3
语句4
2020/4/12
22
C语言大学实用教程
多分支选择结构
一般形式:
if(表达式) 语句1; else if (表达式2)语句2;
: else if(表达式m)语句m;
有穷性 确定性 有效性 没有输入或有多个输入 有一个或多个输出
2020/4/12
3
C语言大学实用教程
算法的分类
数值运算算法:
解决的是求数值解的问题,例如用辗转相 除法求两个数的最大公约数等
非数值运算算法:
主要用于解决需要用分析推理、逻辑推理 才能解决的问题,例如人工智能中的许多 问题,查找、分类等问题
2020/4/12
4
C语言大学实用教程
算法的描述方法
自然语言表示 传统的流程图表示 N-S结构化流程图表示 伪代码表示
2020/4/12
5
C语言大学实用教程
构成程序的三种基本结构
顺序结构 选择结构(分支结构) 循环结构 已经证明,任何程序均可只用这三种结构综 合描述 只用这三种结构编制的程序,叫结构化程序 程序必须符合结构化规则
画 出
输入n和captial


depoist=captial*(1+rate)n

输出depoist
结束
2020/4/12
13
C语言大学实用教程 #include <math.h>
()
#include <stdio.h>
3
main()
根{

int n;

double rate=0.0225;

double capital,deposit;
C语言大学实用教程
简单分支选择(单分支)结构
条件成立否 no yes 语句A
条件表达式
.T.
.F.
语句
格式:
2020/4/12
if (表达式) 语句/语句组;
20
C语言大学实用教程
双分支选择结构
条件表达式
.T.
.F.
语句1
语句2
格式: If (表达式) 语句1/语句组1; else 语句2/语句组2;
相关文档
最新文档