![第3章程序设计初步_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/d1713364-c3bd-4738-91da-997f04c508b0/d1713364-c3bd-4738-91da-997f04c508b01.gif)
![第3章程序设计初步_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/d1713364-c3bd-4738-91da-997f04c508b0/d1713364-c3bd-4738-91da-997f04c508b02.gif)
![第3章程序设计初步_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/d1713364-c3bd-4738-91da-997f04c508b0/d1713364-c3bd-4738-91da-997f04c508b03.gif)
![第3章程序设计初步_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/d1713364-c3bd-4738-91da-997f04c508b0/d1713364-c3bd-4738-91da-997f04c508b04.gif)
![第3章程序设计初步_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/17/d1713364-c3bd-4738-91da-997f04c508b0/d1713364-c3bd-4738-91da-997f04c508b05.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章章 程序设计初步程序设计初步3.1 面向过程的程序设计和算法面向过程的程序设计和算法3.2 C+程序结构和语句程序结构和语句3.3 C+的输入与输出的输入与输出3.4 C+程序的控制结构程序的控制结构3.5 程序举例程序举例在面向过程的程序设计中,程序设计者必须指在面向过程的程序设计中,程序设计者必须指定计算机执行的具体步骤,清晰程序要定计算机执行的具体步骤,清晰程序要“做什做什么么”,清晰,清晰“怎么做怎么做”,并写出一个个语句,并写出一个个语句,安排好它们的执行顺序。安排好它们的执行顺序。步骤要合理,保证它的步骤要合理,保证它的正确性和具有较高的效正确性和具有较高的效率率,这就是,
2、这就是算法算法(algorithm)需要解决的问需要解决的问题。题。3.1 面向过程的程序设计和算法面向过程的程序设计和算法一个面向过程的程序应包括以下两方面内容:一个面向过程的程序应包括以下两方面内容:(1) 对数据的描述对数据的描述。在程序中要指定。在程序中要指定数据的类型和数据的组织形式数据的类型和数据的组织形式,即即数据结构数据结构(data structure)。(2) 对操作的描述对操作的描述。即操作步骤,也就是。即操作步骤,也就是算法算法(algorithm)。算法是处算法是处理问题的一系列的步骤。理问题的一系列的步骤。对于面向过程的程序,可以用下面的公式表示:对于面向过程的程序
3、,可以用下面的公式表示: 程序程序=算法算法+数据结构数据结构 如:处理的数据如何读入与存放?如何处理?结果如何存放与输出?如:处理的数据如何读入与存放?如何处理?结果如何存放与输出?(必须考虑与设计清晰!)(必须考虑与设计清晰!)(3)算法可分为两大类别:)算法可分为两大类别:数值算法数值算法和和非数值算法非数值算法。数值算法的。数值算法的目的是求数值解。非数值算法包括的面十分广泛,最常见的是用于事目的是求数值解。非数值算法包括的面十分广泛,最常见的是用于事务管理领域。务管理领域。C+既支持面向过程的程序设计,又支持面向对象的程序设计。无既支持面向过程的程序设计,又支持面向对象的程序设计。无
4、论面向过程的程序设计还是面向对象的程序设计,都离不开算法设计论面向过程的程序设计还是面向对象的程序设计,都离不开算法设计。3.1.1 算法的概念算法的概念1、自然语言、自然语言2、流程图、流程图3、伪代码、伪代码 介于自然语言和计算机程序设计语言之间的文介于自然语言和计算机程序设计语言之间的文字和符号来描述算法。一般无固定、严格的语法规字和符号来描述算法。一般无固定、严格的语法规则,只须把意思表达清楚,并且要书写的格式要写则,只须把意思表达清楚,并且要书写的格式要写成清晰易读的形式。成清晰易读的形式。4、计算机语言表示、计算机语言表示3.1.2 算法算法的表示的表示1、程序结构、程序结构 一个
5、程序包含一个或多个程序单位,一个程序包含一个或多个程序单位,C+程序单程序单位一般由位一般由3个部分组成:个部分组成:(1)预处理指令预处理指令。如。如#include和和#define指令。指令。(2)全局声明全局声明,如果需要时。,如果需要时。(3)函数函数。例例3. 1:#include using namespace std;int a=3;int main()float b; b=4.5; coutab; return 0; 3. 2 C+程序结构和语句程序结构和语句2、语句、语句(1)说明语句)说明语句 (3)空语句,单独的一个分号。)空语句,单独的一个分号。(4)复合语句)复合语
6、句 一对一对 之间的若干个语句的组合,如:之间的若干个语句的组合,如:3. 2 C+程序结构和语句程序结构和语句如如 int a;(2)执行语句)执行语句控制语句控制语句函数调用语句,如函数调用语句,如 sort(x,y,z);表达式语句,如表达式语句,如 i=i+1;t=a; a=b; b=t; 相对内存,处理的数据如何进行输入和输出?相对内存,处理的数据如何进行输入和输出?输入和输出并不是输入和输出并不是C+语言中的正式组成成分。语言中的正式组成成分。C和和C+本身都没有为输入和输出提供专门的本身都没有为输入和输出提供专门的语句语句结构。输入输出不是由结构。输入输出不是由C+本身定义的,本
7、身定义的,而是在而是在编译系统提供的编译系统提供的I/O库库 中定义的中定义的。C+的输出和输入是用的输出和输入是用“流流”(stream)的方式的方式实现的。下图分别表示实现的。下图分别表示C+通过流进行输入输通过流进行输入输出的过程。出的过程。3.3 C+的输入与输出的输入与输出 有关有关流对象流对象cin、cout和流运算符和流运算符的定义等的定义等信息是存放在信息是存放在C+的的输入输出流库输入输出流库中的,因此中的,因此使用使用cin、cout和流运算符,就必须:和流运算符,就必须: #include 为了为了叙述方便,常常把由叙述方便,常常把由cin和流提取运算和流提取运算符符“”
8、实现输入的语句称为输入语句或实现输入的语句称为输入语句或cin语语句句; 把把由由cout和流插入运算符和流插入运算符“”实现输出实现输出的语句称为输出语句或的语句称为输出语句或cout语句。语句。 流流运算符相当于一个输入或输出函数,由运算符相当于一个输入或输出函数,由对象调用之对象调用之。cout语句的一般格式为语句的一般格式为cout表达式表达式1表达式表达式2变量变量1变量变量2变量变量n;输出流中的数据在输出流中的数据在系统默认的设备系统默认的设备(一般为显示器一般为显示器)输出。输出。3.3.1 输入流与输出流的基本操作输入流与输出流的基本操作int i; float x; cin
9、ix; coutic1c2c3;若输入:若输入:abc,则,则c1、c2、c3的值分别为字符的值分别为字符a、b、c若输入若输入: abc,则,则c1、c2、c3的值分别为字符的值分别为字符、a、若输入:若输入:a b c,则,则c1、c2、c3的值分别为字符的值分别为字符a、b、c则则i的值为的值为12,x的值为的值为34.5则则i的值为的值为34,x的值为的值为0.5输出为:输出为:340.5 有时为了输入输出特殊的要求,如在输出实有时为了输入输出特殊的要求,如在输出实数时规定字段宽度,只保留两位小数,数据向数时规定字段宽度,只保留两位小数,数据向左或向右对齐等。左或向右对齐等。 C+提供
10、了在输入输出流中使用的控制符提供了在输入输出流中使用的控制符(有有的书中称为操纵符的书中称为操纵符),见书中表,见书中表3.1,P.54页。页。 需要注意的是:需要注意的是: 如果如果使用使用了了控制符控制符,在程序,在程序单位的开头除了要加单位的开头除了要加iostream头文件外,还要头文件外,还要加加iomanip头文件。头文件。3.3.2 在输入流与输出流中使用控制符在输入流与输出流中使用控制符 coutntm“n”; cout“n=”n“,m=”mn;1020n=10,m=20 coutsetw(4)nsetw(4)mn; setw只对其后一个输出项有效只对其后一个输出项有效10 2
11、0 coutoctnthexmn; 只适用于整型数只适用于整型数。12 14如如 3.140000e+000C+中用于输入和输出单个字符的函数:中用于输入和输出单个字符的函数:其中最常用的有其中最常用的有getchar函数和函数和putchar函数。函数。1、putchar函数(字符输出函数)函数(字符输出函数)putchar函数的作用是函数的作用是向终端输出一个字符向终端输出一个字符。如。如putchar(c);它它输出字符变量的值输出字符变量的值。2、getchar函数(字符输入函数)函数(字符输入函数)此函数的作用是从终端输入一个字符。其一般形式为此函数的作用是从终端输入一个字符。其一般
12、形式为getchar( ),),函数的值就是从输入设备得到的字符。函数的值就是从输入设备得到的字符。3.3.3 用用getchar和和putchar函数函数进行字符的输入和输出进行字符的输入和输出例例3.2 输出单个字符。输出单个字符。#include /或者或者 #include using namespace std;int main( )char a,b,c; a=B;b=O; c=getchar( ); putchar(a);putchar(b);putchar(c+32);putchar(n); return 0;用用putchar可以输出转义字符可以输出转义字符。如果从键盘输入大写
13、字母如果从键盘输入大写字母A并并按回车键,第三个输出的结果按回车键,第三个输出的结果在屏幕上实际显示就是小写字在屏幕上实际显示就是小写字母母a。请注意,请注意,getchar( )只能只能接收一个字符接收一个字符。getchar函函数得到的字符可以赋给一数得到的字符可以赋给一个字符变量或整型变量,个字符变量或整型变量,也可以不赋给任何变量,也可以不赋给任何变量,作为表达式的一部分。作为表达式的一部分。3. 4 C+程序的基本结构程序的基本结构1. 顺序结构顺序结构2. 选择结构选择结构3. 循环结构循环结构 顺序结构顺序结构a块块b块块AB选择结构选择结构a块块a块块成立成立不成立不成立条件条
14、件AB条件条件a 块块成立成立不成立不成立AB当型循环结构当型循环结构条件条件a 块块成立成立不成立不成立AB直到型循环结构直到型循环结构一、条件语句一、条件语句1. 单选条件语句(单选条件语句(if语句)语句) 语句格式:语句格式:条条 件件 if(表达式表达式) S 执行过程执行过程3.4.1 选择结构语句选择结构语句条件条件语句语句10例例3.3 从键盘输入一个数,若该数为正数,输出从键盘输入一个数,若该数为正数,输出1。条条 件件S110S22. 双选条件语句(双选条件语句(if.else语句)语句) 语句格式:语句格式: if(表达式表达式) S1 else S2 执行过程执行过程例
15、例3.4 从键盘输入一个数。若该数为正数,输出从键盘输入一个数。若该数为正数,输出1; 否则输出否则输出-1。3.4.1 选择结构语句选择结构语句条件条件1条件条件2条件条件3S1S2S3S41110003. 嵌套的条件语句嵌套的条件语句 语句格式:语句格式: if(表达式表达式1) S1 else if(表达式表达式2) S2 else if(表达式表达式3) S3 else S4 执行过程执行过程例例3.5 从键盘输入一个实数。若该数为正数,输出从键盘输入一个实数。若该数为正数,输出1; 若为负数输出若为负数输出-1;否则,输出;否则,输出0。3.4.1 选择结构语句选择结构语句 if后面
16、的表达式可以是逻辑表达式、关系表达式、赋值表后面的表达式可以是逻辑表达式、关系表达式、赋值表达式等,达式等,其值非其值非0时等同于时等同于1,表示条件成立;否则为,表示条件成立;否则为0表表示条件不成立示条件不成立。 if和和else后的语句后的语句可以是单个语句,也可以是复合语句,可以是单个语句,也可以是复合语句,还可以是空语句还可以是空语句。 if与与else的配对规则:的配对规则:else总是与其前面的同一个块中的最总是与其前面的同一个块中的最近的尚未配对的近的尚未配对的if配对配对。 例如:例如:int a=5,b=10,c=20,d=0;if(a=b) if(b5)a=30;d=10
17、0;else d=200;else d=300;a的值为的值为30,d的值为的值为1003.4.1 选择结构语句选择结构语句例例3.6 求一元二次方程求一元二次方程ax2+bx+c=0的解。其中系数的解。其中系数a、b、c由键盘输入。由键盘输入。 可用数学库函数可用数学库函数sqrt(参数)求参数的平方根,(参数)求参数的平方根, 此时应有头文件:此时应有头文件:#include例例3.7 判断从键盘输入的字符的种类。假设字符分为判断从键盘输入的字符的种类。假设字符分为5类:数字、大写字母、小写字母、控制字符(其类:数字、大写字母、小写字母、控制字符(其ASCII值小于值小于32)和其他字符。
18、)和其他字符。3.4.1 选择结构语句选择结构语句 基本格式:基本格式: switch (表达式表达式) case 常量表达式常量表达式 1:语句序列:语句序列1 case 常量表达式常量表达式 2:语句序列:语句序列2 case 常量表达式常量表达式 n:语句序列:语句序列n default : 语句序列语句序列n+1 执行过程执行过程以以case中的中的常量表达式常量表达式的值为入口标号,由此开始顺序执行,的值为入口标号,由此开始顺序执行,遇到遇到break语句时语句时结束结束switch语句的执行。语句的执行。二、开关语句二、开关语句 switch 后面后面的表达式通常为的表达式通常为变
19、量表达式变量表达式; case 后面后面的的表达式必须为表达式必须为常量表达式常量表达式; 上述表达式值的类型上述表达式值的类型通常为整型通常为整型; default分支不是必须的,习惯上放在最后面分支不是必须的,习惯上放在最后面,当放在前,当放在前面满足条件被执行时,若没有面满足条件被执行时,若没有break,则后续,则后续case会被继会被继续执行,不管是否匹配。续执行,不管是否匹配。 例如:例如:当当a的值为的值为5时,输出时,输出25150当当a的值为的值为10时,输出时,输出150当当a的值为的值为15时,输出时,输出5二、二、 开关语句开关语句int a,m=15,n=10;cin
20、a;switch(a) default:coutm-n; case 5:coutm+n; case 10:couta;switch(a) case 5:coutm+n; case 10:coutm*n;break; default:cout=b?a:b;等同于:等同于: if(a=b)max=a; else max=b;三、条件运算符三、条件运算符三目运算符允许嵌套使用,如三目运算符允许嵌套使用,如ab?ac?a:c:bc?b:c; 当需要程序重复地做相似工作时,可通过循环当需要程序重复地做相似工作时,可通过循环语句实现。语句实现。该类问题通常有该类问题通常有4个要素:个要素: 循环变量的初始
21、化;循环变量的初始化; 循环的条件;循环的条件; 循环体循环体 (循环过程中要做的事);(循环过程中要做的事); 改变循环控制变量的值。改变循环控制变量的值。例如:求例如:求S=1+2+3+.+100的值。的值。算法:算法:S=S+i(i=1,2,3,.,100) S=0i=1 i=100 S=S+i(S+=i) i=i+1(i+)3.4.2 循环结构语句循环结构语句一、一、while 语句语句 语句格式语句格式while (表达式) S 循环体,可以是单语句、复合语循环体,可以是单语句、复合语句,甚至空语句句,甚至空语句 执行过程执行过程 先判断表达式的值,先判断表达式的值,非非 0 时执行
22、语句时执行语句S;然;然后再判断表达式的值,后再判断表达式的值,直至表达式的值为直至表达式的值为0时,时,退出循环。退出循环。表达式表达式STF例例3.9 用while语句求S=1+2+3+.+100的值。 3.4.2 循环结构语句循环结构语句二、二、do.while 语句语句 语句格式do S while (表达式表达式); 执行过程执行过程先执行语句,再判断条件;先执行语句,再判断条件;当表达式非当表达式非0时,继续执行时,继续执行循环体;直至表达式为循环体;直至表达式为0时,时,退出循环。退出循环。STF表达式表达式例例3.10用do.while语句求S=1+2+3+.+100的值。 3
23、.4.2 循环结构语句循环结构语句三、三、 for 语句语句 语句格式语句格式for (表达式表达式1;表达式;表达式2;表达式;表达式3) S 执行过程执行过程执行表达式执行表达式1;执行表达式执行表达式2 (循环条件);(循环条件);表达式表达式2 为非为非0时,先执行循环时,先执行循环体体S,然后执行表达式,然后执行表达式3,再执行,再执行表达式表达式2 ;当表达式当表达式2为为0时,退出循环。时,退出循环。表达式表达式1TF表达式表达式2S表达式表达式3例例3.11 用for语句求S=1+2+3+.+100的值。for语句头部的三个表达式皆可语句头部的三个表达式皆可以空缺以空缺3.4.
24、2 循环结构语句循环结构语句例例3.12 用迭代法求x= 的近似值。 算法(迭代公式):Xn+1=(Xn+a/Xn)/2 ; 当| Xn+1-Xn | 0为止。 可设定一个起始初值X0(如a/2)。a3.4.2 循环结构语句循环结构语句四、四、 循环嵌套循环嵌套 循环语句的循环体又包含一个循环语句。循环语句的循环体又包含一个循环语句。例例3.13:打印如下所示的九九乘法表:打印如下所示的九九乘法表: 1 2 3 4 5 6 7 8 91 12 2 43 3 6 94 4 8 12 16.9 9 18 27 36 45 54 63 72 813.4.2 循环结构语句循环结构语句 结束循环语句或结束循环语句或switch语句的执行。语句的执行。 结束本次循环,进入下一次循环。结束本次循环,进入下一次循环。for(int i=1;i=10;i+) for(int i=1;i=10;i+) if(i%3=0)break; if(i%3=0)continue; coutit; coutit; 3.4.3 控制执行顺序的语句控制执行顺序的语句 图3.18 图3.193、exit()和和abort()函数函数(1) exit()函数函数格式:格式:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共厨房采购合同范例
- 加盟培训服务合同范本
- 企业赞助经费合同范本
- 协助员工正式合同范本
- 2025-2030年复古铜质游戏桌企业制定与实施新质生产力战略研究报告
- 出租餐馆合同范例
- 个人车辆质押合同范例
- 2025-2030年地下矿车自动驾驶系统行业跨境出海战略研究报告
- 2025-2030年可植入式脑机接口技术企业制定与实施新质生产力战略研究报告
- 2025-2030年变形书桌床组合行业跨境出海战略研究报告
- 2023外贸业务协调期中试卷
- GB/T 16475-1996变形铝及铝合金状态代号
- GB 4706.20-2004家用和类似用途电器的安全滚筒式干衣机的特殊要求
- 无纸化会议系统解决方案
- 佛教空性与缘起课件
- 上海铁路局劳动安全“八防”考试题库(含答案)
- 《愿望的实现》教学设计
- 效率提升和品质改善方案
- 中山大学抬头信纸中山大学横式便笺纸推荐信模板a
- 义务教育学科作业设计与管理指南
- 《汽车发展史》PPT课件(PPT 75页)
评论
0/150
提交评论