199-8-2计算机程序计-综合程序设计1.ppt

上传人:wj 文档编号:11476801 上传时间:2023-06-01 格式:PPT 页数:43 大小:535KB
下载 相关 举报
199-8-2计算机程序计-综合程序设计1.ppt_第1页
第1页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第2页
第2页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第3页
第3页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第4页
第4页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第5页
第5页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第6页
第6页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第7页
第7页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第8页
第8页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第9页
第9页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第10页
第10页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第11页
第11页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第12页
第12页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第13页
第13页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第14页
第14页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第15页
第15页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第16页
第16页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第17页
第17页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第18页
第18页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第19页
第19页 / 共43页
199-8-2计算机程序计-综合程序设计1.ppt_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

199-8-2计算机程序计-综合程序设计1.ppt

《199-8-2计算机程序计-综合程序设计1.ppt》由会员分享,可在线阅读,更多相关《199-8-2计算机程序计-综合程序设计1.ppt(43页珍藏版)》请在冰点文库上搜索。

199-8-2计算机程序计-综合程序设计1.ppt

0,计算机程序设计(C+)习题课,1,参考书,1郑莉.C+语言程序设计(第3版).清华大学出版社刘景,周玉龙.高级语言C+程序设计(第二版),高等教育出版社,2006.122StanleyB.LippmanBarbaraE.MooJoseLaJoie著,李师贤等译.C+Primer中文版(第4版).人民邮电出版社.20063H.M.Deitel(美)著,张引等译.C+大学教程(第5版).电子工业出版社,2007.ISBN:

97871210265774AlStevens(美)著,林瑶,蒋晓红,彭卫宁译.C+大学自学教程.电子工业出版社出版日期,2004.ISBN:

7-5053-9260-35林锐.高质量C+/C编程指南.2001.(网上电子版),2,第7章函数和指针,递归函数调用自身问题求解方法具有递推关系有结束递归的基本形式函数的重载指针作参数和返回指针的函数char*f1(char*p,int*q),3,指向函数的指针double(*fp)(double*);fp=max;coutmax(A);带参数的main()函数voidmain(inta;char*argv)内联函数void,4,例4输出英文月份名称,教材函数,静态变量,返回指针另外解法

(1)不用函数。

用数组,coutmonthi;

(2)char*month(intn,char*p)charm20=“”,”January”,”February”,;strcpy(p,mn);returnp;,5,例5通用积分函数,/Example7-5:

用梯形积分法求解定积分的通用积分函数#include#includeusingnamespacestd;doubleintegral(doublea,doubleb,double(*fun)(double),intn)doubleh=(b-a)/n;doublesum=(*fun)(a)+(*fun)(b)/2;inti;for(i=1;in;i+)sum+=(*fun)(a+i*h);sum*=h;returnsum;,6,/测试用主函数intmain()doublex1,x2;coutx1x2;coutsin(x)结果是integral(x1,x2,sin,1000)endl;coutcos(x)结果是integral(x1,x2,cos,1000)endl;coutexp(x)结果是integral(x1,x2,exp,1000)endl;return0;,7,习题6编写用于去掉字符串尾部空格的函数,用递归实现char*trimstr(char*p)intl=0;char*q=p;while(*q!

=0)l+;q+;returntrimstr1(p,l);,char*trimstr1(char*p,intl)if(pl-1=)pl-1=0;trimstr1(p,l-1);returnp;,8,#include#includeusingnamespacestd;voidmain()chars50;intn=0;while

(1)coutPleaseinputastringwithspaceatendendl;cin.getline(s,50);cout|s|endl;cout|trimstr(s)|endl;,9,习题7编写用于去掉字符串前面空格的函数,学习指导参考解答char*myltrim(char*string)char*ptr=string;while(*ptr=)ptr+;strcpy(string,ptr);returnstring;,10,另一种解法char*myltrim(char*string)char*ptr=string;char*q;while(*ptr=)ptr+;,q=string;while(*ptr!

=0)*q=*ptr;q+;ptr+;*q=0;returnstring;,11,习题8数字转换为英文单词,Pleaseinputainteger:

