大学计算机C语言第二章概要课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《大学计算机C语言第二章概要课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机 语言 第二 概要 课件
- 资源描述:
-
1、编写一个编写一个C程序,输入程序,输入a,b,c,输出其中最大值输出其中最大值#include int main()/定义主函数定义主函数 /主函数体开始主函数体开始 int max(int x,int y);/对被调用函数对被调用函数max的声明的声明 int a,b,c,d;/定义变量定义变量a,b,c scanf(“%d,%d,%d”,&a,&b,&c);/输入变量输入变量a、b、c的值的值 d=max(max(a,b),c);/2次调用次调用max函数,将得到的值赋给函数,将得到的值赋给d printf(max=%dn,d);/输出输出d的值的值 return 0;/返回函数值为返回函
2、数值为025(5)22.5(510)20(10)xxyxxxx22221111147101003*i-2例例5.2(2007年山东卷(文)年山东卷(文)阅读如下程序框,若输入的是阅读如下程序框,若输入的是100,则输,则输出的变量和的值依次是(出的变量和的值依次是()A2550,2500 B2550,2550C2500,2500 D2500,2550辗转相除法辗转相除法例:例:225和和135的最大公约数的最大公约数225=135*1+90135=90*1+4590=45*2+0辗转相除法辗转相除法所谓辗转相除法,就是对于给定的两个数所谓辗转相除法,就是对于给定的两个数,用,用较大较大的数的数
3、除以较小除以较小的数。若的数。若余数不为余数不为零零,则将,则将余数余数和和较小较小的数构成新的一对数的数构成新的一对数,继续上面的除法,直到大数被小数除尽,继续上面的除法,直到大数被小数除尽,则这时,则这时较小较小的数就是原来两个数的最大的数就是原来两个数的最大公约数。公约数。辗转相除法辗转相除法第一步:输入两个正整数第一步:输入两个正整数m,n(mn).第二步:计算第二步:计算m除以除以n所得的余数所得的余数r.第三步:第三步:m=n,n=r.第四步:若第四步:若r0,则则m,n的最大公约数等于的最大公约数等于m;否则转到第二步;否则转到第二步.第五步:输出最大公约数第五步:输出最大公约数
4、m.最大公约数最大公约数求求98和和63的最大公约数的最大公约数解:解:98=63*1+35 63=35*1+28 35=28*1+7 28=7*4+0例例:求求9898与与6363的最大公约数的最大公约数.解:由于解:由于6363不是偶数,把不是偶数,把9898和和6363以大数减小数,以大数减小数,并辗转相减并辗转相减 989863633535636335352828353528287 728287 7212121217 7141414147 77 7所以,所以,9898和和6363的最大公约数等于的最大公约数等于7 7 更相减损术更相减损术 所谓更相减损术,对于给定的两个数,先所谓更相减
5、损术,对于给定的两个数,先判断是否是偶数,若是,用判断是否是偶数,若是,用2约简,直到约简,直到有一个数变成奇数,然后用有一个数变成奇数,然后用较大较大的数的数减减去去较小较小的数,然后将的数,然后将差差和和较小的数较小的数构成新的构成新的一对数,再用较大的数减去较小的数,一对数,再用较大的数减去较小的数,反反复复执行此步骤执行此步骤直到差数和较小的数相等直到差数和较小的数相等,此时相等的两数便为原来两个数的最大公此时相等的两数便为原来两个数的最大公约数。约数。更相减损术算法步骤更相减损术算法步骤第一步:输入两个正整数第一步:输入两个正整数a,b(ab);第二步:若第二步:若a不等于不等于b,
6、则执行第三步;否则执行第三步;否则转到第五步;则转到第五步;第三步:把第三步:把a-b的差赋予的差赋予r;第四步:如果第四步:如果br,那么把那么把b赋给赋给a,把把r赋赋给给b;否则把否则把r赋给赋给a,执行第二步;,执行第二步;第五步:输出最大公约数第五步:输出最大公约数b.习题习题1、分别用辗转相除法和更相减损术求、分别用辗转相除法和更相减损术求324,243,135的最大公约数;的最大公约数;求多项式求多项式1110()nnnnf xa xaxa xa()f x 1210().nnna xaxaxa xa0101,nnvavv xa21232310nnnnvv xavv xavvxaV
7、0=anVk=vk-1x+an-k(k=1,2,.n)例:用秦九韶算法求多项式例:用秦九韶算法求多项式当当x=2时的值时的值 5432()23456f xxxxxx5432:()23456(2)3)4)5)6f xxxxxxxxxxx解010213243541,243114265576120vvv xvv xvv xvv xvv x1、求、求f(x)=2x5-5x4-4x3+3x2-6x+7当当x=5时的值时的值26772、求、求f(x)=2x6-5x5-4x3+3x2-6x当当x=5时的值时的值.15170秦九韶算法秦九韶算法特点特点:把求一个把求一个n n次多项次多项式的值转化为求式的值转
8、化为求n n个一个一次多项式的值次多项式的值,通过这通过这种转化种转化,把运算的次数把运算的次数由至多由至多n(n+1)/2n(n+1)/2次乘法次乘法运算和运算和n n次加法运算次加法运算,减减少为少为n n次乘法运算和次乘法运算和n n次次加法运算加法运算,大大提高了大大提高了运算效率。运算效率。否否开始开始输入输入a0,a1,a2,a3,a4,a5输入输入x0n5?n=1v=a5v=vx0+a5-nn=n+1输出输出v结束结束是是一个程序主要包括以下两方面的信息:一个程序主要包括以下两方面的信息:(1)对数据的描述对数据的描述。在程序中要指定用到。在程序中要指定用到哪哪些些数据以及这些数
9、据的类型和数据的组织形式数据以及这些数据的类型和数据的组织形式u这就是这就是数据结构数据结构(data structure)(2)对操作的描述对操作的描述。即要求计算机进行操作的。即要求计算机进行操作的步骤步骤u也就是也就是算法算法(algorithm)数据是操作的对象数据是操作的对象操作的目的是对数据进行加工处理,以操作的目的是对数据进行加工处理,以得到期望的结果得到期望的结果著名计算机科学家沃思著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:提出一个公式:算法算法+数据结构数据结构=程序程序一个程序除了一个程序除了算法和数据结构这算法和数据结构这主要要主要要素外,还应当
10、采用结构化程序设计方法素外,还应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语进行程序设计,并且用某一种计算机语言表示言表示算法算法、数据结构数据结构、程序设计方法程序设计方法和和语言语言工具工具是一个程序设计人员应具备的知识是一个程序设计人员应具备的知识算法是解决算法是解决“做什么做什么”和和“怎么做怎么做”的的问题问题程序中的操作语句,是算法的体现程序中的操作语句,是算法的体现不了解算法就谈不上程序设计不了解算法就谈不上程序设计2.1 什么是算法什么是算法2.2 简单的算法举例简单的算法举例2.3 算法的特性算法的特性2.4 怎样表示一个算法怎样表示一个算法2.5 结构化程序设
11、计方法结构化程序设计方法广义地说,为解决一个问题而采取的方广义地说,为解决一个问题而采取的方法和步骤,就称为法和步骤,就称为“算法算法”对同一个问题,可以有不同的解题方法对同一个问题,可以有不同的解题方法和步骤和步骤为了有效地进行解题,不仅需要保证算为了有效地进行解题,不仅需要保证算法法正确正确,还要考虑算法的,还要考虑算法的质量质量,选择合,选择合适的算法适的算法1 0 01nn计算机算法可分为两大类别:计算机算法可分为两大类别:u数值运算算法数值运算算法u非数值运算算法非数值运算算法数值运算数值运算的目的是求数值解的目的是求数值解非数值运算非数值运算包括的面十分广泛,最常见包括的面十分广泛
12、,最常见的是用于事务管理领域的是用于事务管理领域例例2.1 求求12345可以用最原始的方法进行:可以用最原始的方法进行:u步骤步骤1:先求:先求1*2,得到结果,得到结果2。u步骤步骤2:将步骤:将步骤1得到的乘积得到的乘积2再乘以再乘以3,得,得到结果到结果6。u步骤步骤3:将:将6再乘以再乘以4,得,得24。u步骤步骤4:将:将24再乘以再乘以5,得,得120。这就是最。这就是最后的结果。后的结果。例例2.1 求求12345 1000太繁琐太繁琐改进的算法:改进的算法:u设变量设变量p为被乘数为被乘数u变量变量i为乘数为乘数u用循环算法求结果用循环算法求结果S1:使:使p=1,或写成,或
13、写成1pS2:使:使i=2,或写成,或写成2iS3:使:使p与与i相乘,乘积仍放在变量相乘,乘积仍放在变量p中,可表中,可表示为:示为:p*ipS4:使:使i的值加的值加1,即,即i+1 iS5:如果:如果i不大于不大于5,返回重新执行,返回重新执行S3;否则;否则,算法结束,算法结束最后得到最后得到p的值就是的值就是 5!的值的值若是若是1000,求什么?,求什么?S1:使:使p=1,或写成,或写成1pS2:使:使i=2,或写成,或写成2iS3:使:使p与与i相乘,乘积仍放在变量相乘,乘积仍放在变量p中,可表中,可表示为:示为:p*ipS4:使:使i的值加的值加1,即,即i+1 iS5:如果
14、:如果i不大于不大于5,返回重新执行,返回重新执行S3;否则;否则,算法结束,算法结束若若求求1357911332211相当于相当于i 11 例例2.2 有有50个学生,要求将成绩在个学生,要求将成绩在80分分以上的学生的学号和成绩输出。以上的学生的学号和成绩输出。用用ni代表第代表第i个学生个学生学号,学号,gi表示第表示第i个学生成绩个学生成绩S1:1iS2:如果:如果gi80,则输出则输出ni和和gi,否则不输出,否则不输出S3:i+1iS4:如果:如果i50,返回到步骤,返回到步骤S2,继续执行,继续执行,否则,算法结束否则,算法结束 例例2.3 判定判定20002500年中的每一年是
15、年中的每一年是否闰年,并将结果输出。否闰年,并将结果输出。闰年的条件:闰年的条件:(1)能被能被4整除,但不能被整除,但不能被100整除的年份都是整除的年份都是闰年,如闰年,如2008、2012、2048年年(2)能被能被400整除的年份是闰年,如整除的年份是闰年,如2000年年u不符合这两个条件的年份不是闰年不符合这两个条件的年份不是闰年u例如例如2009、2100年年四年一闰,百年不闰;四百年再闰设设year为被检测的年份。算法表示如下:为被检测的年份。算法表示如下:uS1:2000yearuS2:若:若year不能被不能被4整除,则输出整除,则输出year 的的值和值和“不是闰年不是闰年
16、”。然后转到。然后转到S6uS3:若:若year能被能被4整除,不能被整除,不能被100整除,整除,则输出则输出year的值和的值和“是闰年是闰年”。然后转到。然后转到S6uS4:若:若year能被能被400整除,整除,则则输出输出year的的值和值和“是闰年是闰年”,然后转到,然后转到S6uS5:其他情况其他情况输出输出year的值和的值和“不是闰年不是闰年”uS6:year+1yearuS7:当:当year2500时,转时,转S2,否则停止,否则停止year不能不能被被4整除整除非闰年非闰年year被被4整整除,但不能除,但不能被被100整除整除闰年闰年year被被100整除,又能整除,又
17、能被被400整除整除闰年闰年其他其他非闰年非闰年逐渐缩小判逐渐缩小判断的范围断的范围例例2.4 求求规律:规律:第第1项的分子分母都是项的分子分母都是1 第第2项的分母是项的分母是2,以后每一项的分母子都是,以后每一项的分母子都是前一项的分母加前一项的分母加1 笫笫2项前的运算符为项前的运算符为“-”,后一项前面的运,后一项前面的运算符都与前一项前的运算符相反算符都与前一项前的运算符相反10019914131211111111(1)*1*(1)*.1*(1)*23499100 例例2.4 求求S1:sign=1S2:sum=1S3:deno=2S4:sign=(-1)*signS5:term=
18、sign*(1/deno)S6:sum=sum+termS7:deno=deno+1S8:若:若deno100返回返回S4;否则算法结束;否则算法结束10019914131211sign当前项符号当前项符号term当前项的值当前项的值sum当前各项的和当前各项的和deno当前项分母当前项分母-1-1/21-1/23满足,返回满足,返回S4例例2.4 求求S1:sign=1S2:sum=1S3:deno=2S4:sign=(-1)*signS5:term=sign*(1/deno)S6:sum=sum+termS7:deno=deno+1S8:若:若deno100返回返回S4;否则算法结束;否则
19、算法结束10019914131211sign当前项符号当前项符号term当前项的值当前项的值sum当前各项的和当前各项的和deno当前项分母当前项分母11/31-1/2+1/34满足,返回满足,返回S4例例2.4 求求S1:sign=1S2:sum=1S3:deno=2S4:sign=(-1)*signS5:term=sign*(1/deno)S6:sum=sum+termS7:deno=deno+1S8:若:若deno100返回返回S4;否则算法结束;否则算法结束1111112349910099次循环后次循环后sum的值的值就是所要求的结果就是所要求的结果 例例2.5 给出一个大于或等于给出
展开阅读全文