二章算法与顺序结构

上传人:壹****1 文档编号:577652700 上传时间:2024-08-22 格式:PPT 页数:32 大小:380KB
返回 下载 相关 举报
二章算法与顺序结构_第1页
第1页 / 共32页
二章算法与顺序结构_第2页
第2页 / 共32页
二章算法与顺序结构_第3页
第3页 / 共32页
二章算法与顺序结构_第4页
第4页 / 共32页
二章算法与顺序结构_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《二章算法与顺序结构》由会员分享,可在线阅读,更多相关《二章算法与顺序结构(32页珍藏版)》请在金锄头文库上搜索。

1、第二章第二章 算法与顺序结构算法与顺序结构2.1 2.1 算法及其描述算法及其描述2.2 2.2 赋值语句赋值语句2.3 2.3 数据输入输出数据输入输出2.4 2.4 顺序结构程序设计顺序结构程序设计抉剿矗吃塑欧当免梳激体亮饵视庚调惊惠振滨掺垄畔驶杉诺埃驾痢化菊姐二章算法与顺序结构二章算法与顺序结构2.1 算法及其描述程序包括两部分:对数据的描述,即数据结构(data structure)。对操作的描述,即操作步骤,也称算法(algorithm)。因此,计算机科学家 Nikiklaus Wirth 提出如下的公式:数据结构数据结构 + 算法算法 = 程序程序算法解题方法或解题步骤的精确描述算

2、法表示:文字描述、流程图和N-S流程图岛婉燃潮汝斋辉笛挣右约瑟疼丸瘫杀颂澄咖丸虏编姥盯箔桶哎金邵谍屏率二章算法与顺序结构二章算法与顺序结构算法简单示例n求 n!= 1x2x3x4x5x6.方法: step 1step 1:1x2 = 21x2 = 2 step 2 step 2:2x3 = 62x3 = 6 step 3 step 3:6x4 = 246x4 = 24 step 4 step 4:24x5 = 12024x5 = 120 step 5 step 5:120x6 = 720120x6 = 720 . .设定运算结果为变量 y另一个乘数设为变量 x因此,每一步可以总结为 x*y =

3、y;另外,每一步的x变量均为上一步的量+1,即 x+1 =x佃另螺凋东叉胡顺落酥廖盾捣谚早脯特呸陈徘绑尊字轻扎硼甚拜庆硕心涨二章算法与顺序结构二章算法与顺序结构算法简单示例nStep 1:x = 2 ;nstep 2:y = 1 ;nstep 3:x*y =y;nstep 4:x + 1 =x;nstep 5:if x6 ,then goto step3;nstep 6:end。 循环初始化变量曾斑昆穿坊浦没捎石腰嘎庙酋不司熔兆爪器惑咽拭绞督懂妻披氛麓残钻莉二章算法与顺序结构二章算法与顺序结构流程图n用流程图表示算法:美国国家标准化协会ANSI规定了如下一些常用流程图符号:起止框输入框判断框处

4、理框流程线连接点注释框束肾蛔宙寅店双炉丸涤望雏可嚷殃英半饲懈爸凤县讶依枉蔚梭点疫尿字萤二章算法与顺序结构二章算法与顺序结构流程图nn!算法可以用流程图表示如下:Starty = 1x = 2x*y= yx + 1= xAAx 6YBBEnd传传传传统统统统流流流流程程程程图图图图铂熙困轿握决废蝶乒萨班籍数骗铜亲蔗配墅脏苹庐牡穆耪间作衬馅故拇污二章算法与顺序结构二章算法与顺序结构 开始开始 该数0 累加输入完100个数 输出累加和 结束起止框起止框处理框处理框判断框判断框流向线YYNN 从键盘中输入从键盘中输入100个整数,对其中的正整数进行累加,个整数,对其中的正整数进行累加,最后输出结果。最

5、后输出结果。输入一个数株窒秩毁靳惧覆墒麓缺羊屈犬驭屯睹棚跺氦揩恒兢攘囤祖准茸溪服宇姆殷二章算法与顺序结构二章算法与顺序结构图nN-S图的三种基本结构图如下:ABPABynA当P成立A直到P成立顺序结构选择结构循环结构吁湖绘吹恕均寇宦迈稍糖淫戳旷类锑淮归蕾锦蜜寞攀咆筑绿诲铺笨愈降孝二章算法与顺序结构二章算法与顺序结构图nn!算法可以用 N-S 图表示如下:1 = y2 = xx * y =yx + 1 =x直到 x6打印 y初始化部分循环部分输出部分秽时垦镇奇暴遭苦须杖阜空申通唐苹形因厦甘藏杂送评沾翟号啸哗内向蛋二章算法与顺序结构二章算法与顺序结构算法描述(N-S流程图)处理判断重复 从键盘中输

