《程序设计初步》PPT课件.ppt_第1页
《程序设计初步》PPT课件.ppt_第2页
《程序设计初步》PPT课件.ppt_第3页
《程序设计初步》PPT课件.ppt_第4页
《程序设计初步》PPT课件.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 程序设计初步 第4章 函数与预处理 第5章 数组 第6章 指针 第7章 自定义数据类型,第2篇 面向过程的程序设计,第3章 程序设计初步,程序设计者要考虑: 1. 程序要“做什么” 2. 解决“怎么做” 根据程序要“做什么”的要求,写出一个个语句,安排好它们的执行顺序。,3.1 面向过程的程序设计和算法,离不开算法设计,面向过程的程序应包括以下两方面内容: (1) 对数据的描述。数据的类型和数据结构 (data structure)。 (2) 对操作的描述。操作步骤,也就是算法 (algorithm)。 对于面向过程的程序,可以用下面的公式表示: 程序=算法+数据结构 算法是处理问题的一系列的步骤,3.1.1 算法的概念,3.1.2 算法的表示,中文或英文等自然语言描述算法,容易产生歧义性程序设计中 一般不用自然语言表示算法,传统的流程图 结构化流程图,用图的形式表示算法,比较形象直观,修改 算法时,不大方便。,介于自然语言和计算机语言之间的文字和符号来描述算法,if x is positive then print x else print-x,1. 自然语言,2. 流程图,3. 伪代码,4. 用计算机语言表示算法 用一种计算机语言去描述算法,这就是计算机程序。,书写方便、格式紧凑,容易修改,便于向计算机语言算法(即程序)过渡,伪代码写算法并无固定的、严格的语法规则,并且书写的格式要写成清晰易读的形式,3.2 C+程序和语句,每一个程序单位由以下几个部分组成:,(1) 预处理命令,#include,#define,(2) 声明部分,数据类型和函数的声明,变量的定义,(3) 函数,函数首部,函数体,包含若干声明语句和执行语句。,#include /预处理命令 using namespace std; /在函数之外的声明部分 int a=3; /在函数之外声明,全局变量 int main( ) /函数首部 float b; /函数内的声明部分 b=4.5; /执行语句 coutab; /执行语句 return 0; /执行语句 ,C+ 的语句用来向计算机系统发出操作指令。,C +程序结构:,C+ 语句分类: 1. 声明语句 int a,b,c; float x,y=3.24; 2. 执行语句 控制语句:完成一定的控制功能。,If() else ,for() ,while() ,do while(),continue,break,switch,goto,return,函数调用语句: printf(“This is C”); coutxendl; /流对象调用语句 表达式语句: a=3; x+y; i+; 空语句: ; 复合语句:用 括起来的语句。 z=x+y; t=z/100; printf(“%f”,t) C +语言允许一行写几个语句,也允许一个 语句拆开写在几行上,3.3 赋值语句 赋值表达式加上一个分号构成。 1. “=” 是一个运算符。 2. 赋值表达式 赋值语句。 a=3+2 a=3+2; 3.3 C+数据的输入输出 1. 输入输出是以计算机主机为主体而言的。 2. C +输入和输出的操作是由函数实现的。 标准输入输出函数库 printf(格式输出)、 scanf(格式输入)、 putchar(输出字符)、getchar(输入字符) cout cin,图3.2 图3.3,cin、cout C+的输入输出流库 #include “” 流提取运算符 “ 实现输入的语句称为输入语句 cout 实现输出的语句称为输出语句,cout语句的一般格式为 cout变量1变量2变量n;,*3.4.1 输入流与输出流的基本操作,一个cout语句可以分写成若干行。如 coutThis is 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. 注意 不能用一个插入运算符“abcd;,可以写成 cina /注意行末尾无分号 b /这样写可能看起来清晰些 c d; 也可以写成 cina; cinb; cinc; cind; 以上3种情况均可以从键盘输入: 1 2 3 4 也可以分多行输入数据:,1 2 3 4 在用cin输入时,系统也会根据变量的类型从输入流中提取相应长度的字节。如有 char c1,c2; int a; float b; cinc1c2ab; 如果输入 1234 56.78,注意: 34后面应该有空格和56.78分隔开。 也可以按下面格式输入: 1 2 34 56.78 (在1和2之间有空格) 不可用cin语句把空格字符和回车换行符作为字符输入给字符变量,它们将被跳过。 如果想将空格字符或回车换行符(或任何其他键盘上的字符)输入给字符变量,可以用getchar函数。 在组织输入流数据时,要仔细分析cin语句中变量的类型,按照相应的格式输入,否则容易出错。,C+在输入输出流中可使用的控制符 如果使用了控制符,必须加预编译指令 #include #include 举例: 输出双精度数。 double a=123.456789012345;对a赋初值 (1) couta;输出: 123.457 (2) coutsetprecision(9)a;输出: 123.456789 (3) coutsetprecision(6);恢复默认格式(精度为6),*3.4.2 在输入流与输出流中使用控制符,(4) cout setiosflags(iosfixed); 输出: 123.456789 (5) coutsetiosflags(iosfixed)setprecision(8)a; 输出: 123.45678901 (6) coutsetiosflags(iosscientific)a; 输出: 1.234568e+02 (7) coutsetiosflags(iosscientific)setprecision(4)a; 输出: 1.2346e+02,以固定小数位输出,默认6位,指定8位小数位,指数形式输出,小数4位,下面是整数输出的例子: int b=123456;对b赋初值 (1) coutb; 输出: 123456 (2) couthexb; 输出: 1e240 (3) coutsetiosflags(iosuppercase)b; 输出: 1E240 (4) coutsetw(10)b,b; 输出: 123456,123456 (5) coutsetfill(*)setw(10)b; 输出: * 123456 (6) coutsetiosflags(iosshowpos)b; 输出: +123456,只对第一个变量起作用,正数前面加符号,setw(n),setiosflags(iosright),各行数据右对齐 上下小数点对齐,cout,#include #include using namespace 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; ,输出如下: 123.46 3.14 -3214.67,统一设置定点输出、取两位小数、右对齐,字段宽度为10,在使用 库函数时,要用预编译命令 #include 或 #include “std i o . h” standard input & output head 3.4.3 用getchar和putchar 函数 1. putchar 函数(字符输出函数) 函数原型:putchar( char ) 参数可以是字符型(整型变量)或常量。 功能:向终端输出一个字符。,例3.1 输出单个字符 #include main( ) char a,b,c; a=B;b=O;c=Y; putchar(a);putchar(b);putchar(c); 2 getchar 函数(字符输入函数) 函数原型:char getchar( ) 函数的值为字符类型。 功能:从标准的输入设备输入一个字符。,例3.2 输入单个字符 #include main( ) char a; a=getchar( ); putchar(getchar( ); putchar(a); cout(c=getchar( ); ,3.4.4 用scanf和printf函数 1. printf 函数(格式输出函数) 功能:按指定格式向终端输出数据。,printf 函数的一般格式为: printf(格式控制,输出表列) “格式控制”称为“转换控制字符串”。 双引号括起来的字符串 格式说明 普通字符 %和格式字符组成 原样输出的字符 %d %f “boy” “输出表列” 可以是变量,也可以是表达式。 例:printf(“ %d %d”,a,b); printf(“a=%db=%d”,a,b);,2. 格式字符 % * m n l 或 h 格式字符 d 格式符:输出十进制整数。 %d %md %ld 实际长度输出 m列宽度 长整型,可指定列宽 m 实际位数,a=123; b=12345; printf(“%4d, %4d”,a,b);,long a=135790; printf(“%d,%ld,%8ld”,a,a,a);, o 格式符:输出八进制整数,值不带符号。 符号位作为数值的一部分。 %o %mo %lo int a=-1;,Printf(“%d,%o,%8o”,a,a,a);,-1,177777,177777, x 格式符:以十六进制数形式输出整数。 %x %mx %lx u 格式符: unsigned 型数据输出。 例 无符号数据的输出 main( ) unsigned int a=65535; int b=-2; printf(“a=%d,%o,%x,%un”,a,a,a,a); printf(“b=%d,%o,%x,%un”,b,b,b,b); ,a=-1,177777,ffff,65535,b=-2,177776,fffe,65534, c 格式符:输出一个字符。 %c %mc 例 字符数据的输出 main( ) char c=a; /*可用整型输出*/ int i=97; /*可用字符型输出*/ printf(“%c,%d)n”,c,c); printf(“%c,%d)n”,i,i); a,97 a,97, s 格式符:用来输出一个字符串。 %s %ms m 左补空格 原样输出,printf(“%s”, “china”);,printf(“%7s”, “china”);,printf(“%3s”, “china”);,%-ms %m.ns %-m.ns 左对齐右补空 串左n个字符 串左n个字符 右对齐左补空 左对齐右补空 mn mn 如果 nm, 则m自动取 n 值,即保证正常输出。 例:字符串的输出。 main( ) printf(“%3s,%7.2s,%.4s,%-5.3sn”, “china”, “china”, “china”, “china”); , f 格式符:输出实数(单、双精度)。 %f 整数全部输出,并输出 6 位小数 单精度数:有效位数一般为 7 位 双精度数:有效位数一般为16位 例4.6 输出实数的有效位数 main( ) float x,y; x=111111.111;y=222222.222; printf(“%f”,x+y); 333333.328125,%m.nf %-m.nf 数据占m列,小数n位 m 右对齐,左补空 左对齐,右补空 例 输出实数时指定小数位数 main( ) float f=123.456; printf(“%f%10f%10.2f%.2f %-10.2fn”,f,f,f,f,f); 123.456001123.456001123.46123.46123.46, e 格式符:以指数形式输出实数。 %e 数值按规范化指数形式输出 小数6位,指数5位 e1位,指数符号1位,指数3位 printf(“%e”,123.456); 输出1.234560e+002。 %m.ne % - m.ne f=123.456; printf(“%e%10e%10.2e%.2e %-10.2e”,f,f,f,f,f) 1.234560e+0021.234560e+0021.23e+0021.23e+0021.23e+002, g 格式符:输出实数。 自动选 f 或 e 格式,且不输出无意义的零 (选择输出时占宽度较小的一种), f=123.468; printf(“%f%e%g”,f,f,f); 123.4680001.234560e+002123.468,说明: 除了X,E,G外,其它格式必须用小写字母。 在printf函数中的“格式控制”字符串内包含转义字符。,一个格式说明以%开头,以d、o、x、u、c、 s、f、e、g 字符之一为结束,中间可以插入附 加格式字符。 如输出字符%,则连续用两个%表示。 3. scanf 函数(格式输入函数) 一般形式 scanf( 格式控制,地址表列) “格式控制”的含义同 printf 函数; “地址表列” 可以是变量、或字符串的地址。 例:用 scanf 函数输入数据 scanf(“%d%d%d,其中 123abc。,(3)在%后有“*”号,表示跳过它

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论