C++程序设计(第3章)

更新时间:2023-08-29 03:55:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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); }

本文来源:https://www.bwwdw.com/article/g6di.html

Top