6、入从键盘中输入100个整数,对其中的正整数进行累加,个整数,对其中的正整数进行累加,最后输出结果。最后输出结果。淆放磅飞形袁谜竟谆锄民晰报藕对娶严痕甸颧钦矛枢溶哨汛饿亏垢绝诀汉二章算法与顺序结构二章算法与顺序结构2.2 赋值语句nC语句:以“;”作分隔符,编译后产生机器指令.nC语句分类n n表达式语句:表达式加分号构成。表达式语句:表达式加分号构成。空语句: ;程序控制语句(9种):if( )else switchfor( )while( )dowhile( )continuebreakgotoreturn分支循环辅助控制如 total=total+limit; a=3; func( );

7、printf(“Hello,world!n”);烽呵岩邮切聚今颖钙堆骸吧遂氢沿什伶仅腐闷坚珠北躺嘎琅誊圆物亭粘取二章算法与顺序结构二章算法与顺序结构用 括起来的一组语句n n一般形式:一般形式: 数据说明部分;数据说明部分; 执行语句部分;执行语句部分; n n说明:说明:n n“”“”后不加分号后不加分号n n语法上和单一语句相同语法上和单一语句相同n n复合语句可嵌套复合语句可嵌套复合语句复合语句复合语句复合语句冶坟凝枝早分卜佬朝梦饭马询的撂卢躇责撰远苛名晾狄恋针态胸堂瘟沿伤二章算法与顺序结构二章算法与顺序结构n n格式格式: 变量标识符变量标识符= =表达式表达式n n作用:将一个数据(

8、常量或表达式)赋给一个变量作用:将一个数据(常量或表达式)赋给一个变量复合赋值运算符种类:+= -= *= /= %= = = &= = |=含义: exp1 op= exp2 exp1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3赋值语句完褪勘跺铡精赤坦陀专屹朽伦哄扎捻尧史级辽政备酥虹胀魄椭喇枝组匀玄二章算法与顺序结构二章算法与顺序结构2.3 2.3 数据输入输出数据输入输出数据输出数据输出格式格式: putchar( c ): putchar( c )参数参数: c: c为字符常量、变量或表达式为字符常量、变量或表达式功能:把字符功能:把字

9、符c c输出到显示器上输出到显示器上u C语言无语言无I/O语句,语句,I/O操作由函数实现操作由函数实现 字符输出函数字符输出函数u #include 迷酣疤盅凑刁普罪佳鲜开郴妊悍观叛伐苇急屯磨槐酪乔勃门饶瞧曼滦枫合二章算法与顺序结构二章算法与顺序结构格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器输出数据输出表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息格式说明: %修饰符格式字符 ,用于指定输出格式普通字符或转义序列:原样输出格式字符2.3数据输入输出格式输出函数馁窑语雾汕钻呵嗅寄增瞒岳休根企判砰镊熔侩陪期餐竣焚妖适关擞垢软归二章算法与顺序结

10、构二章算法与顺序结构d,ix,Xoucse,Efg%十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身int a=567;printf ( “%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);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);

11、float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789%说明格式字符与输出项个数应相同,按先后顺序一一对应输出转换:格式字符与输出项类型不一致,自动按指定格式输出表格彝晃贼册撰剧窘豢勾吸闭勋坯恭慨跺码椭扶醇暖仔蚕蛊忽叭埠途杀筑漱火二章算法与顺序结构二章算法与顺序结构.n对实数对实数,指定小数点后位数指定小数点后位数(四舍五入四舍五入)功功 能能m输出数据域宽,数据长度m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐输出数据在域内左对齐(缺省右对齐) )-指定在有符

12、号数的正数前显示正号指定在有符号数的正数前显示正号(+)(+)+输出数值时指定左面不使用的空位置自动填输出数值时指定左面不使用的空位置自动填0 00在八进制和十六进制数前显示前导在八进制和十六进制数前显示前导0 0,0x0x#在在d,o,x,ud,o,x,u前,指定输出精度为前,指定输出精度为longlong型型在在e,f,ge,f,g前,指定输出精度为前,指定输出精度为doubledouble型型l附加格式说明符(修饰符)附加格式说明符(修饰符)附加格式说明符(修饰符)附加格式说明符(修饰符)对字符串对字符串, ,指定实际输出位数指定实际输出位数修饰符修饰符输出数据域宽输出数据域宽, ,数据

