第41章 结构化程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
会得到哪些结果,为了能表示和处理这些数据 及结果应该确定定义变量的个数和类型。该题 目要表示三个系数a,b,c和两个所求的根x1,x2 ,所 以需要有5个float型的变量。在求解过程中还要 保存 =b2-4ac这个中间结果,所以一共要定义6 个float型变量。
练习
练习一
练习二
#include<math.h> main() { float a,b,c,x1,x2,deta; printf(“please input a,b,c:\n"); scanf("%f%f%f",&a,&b,&c); deta=b*b-4*a*c; x1=(-b+sqrt(deta))/(2*a); x2=(-b-sqrt(deta))/(2*a); printf("the result N0.1 is:%f\n",x1); printf("the result N0.2 is:%f\n",x2); }
3
4
5
上机
• 1.输入一个三位数,输出其符号、百位、 十位、个位上的数。 • 2.输入三条边求三角形面积。 • 3.求一元二次方程的根。
4.3 C程序语句 表达式语句
1
2
3
4
表达式语句由表达式加上分号“;”组成。 执行表达式语句就是计算表达式的值。 例如: x=y+z; /*赋值语句*/ y+z; /*加法运算语句,但计算结果不能保 留,无实际意义*/ i++; /*自增1语句,i值增1*/
5
4.3 C程序语句 函数调用语句
4.1 结构化程序设计的思想及流程图
4.1.1 结构化程序设计思想
结构化程序设计 (Structured Programming)的核心 是算法设计,基本思想是采用自顶向下、逐步细化的 设计方法和单入单出的控制结构。 自顶向下和逐步细化的设计方法是将一个复杂任务 按照功能进行拆分,并逐层细化到便于理解和描述的 程度,最终形成由若干独立模块组成的树状层次结构, 单入单出的控制结构是指每个模块内部均用顺序、 选择、循环三种基本结构来描述。
1
2
3
4
函数调用语句由函数名、实际参数加上分号“;”组 成。例如: printf("%f\n%f\n",a,b); 执行函数语句就是调用函数体并把实际参数赋予函 数定义中的形式参数,然后执行被调函数体中的语 句,从而求出函数值。 有关函数的知识在后继的章节中将详细介绍。
5
4.3 C程序语句
序 号 1
2
2
3
4
循环执 行语句
5
3
转向 语句
goto语句
continue语 结束本次循环语句 句 return语句 从函数返回语句
4.3 C程序语句 复合语句
用大括号{ }括起来的相互关联的若干语句的集合称为 “复合语句”,又称为“分程序”。 复合语句内的各条语句都必须以分号“;”结尾,在大括号 “}”外不能再加分号。 例如,下面的语句就是一条复合语句: { x=y+z; a=b+c; printf("%d%d",x,a); }
please input a,b,c: 2 -6 -8 the result N0.1 is:4.000000 the result N0.2 is:-1.000000
练习
练习一
练习二
交换两数的值,并显示交换后的结果。 (假设两数存放在变量a,b中)
练习
练习一
练习二
#include <stdio.h> 结果: Main() a=10,b=5 { int a,b,swap; a=5;b=10; swap=a; a=b; b=swap; printf(“a=%d, b=%d”,a,b); }
4.2 顺序结构
4.2.2 程序举例 例1 输入一个三位整数,依次输出该数的正(负) 号和百位、十位、个位数字。 下图所示为对应的N-S流程图。
输入一个三位整数存入x中 真 c4= '+' x=|x| c3=x%10+Βιβλιοθήκη Baidu8
x>0?
c4= '-'
假
x=x/10
c2=x%10+48 c1=x/10+48 输出c4、c1、c2、c3对应的内容
语句类型 条件判 断语句
语句类别 if语句 switch语句 do while语 句 while语句 for语句 break语句
语句说明 简单条件语句 多分支选择语句 循环语句 循环语句 循环语句 中止执行switch语 句或循环语句 转向语句
1
控制语句
控制语句用于 控制程序的流 程,以实现程 序的各种结构 方式。它们由 特定的语句定 义符组成。 C语言有9种 控制语句,具 体可以将其细 分为如表所示 的三类。
4.2 顺序结构 4.2.1 特点
顺序结构是程序中的语句按照书写的顺 序,自上而下地执行 其特点是程序总是从第1条语句开始执 行,依次执行完所有的语句后结束程序。
4.2 顺序结构
顺序结构程序设计的步骤(算法的体现): (1)定义数据 (2)对数据进行处理,以其得到相应的 结果 (3)显示结果
1
2
3
4
5
4.3 C程序语句 空语句
1
2 只有分号“;”组成的语句称为空语句。空语句是什么也不 执行的语句。 例如: while(getchar()!='\n') ;
3
4
5
练习
练习一
编程序:求ax2+bx+c=0方程的根,其 中a,b,c由键盘输入,假设b2-4ac>0.
练习二
首先要分析问题中出现了哪些数据需要处理,
3.6 本章容易出现错误的知识点
总结(选学)
第10章 位运算
第10章 文件
第 4章
结构化程序设计
教学目标
►了解结构化程序设计的思想及流程图的画法
► 掌握顺序结构、选择结构、循环结构的程序设计 方法
► 熟练掌握if、while、for等循环控制语句的使用
► 掌握控制转移语句break、continue的使用 ► 编制出简单的C程序 ►理解结构化程序设计的三种基本结构的特点 ►掌握C语言常用的几种语句
4.4 本章容易出现错误的知识点总结(选学)
1 2
输入变量时忘记加地址运算符“&” 例如: int m,n; scanf("%d%d",m,n); 上述程序的第二条语句是 不合法的。 scanf()函数的作用是:按 照m、n在内存的地址将m、 n的值存进去。 “&m”表示m在内存中的 地址。
4.4 本章容易出现错误的知识点总结(选学)
忽略了“=”与“==”的区 别
1
2
3
C语言中,“=”是赋值运算符, “==”是关系运算符。 如: if(a==8) a=b;
4
5
4.4 本章容易出现错误的知识点总结(选学)
1
在程序中多加了分号
2
3
4
5
复合语句的花括号后不应再加分号,否则 就会产生一些不必要的麻烦。如: for(i=0;i<6;i++) ; { scanf("%d",&x); printf("%d",x); } 程序的本意是先后输入6个数,每输入一个 数后再将其输出。 由于for()后多加了一个分号,使循环体变 为空语句,此时只能输入一个数并将其输出。
第4章 结构化程序设计
● 课程概述 第1章 C语言概述 第2章 基本数据类型和运算 第3章 算法
3.1 结构化程序设计的思想及流
程图 3.2 C程序语句
第4章 结构化程序设计
第5章 数组及字符串 第6章 函数 第7章 指针 第8章 复合结构类型 第9章 编译预处理
3.3 顺序结构
3.4 选择结构 3.5 循环结构
4.2 顺序结构
4.2.2 程序举例
#include<math.h> 在运行时,从键盘输入: main() -345↙ { char c1,c2,c3,c4; int x; 则输出为: scanf("%d",&x); /* 输入一个三位的整数 */ c4=x>0?'+':'-'; /* 将x的符号存入c4 */ 3 x=abs(x); /* 求三位整数的绝对值 */ 4 c3=x%10+48; 5 /* x%10获得个位数字,加48后转换为对应的字符 */ 接着从键盘输入: x=x/10; /* 获得x的前两位 */ c2=x%10+48; 678↙ /* x%10获得十位数字,加48后转换为对应的字符 */ 则输出为: c1=x/10+48; + /* x/10获得百位数字,加48后转换为对应的字符 */ 6 printf("%c\n%c\n%c\n%c\n",c4,c1,c2,c3); 7 }
4.1 结构化程序设计的思想及流程图
4.1.1 结构化程序设计思想
结构化程序设计强调的是程序设计风格和 程序结构的规范化,提倡清晰的结构。 结构化程序设计风格需要经过以下几个步 骤进行: (1)自顶向下 (2)逐步细化 (3)模块化设计 (4)结构化编码(依据程序的基本结构, 利用现有的流控语句进行编码设计)
4.2 顺序结构
4.2.2 程序举例 代码如下: #include <math.h> main() { float a,b,c,s,area; printf("please input three border of the triangle:"); scanf("%f,%f,%f",&a,&b,&c); /*输入三角形的三条 边*/ s=1.0/2*(a+b+c); /*求三角形三边和的一半*/ area=sqrt(s*(s-a)*(s-b)*(s-c)); /*按公式计算三角形的面 积*/ printf("a=%-7.2fb=%-7.2fc=%-7.2fs=%-7.2f\n",a,b,c,s); printf("area=%-7.2f\n",area); } 该程序的运行结果如下 : please input three border of the triangle:3,4,5↙ a=3.00 b=4.00 c=5.00 s=6.00 area=6.00
4.1 结构化程序设计的思想及流程图 4.1.1 结构化程序设计思想
4.1 结构化程序设计的思想及流程图 4.1.1 结构化程序设计思想
结构化程序设计的三种基本结构:顺序,分支和循环: (1)顺序--从上到下依次执行下来,中间没有任何 分叉 (2)分支--在执行过程中,根据条件成立与否产生 了不同的操作; (3)循环--当某一条件成立时,反复做相同的操作。
代码如下:
8
4.2 顺序结构
4.2 程序举例
例2 输入三角形的三边长,求三角形面积。
分析:给出三角形的三边a、b、c,可根据公式area=(s(s-a)(s-b)(sc))1/2计算该三角形的面积,其中s=(a+b+c)/2。 下图所示为对应的N-S流程图。
输入三角形的三条边a、b、c 求三角形三边和的一半s=1.0/2*(a+b+c) 计算三角形的面积area=sqrt(s*(s-a)*(s-b)*(s-c)) 输出a、b、c、s的值 输出三角形的面积area的值