




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家级精品课程网站(本书配套教学网站),1,关于C+的建议,同学们的建议先解释它的原理,要怎么样才得到这样的结果,然后再用C+语言编写出来,讲课时更加详细增加课堂的趣味性开通QQ空间、微博,便于交流对同学们的要求:抽空看书、自己多一些实践,注意问题记录多说、多想、多问,提高自主学习的能力不要采取完全放弃的态度,2,我想到的,个人承诺:可以打断我的讲课来提问我讲过的知识可以随便问。没讲过的我也会尽我所能的去回答明确目的,便于取舍。基本类型、语法程序思维能力没有压力就没有动力以寝室为单位分小组每次课由小组成员演示一个程序,3,本周五实验课内容,P43:第5题P63:实例编程P84:例4-6(排序)注意:把代码输入VC2005自己先试一下,问题记录检查(三选二):输入/输出、回答问题实验报告,4,第4章数组与字符串,4.1数组1.一维数组2.二维数组3.多维数组4.2字符型数组和字符串处理库函数1.字符型数组的定义和初始化2.字符串的输入与输出3.字符串处理库函数,5,4.1数组,数据类型(1)基本类型:整型、字符型、实型(2)构造类型:由基本类型数据按一定规则组成的,包括数组、结构体、共用体数组(1)具有相同数据类型的变量集合,这些变量名称相同,下标不同,称为数组元素(2)有一个下标一维数组(3)有两个下标二维数组,6,4.1.1一维数组,1、一维数组的定义格式类型说明符数组名常量表达式2、说明(1)数组名命名规则和变量名相同。(2)数组名后用方括弧括起来的常量表达式表示下标长度(3)C语言的下标从0开始,必须是整型变量或常量。(4)数组在内存中存储时,按下标递增的顺序连续存储各元素例如:intarray10;表示数组名为a,有10个元素,7,3、一维数组的初始化,(1)定义数组时顺序对各元素赋以初值例如:inta10=0,1,2,3,4,5,6,7,8,9;(2)全部元素赋初值时,可以不指定数组长度例如:inta5=1,2,3,4,5;可以写成inta=1,2,3,4,5;(3)可以只给一部分元素赋值。例如:inta10=0,1,2,3,4;前面5个元素赋初值,后5个元素值为0。,8,一维数组初始化,例:intA5;在内存存储如图数组的首地址是数组名A数组的首地址也是第一个元素的地址赋值如图,9,例4-1,题目:给一维数组x输入10个整数,找出x数组中的最大数和最小数。算法分析:1、假设数组中第1个元素最大,令xmax=a02、将ai(0=in)与max进行比较,若aiarrayi;intbig=array0;for(intj=0;jbig)big=arrayj;coutmax=bigname;cin.get(name,n);/第一个是字符数组变量,第二个指定向这个变量中读入几个字符cout,thenamestoringinthevariableis:name2string;coutThelengthofthestringis:mystrlen(string)endl;return0;,输入china输出Thelengthofthestringis:5,24,程序设计举例,例4-5编写一个程序,实现矩阵相乘运算例4-6编写一个用于对整型数组进行排序的程序,排序方法使用简单的交换排序法例4-7编写一个字符串处理程序,将一个字符串之中的所有小写字母转换为相应的大写字母例4-8使用数组编写一个统计学生课程平均分的程序,25,例4-5实现矩阵相乘运算,算法说明:矩阵S(LxN)和矩阵T(NxM)相乘。S是L行、N列;T是N行、M列。要求:S的列数和T的行数必须相同。,26,算法说明(续),S=,103211,T=,312201121,SxT=,1*3+0*2+3*11*1+0*0+3*21*2+0*1+3*12*3+1*2+1*12*1+1*0+1*22*2+1*1+1*1,=R,r11r12r13,r21r22r23,27,矩阵乘法算法,用两重循环实现对ij的求值:for(i=0;il;i=i+1)for(j=0;in;j=j+1)求ij;其中“求ij”又可以细化为:ij=0;for(k=0;km;k=k+1)ijij+ikkj,28,/4-5:计算两个矩阵的乘积,#includeintmain()constintL=4;constintM=5;constintN=3;doubleaL*M=1.0,3.0,-2.0,0.0,4.0,-2.0,-1.0,5.0,-7.0,2.0,0.0,8.0,4.0,1.0,-5.0,3.0,-3.0,2.0,-4.0,1.0;doublebM*N=4.0,5.0,-1.0,2.0,-2.0,6.0,7.0,8.0,1.0,0.0,3.0,-5.0,9.0,8.0,-6.0;doublecL*N;inti,j,k;,29,/4-5:计算两个矩阵的乘积(续),for(i=0;iL;i=i+1)for(j=0;jN;j=j+1)ci*N+j=0;for(k=0;kM;k=k+1)ci*N+j=ci*N+j+ai*M+k*bk*N+j;coutTheresultisc=endl;for(i=0;iL;i=i+1)for(intj=0;jN;j=j+1)coutci*N+j;coutlistj)inttmp=listj-1;listj-1=listj;listj=tmp;coutTheresultis:endl;for(intk=0;k16;k+)coutlistk;coutendl;return0;,33,例4-7将小写字母转换为大写字母,#includeintmain()charstr=Thisisasample;cout=a,34,例4-8统计学生课程平均分的程序,定义二维数组student65,其中,给数组student前4列元素读值,第1列为学号,第2列到第4列为门课程的成绩。第5列为平均分,通过计算求得。,35,/4-8:统计学生课程的平均分,#include#definePERSON6#defineCOURSE3intmain()intstudentPERSONCOURSE+2;inti,j;coutPleaseinputdataofstudent:studentij;studentiCOURSE+1=studentiCOURSE+1+studentij;studentiCOURSE+1=studentiCOURSE+1/COURSE;,37,/4-8:统计学生课程的平均分,cout学号高数英语体育平均分endl;cout-endl;for(i=0;iPERSON;i=i+1)for(j=0;j=COURSE+1;j=j+1)coutstudentijt;coutxjtuStudenti.scorej;xjtuStudenti.GPA=xjtuStudenti.GPA+xjtuStudenti.scorej;xjtuStudenti.GPA=xjtuStudenti.GPA/COURSE;,42,cout学号高数英语体育平均分endl;cout-endl;for(i=0;iPERSON;i=i+1)coutxjtuStudenti.idt;for(j=0;jCOURSE;j=j+1)coutxjtuStudenti.scorejt;coutxjtuStudenti.GPAendl;return0;,43,上机练习题,1使用数组求斐波那挈数列的第n项和前n之和。3矩阵相加。4输入10个字符到一维字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论