C++程序设计(第3章)
更新时间:2023-08-29 03:55:01 阅读量: 教育文库 文档下载
- c程序设计第3版推荐度:
- 相关推荐
C++教程
计算机基础教学部
第3章 C流程控制本章学习重点掌握内容: 结构化程序设计的程序结构 选择结构和构成选择的语句 循环结构和构成循环的语句 结构化程序设计的典型算法和应用
C++教程
计算机基础教学部
第3章 C流程控制 3.1 3.2 3.3 3.4 3.5 3.6 算法与流程图 C语句和程序的三种基本结构 顺序结构程序 选择结构程序 循环结构程序设计 常用算法及应用实例
C++教程
计算机基础教学部
3.1 算法与流程图3.1.1 算法的概念 数据结构 + 算法 = 程序 ------ N. Wirth 所谓算法,是指为了解决一个问题而采取的方法和步骤。 当利用计算机来解决一个具体问题时,也要首先确定算法。 例如,要计算S = 1 + 2 + 3 + … + 100, 算法是程序设计的灵魂,而程序设计语言是表达算法的形 式。
C++教程
计算机基础教学部
3.1 算法与流程图正确算法的主要特性: 1.有穷性 一个算法应该包含有限的操作步骤,而不能是无 限的。 2.确定性 算法中的每一个步骤应当是确定的,而不应当是
含糊的,应是十分明确无误的。3.有效性 算法中的每一个步骤都应当有效的执行,并得到 确定的结果。 4.有0个或多个输入。 5.有一个或多个输出。
C++教程
计算机基础教学部
3.1.2 算法的描述一、传统流程图 流程图由一些特定意义的图形、流 程线及简要的文字说明构成,它能 清晰明确地表示程序的运行过程, 传统流程图由以下图形组成:
C++教程
计算机基础教学部
3.1.2 算法的描述二、N-S图 1973年,美国学者I.Nassi 和 B.Shneiderman 提出 在这种流程图中,全部算法 写在一个大矩形框内,该框中 还可以包含一些从属于它的小 矩形框。例如网上购物的N-S图
C++教程
计算机基础教学部
3.1.2 算法的描述三、自然语言描述 可使用汉语、英语和数学符号等,通俗易懂,但描述冗长,易引起 歧义性,一般用于算法较简单的情况。 算法举例:对一个大于2的正整数,判断它是不是一个素数。 方法:将 n (其中n >2) 作为被除数, 将2 到(n-1) 各个整数轮流 作为除 数,如果都不能被整除,则n为素数。 算法表示如下: S1:输入n的值 S2:2 i ( i 作为除数) S3: n 被 i 除,得余数 r S4: 如果 r 等于 0 , 表示 n 能 被 i 整除,则打印 n “不是素数”,算 法结束;否则执行S5 S5:i+1 i S6: 如果 i n-1, 返回S3;否则,打印 n “是素数”,算法结束。
C++教程
计算机基础教学部
3.1.2 算法的描述四、伪码描述 伪码是指介于自然 语言和计算机语言之间 的一种代码,是帮助程 序员制定算法的智能化 语言,它不能在计算机 上运行,使用灵活,无 固定格式和规范,与计 算机语言比较接近。 算法举例:BEGIN 1 =>i while(i
50) { input ni和gi i+1=>i } 1 =>i while(i 50) { if (gi >=80) print ni和gi i+1=>i } END8
C++教程
计算机基础教学部
3.2 C语句和程序的三种基本结构语句是程序中最小的可执行单位。一条语句可以完成一种 基本操作, 3.2.1 C语句分类 1.表达式语句 任何一个表达式后面加上分号;例如:c = a + b; 2.空语句 ; 3.复合语句 复合语句是用一对花括号{ }括起来的语句块。 4.控制语句 控制语句改变程序执行的方向。例如:if语句、for语句等。
C++教程
计算机基础教学部
3.2.2 C程序的三种基本结构在过程化程序设计中,按照结构化设计的思想由语句构成 三种基本结构。 1.顺序结构 程序按照语句的书写顺序依次执行,语句在前的先执行, 语句在后的后执行,顺序结构只能满足设计简单程序的要 求。 2. 选择结构(也称分支结构) 在选择结构中,程序根据判断条件是否成立,来选择执行 不同的程序段。 3. 循环结构 在循环结构中,程序根据判断条件是否成立,来决定是否 重复执行某个程序段。
C++教程
计算机基础教学部
3.2.3 结构化算法 3种基本结构:顺序结构,选择结构,循环结构。 不存在无规律的转移,只有在本结构内才允许存 在分支或者向前向后的跳转。 由结构化算法编写的程序称为结构化程序。
C++教程
计算机基础教学部
结构化程序设计的核心思想 采用顺序、选择和循环三种基本结构作为程序设 计的基本单元 只有一个入口; 只有一个出口; 无死语句,即不存在永远都执行不到的语句; 无死循环,即不存在永远都执行不完的循环。 采用“自顶向下、逐步求精”和模块化的方法进 行结构化程序设计
C++教程
计算机基础教学部
3.3 顺序结构程序顺序结构是最简单、最常用的C语言程序结构。特 点:“按部就班,依次执行”
(a)传统流程图 顺序结构流程图
(b)NS流程图
C++教程
计算机基础教学部
银行存款计算【例3.0】设银行定期存款的年利率rate为2.25%,并 已知存款期为n年,存款本金为capital元,试编程计 算n年后的本利之和deposit。输入n和capital的值
顺序结构的基本程序框架: step1 输入算法所需要的数据 step2 进行运算和数据处理 step3 输出运算结果数据
利用公式计算本利之和deposit输出计算结果deposit 计算存款本利之和的算法N-S图
C++教程
计算机基础教学部
银行存款计算#include <math.h> #include <stdio.h> void main() { int n; double rate = 0.0225; double capital; double deposit;
//主函数首部
//存款期变量声明 //存款年利率变量声明 //存款本金变量声明 //本利之和变量声明
printf(“Please enter year, capital:”);//显示用户输入的提示信息 scanf(“%d,%lf”,&n, &capital)
; //输入数据,数据间以逗号分隔deposit = capital * pow(1+rate, n); //计算存款利率之和,pow为幂函数
printf(“deposit = %f\n”, deposit); //打印存款本利之和}
C++教程
计算机基础教学部
“鸡兔同笼”问题【例3.1】“鸡兔同笼”问题。鸡有2只脚,兔有4 只脚,如果已知鸡和兔的总头数为h,总脚数为f。 问笼中鸡和兔各有多少只?输入总头数h和总脚数f的值 利用公式计算鸡和兔的只数输出鸡和兔的只数 “鸡兔同笼”问题的算法N-S图
C++教程
计算机基础教学部
“鸡兔同笼”问题#include <iostream.h> void main( ) { int h, f, chicken, rabbit; cout<<"请输入鸡和兔的总头数:"; cin>>h; cout<<"鸡和兔的总脚数(偶数):"; cin>>f; chicken = (4 * h - f) / 2; rabbit = (f - 2 * h) / 2; cout<<"则笼中鸡有" << chicken <<"只,兔有" << rabbit << "只。"<<endl; }
C++教程
计算机基础教学部
一元二次方程求根【例】编程计算方程ax +bx+c=0的根,a,b,c由 2 键盘输入,假设b -4ac>0。 用自然语言描述的算法: step 1 step 2 输入a, b, c。 计算判别式 disc=b*b-4*a*c。2
step 3 由于假设判别式大于0,所以可直接按求 根公式计算两个实根 x1和 x2。 step 4 输出x1和x2。
C++教程
计算机基础教学部
一元二次方程求根#include <math.h> #include <stdio.h> void main() { float a, b, c, disc, x1, x2, p, q; printf(“Please enter the coefficients a,b,c:”); //显示提示信息 scanf(“%f,%f,%f”, &a, &b, &c); //输入a,b,c的值 disc = b * b – 4 * a * c; p = - b / (2 * a) ; q = sqrt(disc) / (2 * a); x1 = p + q; x2 = p – q; //计算判别式的值
//计算实根x1 //计算实根x2 //输出x1和x2
printf(“x1=%7.4f, x2=%7.4f\n”,x1, x2); }
正在阅读:
C++程序设计(第3章)08-29
金融企业战略合作协议范本金融企业战略合作协议书文档04-11
生化实验方法10-26
幼儿同伴互动研究的文献综述11-28
《铁路信号运营基础》试题11-19
2014——2015学年第一学期人教版小学语文二年级上册第三、四单元试卷(无答案)06-03
造纸企业安全生产制度和规程05-11
《建筑招投标概论》网络作业题库(答案)05-11
工程力学大作业1(答案)10-14
个人鉴定的材料【通用4篇】03-23
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- C++
- 程序设计