二章算法简单的C程序设计ppt课件.ppt
《二章算法简单的C程序设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《二章算法简单的C程序设计ppt课件.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院二章算法简单的C程序设计ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院 2.1 算法算法一、算法的概念一、算法的概念 Nikiklaus Wirth Nikiklaus Wirth 公式公式 程序程序=数据结构数据结构 +算法算法 数据结构:数据结构:对数据的描述,在程序中指定数据的
2、对数据的描述,在程序中指定数据的 类型和数据的组成形式。类型和数据的组成形式。算法:算法:对操作的描述,即解决问题的方法和步骤。对操作的描述,即解决问题的方法和步骤。程序程序 =数据结构数据结构 +算法算法 +程序设计方法程序设计方法 +语言工具语言工具 +环境环境C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院2.1 算法算法 二、算法的特性二、算法的特性 1.1.有穷性有穷性 一个算法包含的操作步骤应当是有限的。一个算法包含的操作步骤应当是有限的。2 2.确定性确定性 一个一个算法的含义应当是唯一的,算法中的每一个算法的含义应当是唯一的,算法中的每一个
3、 步骤应当是确定的,不应产生步骤应当是确定的,不应产生“歧义性歧义性 ”。3 3.有零个或多个输入有零个或多个输入 4.有一个或多个输出有一个或多个输出 5.有效性有效性 算法中的每一步都应当能有效地执行,算法中的每一步都应当能有效地执行,并得到正确的结果。并得到正确的结果。C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院三、简单算法举例三、简单算法举例 1.1.求求 12 3 4 5 (12 3 4 5 (即即 5!)5!)算法一算法一:步骤步骤1 1:12 :12 得得 2;2;步骤步骤2 2:23 :23 得得 6;6;步骤步骤3 3:64 :64
4、得得 24;24;步骤步骤4 4:245:245 得得 120;120;2.1 算法算法C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院算法二算法二:设设 p 为被乘数为被乘数,i 为乘数为乘数,采用循环算法采用循环算法。S1:使使 p=1;S2:使使 i=2;S3:使使 p i p S4:使使 i+1 i S5:如果如果 i 不大于不大于5 则返回重新则返回重新 执行执行 S3,S4,S5;否则,否则,算法结束。算法结束。2.1 算法算法三、简单算法举例三、简单算法举例 1.1.求求 12 3 4 5 (12 3 4 5 (即即 5!)5!)C语语言言程
5、程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院2.2.对一个大于或等于对一个大于或等于3 3的正整数,判断它是不是的正整数,判断它是不是 一个素数。一个素数。算法一:算法一:将将 n n 作为被除数,将作为被除数,将 2 2 到到(n 1n 1)各个整数轮流作为除数,如都不能被各个整数轮流作为除数,如都不能被 整除,则整除,则 n n 为素数。为素数。2.1 算法算法三、简单算法举例三、简单算法举例C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院算法二:算法二:将将 n 作为被除数,将作为被除数,将2到到n/2(或者是或者是 2
6、 到到 n1/2)各个整数轮流作为除数,如都不能被整除,则各个整数轮流作为除数,如都不能被整除,则n为为素数。素数。S1:输入输入 n 的值的值 S2:i=2(i 作为除数作为除数)S3:n 被被 i 除,得余数除,得余数 r S4:如如r=0,则输出,则输出“不是素数不是素数”,反之执行,反之执行 S5 S5:i+1 i S6:如果如果 i n 1,返回返回 S3;否则输出否则输出“是素数是素数”结束。结束。2.1 算法算法三、简单算法举例三、简单算法举例C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院自然语言自然语言传统流程图传统流程图结构化流程图结构
7、化流程图伪代码伪代码PDAPDA图。图。2.1 算法算法四、算法的表示方法四、算法的表示方法C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院1.1.传统流程图传统流程图 特点特点:用一些规定的图框表示各种操作。用一些规定的图框表示各种操作。直直观形象观形象,易于理解。易于理解。常用的常用的ANSIANSI规定图形符号如图:规定图形符号如图:起始或结束框起始或结束框输入输出框输入输出框判断框判断框处理框处理框流程线流程线连接点连接点注释框注释框2.1 算法算法四、算法的表示方法四、算法的表示方法C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四
8、川理工学院四川理工学院 用用传统流程图传统流程图来表示求来表示求 5 5!。!。开始开始i 51t2ititi+1i结束结束NC语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院2.2.程序的三种基本结构程序的三种基本结构 一个程序只能由三种基本结构一个程序只能由三种基本结构(或由它们派或由它们派生出来的结构生出来的结构)组成,这三种结构为:组成,这三种结构为:(1)(1)顺序结构顺序结构(2)(2)选择结构选择结构 (3)(3)循环结构循环结构ABABPP1AP2A成立成立成立成立不成立不成立顺序结构顺序结构 选择结构选择结构 循环结构循环结构C语语言言程程
9、序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院 3.用用 N S 流程图表示算法流程图表示算法 N S 结构化流程图是根据美国学者结构化流程图是根据美国学者 I.Nassi和和 B.Shneiderman 1973年提出的算法来描述的,年提出的算法来描述的,属于无流线的流程图,简称属于无流线的流程图,简称 N S 图。图。A B C真真 P 假假 A B当当P为真为真 A A直到直到P为假为假顺序结构顺序结构 选择结构选择结构 循环结构循环结构C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院 真真 P1 假假 当当 P2 为真为真
10、 真真 P3 假假 A B C一般情况一般情况 N S 图的特点:图的特点:比自然语言描述更直观、形象、易于理解。比自然语言描述更直观、形象、易于理解。比传统流程图紧奏易画。比传统流程图紧奏易画。图中的上下顺序就是执行时的顺序,符合图中的上下顺序就是执行时的顺序,符合“自顶向下,逐步细化自顶向下,逐步细化”的结构化程序设计要求。的结构化程序设计要求。C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院求求 5 5!的的 N N S S 流程图流程图 1 t2 i ti ti+1 i直到直到 i 5输出输出C语语言言程程序序设设计计第第二二章章四川理工学院四川理
11、工学院四川理工学院四川理工学院判断判断素数素数的的 N N S S 流程图流程图输入输入 n 0 w2 in/i 的余数的余数 rr=0是是否否1 wi+1 i直到直到 i n1/2 或或 w 0w=0是是否否“是素数是素数”“不是素数不是素数”C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院表达式语句:表达式语句:表达式表达式;2.2 C 语句概述语句概述C语句包括语句包括:控制语句控制语句 (9)种种 if()else;for();while();do while;continue ;break;switch;goto;return控制语句控制语句 1
12、 1函数调用函数调用语句语句 例如:例如:y=cos(0.5);y=sin(cos(0.5);printf(“Hello”);函数调用语句函数调用语句 2 2复合语句复合语句格式格式 语句语句1;语句语句 n;复合语句复合语句 5 5空语句:空语句:;C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院 2.3 赋值语句赋值语句 赋值语句由赋值表达式加上分号构成。赋值语句由赋值表达式加上分号构成。如:如:a=b;C语言中将赋值表达式和赋值语句分开来,语言中将赋值表达式和赋值语句分开来,其目的是增加表达式的种类和使用范围。其目的是增加表达式的种类和使用范围。如:
13、如:(1)if(x 0)(2)if(a=b)0)t=a;C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院2.4 字符数据的输入输出字符数据的输入输出 C C 程序的输入和输出完全依靠调用标准输入程序的输入和输出完全依靠调用标准输入和输出函数来完成。和输出函数来完成。常用的常用的 4 4个个I/OI/O 函数为函数为 :scanf()getchar()printf()putchar()C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院输出单个字符输出单个字符输出转义字符输出转义字符3.4 字符数据的输入输出字符数据的输入输
14、出 一、一、putchar 函数函数(字符输出函数字符输出函数)作用作用:向终端向终端(即系统隐含指定的输出设备,即系统隐含指定的输出设备,如如显示器,打印机显示器,打印机)输出一个字符。输出一个字符。格式格式:putchar(ch);其中其中:ch 代表一个代表一个字符型字符型或或整型变量整型变量,也可以是一个也可以是一个字符常量字符常量或或整型常量整型常量。输出单个字符输出单个字符#include /*包含包含I/O库有关变量定义和宏定义库有关变量定义和宏定义*/main()char a,b,c;a=B;b=O;c=Y ;putchar(a);putchar(b);putchar(c);输
15、出结果输出结果:BOY 例如例如例如例如输出单个转义字符输出单个转义字符#include main()putchar(101);putchar();putchar(n);输出结果输出结果:A A 重点重点重点重点C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院3.4 字符数据的输入输出字符数据的输入输出 二、二、getchar 函数函数(字符输入函数字符输入函数)作用作用:从从终端终端(即系统隐含指定的输入设备即系统隐含指定的输入设备 (如键盘如键盘),输入,输入一个字符。说明说明:1.执行时,输入字符并按回车键后,才将其输入执行时,输入字符并按回车键后,
16、才将其输入到缓冲区,只读取一个字符给变量。到缓冲区,只读取一个字符给变量。2.getchar 函数接收的一个字符,可以赋给函数接收的一个字符,可以赋给char型或型或 int 型变量,也可不赋给任何变量。型变量,也可不赋给任何变量。3.使用使用 putchar 和和 getchar 函数需用预编译命令函数需用预编译命令#include 将将“stdio.h”包括进去。包括进去。例例3.2:从键盘输入一个字符再输出。:从键盘输入一个字符再输出。从键盘输入一个字符再输出。从键盘输入一个字符再输出。#include “stdio.h”main()char c;c=getchar();putchar(
17、c);若输入若输入:a 则输出则输出:a 实例实例实例实例C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院示例示例2示例示例1格式控制格式控制 输出表列输出表列3.5 格式输入与输出格式输入与输出 一、一、printf 函数函数(格式化输出函数格式化输出函数)1.格式格式:printf(,);作用作用:向系统终端(或隐含的输出设备向系统终端(或隐含的输出设备)输出输出若若干干 个指定类型个指定类型的数据。的数据。2.格式字符格式字符(共共 9 种种)作用:控制作用:控制不同类型数据的不同格式输出。不同类型数据的不同格式输出。(1)d格式符:用于输出十进制整
18、数格式符:用于输出十进制整数%d:按整型数的实际长度输出。按整型数的实际长度输出。%md:m为指定的输出数据宽度,若数据位为指定的输出数据宽度,若数据位 数数 m 时时,全部输出。反之则全部输出。反之则右右靠齐,靠齐,左左补补 空格或左靠齐,右补空格。空格或左靠齐,右补空格。%m.ns:规定输出字符串所占列宽,只取规定输出字符串所占列宽,只取 字符串中左端字符串中左端 n个字符。输出个字符。输出右右靠齐,靠齐,左左补空补空 格或左靠齐,右补空格。当格或左靠齐,右补空格。当 n m 时,时,则则 m 自动取自动取 n 的值以保证的值以保证 n 个字符正输出。个字符正输出。%mc:指定输出数据宽度
19、,:指定输出数据宽度,右右靠齐,靠齐,左左补空格补空格%mc:左靠齐左靠齐,右补空格右补空格。例例 3.3 void main()char c=a;int i=97;printf(“%c”,a);printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);如如:char c=a;printf(“%3c”,c);输出输出:a 又如又如:printf(“%3c%3c”,a ,b);输出输出:a b 例例 3.4 void main()printf(“%3s,%7.2s,%.4s,%5.3s n”,“CHINA”“CHINA”,“CHINA”,“CHINA”);输出输出:CH
20、INA,CH,CHIN,CHI 例例 3.3c 格式符格式符用于输出一个字符用于输出一个字符例例 3.3 void main()char c=a;int i=97;printf(“%c”,a);printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);重点重点重点重点c 格式符域宽控制格式符域宽控制main()char c=a;printf(“%3cn”,c);printf(“%3c%3c”,a,b);输出输出:aa b 重点重点重点重点s 格式符格式符 输出一个字符串输出一个字符串void main()printf(“%3s,%7.2s,%.4s,%5.3s n”,
21、“CHINA”“CHINA”,“CHINA”,“CHINA”);输出输出:CHINA,CH,CHIN,CHI 示例示例示例示例C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院域宽控制域宽控制(4)f 格式符格式符:用于输出实数用于输出实数(包括单,双精度包括单,双精度)%f系统自动指定宽度,整数部分全部输出系统自动指定宽度,整数部分全部输出 并输出并输出6位小数。但并非全部数字都是有效位小数。但并非全部数字都是有效 数字。一般数字。一般 单精度实数有效位为单精度实数有效位为7 位。位。双精度实数为双精度实数为16位。位。%mf%m.nf 规定输出实数占的列
22、宽,且有规定输出实数占的列宽,且有n 位小数如果数值长度位小数如果数值长度 m,则输出右靠齐,则输出右靠齐,左补空格左补空格 或或左左靠齐,靠齐,右右补空格。补空格。例例 3.5 void main()float x,y;x=111111.111;y=222222.22;printf(“%f”,x+y);输出输出:333333.328125例例 3.7 main()float f=123.456;printf(“%f%10fn”,f,f);printf(“%10.2f%.2f%10.2f”,f,f,f);输出输出:123.55994123.455994123.46123.46123.46 例例
23、 3.7 例例 3.5 111111.111+222222.222=?浮点数丢失浮点数丢失 精度精度浮点数丢失浮点数丢失 精度精度 void main()float x,y;x=111111.111;y=222222.22;printf(“%f”,x+y);输出输出:333333.328125重点重点重点重点实型数据域宽控制实型数据域宽控制 main()float f=123.456;printf(“%f%10fn”,f,f);printf(“%10.2f%.2fn”,f,f);printf(%10.2f”,f);输出输出:123.55994123.455994123.46123.46123.
24、46 重点重点重点重点C语语言言程程序序设设计计第第二二章章四川理工学院四川理工学院四川理工学院四川理工学院 例程执行及分析例程执行及分析例例 3.2 (5)u 格式符格式符:用于按十进制形式输出用于按十进制形式输出unsigned 型数据。型数据。说明说明:有符号有符号int 型与型与unsigned 型数据可以相互赋值,型数据可以相互赋值,故故 int 型可以用型可以用%u格式输出;格式输出;unsigned 型也可以用型也可以用%d 格式输出。格式输出。unsigned 型还可以用型还可以用%o和和%x格式输出格式输出。例例 3.2 void main()unsigned int a=6
25、5535;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,6553411111111111111101111111111111111a=65535b=2 u 格式符格式符用于按十进制形式用于按十进制形式输出输出unsigned型数据型数据例例 3.2 void main()unsigned int a=65535;int b=2;printf(“a=%d,%o,%x,%un”,a,a,a,a);prin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 简单 程序设计 ppt 课件
限制150内