13、长度数据长度m,m,左补空格左补空格; ;否则按实际输出否则按实际输出哲徽沏道刺馏凭堡祟形电食睬眨肢仍耶鞘膏言芜钾羊尉调硷讽坛蜘寞潍魁二章算法与顺序结构二章算法与顺序结构例 int a=1234; float f=123.456; printf(“%08dn”,a); printf(“%010.2fn”,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,01

14、73,7B,0X7B例阳叭藤玄坠烫哩静售婴详茎僚卢夺线焕旺牙且尘仰锤误涂卯噶乏狞拙碘丫二章算法与顺序结构二章算法与顺序结构格式:getchar( )功能:从键盘读一字符n n字符输入函数字符输入函数 例 /*ch3_4.c*/#include main() int c; printf(Enter a character:); c=getchar(); printf(%c-hex%xn,c,c);运行结果:Enter a character:AA-hex412.3数据输入输出输入函数氓藩狡嚼泵胀仗詹蓉筐奋六碘馏胶榔糜捆侧屏桩瘩冷处表逃箭瘩确周痔卒二章算法与顺序结构二章算法与顺序结构格式格式: s

15、canf(“: scanf(“格式控制串格式控制串”,地址表),地址表)功能:按指定格式从键盘读入数据,存入地址表指定的功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中存储单元中, ,并按回车键结束并按回车键结束返值:正常,返回输入数据个数返值:正常,返回输入数据个数地址表:变量的地址,常用取地址运算符地址表:变量的地址,常用取地址运算符& &格式字符格式字符:d,i,o,x,u,c,s,f,e:d,i,o,x,u,c,s,f,e例 scanf(“%d”,&a); 输入:10 则 a=10例 scanf(“%x”,&a); 输入:11 则 a=17格式输入函数钟啄斌代堡窑咆娜敲岩乞

16、承勒骂迢垦堵芋啼隘绥煤川舰逃藏忍藩挛滋良弓二章算法与顺序结构二章算法与顺序结构附加格式说明符(修饰符)l修饰符修饰符功功 能能hm用于用于d,o,xd,o,x前,指定输入为前,指定输入为shortshort型整数型整数用于用于d,o,xd,o,x前,指定输入为前,指定输入为longlong型整数型整数用于用于e,fe,f前,指定输入为前,指定输入为doubledouble型实数型实数指定输入数据宽度,遇空格或不可转换字符则结束指定输入数据宽度,遇空格或不可转换字符则结束例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入 19991015 则1999yy, 10 mm, 1

17、5 dd修饰符功能*跳过数据输入跳过数据输入例 int a1,a2,a3;scanf(“%d%*d%d%d”,&a1,&a2,&a3); 输入 10 20 30 40 则10a1, 30 a2, 40 a3事颖溯蓑踞秧眷苛故幢谊逾峨婪鸵膛拿如腐姬殉锅赡娃齿湖乏惑卤磅顾殿二章算法与顺序结构二章算法与顺序结构n一般以空格、TAB或回车键作为分隔符n其它字符做分隔符:格式串中两个格式符间字符例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c); 输入 123 123 123 输出 a=123,b=83,c=291例 scanf(“%d

18、:%d:%d”,&h,&m,&s); 输入 12:30:45 则12 h, 30 m, 45 s例 scanf(“%d,%d”,&a,&b) 输入 3,4 则3a, 4 b例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入 a=12,b=24,c=36 输入分隔符的指定炙箕份胆矗睫弃碴茶订诲诽虫唬等涯睬直虫率谋野疼佳炊淹互品猴运精这二章算法与顺序结构二章算法与顺序结构 用用“%c”“%c”格式符时,空格和转义字符作为有效字符输入格式符时,空格和转义字符作为有效字符输入如 scanf(“%c%c%c”,&c1,&c2,&c3); 若输入abc 则ac1, c2, b c

19、3 输入数据时,遇以下情况认为该数据结束:n 遇空格、TAB、或回车n 遇宽度结束n 遇非法输入如 scanf(“%d%c%f”,&a,&b,&c); 若输入1234a123o.26 则 1234 a, a b, 123 c说明:符钱尊炭讳仟遥翁篱憎敲尝义崭癣撑贡足北牡男坟滤康呈弊涪错诱还痔暮二章算法与顺序结构二章算法与顺序结构/*ch3_12.c*/#include #include main() float a,b,c,s,area; scanf(%f,%f,%f,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); prin

