chap3算法与基本程序设计.ppt_第1页
chap3算法与基本程序设计.ppt_第2页
chap3算法与基本程序设计.ppt_第3页
chap3算法与基本程序设计.ppt_第4页
chap3算法与基本程序设计.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

计算机导论与C语言 西安邮电学院计算机系 王小银 第3章 算法与基本程序设计 计算机导论与C语言 第3章 算法与基本程序设计 2 第3章 算法与基本程序设计 三种基本的程序控制结构 数据的输入与输出 字符输入与输出函数 顺序结构语句 计算机导论与C语言 第3章 算法与基本程序设计 3 一、自顶向下设计方法学介绍 叙述要解决的问题 定义输入和输出 设计算法 将算法转换C语句 测试程序 问题分解 逐步细化 开始 结束 计算机导论与C语言 第3章 算法与基本程序设计 4 例:写一个C语言的程序计算函数f(x,y), f(x,y) 的定义如下 f(x,y) = x+y x0 且 y0 x+y2 x0 且 y=0.0 printf(“input x,y: “); /*提示输入x 和y */ scanf(“%lf%lf“, /*接收双精度值*/ 计算机导论与C语言 第3章 算法与基本程序设计 8 伪代码转换成伪代码转换成C C语言语言 #include main() double x,y,fun; printf(“input x,y: “); /* 提示输入x 和y */ scanf(“%lf%lf“, /*接收双精度值*/ if (x=0.0 else if (x=0.0 else fun = x*x + y*y; printf(“result of fun is %8.4f“, fun); /*输出*/ 计算机导论与C语言 第3章 算法与基本程序设计 9 测试程序 四组测试值: x=0.5 y=1.0 x=-0.8 y=-1.9 x=0.9 y =0.78 x=-5.6 y = 1.2 计算机导论与C语言 第3章 算法与基本程序设计 10 特征: 有穷性 确定性 评价标准: 正确性 可读性 健壮性(Robust,鲁棒性) 高效率与低存储要求 算法:对特定问题求解步骤的一种描述,它 是指 令的有限序列,其中每一条指令表示一 个 或多个操作。 数据结构+算法=程序 3.1 三种基本的程序控制结构 可执行性 有输入、输出 计算机导论与C语言 第3章 算法与基本程序设计 11 3.1 三种基本的程序控制语句 描述方法:可用自然语言、数学方法、某种计 算机语言描述 规范的方法:流程图、N-S结构流程图、伪代 码、PAD图。 流程图的基本构成: 起至框 输入 输出 判断框 处理框 或 流程线 连接点 注释框 计算机导论与C语言 第3章 算法与基本程序设计 12 开始 输入实数x,y x=0 scanf(“%f%f%fn”, sum=x+y+z; printf(“sum=%fn”,sum); 计算机导论与C语言 第3章 算法与基本程序设计 22 例1:求三个数中最小的那个数 流程图 N-S结构流程图 开始 输出min的值 输入a,b,c ac min=c Y N min=bmin=a acYN 输入a,b,c 输出min的值 #include main() int a,b,c,min; scanf(“%d%d%d“, if(ac) min=c; printf(“min=%d“,min); 计算机导论与C语言 第3章 算法与基本程序设计 23 3.2 数据的输入和输出 (Input and Output) C语言本身没有I/O语句,所有I/O都由标 准库函数来实现。I/O函数声明在 stdio.h 中。 n输入类库函数: 格式输入函数: scanf 字符输入函数: getchar、getch、 getche 字符串输入函数:gets n输出类库函数: 格式输出函数: printf 字符输出函数: putchar 字符串输出函数: puts 计算机导论与C语言 第3章 算法与基本程序设计 24 3.2.1 字符数据的输入和输出 #include main() char a=A; putchar( a ); putchar( n ); putchar( A ); putchar( 65 ); 输出: A AA n输入类库函数: p字符输入函数: getchar()、getch()、 getche() n输出类库函数: p字符输出函数: putchar(参数) 字符常量 整数 字符变量 计算机导论与C语言 第3章 算法与基本程序设计 25 3.2.1 字符数据的输入和输出 输入类库函数: n字符输入函数:getchar()、gech()、 getche() n1)getchar() 功 能:从键盘读入一个字符。 格 式: getchar( ); 返回值:读入的字符。 特 点:该函数的输入一直到“回车”才 结束 从键盘读入一个字符,并回 显 计算机导论与C语言 第3章 算法与基本程序设计 26 3.2.1 字符数据的输入和输出 例: 将输入的大写字母转变为小写字母输出 。 #include main( ) char ch; ch=getchar(); ch+=32; putchar(ch); 运行时: a 结果: A 计算机导论与C语言 第3章 算法与基本程序设计 27 n2)getch(): 功 能:从键盘读入一个字符。 格 式: getch ( ); 返回值:读入的字符。 特 点:不回显,不“回车”,常用于密 码输入或菜单选择 n3)getche() : 功 能:从键盘读入一个字符。 格 式: getche ( ); 返回值:读入的字符。 特 点:回显,不“回车” 3.2.1 字符数据的输入和输出 计算机导论与C语言 第3章 算法与基本程序设计 28 3.2.1 字符数据的输入和输出 #include main() char c1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); 输入: ab 输出: ab 输入: a 输出: a #include main() char c1,c2; c1=getchar(); getchar(); c2=getchar(); putchar(c1); putchar(c2); fflush(stdin);flushall(); 计算机导论与C语言 第3章 算法与基本程序设计 29 3.2.1 字符数据的输入和输出 输入函数留下的“垃圾”: 解决方法: (1)用getchar()清除 (2)用函数fflush(stdin)或函数flushall() 清除全部剩余内容 计算机导论与C语言 第3章 算法与基本程序设计 30 练习:设置密码输入函数。即:从键盘上输 入密码“abcde“后,在屏幕上仅显示 “*“,而程序接收的字符串是实际输入 的内容“abcde“,并判断密码是否正确 分析: n存储:字符数组 n输入函数:getch() n输出要求:putchar(*) n字符串比较:#include strcmp(str1,str2) 计算机导论与C语言 第3章 算法与基本程序设计 31 练习:设置密码输入函数。即:密码输入 时在屏幕上仅显示“*“,而程序接收 的字符串是实际输入的内容“abcde“,并 判断密码是否正确。 #include #include main() char password10=“abcde“,ch10=“; int i=0; printf(“please input password: “); for(i=0;i #include main() char password10=“abcde“,ch10=“; int i=0; printf(“ please input password:“); for(i=0;i main( ) char ch20; gets( ch ); puts( ch ); 当输入为 C program 则输出为: C program 3.2.2 字符串数据的输入和输出 字符串常量 字符数组名 计算机导论与C语言 第3章 算法与基本程序设计 35 #include main() char a10=“china”; puts( a ); puts( “nchina” ); 输出: china china 3.2.2 字符串数据的输入和输出 计算机导论与C语言 第3章 算法与基本程序设计 36 n输入类库函数: 格式输入函数: scanf (“格式控制字符串”,输入项地址 表); n输出类库函数: 格式输出函数: printf (“格式控制字符串”,输出项表 ); 变量的地址或字符串的首地址 被输出的数据,可以是常量、变量、表达式 3.2.3 格式输入和输出 计算机导论与C语言 第3章 算法与基本程序设计 37 可以按指定格式向终端输出任意类型的数据 。 格式:printf( 格式字符串, 输出参数列 表 ); p 格式字符串: 指定输出数据的类型、格式、个数 p 格式控制字符和各输出项的 类型、顺序、数量要一致 3.2.3 格式输出函数printf 计算机导论与C语言 第3章 算法与基本程序设计 38 可以按指定格式向终端输出任意类型的数据 。 格式:printf( 格式字符串, 输出参数列 表 ); 输出格式包括: 普通字符常量和格式说明 符 照原样输出 printfprintf (“ (“c=c=%d%d+ +%d%d= =%d%dnn“, a, b, a+b );“, a, b, a+b ); 格式说明符:指定输出3个十进制整型数, 分别为变量 a、b、ab的值 3.2.3 格式输出函数printf 计算机导论与C语言 第3章 算法与基本程序设计 39 main() int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); 输出结果: 3 4 a=3, b=4 3.2.3 格式输出函数printf 计算机导论与C语言 第3章 算法与基本程序设计 40 %d十进制格式 %o八进制格式 %x、%X十六进制格式 %u无符号的十进制格式 %c 一个字符格式 %s字符串格式 %f实数格式 %e、%E指数格式 %g 1 2 3 4 5 6 7 8 9 %百分号本身10 e和f中较短一种格式 3.2.3 I/O格式-格式字符 计算机导论与C语言 第3章 算法与基本程序设计 41 .n 对实数,指定小数点后位数(四舍五入 ) 对字符串,指定实际输出位数 m 输出数据域宽,数据长度0右对齐,m0右对齐,m0右对齐,m0右对齐,m0右对齐,m0右对齐,m0右对齐,m0)为输出字符串的前n个字符 。 printf(“%s,%-5.3s”,”china”, ”china”); printf(“%5.3s”, ”china”); 输出结果: china,chi, chi 计算机导论与C语言 第3章 算法与基本程序设计 49 7)f(float)格式符:小数形式I/O实数 (float,double) (1)%f :不指定宽度,整数部分全部输 出,输出6位小数。float时,7位有效数字 ;double时,16位有效数字。 main() float x,y; x=111111.111; y=222222.222; printf(“%f”,x+y); main() double x,y; x=1111111111111.1111111111; y=2222222222222.2222222222; printf(“%f”,x+y); 333333.3281253333333333333.333010 3.2.3 I/O格式 计算机导论与C语言 第3章 算法与基本程序设计 50 7)f(float)格式符:小数形式I/O实数(float, double) (2)%m.nf:整个数据占m宽,小数为n位 。 m0右对齐,m0右对齐 ,m main() printf(“I say:“How are you?“n“); printf(“The directory is “E:Turboc“n“ ); 输出: I say:”How are you?” The directory is “E:Turboc“ 计算机导论与C语言 第3章 算法与基本程序设计 53 printf函数格式控制中的格式说明符与输 出参数的个数和类型必须一一对应。 格式说明符的 % 和后面的描述符之间不 能有空格。除 %X、%E、%G外类型描述 符必须是小写字母。 长整型数应该用ld(或lo、lx、 lu)格式输出,否则会出现输出错误。 printf函数的参数可以是常量、变量或表 达式。在计算各参数值时,Turbo C采用从 右至左的顺序求值。 n注意: 例 int i=3; printf(“%d,%d“,i,i+); 则结果为 例 int i=3; int j=i+1; printf(“%d,%d“,i,j); 则结果为 4,3 3,4 计算机导论与C语言 第3章 算法与基本程序设计 54 可以按指定格式从键盘读入任意类型的数据 。 格式:scanf( 格式字符串, 地址参数列表 ); 变量的地址列表,可通过取地址运算符 正确的输入为:4,5 或 4 , 5 不正确的输为:4 5或 4_5等 n例2: scanf(“a=%d,b=%d”, 正确的输入:a=4, b=5 不正确的输入:4_5 和 4,5 n例3: scanf(“%d:%d”, 正确的输入为:4:5 不正确的输为:4_5 或 4,5或 4 5 3.2.4 格式输入函数 scanf 计算机导论与C语言 第3章 算法与基本程序设计 56 注意:scanf控制格式要尽可能的简单 尽管printf能够使用的控制格式scanf均 可以使用,但一般scanf的格式要尽可能的简 单,一般只需要给出数据控制符,而不要添 加任何其它的辅助格式。 n例如:scanf(“%d%d”, 正确的输入为:4 5 或 4 5或3Tab键4 此时,空格、回车和tab键均可作为分 割符 计算机导论与C语言 第3章 算法与基本程序设计 57 4、在用“%c”格式输入字符时,空格字符和 转义字符都作为有效的字符输入。 例:scanf(”%c%c%c”, 若输入时为:a b c 则结果为: c1=a,c2= ,c3=b 2、输入数据时不能规定精度; 3、参数中“格式控制”之后应该是变量地址; 例:float a; scanf(”%7.2f”, 例: float a; scanf(”%f”,a); 计算机导论与C语言 第3章 算法与基本程序设计 58 使用scanf函数应注意: p如果数据本身可以将数据分割时,输入 数据不需要使用分隔符; p要求在程序运行中输入数据,输入的数 据

温馨提示

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

评论

0/150

提交评论