




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 程序设计初步3.1 面向过程的程序设计和算法3.2 C+程序结构和语句3.3 C+的输入与输出3.4 C+程序的控制结构3.5 程序举例在面向过程的程序设计中,程序设计者必须指定计算机执行的具体步骤,清晰程序要“做什么”,清晰“怎么做”,并写出一个个语句,安排好它们的执行顺序。步骤要合理,保证它的正确性和具有较高的效率,这就是算法(algorithm)需要解决的问题。3.1 面向过程的程序设计和算法一个面向过程的程序应包括以下两方面内容:(1) 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。(2) 对操作的描述。即操作步骤,也就是算
2、法(algorithm)。算法是处理问题的一系列的步骤。对于面向过程的程序,可以用下面的公式表示: 程序=算法+数据结构 如:处理的数据如何读入与存放?如何处理?结果如何存放与输出?(必须考虑与设计清晰!)(3)算法可分为两大类别:数值算法和非数值算法。数值算法的目的是求数值解。非数值算法包括的面十分广泛,最常见的是用于事务管理领域。C+既支持面向过程的程序设计,又支持面向对象的程序设计。无论面向过程的程序设计还是面向对象的程序设计,都离不开算法设计。3.1.1 算法的概念1、自然语言2、流程图3、伪代码 介于自然语言和计算机程序设计语言之间的文字和符号来描述算法。一般无固定、严格的语法规则,
3、只须把意思表达清楚,并且要书写的格式要写成清晰易读的形式。4、计算机语言表示3.1.2 算法的表示1、程序结构 一个程序包含一个或多个程序单位,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)复合语句 一对 之间的若干个语句的组合,如:3. 2 C+程序结
4、构和语句如 int a;(2)执行语句控制语句函数调用语句,如 sort(x,y,z);表达式语句,如 i=i+1;t=a; a=b; b=t; 相对内存,处理的数据如何进行输入和输出?输入和输出并不是C+语言中的正式组成成分。C和C+本身都没有为输入和输出提供专门的语句结构。输入输出不是由C+本身定义的,而是在编译系统提供的I/O库 中定义的。C+的输出和输入是用“流”(stream)的方式实现的。下图分别表示C+通过流进行输入输出的过程。3.3 C+的输入与输出 有关流对象cin、cout和流运算符的定义等信息是存放在C+的输入输出流库中的,因此使用cin、cout和流运算符,就必须: #
5、include 为了叙述方便,常常把由cin和流提取运算符“”实现输入的语句称为输入语句或cin语句; 把由cout和流插入运算符“”实现输出的语句称为输出语句或cout语句。 流运算符相当于一个输入或输出函数,由对象调用之。cout语句的一般格式为cout表达式1表达式2变量1变量2变量n;输出流中的数据在系统默认的设备(一般为显示器)输出。3.3.1 输入流与输出流的基本操作例如: int i; float x; cinix; coutic1c2c3;若输入:abc,则c1、c2、c3的值分别为字符a、b、c若输入: abc,则c1、c2、c3的值分别为字符、a、若输入:a b c,则c1
6、、c2、c3的值分别为字符a、b、c则i的值为12,x的值为34.5则i的值为34,x的值为0.5输出为:340.5 有时为了输入输出特殊的要求,如在输出实数时规定字段宽度,只保留两位小数,数据向左或向右对齐等。 C+提供了在输入输出流中使用的控制符(有的书中称为操纵符),见书中表3.1,P.54页。 需要注意的是: 如果使用了控制符,在程序单位的开头除了要加iostream头文件外,还要加iomanip头文件。3.3.2 在输入流与输出流中使用控制符设置输出内容的格式 用字符和字符串 coutntm“n”; cout“n=”n“,m=”mn;1020n=10,m=20 用setw()函数 (
7、 #include ) coutsetw(4)nsetw(4)mn; setw只对其后一个输出项有效10 20 用科学计数法表示实数(纯小数,小数后6位) cout.setf(ios:scientific,ios:floatfield); 输出十六进制/八进制整数 coutoctnthexmn; 只适用于整型数。12 14如 3.140000e+000C+中用于输入和输出单个字符的函数:其中最常用的有getchar函数和putchar函数。1、putchar函数(字符输出函数)putchar函数的作用是向终端输出一个字符。如putchar(c);它输出字符变量的值。2、getchar函数(字符
8、输入函数)此函数的作用是从终端输入一个字符。其一般形式为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可以输出转义字符。如果从键盘输入大写字母A并按回车键,第三个输出的结果在屏幕上实际显示就是
9、小写字母a。请注意,getchar( )只能接收一个字符。getchar函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。3. 4 C+程序的基本结构1. 顺序结构2. 选择结构3. 循环结构 顺序结构a块b块AB选择结构a块a块成立不成立条件AB条件a 块成立不成立AB当型循环结构条件a 块成立不成立AB直到型循环结构一、条件语句1. 单选条件语句(if语句) 语句格式:条 件 if(表达式) S 执行过程3.4.1 选择结构语句条件语句10例3.3 从键盘输入一个数,若该数为正数,输出1。条 件S110S22. 双选条件语句(if.else语句) 语句
10、格式: if(表达式) S1 else S2 执行过程例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后面的表达式可以是逻辑表达式、关系表达式、赋值表达式等,其值非0时等同于1,表示条件成立;否则为0表示条件不成立。if和else后的语句可以是单
11、个语句,也可以是复合语句,还可以是空语句。if与else的配对规则:else总是与其前面的同一个块中的最近的尚未配对的if配对。 例如:int a=5,b=10,c=20,d=0;if(a=b) if(b5)a=30;d=100;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值小于3
12、2)和其他字符。3.4.1 选择结构语句基本格式:switch (表达式)case 常量表达式 1:语句序列1 case 常量表达式 2:语句序列2 case 常量表达式 n:语句序列n default : 语句序列n+1执行过程以case中的常量表达式的值为入口标号,由此开始顺序执行,遇到break语句时结束switch语句的执行。二、开关语句switch 后面的表达式通常为变量表达式; case 后面的表达式必须为常量表达式;上述表达式值的类型通常为整型;default分支不是必须的,习惯上放在最后面,当放在前面满足条件被执行时,若没有break,则后续case会被继续执行,不管是否匹配。
13、 例如:当a的值为5时,输出25150当a的值为10时,输出150当a的值为15时,输出5二、 开关语句int a,m=15,n=10;cina;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个
14、要素: 循环变量的初始化; 循环的条件; 循环体 (循环过程中要做的事); 改变循环控制变量的值。例如:求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 时执行语句S;然后再判断表达式的值,直至表达式的值为0时,退出循环。表达式STF例3.9 用while语句求S=1+2+3+.+100的值。 3.4.2 循环结构语句二、do.while
15、语句语句格式do S while (表达式);执行过程先执行语句,再判断条件;当表达式非0时,继续执行循环体;直至表达式为0时,退出循环。STF表达式例3.10用do.while语句求S=1+2+3+.+100的值。 3.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.2
16、循环结构语句例3.12 用迭代法求x= 的近似值。 算法(迭代公式):Xn+1=(Xn+a/Xn)/2 ;当| Xn+1-Xn | 0为止。可设定一个起始初值X0(如a/2)。3.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 循环结构语句1、break 语句 结束循环语句或switch语句的执行。2、continue 语句 结束本次循环,进入下一次循环。例如:比较下列程序段的差
17、异。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()函数格式: exit(表达式);(2) abort()函数格式: abort() ;相同:终止程序的运行,将控制返还给操作系统; 使用头文件stdlib.h 。区别:exit()函数有参数,abort()函数无参数; exit()函数做结束前的收尾工作,abort()函 数直接结束C+程序的运行。3.4.3 控制执行顺序的语句例3.14 设计一个密码登录程序,用户至多尝试三次密码。 算法(流程图) 程序段: int pw=999,count=0,password; cout“Please input password:”; while (countpassword; if (pw=password) cout“Welcome!n”; exit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蜜饯制作与食品加工设备优化选择考核试卷
- 道路交通设施设计与施工考核试卷
- 缫丝行业的环保与绿色生产考核试卷
- 环境保护服务项目策划考核试卷
- 豪华住宅建筑设计与装修考核试卷
- 计算机租赁业务中的服务品质提升与客户满意度持续改进措施考核试卷
- 网红炸鸡品牌品牌授权终止及后续处理合同
- 同声传译租赁合同费用结算补充协议
- 海外房产买卖合同翻译及公证附件服务合同
- 拼多多平台店铺客户服务外包执行协议
- GB 19081-2025饲料加工系统粉尘防爆安全规范
- 新版人教版七年级下册地理课件 第九章 东半球其他的地区和国家 综合复习
- 2025年中考物理压轴题专项练习:创新性题型 (含解析)
- 手语日常会话课件
- 广东省揭阳市2025年中考语文模拟试卷五套【附参考答案】
- 2025届上海市中考联考生物试卷含解析
- 医院意识形态培训课件
- 医院危险品安全管理培训
- 酒店行业安全事故举报与奖励制度
- 食品经营许可证主要设备设施布局图及操作流程
- 《初中物理教材课后习题编制、使用现状调查与策略研究》
评论
0/150
提交评论