算法与顺序结构.ppt

上传人:小飞机 文档编号:6329359 上传时间:2023-10-17 格式:PPT 页数:32 大小:383KB
返回 下载 相关 举报
算法与顺序结构.ppt_第1页
第1页 / 共32页
算法与顺序结构.ppt_第2页
第2页 / 共32页
算法与顺序结构.ppt_第3页
第3页 / 共32页
算法与顺序结构.ppt_第4页
第4页 / 共32页
算法与顺序结构.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《算法与顺序结构.ppt》由会员分享,可在线阅读,更多相关《算法与顺序结构.ppt(32页珍藏版)》请在三一办公上搜索。

1、第二章 算法与顺序结构,2.1 算法及其描述2.2 赋值语句2.3 数据输入输出2.4 顺序结构程序设计,2.1 算法及其描述,程序包括两部分:对数据的描述,即数据结构(data structure)。对操作的描述,即操作步骤,也称算法(algorithm)。,因此,计算机科学家 Nikiklaus Wirth 提出如下的公式:,数据结构+算法=程序,算法解题方法或解题步骤的精确描述算法表示:文字描述、流程图和N-S流程图,算法简单示例,求 n!=1x2x3x4x5x6.方法:step 1:1x2=2 step 2:2x3=6 step 3:6x4=24 step 4:24x5=120 ste

2、p 5:120 x6=720.,设定运算结果为变量 y,另一个乘数设为变量 x,因此,每一步可以总结为 x*y=y;另外,每一步的x变量均为上一步的量+1,即 x+1=x,算法简单示例,Step 1:x=2;step 2:y=1;step 3:x*y=y;step 4:x+1=x;step 5:if x6,then goto step3;step 6:end。,循环,初始化变量,流程图,用流程图表示算法:美国国家标准化协会ANSI规定了如下一些常用流程图符号:,起止框,输入框,判断框,处理框,流程线,连接点,注释框,流程图,n!算法可以用流程图表示如下:,Start,y=1,x=2,x*y=y

3、,x+1=x,A,A,x 6,Y,B,B,End,传统流程图,开始,该数0,累加,输入完100个数,输出累加和,结束,起止框,处理框,判断框,流向线,Y,Y,N,N,从键盘中输入100个整数,对其中的正整数进行累加,最后输出结果。,输入一个数,图,N-S图的三种基本结构图如下:,A,B,P,A,B,y,n,A,当P成立,A,直到P成立,顺序结构,选择结构,循环结构,图,n!算法可以用 N-S 图表示如下:,1=y,2=x,x*y=y,x+1=x,直到 x6,打印 y,初始化部分,循环部分,输出部分,算法描述(N-S流程图),处理,判断,重复,从键盘中输入100个整数,对其中的正整数进行累加,最

4、后输出结果。,2.2 赋值语句,C语句:以“;”作分隔符,编译后产生机器指令.C语句分类表达式语句:表达式加分号构成。,空语句:;,程序控制语句(9种):,如 total=total+limit;a=3;func();printf(“Hello,world!n”);,用 括起来的一组语句一般形式:数据说明部分;执行语句部分;说明:“”后不加分号语法上和单一语句相同复合语句可嵌套,复合语句,格式:变量标识符=表达式作用:将一个数据(常量或表达式)赋给一个变量,复合赋值运算符种类:+=-=*=/=%=&=|=含义:exp1 op=exp2 exp1=exp1 op exp2,赋值语句,2.3 数据

5、输入输出数据输出,格式:putchar(c)参数:c为字符常量、变量或表达式功能:把字符c输出到显示器上,C语言无I/O语句,I/O操作由函数实现,字符输出函数,#include,格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器输出数据,输出表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息格式说明:%修饰符格式字符,用于指定输出格式普通字符或转义序列:原样输出格式字符,2.3数据输入输出格式输出函数,int a=567;printf(“%d”,a);,int a=255;printf(“%x”,a);,int a=65;printf(“%o”,a);

6、,int a=567;printf(“%u”,a);,char a=65;printf(“%c”,a);,printf(“%s”,“ABC”);,float a=567.789;printf(“%e”,a);,float a=567.789;printf(“%f”,a);,float a=567.789;printf(“%g”,a);,printf(“%”);,567,ff,101,567,A,ABC,5.677890e+02,567.789000,567.789,%,说明格式字符与输出项个数应相同,按先后顺序一一对应输出转换:格式字符与输出项类型不一致,自动按指定格式输出,表格,.n,对实数