1234567890onebilliontwohundredthirtyfourmillionfivehundredsixtyseventhousandeighthundredninety,12,intmain()inti;couti;if(i=0)coutzero;intbillion=i/1000000000;i=i%1000000000;intmillion=i/1000000;i=i%1000000;intthousand=i/1000;i=i%1000;,if(billion)trans999(billion);coutbillion;if(million)trans999(million);coutmillion;if(thousand)trans999(thousand);coutthousand;trans999(i);coutendl;return0;,13,voidtrans999(intn)staticchar*digit10=,one,two,three,four,five,six,seven,eight,nine;staticchar*teens10=ten,eleven,twelve,thirteen,fourteen,fifteen,sixteen,seventeen,eighteen,nineteen;staticchar*ties10=,twenty,thirty,forty,fifty,sixty,seventy,eighty,ninety;n=n%1000;inti=n/100;if(i)cout1)couttiesidigitj;elseif(i)coutteensn-10;elsecoutdigitj;,14,补充命令行求数据的和,plus1.12.23.34.411intmain(intn,char*argv)inti=1;doublesum=0.0;while(in)/处理命令函数的多个参数sum=sum+atod(argvi);/字符串转换为双精度数并求和i+;coutsumendl;return0;,15,#includeusingnamespacestd;/将带符号的字符串转换为双精度数doubleatod(char*str)char*s=str;doublesign=1,a=0;if(*s=-)/处理符号sign=-1;s+;elseif(*s=+)sign=1;s+;elsesign=1;,/处理整数部分while(*s!

=0/返回结果,16,第6章指针,地址变量的地址,数组的地址,函数的地址指针指针的运算&,*,算术,比较,下标通过指针访问数据指针作函数的参数动态存储分配指针数组,17,例6-5编写查找字典的函数,字典的存储方法staticchar*items100=book,dictionary,university;/单词表staticchar*explanation100=n.书,n.词典,n.大学,无此单词;/解释表intN=3;/单词数量,18,#includeusingnamespacestd;/查找单词char*check(char*word)staticchar*items100=book,dictionary,university;/单词表staticchar*explanation100=n.书,n.词典,n.大学,无此单词;/解释表intN=3;/单词数量inti=0;while(iN)/顺序查找if(strcmp(itemsi,word)=0)break;/找到i+;/i=N时,没有找到,对应“无此单词”returnexplanationi;/返回解释的指针,静态变量,19,/主函数intmain(void)charword20;while

(1)coutword;/coutwordcheck(word)endl;/打印单词和解释return0;,20,习题23位分节格式,while(num!

=0)*ptr=num%10+0;num=num/10;ptr+;k+;if(k%3=0)*ptr=,;ptr+;k=0;,21,第5章函数,()函数的定义函数名、函数值类型、形式参数、函数体。

函数头参数缺省值/默认值,无参数(void)函数的调用实参,类型一致、位置一致、个数一致函数说明/声明“先定义,后引用”函数间的参数传递值传递、引用传递函数与数组数组作参数,二维数组作参数局部变量和全局变量局部变量、全局变量、静态变量,22,局部变量函数内声明的变量,只在本函数内使用(作用域)分程序内定义的变量,只在该分程序块内使用全局变量所有函数外声明的变量,在本源程序的任何函数内使用在函数内用extern说明自动变量函数的形参和在函数中定义的变量,函数结束释放空间静态变量用static说明的局部变量,函数结束时,空间不释放并保留原址静态存储区、动态存储区,23,排序方法,冒泡排序/交换排序选择排序插入排序,24,反转字符串,char*mystrrev(char*str)intn=0;inti=0;while(strn!

=0)/求字符串的长度n+;for(i=0;in/2;i+)/n是字符串的长度chartmp;tmp=stri;/前后字符交换stri=strn-1-i;strn-1-i=tmp;returnstr;/返回反转后的字符串的指针,25,一元非线性方程,弦割法,二分法,牛顿法/牛顿迭代法,26,第4章数组与字符串,一维数组、二维数组、多维数组定义、初始化、使用,数值数组元素不能整体输入和输出下标的范围,大小为常量表达式按行存储用一维数组array存放二维矩阵A(N*M)的元素Mi,j=arrayi*M+j;i,j均从0开始字符串一维字符数组、二维字符数组字符数组元素可以整体输入、输出;结束符0,27,例4-7计算大数的阶乘(50!

),9,sc:

