




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章程序设计初步3.1面向过程的程序设计和算法3.2C++程序结构和语句3.3
C++的输入与输出3.4
C++程序的控制结构3.5在面向过程的程序设计中,程序设计者必须指定计算机执行的具体步骤,清晰程序要“做什么”,清晰“怎么做”,并写出一个个语句,安排好它们的执行顺序。步骤要合理,保证它的正确性和具有较高的效率,这就是算法(algorithm)需要解决的问题。3.1面向过程的程序设计和算法一个面向过程的程序应包括以下两方面内容:(1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(datastructure)。(2)对操作的描述。即操作步骤,也就是算法(algorithm)。算法是处理问题的一系列的步骤。对于面向过程的程序,可以用下面的公式表示:程序=算法+数据结构如:处理的数据如何读入与存放?如何处理?结果如何存放与输出?(必须考虑与设计清晰!!!)(3)算法可分为两大类别:数值算法和非数值算法。数值算法的目的是求数值解。非数值算法包括的面十分广泛,最常见的是用于事务管理领域。C++既支持面向过程的程序设计,又支持面向对象的程序设计。无论面向过程的程序设计还是面向对象的程序设计,都离不开算法设计。3.1.1算法的概念1、程序结构
一个程序包含一个或多个程序单位,C++程序单位一般由3个部分组成:
(1)预处理指令。如#include和#define指令。
(2)全局声明,如果需要时。
(3)函数。例3.1:#include<iostream>usingnamespacestd;inta=3;intmain(){ floatb;b=4.5;cout<<a<<b;return0;}3.2
C++程序结构和语句2、语句
(1)说明语句
(3)空语句,单独的一个分号。 (4)复合语句
一对{}之间的若干个语句的组合,如:
3.2
C++程序结构和语句如inta;(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和流运算符,就必须:#include<iostream>为了叙述方便,常常把由cin和流提取运算符“>>”实现输入的语句称为输入语句或cin语句;把由cout和流插入运算符“<<”实现输出的语句称为输出语句或cout语句。
流运算符相当于一个输入或输出函数,由对象调用之。cout语句的一般格式为cout<<表达式1<<表达式2<<……<<表达式n;cin语句的一般格式为cin>>变量1>>变量2>>……>>变量n;输出流中的数据在系统默认的设备(一般为显示器)输出。3.3.1输入流与输出流的基本操作例如: inti; floatx;cin>>i>>x;cout<<i<<x;运行时输入:1234.5,
若输入:34.512,
charc1,c2,c3;cin>>c1>>c2>>c3;若输入:abc,则c1、c2、c3的值分别为字符a、b、c若输入:‘a’‘b’‘c’,则c1、c2、c3的值分别为字符‘、a、’若输入:abc,则c1、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在输入流与输出流中使用控制符C++中用于输入和输出单个字符的函数:其中最常用的有getchar函数和putchar函数。1、putchar函数(字符输出函数)putchar函数的作用是向终端输出一个字符。如 putchar(c);
它输出字符变量c的值。2、getchar函数(字符输入函数)此函数的作用是从终端输入一个字符。其一般形式为getchar(),函数的值就是从输入设备得到的字符。3.3.3用getchar和putchar函数进行字符的输入和输出例3.2输出单个字符。#include<iostream>//或者#include<stdio.h>usingnamespacestd;intmain(){chara,b,c;a=‘B’;b=‘O’;c=getchar();
putchar(a);putchar(b);putchar(c+32);putchar(‘\n’);return0;}用putchar可以输出转义字符。如果从键盘输入大写字母’A’并按回车键,第三个输出的结果在屏幕上实际显示就是小写字母’a’。请注意,getchar()只能接收一个字符。getchar函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。3.4
C++程序的基本结构1.顺序结构2.选择结构3.循环结构
顺序结构a块b块AB选择结构a块a块成立不成立条件AB条件a块成立不成立AB当型循环结构条件a块成立不成立AB直到型循环结构条件S110S22.双选条件语句(if...else语句)
·语句格式:
if(表达式){S1}
else{S2} ·执行过程例3.4从键盘输入一个数。若该数为正数,输出1;
否则输出-1。3.4.1选择结构语句条件1条件2条件3S1S2S3S41110003.嵌套的条件语句
·语句格式:
if(表达式1){S1}
elseif(表达式2){
S2}
elseif(表达式3){S3}
else{S4} ·执行过程例3.5从键盘输入一个实数。若该数为正数,输出1;
若为负数输出-1;否则,输出0。3.4.1选择结构语句if后面的表达式可以是逻辑表达式、关系表达式、赋值表达式等,其值非0时等同于1,表示条件成立;否则为0表示条件不成立。if和else后的语句可以是单个语句,也可以是复合语句,还可以是空语句。if与else的配对规则:else总是与其前面的同一个块中的最近的尚未配对的if配对。例如: inta=5,b=10,c=20,d=0;
if(a=b)
if(b<c){
if(a>5)a=30;
d=100;
}
elsed=200;
elsed=300;a的值为30,d的值为1003.4.1选择结构语句基本格式:switch(表达式){ case常量表达式1:语句序列1 case常量表达式2:语句序列2┆ case常量表达式n:语句序列n default: 语句序列n+1}执行过程以case中的常量表达式的值为入口标号,由此开始顺序执行,遇到break语句时结束switch语句的执行。二、开关语句switch后面的表达式通常为变量表达式;case后面的表达式必须为常量表达式;上述表达式值的类型通常为整型;default分支不是必须的,习惯上放在最后面,当放在前面满足条件被执行时,若没有break,则后续case会被继续执行,不管是否匹配。例如:
当a的值为5时,输出25150当a的值为10时,输出150当a的值为15时,输出5二、
开关语句inta,m=15,n=10;
cin>>a;
switch(a){
default:cout<<m-n;
case5:cout<<m+n;
case10:cout<<m*n;break;
}inta,m=15,n=10;
cin>>a;
switch(a){
case5:cout<<m+n;
case10:cout<<m*n;break;
default:cout<<m-n;
}例3.8设计一个程序,按下列规则,将从键盘上输入的百分制成绩,转换成对应的五分制成绩,并输出。转换规则:
90分以上为A;
80~89分为B;
70~79分为C;
60~69分为D;
60分以下为E。二、开关语句
当需要程序重复地做相似工作时,可通过循环语句实现。 该类问题通常有4个要素:
·循环变量的初始化;
·循环的条件;
·循环体
(循环过程中要做的事);
·改变循环控制变量的值。 例如:求S=1+2+3+...+100的值。 算法:S=S+i(i=1,2,3,...,100)S=0 i=1i<=100S=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循环结构语句例3.12用迭代法求x=的近似值。算法(迭代公式):Xn+1=(Xn+a/Xn)/2;当|Xn+1-Xn|<10-5(规定的精度)时,Xn+1就是所求的x;要求对键盘输入的a作合法性检查,直到a>0为止。可设定一个起始初值X0(如a/2)。3.4.2循环结构语句四、
循环嵌套 循环语句的循环体又包含一个循环语句。例3.13:打印如下所示的九九乘法表:
123456789
11
224
3369
4481216
......
9918273645546372813.4.2循环结构语句1、break语句结束循环语句或switch语句的执行。2、continue语句结束本次循环,进入下一次循环。例如:比较下列程序段的差异。for(inti=1;i<=10;i++) for(inti=1;i<=10;i++)
{ {
if(i%3==0)break; if(i%3==0)continue;
cout<<i<<‘\t’; cout<<i<<‘\t’;} }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<<“Pleaseinputpassword:”;while(count<3){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品生产GMP规范培训教材详解
- 电商平台客户服务体验优化方案
- 高效会议组织与执行实务
- 公司股东股份变更决议书标准范本
- 施工现场安全管理规范与实践
- 土建办公楼整改施工方案
- 小学升初中数学综合能力检测试卷解析
- 砼污水管线施工方案范本
- 高考语文古代文学知识专题训练
- 理石背景墙基层施工方案
- 2025贵州省二手房买卖合同范本
- 学堂在线 人像摄影 章节测试答案
- 2025至2030全球及中国车辆排放传感器行业发展趋势分析与未来投资战略咨询研究报告
- 直管到户管理办法
- 2025门窗买卖销售订购确认书
- DGTJ08-2310-2019 外墙外保温系统修复技术标准
- 软件开发分包管理措施
- 2025至2030中国碳刷行业产业运行态势及投资规划深度研究报告
- 新生儿喉罩应用技术规范
- 2025年富通集团有限公司校园招聘模拟试题完整
- 汽车衡过磅管理制度
评论
0/150
提交评论