7、,指定小数点后位数(四舍五入),功 能,m,输出数据域宽,数据长度m,左补空格;否则按实际输出,输出数据在域内左对齐(缺省右对齐),-,指定在有符号数的正数前显示正号(+),+,输出数值时指定左面不使用的空位置自动填0,0,在八进制和十六进制数前显示前导0,0 x,#,在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型,l,附加格式说明符(修饰符),对字符串,指定实际输出位数,修饰符,输出数据域宽,数据长度m,左补空格;否则按实际输出,例 int a=1234;float f=123.456;printf(“%08dn”,a);printf(“%010.2

8、fn”,f);printf(“%0+8dn”,a);printf(“0+10.2fn”,f);,0、+,例 int a=123;printf(“%o,%#o,%X,%#Xn”,a,a,a,a);,例#,/00001234,/0000123.46,/000+1234,/000+123.46,/173,0173,7B,0X7B,例,格式:getchar()功能:从键盘读一字符,字符输入函数,例,/*ch3_4.c*/#include main()int c;printf(Enter a character:);c=getchar();printf(%c-hex%xn,c,c);,运行结果:Ente

9、r a character:AA-hex41,2.3数据输入输出输入函数,格式:scanf(“格式控制串”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束返值:正常,返回输入数据个数,地址表:变量的地址,常用取地址运算符&格式字符:d,i,o,x,u,c,s,f,e,例 scanf(“%d”,输入:10 则 a=10,例 scanf(“%x”,输入:11 则 a=17,格式输入函数,附加格式说明符(修饰符),l,修饰符,功 能,h,m,用于d,o,x前,指定输入为short型整数,用于d,o,x前,指定输入为long型整数,用于e,f前,指定输入为doub

10、le型实数,指定输入数据宽度,遇空格或不可转换字符则结束,例 scanf(“%4d%2d%2d”,输入 19991015 则1999yy,10 mm,15 dd,修饰符功能,*,跳过数据输入,例 int a1,a2,a3;scanf(“%d%*d%d%d”,输入 10 20 30 40 则10a1,30 a2,40 a3,一般以空格、TAB或回车键作为分隔符其它字符做分隔符:格式串中两个格式符间字符,例 scanf(“%d%o%x”,输入 123 123 123 输出 a=123,b=83,c=291,例 scanf(“%d:%d:%d”,输入 12:30:45 则12 h,30 m,45 s

11、,例 scanf(“%d,%d”,&a,&b)输入 3,4 则3a,4 b,例 scanf(“a=%d,b=%d,c=%d”,输入 a=12,b=24,c=36,输入分隔符的指定,用“%c”格式符时,空格和转义字符作为有效字符输入,如 scanf(“%c%c%c”,若输入abc 则ac1,c2,b c3,输入数据时,遇以下情况认为该数据结束:遇空格、TAB、或回车 遇宽度结束 遇非法输入,如 scanf(“%d%c%f”,若输入1234a123o.26 则 1234 a,a b,123 c,说明:,/*ch3_12.c*/#include#include main()float a,b,c,s

12、,area;scanf(%f,%f,%f,输入:3,4,6 输出:a=3.00,b=4.00,c=6.00 s=6.50 area=5.33,例 输入三角形边长,求面积,/*ch3_13.c*/#include stdio.hmain()char c1,c2;c1=getchar();printf(%c,%dn,c1,c1);c2=c1+32;printf(%c,%dn,c2,c2);,输入:A 输出:A,65 a,97,例 从键盘输入大写字母,用小写字母输出,2.4 顺序结构程序设计,顺序结构的程序是一组顺序执行的程序块所组成。最简单的程序块是由若干顺序执行的语句所构成。这些语句可以是赋值语

13、句、表达式语句、输入输出语句等。,例交换变量的值,对两个变量先输入两个值,然后交换这两个变量的值。x temp y步骤:1 x-temp,例:交换变量的值,例 对两个变量先输入两个值,然后交换这两个变量的值。x temp y步骤:1 x-temp 2 x-y,例交换变量的值,例 对两个变量先输入两个值,然后交换这两个变量的值。x temp y步骤:1 x-temp 2 x y,例交换变量的值,对两个变量先输入两个值,然后交换这两个变量的值。main()int x,y,temp;scanf(“%d%d”,2.4 顺序结构程序设计,举例:阅读下列程序printf(”Input two datas,and then press ENTER key!n);printf(”Between the two datas,use double-SPACEn);scanf(%d%d,2.4 顺序结构程序设计,举例:求一元二次方程的实根#include math.h”#include stdio.h”main()float a,b,c,disc,x1,x2,p,q;scanf(%f%f%f,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号