进位sum:

和,?

去掉输出结果前面的0?

A,A,28,例4-9字符串连接。

intmain()chardestination81=abcdefghijklmnopqrstuvwxyz;charsource=ABCDEFGHIJKLMNOPQRSTUVWXYZ;inti=strlen(destination);/不使用该函数如何?

intj=0;while(sourcej!

=0)destinationi+=sourcej+;destinationi=0;coutTheresultis:

destinationendl;return0;,29,/字符串连接函数char*strlink(char*str1,char*str2)char*p=str1;/保留起始地址while(*p!

=0)p+;/找到str1的末尾while(*str2!

=0)/将sttr2放到str1的末尾*p=*str2;p+;str2+;*p=0;/结束符returnstr1;/返回起始地址,30,习题:

成绩统计,使用数组编写一个统计学生课程平均分的程序:

输入6个学生的学号和3门课程的成绩(整数形式),统计每个学生3门课程的平均分(整数形式),最后输出统计结果。

输出格式:

学号高数英语体育平均分-,31,第3章控制结构,顺序、选择、循环题目:

级数求和和的初始值,通项(组合通项),逐步求和,32,例3-11:

统计阶乘n!

的末尾中0的个数,对于任意给定的一个正整数n,统计其阶乘n!

的末尾中0的个数。

10的因子:

5、2有一对5和2,就有一个0n!

中,因子2比因子5多。

因此,5的个数决定了0的个数。

从5开始,看N!

中,5的因子的个数。

33,一个数m中因子5的个数,sum为因子5的个数。

(1)如果m!

=0ifm%5=0,则有一个因子5,sum+;

(2)m=m/5,转

(1).,34,算法,

(1)5的个数sum=0,i=5;

(2)如果i=N,转(8);(3)m=i;(4)若m等于0,转(7);(5)如果m%5=0,sum+;(6)m=m/5,转(4);(7)i=i+5,转

(2);(8)打印N!

末尾0的个数sum.,35,#includeusingnamespacestd;intmain()intn;intsum=0;inti;coutn;for(i=5;i=n;i=i+5)/只有5的倍数才含5的因子intm=i;while(m!

=0)if(m%5=0)sum+;m=m/5;coutThenumberofzeroinn!

is:

sumendl;return0;,36,/另一种方法sum=0;for(i=5;i=n;i=i+)/只有5的倍数才含5的因子intm=i;while(m%5=0)sum=sum+1;m=m/5;coutThenumberofzeroinn!

is:

sumendl;,37,#includeusingnamespacestd;intmain()intn;intsum=0;inti,k;coutn;for(i=5;i=n;i=i+5)/只有5的倍数才含5的因子intm=i;for(k=0;m%5=0;k+)m=m/5;sum=sum+k;coutThenumberofzeroinn!

is:

sumendl;return0;,38,习题8分数序列的和,有一分数序列(即后一项的分母为前一项的分子,后项的分子为前一项分子与分母之和),求其前n项之和。

a,b;新的a,b:

a=a+b;b=a;tmp=a;a=a+b;b=tmp;,39,习题9求和,求a+aa+aaa+aaaa+.+aa.a(n个),其中a为19之间的整数。

例如:

当a=1,n=3时,求1+11+111之和;当a=5,n=7时,求5555555555555555555555555555之和。

第i项:

an=a;for(j=0;ji;j+)an=an*10+a;,40,一种方法,cina;cinn;sum=0;for(i=0;in;i+)an=a;for(j=0;ji;j+)an=an*10+a;sum=sum+an;coutsumendl;,a(n)=a(n-1)*10+a;,41,另一种方法,cina;cinn;sum=0;an=a;for(i=0;in;i+)sum=sum+an;an=an*10+a;coutsumendl;,42,作业,

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2