吴文虎程序设计基础ppt第四讲.ppt
- 文档编号:2726037
- 上传时间:2022-11-09
- 格式:PPT
- 页数:51
- 大小:293.50KB
吴文虎程序设计基础ppt第四讲.ppt
《吴文虎程序设计基础ppt第四讲.ppt》由会员分享,可在线阅读,更多相关《吴文虎程序设计基础ppt第四讲.ppt(51页珍藏版)》请在冰豆网上搜索。
第五章第五章选择、排队问题的选择、排队问题的解题思路解题思路与与数据组织数据组织1中秋佳节,有贵客来到草原,主人要中秋佳节,有贵客来到草原,主人要从羊群中选一只肥羊宴请宾客,当然要选最从羊群中选一只肥羊宴请宾客,当然要选最重者。
这样就要记录每只羊的重量,如果有重者。
这样就要记录每只羊的重量,如果有成千上万只羊,不可能用一般变量来记录。
成千上万只羊,不可能用一般变量来记录。
可以用带有下标的变量,也就是这里要讲的可以用带有下标的变量,也就是这里要讲的数组数组。
问题:
哪只羊最重?
问题:
哪只羊最重?
我们先看例子:
用键盘输入我们先看例子:
用键盘输入10只羊的重量存放到只羊的重量存放到一个名为一个名为sheep的数组中的数组中2/*/*/*/*程序名:
程序名:
程序名:
程序名:
5_1.cpp5_1.cpp(数组示例)(数组示例)(数组示例)(数组示例)*/*/*作作作作者:
者:
者:
者:
wuwh*wuwh*/*/*编制时间:
编制时间:
编制时间:
编制时间:
20022002年年年年99月月月月2020日日日日*/*/*主要功能:
找出最重的羊主要功能:
找出最重的羊主要功能:
找出最重的羊主要功能:
找出最重的羊*/*/*#include#include/预编译命令预编译命令预编译命令预编译命令#include#include/预编译命令预编译命令预编译命令预编译命令voidmain()voidmain()/主函数主函数主函数主函数floatsheep10;floatsheep10;/数组,有数组,有数组,有数组,有1010个浮点类型元素,个浮点类型元素,个浮点类型元素,个浮点类型元素,/用于存用于存用于存用于存1010只羊每一只的重量只羊每一只的重量只羊每一只的重量只羊每一只的重量memsetmemset(sheep,0,(sheep,0,sizeofsizeof(sheep);/(sheep);/初始化数组元素为初始化数组元素为初始化数组元素为初始化数组元素为00floatfloatbigsheepbigsheep=0.0f;=0.0f;/浮点类型变量,存放最肥羊的重量浮点类型变量,存放最肥羊的重量浮点类型变量,存放最肥羊的重量浮点类型变量,存放最肥羊的重量intinti=0,i=0,bigsheepNobigsheepNo=0;=0;/整型变量,整型变量,整型变量,整型变量,ii用于计数循环,用于计数循环,用于计数循环,用于计数循环,/bigsheepNobigsheepNo用于记录最肥羊的号用于记录最肥羊的号用于记录最肥羊的号用于记录最肥羊的号3#includefloatsheep10;memset(sheep,0,sizeof(sheep);4for(i=0;i10;i=i+1)for(i=0;i10;i=i+1)/计数循环计数循环计数循环计数循环/循环,开始循环,开始循环,开始循环,开始coutcout请输入羊的重量请输入羊的重量请输入羊的重量请输入羊的重量sheepi=;/sheepisheepi;sheepi;/输入第输入第输入第输入第ii只羊的重量只羊的重量只羊的重量只羊的重量if(if(bigsheepbigsheepsheepi)sheepi)/如果第如果第如果第如果第ii只羊比当前最肥羊大只羊比当前最肥羊大只羊比当前最肥羊大只羊比当前最肥羊大bigsheepbigsheep=sheepi;=sheepi;/让第让第让第让第ii只羊为当前最肥羊只羊为当前最肥羊只羊为当前最肥羊只羊为当前最肥羊bigsheepNobigsheepNo=i;=i;/纪录第纪录第纪录第纪录第ii只羊的编号只羊的编号只羊的编号只羊的编号/循环结束循环结束循环结束循环结束/输出最肥羊的重量输出最肥羊的重量输出最肥羊的重量输出最肥羊的重量coutcout最肥羊的重量为最肥羊的重量为最肥羊的重量为最肥羊的重量为bigsheepbigsheependlendl;/输出该羊的编号输出该羊的编号输出该羊的编号输出该羊的编号coutcout最肥羊的编号为最肥羊的编号为最肥羊的编号为最肥羊的编号为bigsheepNobigsheepNoendlendl;5nnfor(i=0;i10;i=i+1)for(i=0;i10;i=i+1)nnnncoutcout“请输入羊的重量请输入羊的重量请输入羊的重量请输入羊的重量sheepsheepnni“i“sheepisheepi;nnif(if(bigsheepbigsheepsheepisheepi)nnnnbigsheepbigsheep=sheepisheepi;nnbigsheepNobigsheepNo=i;=i;nnnn6程程序序框框图图7类型说明符类型说明符数组名数组名常量表达式常量表达式例:
例:
例:
例:
floatsheep10;floatsheep10;intinta20011000;a20011000;说明说明1.1.数组名的第一个字符应为英文字母;数组名的第一个字符应为英文字母;数组名的第一个字符应为英文字母;数组名的第一个字符应为英文字母;2.2.用用用用方括号方括号方括号方括号将将将将常量表达式常量表达式常量表达式常量表达式括起;括起;括起;括起;3.3.常量表达式定义了数组元素的个数;常量表达式定义了数组元素的个数;常量表达式定义了数组元素的个数;常量表达式定义了数组元素的个数;数组的定义数组的定义84.4.数组下标从数组下标从数组下标从数组下标从00开始。
如果定义开始。
如果定义开始。
如果定义开始。
如果定义55个元素,是从第个元素,是从第个元素,是从第个元素,是从第00个元素至第个元素至第个元素至第个元素至第44个元素;个元素;个元素;个元素;例如例如例如例如inta5定义了定义了5个数组元素如下个数组元素如下:
a0,a1,a2,a3,a4这是这是这是这是55个带下标的变量,这个带下标的变量,这个带下标的变量,这个带下标的变量,这55个变量的类型是相同的个变量的类型是相同的个变量的类型是相同的个变量的类型是相同的95.5.常量表达式中不允许包含变量常量表达式中不允许包含变量n例如例如intn;nn=5;nintan;不合法!
不合法!
n因为因为n是变量,不是常量是变量,不是常量10nn#defineN100nn#defineM200nnintaN;nnlongbN+M;nndoublegM+6;nn以上定义是合法的以上定义是合法的11第一种方法第一种方法直接声明时初始化直接声明时初始化例如例如例如例如inta5=3,5,4,1,2;a0=3;a1=5;a2=4;a3=1;a4=2;a0=3;a1=5;a2=4;a3=1;a4=2;数组初始化数组初始化12第二种方法第二种方法使用使用memset函数函数格式为格式为memset(数组名数组名,初始化值初始化值,sizeof(数组名数组名)举例:
举例:
memset(sheep,0,sizeof(sheep);含义是将名为含义是将名为sheep的数组中的全部元素均初的数组中的全部元素均初始化为始化为0。
更深一层是说让系统为。
更深一层是说让系统为sheep10所所分配的内存单元从分配的内存单元从sheep0为标志的地址单元为标志的地址单元到该数组的全部地址单元都赋以到该数组的全部地址单元都赋以0。
调用此库调用此库函数需要加入头文件函数需要加入头文件。
131.1.1.1.#includeincludevoidmain()voidmain()intinta4;a4;/声明项声明项声明项声明项coutcouta0a0endlendl;coutcouta1a1endlendl;coutcouta2a2endlendl;coutcouta3a3endlendl;2.2.2.2.其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为intinta4=0,1,2,3;a4=0,1,2,3;请自己上机做请自己上机做6个实验个实验143.3.3.3.其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为intinta4=3,8;a4=3,8;4.4.4.4.其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为intinta4=2,4,6,8,10;a4=2,4,6,8,10;5.5.5.5.其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为intinta4=2,4,6,d;a4=2,4,6,d;6.6.6.6.其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为其他不变,改变声明项为intintn=4;n=4;intintan=0,1,2,3;an=0,1,2,3;15讨讨论论问问题题使用筛法求使用筛法求100100以内的所有素数以内的所有素数16思路思路1.1.想象将想象将想象将想象将100100100100个数看作沙子和小石头子,让小石头子权个数看作沙子和小石头子,让小石头子权个数看作沙子和小石头子,让小石头子权个数看作沙子和小石头子,让小石头子权称素数;让沙子当作非素数。
弄一个筛子,只要将称素数;让沙子当作非素数。
弄一个筛子,只要将称素数;让沙子当作非素数。
弄一个筛子,只要将称素数;让沙子当作非素数。
弄一个筛子,只要将沙子筛走,剩下的就是素数了。
沙子筛走,剩下的就是素数了。
沙子筛走,剩下的就是素数了。
沙子筛走,剩下的就是素数了。
2.2.非素数一定是非素数一定是非素数一定是非素数一定是2222、3333、4444的倍数。
的倍数。
的倍数。
的倍数。
3.3.使用数组,让下标就是使用数组,让下标就是使用数组,让下标就是使用数组,让下标就是100100100100以内的数,让数组元素的以内的数,让数组元素的以内的数,让数组元素的以内的数,让数组元素的值作为筛去与否的标志。
比如筛去以后让元素值为值作为筛去与否的标志。
比如筛去以后让元素值为值作为筛去与否的标志。
比如筛去以后让元素值为值作为筛去与否的标志。
比如筛去以后让元素值为1111。
17方法的依据:
方法的依据:
1111至至至至100100100100这些自然数可以分为三类:
这些自然数可以分为三类:
这些自然数可以分为三类:
这些自然数可以分为三类:
单位数:
仅有一个数单位数:
仅有一个数单位数:
仅有一个数单位数:
仅有一个数1111。
素数:
素数:
素数:
素数:
是这样一个数,它大于是这样一个数,它大于是这样一个数,它大于是这样一个数,它大于1111,且只有,且只有,且只有,且只有1111和它自身这样两和它自身这样两和它自身这样两和它自身这样两个正因数。
个正因数。
个正因数。
个正因数。
合数:
合数:
合数:
合数:
除了除了除了除了1111和自身以外,还有其他正因数。
和自身以外,还有其他正因数。
和自身以外,还有其他正因数。
和自身以外,还有其他正因数。
1111不是素数,除不是素数,除不是素数,除不是素数,除1111以外的自然数,当然只有素数与合数。
以外的自然数,当然只有素数与合数。
以外的自然数,当然只有素数与合数。
以外的自然数,当然只有素数与合数。
筛法实际上是筛去合数,留下素数。
筛法实际上是筛去合数,留下素数。
筛法实际上是筛去合数,留下素数。
筛法实际上是筛去合数,留下素数。
18nn为了提高筛法效率,注意到:
为了提高筛法效率,注意到:
为了提高筛法效率,注意到:
为了提高筛法效率,注意到:
nn令令令令nn为合数(这里是为合数(这里是为合数(这里是为合数(这里是100100),),),),nncc为为为为n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 吴文虎 程序设计 基础 ppt 第四