版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 程序初步设计,算法的概念: 程序=算法+数据结构 数据结构是对于数据的描述,算法是对于操作的描述。 算法分类:数值算法和非数值算法。 算法的表示: 自然语言 流程图 伪代码 用计算机语言表示算法,3.1 面向过程的程序设计和算法,一个程序包含一个或者多个程序单位。 每个程序单位由以下几个部分组成: 预处理命令 声明部分 函数 程序主要包括数据描述(声明语句实现)和数据操作(执行语句实现) 数据描述主要包括数据类型声明、函数和变量的定义、变量的初始化等,数据操作包括输入输出,运算等。,3.2 C+程序和语句,C+程序中最小的独立单位是语句(statement)。它相当于一篇文章中的一个句
2、子。句子是用句号结束的。语句一般是用分号结束的(复合语句是以右花括号结束的)。 C+语句可以分为以下4种:声明语句、执行语句、空语句、复合语句 1. 声明语句如int a,b;,3.2 C+程序和语句,2. 执行语句 (1) 控制语句 if( )else (条件语句) for( ) (循环语句) while( ) (循环语句) dowhile( ) (循环语句) continue (结束本次循环语句) break (中止执行或循环语句) switch (多分支选择语句) goto (转向语句) return (从函数返回语句),3.2 C+程序和语句,(2) 函数和流对象调用语句。 如: so
3、rt(x,y,z); /假设已定义了sort函数,它有3个参数 coutxendl; /流对象调用语句 (3) 表达式语句。 如: i=i+1; /是一个赋值语句 任何一个表达式的最后加一个分号都可以成为一个语句。一个语句必须在最后出现分号。 3. 空语句 ; 即只有一个分号的语句,它什么也不做。有时用来做被转向点,或循环语句中的循环体。,3.2 C+程序和语句,4. 复合语句 可以用 把一些语句括起来成为复合语句。如下面是一个复合语句。 z=x+y; if(z100) z=z-100; coutz; 注意:复合语句中最后一个语句中最后的分号不能省略。,3.2 C+程序和语句,(1) 分析下列
4、赋值语句: int d=5; a=b=c=d; (2)赋值表达式与赋值语句. if(a=b)0) cout000) cout0endl; 因为在if的条件中不能包含赋值语句。,3.3 赋值语句,C+的输入、输出操作由 I/O 流库提供 cin 和 cout 是流库预定义的两个标准对象,分别连接键盘和屏幕 它们在头文件 iostream 中声明,3.4 C+的输入与输出,语句格式,cout 表达式1 表达式2 表达式n ;,cout作用是将需要输出的内容显示到屏幕上。,3.4.1 输入流与输出流的基本操作,cout 表达式1 表达式2 表达式n ;,语句格式,cout作用是将需要输出的内容显示到
5、屏幕上。,3.4.1 输入流与输出流的基本操作,cout 表达式1 表达式2 表达式n ;,语句格式,cout作用是将需要输出的内容显示到屏幕上。,3.4.1 输入流与输出流的基本操作,在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。在执行cout语句时,先把插入的数据顺序存放在输出缓冲区中,直到输出缓冲区满或遇到cout语句中的endl(或n,ends,flush)为止,此时将缓冲区中已有的数据一起输出,并清空缓冲区。输出流中的数据在系统默认的设备(一般为显示器)输出。,3.4.1 输入流与输出流的基本操作,一个cout语句可以分写成若干行。 如 coutThis i
6、s a simple C+ program.endl; 可以写成 coutThis is /注意行末尾无分号 a C+ program. endl; /语句最后有分号 也可写成多个cout语句, 即 coutThis is ; /语句末尾有分号 cout a C+ ; cout program.; coutendl; 以上3种情况的输出均为 This is a simple C+ program.,3.4.1 输入流与输出流的基本操作,在用cout输出时,用户不必通知计算机按何种类型输出,系统会自动判别输出数据的类型,使输出的数据按相应的类型输出。 如已定义a为int型,b为float型,c为
7、char型,则 coutaendlb endl cendl; 会以下面的形式输出: 4 345.789 a,3.4.1 输入流与输出流的基本操作,与cout类似,一个cin语句可以分写成若干行。如 cinabcd; 可以写成 cina /注意行末尾无分号 b /这样写可能看起来清晰些 c d; 也可以写成 cina; cinb; cinc; cind; 以上3种情况均可以从键盘输入: 1 2 3 4 也可以分多行输入数据:,3.4.1 输入流与输出流的基本操作,1 2 3 4 在用cin输入时,系统也会根据变量的类型从输入流中提取相应长度的字节。如有 char c1,c2; int a; fl
8、oat b; cinc1c2ab; 如果输入 1234 56.78 注意: 34后面应该有空格以便和56.78分隔开。,3.4.1 输入流与输出流的基本操作,也可以按下面格式输入: 1 2 34 56.78 (在1和2之间有空格) 不能用cin语句把空格字符和回车换行符作为字符输入给字符变量,它们将被跳过。如果想将空格字符或回车换行符(或任何其他键盘上的字符)输入给字符变量,可以用3.4.3节介绍的getchar函数。 在组织输入流数据时,要仔细分析cin语句中变量的类型,按照相应的格式输入,否则容易出错。,3.4.1 输入流与输出流的基本操作,例:分析以下各语句的输出结果 cout“Hell
9、onI am Zhang Huan”; cout“Hello”n“I am Zhang Hua”n; cout“Hello”endl“I am Zhang Hua”endl; cout“Hello” endl “I am Zhang Hua” endl;,cout作用是将需要输出的内容显示到屏幕上。,3.4.1 输入流与输出流的基本操作,注意:一个插入运算符()后面只能有一个输出项。,例: int a = 1, b = 2 , c = 3 ; couta , b , c ; 正确写法: coutabc ; couta+b+c; /正确,这是一个表达式,作为一项,错误!,cout作用是将需要输出
10、的内容显示到屏幕上。,3.4.1 输入流与输出流的基本操作,/例 #include using namespace std; int main( ) int a = 2, b = 3 ; char s = c ; couta=aendl b=bendl; couts=sendl; return 0 ; ,3.4.1 输入流与输出流的基本操作,/例 #include using namespace std; int main( ) int a = 2, b = 3 ; char s = c ; couta=aendl b=bendl; couts=sendl; return 0 ; ,3.4.1
11、 输入流与输出流的基本操作,/例 #include using namespace std; int main( ) int a = 2, b = 3 ; char s = c ; couta=aendl b=bendl; couts=sendl; return 0 ; ,输出整型变量a的值,3.4.1 输入流与输出流的基本操作,/例 #include using namespace std; int main( ) int a = 2, b = 3 ; char s = c ; couta=aendl b=bendl; couts=sendl; return 0 ; ,换行,3.4.1 输入
12、流与输出流的基本操作,/例 #include using namespace std; int main( ) int a = 2, b = 3 ; char s = c ; couta=aendl b=bendl; couts=sendl; return 0 ; ,3.4.1 输入流与输出流的基本操作,/例 #include using namespace std; int main( ) int a = 2, b = 3 ; char s = c ; couta=aendl b=bendl; couts=sendl; return 0 ; ,输出整型变量b的值,3.4.1 输入流与输出流的
13、基本操作,/例 #include using namespace std; int main( ) int a = 2, b = 3 ; char s = c ; couta=aendl b=bendl; couts=sendl; return 0 ; ,换行,3.4.1 输入流与输出流的基本操作,/例 #include using namespace std; int main( ) int a = 2, b = 3 ; char s = c ; couta=aendl b=bendl; couts=sendl; return 0 ; ,3.4.1 输入流与输出流的基本操作,/例 #incl
14、ude using namespace std; int main( ) int a = 2, b = 3 ; char s = c ; couta=aendl b=bendl; couts=sendl; return 0 ; ,输出字符变量s的值,3.4.1 输入流与输出流的基本操作,/例 #include using namespace std; int main( ) int a = 2, b = 3 ; char s = c ; couta=aendl b=bendl; couts=sendl; return 0 ; ,换行,3.4.1 输入流与输出流的基本操作,cin的作用是读取用户
15、从键盘键入的内容,存入指定的变量中。,语句格式,cin 变量1 变量2 变量n ;,3.4.1 输入流与输出流的基本操作,cin 变量1 变量2 变量n ;,标准输入流对象,语句格式,cin的作用是读取用户从键盘键入的内容,存入指定的变量中。,3.4.1 输入流与输出流的基本操作,cin 变量1 变量2 变量n ;,语句格式,cin的作用是读取用户从键盘键入的内容,存入指定的变量中。,3.4.1 输入流与输出流的基本操作,cin 变量1 变量2 变量n ;,语句格式,cin的作用是读取用户从键盘键入的内容,存入指定的变量中。,3.4.1 输入流与输出流的基本操作,例如,int a ; char
16、 s ; cin a s ;,cin的作用是读取用户从键盘键入的内容,存入指定的变量中。,3.4.1 输入流与输出流的基本操作,例如,int a ; char s ; cin a s ;,cin的作用是读取用户从键盘键入的内容,存入指定的变量中。,3.4.1 输入流与输出流的基本操作,例如,int a ; char s ; cin a s ;,cin的作用是读取用户从键盘键入的内容,存入指定的变量中。,3.4.1 输入流与输出流的基本操作,例如,int a ; char s ; cin a s ;,相当于: a = 35;,cin的作用是读取用户从键盘键入的内容,存入指定的变量中。,3.4.1
17、 输入流与输出流的基本操作,例如,int a ; char s ; cin a s ;,相当于: a = 35;,cin的作用是读取用户从键盘键入的内容,存入指定的变量中。,3.4.1 输入流与输出流的基本操作,例如,int a ; char s ; cin a s ;,相当于: s = B;,相当于: a = 35;,cin的作用是读取用户从键盘键入的内容,存入指定的变量中。,3.4.1 输入流与输出流的基本操作,例如,int a , b ; cin a + b ;,可以吗? 为什么?,错误!,cin的作用是读取用户从键盘键入的内容,存入指定的变量中。,3.4.1 输入流与输出流的基本操作,
18、注意:一个提取运算符()后面只能提取一个输入项,例: int a , b , c ; cina , b , c ; 正确写法: cinabc ; 或 cina; cinb; cinc;,错误!,cin的作用是读取用户从键盘键入的内容,存入指定的变量中。,3.4.1 输入流与输出流的基本操作,赋值符的优先级低于插入符: cout a=b ;/错误 可以添加括号改变优先级: cout ( a = b ) ;/正确,注意:,3.4.1 输入流与输出流的基本操作,常用的输出格式控制符 需要包含头文件iomanip,3.4.2 在输入流与输出流中使用控制符,常用的输出格式控制符,例: int a = 3
19、6; coutdecaendl; couthexaendl; coutoctaendl;,3.4.2 在输入流与输出流中使用控制符,常用的输出格式控制符,例: #include #include using namespace std; int main() double b = 123.4567; coutbendl; coutsetprecision(4)bendl; coutsetprecision(7)bendl; coutsetw(12)bendl; coutsetfill(*)setw(12)bendl; return 0; ,3.4.2 在输入流与输出流中使用控制符,常用的输出格
20、式控制符 需要包含头文件iomanip,3.4.2 在输入流与输出流中使用控制符,/例: 输出双精度数 double a=123.456789012345; 对a赋初值 (1) couta; 输出: 123.456 (2) coutsetprecision(9)a; 输出: 123.456789 (3) coutsetprecision(6); 恢复默认格式(精度为6) (4) cout setiosflags(iosfixed); 输出: 123.456789 (5) coutsetiosflags(iosfixed)setprecision(8)a;| 输出: 123.45678901 (
21、6) coutsetiosflags(iosscientific)a; 输出: 1.234568e+02 (7) coutsetiosflags(iosscientific)setprecision(4)a; 输出: 1.2346e02,3.4.2 在输入流与输出流中使用控制符,/例:整数输出 int b=123456;对b赋初值 (1) coutb; 输出: 123456 (2) couthexb; 输出: 1e240 (3) coutsetiosflags(iosuppercase)b; 输出: 1E240 (4) coutsetw(10)b,b; 输出:123456,123456 (5)
22、 coutsetfill(*)setw(10)b; 输出: *123456 (5) coutsetiosflags(ios:left)setfill(*)setw(10)b; 输出: 123456* (6) coutsetiosflags(iosshowpos)b; 输出: +123456,3.4.2 在输入流与输出流中使用控制符,如果在多个cout语句中使用相同的setw(n),并使用setiosflags(iosright),可以实现各行数据右对齐,如果指定相同的精度,可以实现上下小数点对齐。 例3.1 各行小数点对齐。 #include #include using namespace
23、std; int main( ) double a=123.456,b=3.14159,c=-3214.67; coutsetiosflags(iosfixed)setiosflags(iosright)setprecision(2); coutsetw(10)aendl; coutsetw(10)bendl; coutsetw(10)cendl; return 0; ,3.4.2 在输入流与输出流中使用控制符,?,输出如下: 123.46 (字段宽度为10,右对齐,取两位小数) 3.14 -3214.67 先统一设置定点形式输出、取两位小数、右对齐。这些设置对其后的输出均有效(除非重新设置)
24、,而setw只对其后一个输出项有效,因此必须在输出a,b,c之前都要写setw(10)。,3.4.2 在输入流与输出流中使用控制符,putchar(c): 向终端输出一个字符;,3.4.3 用getchar和putchar函数进行字符的输入和输出,例3.2 输出单个字符 #include using namespace std; int main() char a,b,c; a=B;b=O;C=Y; putchar(a);putchar(b);putchar(c);putcahr(n); putchar(66);putchar(79);putchar(89);putchar(10); ,输出换
25、行符,还可以输出其他转义字符,getchar(c): 输入一个字符; 一般形式:getchar( ),函数的值就是从输入设备得到的字符,3.4.3 用getchar和putchar函数进行字符的输入和输出,例3.3 输入单个字符 #include using namespace std; int main() char c; c=getchar();putchar(c+32);putchar(n); return 0; ,3.4.3 用getchar和putchar函数进行字符的输入和输出,getchar()只能接收一个字符,得到的字符可以赋给一个字符型或者整型的变量,也可以作为表达式的一部分
26、。,putchar(getchar()+32); putchar函数输出字符,输出的是字符a,coutgetchar(); 输入小写a,输出是97;getchar()函数读入的是字符的ASCII码,如果没有赋给字符变量,cout就以整数形式输出。 cout(c=getchar();,/例3.5 求一元二次方程式ax2+bx+c=0的根。a,b,c的值在运行时由键盘输入,它们的值满足b2-4ac0。,3.5 编写顺序结构的程序,#include #include using namespace std; int main( ) float a,b,c,x1,x2; cinabc; x1=(-b+
27、sqrt(b*b-4*a*c)/(2*a); x2=(-b-sqrt(b*b-4*a*c)/(2*a); coutx1=x1endl; coutx2=x2endl; return 0; ,往往要求根据某个指定的条件是否满足来决定执行的内容。例如: 购物在1000元以下的打九五折,1000元及以上的打九折。 C+提供if语句来实现这种条件选择。如 If(amount1000) tax=0.95; /amount代表购物总额,tax代表折扣 else tax=0.9; /若amount1000,条件满足,tax=0.95,否则tax=0.9 pay=amount*tax; /pay为实付款 流程可
28、以用图3.4表示。,3.6 关系运算和逻辑运算,图3.4,C+的关系运算符有: (大于) = (大于或等于) = (等于) != (不等于) 优先级相同 (低),3.6 关系运算和逻辑运算,关系运算符的优先级低于算术运算符。 关系运算符的优先级高于赋值运算符。,3.6 关系运算和逻辑运算,例如: ca+b ab=c a=bc,等效于 c(a+b),等效于(ab)=c,等效于a=(bc),等效于a=(bc),用关系运算符将两个表达式连接起来的式子,称为关系表达式。 关系表达式的一般形式可以表示为: 表达式 关系运算符 表达式 其中的“表达式”可以是算术表达式或关系表达式、逻辑表达式、赋值表达式、
29、字符表达式。 例如,下面表达式是否是合法的关系表达式? ab, a+bb+c,(a=3)(b=5), ab)(bc),3.6 关系运算和逻辑运算,关系表达式和逻辑表达式的值是一个逻辑值。 逻辑值只有两个: 真 成立 为 true(1) 假 不成立 为 false(0) 表达式求值过程中,所有非0值都作为逻辑真true。,3.6 关系运算和逻辑运算,如果有以下赋值表达式,如果a=1,b=2,c=3,请求出d、f的值: d=ab f=abc,3.6 关系运算和逻辑运算,d的值为0,f的值为0,关系运算是指对两个运算量的大小进行比较。,关系运算符: 大于= 大于等于 小于 = 小于等于= 等于!= 不等于 优先级: 低于算术运算类,高于赋值类 结合性: 从左向右结合,3.6.1 关系运算和关系表达式,例: 若有int x = 2 , y = 3 , z ; 则 x = = y x != y,值为 0,值为 1,z 的值为 1,z = 2 = 3 = 5,z = 0 = 5,z = 1,z = 3 - 1 = x + 1 = y + 2,3.6.1 关系运算和关系表达式,(1)设 a = 0, b = 0.5, x = 0.3 表达式 a = x = b 的结果为:,0,1,注意: 说明数学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司内部申诉管理制度
- 公司内部缴税制度模板
- 六年级下册数学大单元结构化复习:空间观念进阶与跨学科应用导学案
- 公司内部调货管理制度
- 公司内部资金转账制度
- 小学美术二年级下册《花儿朵朵》单元起始课教学设计
- 2025-2026学年运算思维教学设计语文
- 公证内部调档制度
- 2025-2026学年小学编程教案
- 公司文化管理信息系统建设方案
- ip电话施工方案
- 《恶意》读书分享演讲稿模版
- DB5301∕T 23-2019 园林绿化工程验收规范
- 【2024-11月更新】武术18课时大单元(教学设计)
- 河南省安全生产职责清单
- 毕业设计(论文)-水泵密封圈冲压模具设计
- 2025至2030中国海洋牧场行业产业运行态势及投资规划深度研究报告
- 痰液粘稠度护理
- T/CECS 10214-2022钢面镁质复合风管
- 马工程西方经济学(精要本第三版)教案
- 北京市朝阳区2024-2025学年高三下学期一模试题化学试卷(含答案)
评论
0/150
提交评论