20、tf(a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn,a,b,c,s); printf(area=%7.2fn,area);输入: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=

21、c1+32; printf(%c,%dn,c2,c2);输入:A 输出:A,65 a,97例 从键盘输入大写字母,用小写字母输出晾澈沤修浓颈粪钎磐谩峻昔锐郭郴诈吕布章毅哺痰潍粤仓巨铝墒撇枢掺聘二章算法与顺序结构二章算法与顺序结构2.4 顺序结构程序设计n顺序结构的程序是一组顺序执行的程序块所组成。最简单的程序块是由若干顺序执行的语句所构成。这些语句可以是赋值语句、表达式语句、输入输出语句等。户锚颊柠垢仇闲鞠摆沾倪利道帝咀快踏拭窑蛤厅铺包谐肮蕉缮哲恃坐荔绒二章算法与顺序结构二章算法与顺序结构例交换变量的值对两个变量先输入两个值,然后交换这两个变量的值。x temp y步骤: 1 x - temp

22、圆霓胜冒善碗耳印纽峦菏吴焕国束桶皂挽奏酉卢僧字芦苦哉迂翁领烤弦你二章算法与顺序结构二章算法与顺序结构例:交换变量的值例 对两个变量先输入两个值,然后交换这两个变量的值。x temp y步骤: 1 x - temp 2 x temp 2 x y憨膨淳砧辜晋辛稳日篡储支海档轩祈顷释畴碎相吝稿戍昔桨万酶赐醛蜂旨二章算法与顺序结构二章算法与顺序结构例交换变量的值对两个变量先输入两个值,然后交换这两个变量的值。main()main() int x, y, temp; int x, y, temp; scanf(“%d%d”, &x, &y); scanf(“%d%d”, &x, &y); temp =

23、x; temp = x; x = y; x = y; y = temp; y = temp; printf(“first=%d, second=%d”, x, y); printf(“first=%d, second=%d”, x, y); 脱荆私筋依阉蔷乙境瞒扰充黄举焚铅坍遭据顾菩黄挨薯醛听亥肆淋图真屎二章算法与顺序结构二章算法与顺序结构2.4 顺序结构程序设计n举例:阅读下列程序printf(”Input two datas, and then press printf(”Input two datas, and then press ENTER key ! n); ENTER key !

24、 n);printf(”Between the two datas, use double-SPACEn);printf(”Between the two datas, use double-SPACEn);scanf(%d %d,&u,&v);scanf(%d %d,&u,&v);printf( The two datas inputed are );printf( The two datas inputed are );printf(%d and %dn,u,v);printf(%d and %dn,u,v);printf(-n);printf(-n);printf(”Input two

25、datas, and then press ENTER key!n);printf(”Input two datas, and then press ENTER key!n);printf(”Please use the format a:bn);printf(”Please use the format a:bn);scanf(%d:%d,&u,&v);scanf(%d:%d,&u,&v);printf( The two datas inputed are );printf( The two datas inputed are );printf(%d and %dn,u,v);printf(

26、%d and %dn,u,v); 壹电瑶升卡糜锄寨批色拱痘搐汤捕嘛况儒薛尽壤颜张陪穷滤何棱雕呻唤瞻二章算法与顺序结构二章算法与顺序结构2.4 顺序结构程序设计n举例:求一元二次方程的实根#include math.h”#include math.h”#include stdio.h”#include stdio.h”main ()main () float a,b,c,disc,x1,x2,p,q; float a,b,c,disc,x1,x2,p,q; scanf(%f%f%f,&a,&b,&c); scanf(%f%f%f,&a,&b,&c); printf(a=%fnb=%fnc=%fn,a,b,c); printf(a=%fnb=%fnc=%fn,a,b,c); disc=b*b-4*a*c; disc=b*b-4*a*c; p=-b/(2*a); p=-b/(2*a); q=sqrt(disc)/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x1=p+q; x2=p-q; x2=p-q; printf(nnx1=%5.2fnx2=%5.2fn,x1,x2); printf(nnx1=%5.2fnx2=%5.2fn,x1,x2); 容恫酱纪熔闽劫姐摹味巍囚啮屈勒探肋战沽久凝臆淄居砒换陪口埠耸攘播二章算法与顺序结构二章算法与顺序结构

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号