版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 2 算法:算法: 算法是解决问题的步骤。算法是解决问题的步骤。 计算机算法的特征:计算机算法的特征: 可执行性可执行性 确定性确定性 有穷性有穷性 可输入输出信息可输入输出信息 (1)(1)算法是程序设计学习的重点。算法是程序设计学习的重点。 3 流程图:流程图: 流程图是图形化的表示方法,比较直观,基本流程图是图形化的表示方法,比较直观,基本 组成元件包括矩形框、菱形框、箭头线等。其组成元件包括矩形框、菱形框、箭头线等。其 中矩形框表示要执行的指令,在框内标注指令中矩形框表示要执行的指令,在框内标注指令 内容;菱形框表示要判断其中表达式的值是真内容;菱形框表示要判断其中表达式的值是真 还
2、是假;箭头线则标示指令的流程方向。还是假;箭头线则标示指令的流程方向。 伪码:伪码: 伪码是介于自然语言和程序设计语言之间的一伪码是介于自然语言和程序设计语言之间的一 种类自然语言的表示方法,书写形式自由,容种类自然语言的表示方法,书写形式自由,容 易转换为程序。易转换为程序。 4 3 循循 环环 结结 构构 1 顺顺 序序 结结 构构 2 分分 支支 结结 构构 算法的基本结构:算法的基本结构: 对算法的理论研究和实践表明,任何算法的描述对算法的理论研究和实践表明,任何算法的描述 都可以分解为三种基本结构或它们的组合,这三都可以分解为三种基本结构或它们的组合,这三 种基本结构是种基本结构是顺
3、序结构顺序结构、分支结构分支结构和和循环结构循环结构。 5 语句1 语句2 图图2.1 顺序结构流程图顺序结构流程图 6 7 i+; -j; abs(x); coutij; sum=a+b; a=b=c; i=1,j=2; b*=c; 8 例如:例如: if(x=0) couta; coutb; 9 for (m = 0; mb) t=a;a=b;b=t; 20 a=a+b;b=a-b;a=a-b; 21 true 表达表达 式式 语句语句1 false 语句语句2 图图2.7 双分支双分支if语句流程图语句流程图 22 #include using namespace std; int ma
4、in() int year; coutyear; if(year%4=0 else coutyear年不是闰年年不是闰年0) if(y0) coutx与与y均大于均大于0; else coutx大于大于0,y小于等于小于等于0; v注意:注意: 如何使之与如何使之与 第一个第一个if配配 对?对? 28 29 注意:表达式只能是整型、注意:表达式只能是整型、 字符型或枚举型字符型或枚举型 注意:常量表达式注意:常量表达式 1n的值必须各不的值必须各不 相同。相同。 30 有有 无无 无无false 有有 无无 false true 计算表达式的值计算表达式的值 常量表达式常量表达式1语句语句1
5、break 常量表达式常量表达式2语句语句2 break 无无 有有 false 常量表达式常量表达式n true 语句语句nbreak default语句语句n+1 true有有 图图2.12 switch语句执行流程语句执行流程 31 32 共用同一个语句组共用同一个语句组 思考:若省去思考:若省去break语句,情况语句,情况 会怎样?会怎样? 33 2.3.1 while 语句语句 while (表达式表达式) 语句语句 false true 表达表达 式式 语句语句 图图2.14 while语句流程图语句流程图 循环条件,循环条件, 其值为其值为true ( 非( 非 0 ) 、)
6、、 false(0) 循环体循环体 34 【例【例2.8】求求 1+2+3+100 #include using namespace std; int main() int i(1),sum(0); /定义变量,初始化定义变量,初始化 while(i=100) /构造循环构造循环 sum+=i; / 循环体,多次执行循环体,多次执行 i+; coutsum=sumendl; return 0; 0 1 1 2 真真 3 3 真真 6 4 真真 10 5 真真真真 100 真真 101 真真 5050 假假 sum5050 0 sum 1 i 1 2 3 3 6 4100 5050 101 循环
7、结束循环结束! 实际上是将实际上是将i不停地累加到一起不停地累加到一起 35 5 1 3 1 2 1 1 n #include using namespace std; int main() int i=0; double s=0; while(s5) s+=double(1)/+i; coutn=iendl; return 0; 36 false true 表达表达 式式 语句语句 图图2.15 do-while语句流程图语句流程图 37 int i(1),sum(0); while(i=100) sum+=i; i+; 循环体和条件表达式都相同循环体和条件表达式都相同 38 注意:注意:
8、dowhile首先执行循环体,然后再判断表达式,至首先执行循环体,然后再判断表达式,至 少执行一次循环体。少执行一次循环体。当第一次循环表达式的值为真时,当第一次循环表达式的值为真时, while与与dowhile的结果完全一样,否则结果不相同。的结果完全一样,否则结果不相同。 39 40 for(for(表达式表达式1;1;表达式表达式2;2;表达式表达式3 3 ) ) 表达式表达式2 执行执行 非非0 0 0 0 退出退出 循环循环 表达式表达式1 表达式表达式3 表达式表达式1; while(表达式表达式2) ; 表达式表达式3; 2.3.3 for 语句语句 41 42 43 思考思考
9、 该小球反弹多少该小球反弹多少 次才能静止下来?次才能静止下来? 44 for( ;i=100) break ; / break语句用于跳出循环语句用于跳出循环 int sum=0; for(int i=1; i=100; ) / 省略表达式省略表达式3 sum+=i+; / 在循环体中对循环变量在循环体中对循环变量i递增递增 45 三个表达式都可以是任何类型的三个表达式都可以是任何类型的C+表达式。表达式。 int i,sum; for(i=1,sum=0;i=100;sum+=i,i+); 表达式表达式1可以是变量定义语句,即循环控制变量可在其中定义。可以是变量定义语句,即循环控制变量可在
10、其中定义。 int sum=0; for(int i=1;i=100;i+) sum+=i; 46 for() while() do while(); 47 图2.19 九九乘法表运行界面 48 true false i=1 i=9 ? true false j=1 j=9 ? 显示显示i*j表达式表达式 j+ i+ #include using namespace std; int main() coutttt九九 九九 乘乘 法法 表表 endl; coutttt- endl; for(int i=1;i=9;i+) for(int j=1;j=9;j+) coutij=i*jt; cou
11、tendl; return 0; 49 图2.21 下三角的九九乘法表 图2.22 上三角的九九乘法表 思考:思考:打印上三角或下三角程序如何改动?打印上三角或下三角程序如何改动? 50 51 break; 用于下列两种情况:用于下列两种情况: 1、在开关语句中,其功能是退出开关语句,、在开关语句中,其功能是退出开关语句, 执行其后的语句;执行其后的语句; 2、在循环体中,其功能是用来退出、在循环体中,其功能是用来退出该重循环该重循环 52 53 54 55 while(i=100) break; coutsumendl; while(in (2) m除以除以n得余数得余数r (3) 若若r=
12、0,则,则n为最大公约数,结束;否则执行为最大公约数,结束;否则执行(4) (4) mn,n r,再重复执行,再重复执行(2) m n r 12 5 2 5 2 1 2 1 0 辗转相除法辗转相除法 while (r=m % n)!=0) m=n;n=r; coutn; 60 61 62 63 当第当第n n项的绝对值小于项的绝对值小于1010-6 -6时结束。 时结束。 分析:关键是找部分级数和的分析:关键是找部分级数和的通项通项: ),(,nt nn x t nn 7531 ) 2)(1( 2 2 64 65 int i,j,k,n; cout水仙花数:水仙花数:; for(i=1;i=9;i+) for(j=0;j=9;j+) for(k=0;k=9;k+) m=i*i*i+j*j*j+k*k*k; n=100*i+10*j+k; if(m=n) coutm ; 66 67 1003/35 100 zyx zyx 采用试凑法采用试凑法(也称为穷举法或枚举法也称为穷举法或枚举法)来实现,即将可能出现来实现,即将可能出现 的各种情况一一罗列测试,判断是否满足条件,采用循环结构的各种情况一一罗列测试,判断是否满足条件,采用循环结构 来实现。来实现。 68 69 图2.29 牛顿迭代法示意图 f(x1) x3 y 0 C B A x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 托儿所服务的游乐场所与户外探险考核试卷
- 新材料与自然科学探索宇宙奥秘的新启示考核试卷
- 早餐店培训合同范例
- 承包工序合同范例
- 实体工作兼职合同范例
- 水路改造采购合同模板
- 挡板租赁合同范例
- 借款合同抽屉合同范例
- 油漆墙面合同模板
- 冻猪白条供货协议合同范例
- 护理安全质控总结分析报告
- 钢筋拉伸试验课件
- 办公室人员颈肩腰腿痛的预防和治疗课件
- 三废环保管理培训
- 人工智能伦理导论- 课件 3-人工智能伦理
- 市政给排水管道工程检验批质量验收记录文本表
- 非煤地下矿山隐蔽致灾因素普查治理工作方案
- Elisa检测技术课件
- 测量系统分析课件
- 江苏省南京市联合体2023-2024学年七年级上学期期末数学试卷+
- 婚嫁金满期返还险
评论
0/150
提交评论