杨辉三角(队列)报告

杨辉三角(队列)报告
杨辉三角(队列)报告

重庆交通大学

设计性实验报告

班级: 2013级2班

学号:姓名:旧城余约

实验项目名称:队列的应用

实验项目性质:设计性实验

实验所属课程:数据结构

实验室(中心): B31-407 指导教师:鲁云平

实验完成时间: 2015 年 4月 25日

一、实验目的

掌握队列的存储结构及进队/出队等操作的实现。

二、实验内容及要求

1.实现队列的一种存储结构。

2.实现队列的相关操作。

3.利用队列的操作特点,借助进队与出队操作完成打印二项式系数的任务。

格式如下:

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

三、实验设备及软件

一台电脑、vc++6.0

四、实验过程及步骤

运行环境:vc++;

程序思路:将二项式(a+b)i展开,其系数构成杨辉三角形,只需将展开式系数的前n行打印出来。从三角形的形状克制,除第1行以外,在打印第i行

时,用到上一行(第i-1行)的数据,在打印第i+1行时,又用到第i

行的数据。

若设在数组q中已有第i行的数据,且s=0,则在第i行数据后添加一

个0,这样,第i+1行数据将与第i行数据以0为界顺序存放。

对于这个程序,我采用链式队列来写。

实验过程及步骤:首先,定义链式队列类,然后利用队列实现杨辉三角的输出。

编译步骤:逐步编译,防止出错。

五、主要代码及运行结果

主要代码:

1、链式队列类:

#include

template

class Queue;

template

class QueueNode

{

private:

T data;

QueueNode *link;

public:

QueueNode(T d=0,QueueNode *l=NULL):data(d),link(l){} friend class Queue;

};

template

class Queue

{

private:

QueueNode *front,*rear;

public:

Queue():rear(NULL),front(NULL){}

~Queue();

void EnQueue(const T &x);

T DeQueue();//删除并返回对头元素

T GetFront();//查看对头元素

void MakeEmpty();

int IsEmpty()const

{return (front==NULL)?true:false;}

};

//成员函数定义

template

Queue::~Queue()

{

QueueNode *p;

while(front!=NULL)

{

p=front;

front=front->link;

delete p;

}

}

template

void Queue::EnQueue (const T& x)

{

if(front==NULL)

front=rear=new QueueNode(x,NULL);

else

rear=rear->link=new QueueNode (x,NULL); }

template

T Queue::DeQueue()

{

assert(!IsEmpty());//断言,若队列不为空则继续执行QueueNode *p=front;

T retvalue=p->data;//取出并保存对头结点数据域

front=front->link;

delete p;

return retvalue;

}

template

T Queue::GetFront ()

{

assert(!Empty());

return front->data;

}

template

void Queue::MakeEmpty ()

{

QueueNode *p;

while(front!=NULL)

{

p=front;

front=front->link;

delete p;

}

}

2、杨辉三角实现代码:

//程序功能:对n行杨辉三角的输出

#include

#include

#include"queue.h"

int main()

{

int n,k;

cout<<"请输入你要显示的杨辉三角的行数:n=";

cin>>n;

while(n<=0)

{

cout<<"输入有误!请重新输入(n>0)!\n";

cout<<"请输入你要显示的杨辉三角的行数:n=";

cin>>n;

}

k=n;

Queue q;

q.MakeEmpty();

q.EnQueue(1);

q.EnQueue(1);//预先放入第一行的两个数

int s=0;

cout<<"要求显示的杨辉三角为:\n";

for(int i=1;i<=n;i++)

{

cout<

q.EnQueue(0);

for(int j=1;j<=i+2;j++)

{

int t=q.DeQueue();

q.EnQueue(s+t);

s=t;

if(j!=i+2)

{

if(j==1)

cout<

else

cout<

}

}

k--;

}

cout<

return 0;

}

运行结果:

显示输出11行杨辉三角:

六、心得体会

1、通过这次实验,我对链式存储有了更深的认识,在内存分配上有优势,用起来也

更方便。

2、这次实验,还有另外一个感触,在设置格式时显得很生疏,忘了一些,要及时去

复习。

3、代码还是要多练习,以提高速度。

杨辉三角的规律以及推导公式

杨辉三角的规律以及定理 李博洋 摘要杨辉三角中的一些规律 关键词杨辉三角幂二项式 引言 杨辉是我国南宋末年的一位杰出的数学家。在他所着的《详解九章算法》一书 中,画了一张表示二项式展开后的系数构成的三角图形,称做“开方做法本源”,现 在简称为“杨辉三角”,它是世界的一大重要研究成果。我们则来对“杨辉三角”的 规律进行探讨和研究。 内容 1二项式定理与杨辉三角 与杨辉三角联系最紧密的是二项式乘方展开式的系数规律,即。 杨辉三角我们首先从一个二次多项式(a+b)2的展开式来探讨。 由上式得出:(a+b)2=a2+2ab+b2此代数式的系数为:121 则(a+b)3的展开式是什么呢?答案为:a3+3a2b+3ab2+b3由此可发现,此代数式的系数 为:1331但似乎没有什么规律,所以让我们再来看看(a+b)4的展开式。 展开式为:a4+4a3b+6a2b2+4ab3+b4由此又可发现,代数式的系数为: 14641似乎发现了一些规律,就可以发现以下呈三角形的数列: 1(110) 11(111) 121(112) 1331(113)

14641(114) 15101051(115) 1615201561(116) 因此可得出二项式定理的公式为: (a+b)n=C(n,0)a^n*b^0+C(n,1)a^(n-1)*b^1+...+C(n,r)a^(n-r)*b^r...+C(n,n)a^0*b^n 因此,二项式定理与杨辉三角形是一对天然的数形趣遇,它把带进了。求二项式展开式系数的问题,实际上是一种组合数的计算问题。用系数来计算,称为“式算”;用杨辉三角形来计算,称作“图算”。 2杨辉三角的幂的关系 首先我们把杨辉三角的每一行分别相加,如下: 1(1) 11(1+1=2) 121(1+2+1=4) 1331(1+3+3+1=8) 14641(1+4+6+4+1=16) 15101051(1+5+10+10+5+1=32) 1615201561(1+6+15+20+15+6+1=64) …… 相加得到的数是1,2,4,8,16,32,64,…刚好是2的0,1,2,3,4,5,6,…次幂,即杨辉三角第n行中n个数之和等于2的n-1次幂 3杨辉三角中斜行和水平行之间的关系 (1) 1(2)n=1 11(3)n=2 121(4)n=3 1331(5)n=4

显示杨辉三角实验报告

显示杨辉三角实验报告 姓名:许严班级:计122 学号:1213023050 1.问题描述 杨辉三角如图2.4.3所示,其特点是两个腰上数值是1,其他位置上的每一个整数都是它的上一行相邻两个整数之和。问题是:对于指定的最大行数rmax,要求从第一行到第rmax逐行显示杨辉三角形的所有元素。 2.基本要求 ⑴设计输出形式,尽量反映杨辉三角的特点。 ⑵设计计算杨辉三角形各行数值的方法。 ⑶输入:rmax从键盘输入。 ⑷输出:屏幕输出杨辉三角形. 3.实现提示 ⑴存储设计 计算杨辉三角形第i行时,如果在第i-1行两侧各添加一个0,则第i行的第j个元素等于第i-1行的第j-1个元素与第j个元素的和。计算如图2.4.4所示。第i行计算完,第i-1行的数据就没有用了,依据第i行数据可计算第i+1行的数据。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 … 图2.4.3 杨辉三角形 从上述计算中不难看出,第i行的元素从左往右依次可被求得,求解过程中也是从左往右依次使用地i-1行的数据,显然,具有先入先出的特点。所以,可借助一个队列存放计算过程中所需的数据,如图2.4.5所示。 但随着航数的增加,队列会很长。所以,可以设置一循环队列,队长不少于rmax+2,边计算边出队。 (2)算法设计 计算各行元素的算法步骤如下。 Step1:队列初始化,0、1入队。队头ftont指向0处,队尾指向1后。 Step2:i从1到rmax,循环执行下列操作,求第i行数据。 2.1 0入队。 2.2 从队首起直到队尾,每出队两元素,求和后入队。 输出时注意0不输出。

斐波那契数列教学设计

《斐波那契数列》教学设计 杨遇春 教学背景: 《斐波那契数列》是江苏教育出版社《普通高中课程标准实验教科书·数学·必修5》第59页的阅读材料,是学生在学习完数列(主要是等差数列和等比数列)后安排的一节课外学习内容。考虑到本节内容学生自学有一定难度,同时本节课对培养学生学习数学的兴趣,提高自己对数列的认识和后续学习都很有帮助,而且本课所强调的自主探索、合作交流的学习能力在我们的学生中还有待进一步提高,因此我决定用一节课引导学生学习本节内容。 多媒体技术是现代课堂教学的重要手段,它为我们提供大量的信息和课程内容,是提高课堂效率、丰富课堂内容的有效途径。在本节课我主要借助PowerPoint演示加网络搜索的方法教学,用PowerPoint来向学生展示本节的主要学习思路和大纲,然后问题引导学生用网络搜索引擎查找问题答案展开学习。 教学目标: 1.使学生了解了斐波那契数列; 2.向学生展示生活中的数学,感受数学美和数学思想; 3.指导学生在现代技术条件下如何从网络上选择知识和学习知识进而解决问题。 教学重点: 认识斐波那契数列 教学过程: 1、斐波那契数列的由来(创设情景,引入主题) 先用PowerPoint让学生看一个有趣的问题:有一个人第一月底时在一间房子里放了一对刚出生的小兔,小兔一个月后能长成大兔,再过一个月便能生下一对小兔,次后每个月生一对小兔。如果不发生死亡,那么到年底这个人有多少对兔子? 先由学生自己思考,我不急于公布答案,而是与同学们共同做如下研: 我们用◎表示一对大兔,用○表示一对小兔,逐月统计兔子的对数(用PowerPoint逐月显示,加以讲解,务必要学生理解递推的本质) 第1月底○ 第2月底◎ 第3月底◎○ 第4月底◎○◎ 第5月底◎○◎◎○ 第6月底◎○◎◎○◎

C++实验报告 (1)

2013-2014年度C++实验报告 学院:机械学院 专业:机械设计制造及其自动化学号:1240202414 姓名:陆响明

第三章: 习题1.编写程序,求从键盘输入的3个数中的最大数。#include void main() { float a,b,c,d; cout<<"请输入3个整数:"<<'\n'; cin>>a>>b>>c; if(a>b)d=a; else d=b; if(d>c)cout<<"最大数为:"< void main() { cout<<"请输入10个数:"<<'\n'; float a=0,b; for(int i=0;i<10;i++){ cin>>b; a+=b; } a/=10; cout<<"它们的平均值为:"<

习题6.计算s=1+2+3+......+i,累加到s大于1000,并输出s和i的值。 #include void main() { int s=0; for(int i=0;s<=1000;i++) s+=i; i--; cout<<"s="< void main() { int a[10]={3,5,2,7,6,1,7,4,7,5}; int *p,i,k,max=0; for(i=0;i<10;i++){ p=&a[i]; if (max<*p){ max=a[i]; k=i; } } cout<<"最大元素为:"<

二项式定理公开课教案

二项式定理公开课教案 1、重点:二项式定理的发现、理解和初步应用。 2、难点:二项式定理的发现。 三、教学过程 1、情景设置 问题1:若今天是星期一,再过30天后是星期几?怎么算? 预期回答:星期三,将问题转化为求“30被7除后算余数”是多少。 问题2:若今天是星期一,再过)(8* ∈N n n 天后是星期几?怎么算? 预期回答:将问题转化为求“n n )17(8+=被7除后算余数”是多少,也就是研究)()(*∈+N n b a n 的展开式是什么?这就是本节课要学的内容,学完本课后,此题就不难求解了。2、新授 第一步:让学生展开 b a b a +=+1)( 2222)(b ab a b a ++=+; 32232333)()()(b ab b a a b a b a b a +++=++=+; 43223434464)()()(b ab b a b a a b a b a b a ++++=++=+ 5432234555510105)()()(b ab b a b a b a a b a b a b a +++++=++=+ 教师将以上各展开式的系数整理成如下模型 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 问题1:请你找出以上数据上下行之间的规律。 预期回答:下一行中间的各个数分别等于上一行对应位置的相邻两数之和。 问题2:以5 )(b a +的展开式为例,说出各项字母排列的规律;项数与乘方指数的关系;展开式第二项的系数与乘方指数的关系。

预期回答:①展开式每一项的次数按某一字母降幂排列、另一字母升幂排列,且两个字母的和等于乘方指数;②展开式的项数比乘方指数多1项;③展开式中第二项的系数等于乘方指数。 初步归纳出下式: ()()()()()n n n n n n b b a b a b a a b a +++++=+--- 33221)( (※) (设计意图:以上呈现给学生的由系数排成的“三角形”,起到了“先行组织者”的作用,虽然,教师将此“三角形”模型以定论的形式呈现给学生,但是,它毕竟不是最后的结果,而是一种寻找系数规律的有效工具,便于学生将新的学习材料同自己原有的认知结构联系起来,并纳入到原有认知结构中而出现意义。这样的学习是有意义的而不是机械的,是主动建构的而不是被动死记的心理过程。)练习:展开7 )(b a + 教师作阶段性评价,告诉学生以上的系数表是我国宋代数学家杨辉的杰作,称为杨辉三角形,这项发明比欧洲人帕斯卡三角早400多年。你们今天做了与杨辉同样的探索,以鼓励学生探究的热情,并激发作为一名文明古国的后代的民族自豪感和爱国热情。第二步:继续设疑 如何展开100) (b a +以及)()(*∈+N n b a n 呢? (设计意图:让学生感到仅掌握杨辉三角形是不够的,激发学生继续学习新的更简捷 的方法的欲望。) 继续新授 师:为了寻找规律,我们将))()()(()(4b a b a b a b a b a ++++=+中第一个括号中的字母分别记成11,b a ;第二个括号中的字母分别记成22,b a ;依次类推。请再次用多项式乘法运算法则计算:))()()(()(443322114b a b a b a b a b a ++++=+

JAVA实验报告

日期: 2018年5月地点:明向校区公共机房6 (1)实验题目,实验原理和内容 一、实验目的:JAVA结构化程序设计 二、实验原理:声明不同数据类型的变量,使用关系运算符和逻辑运算符,使用表达式语句与复合语句,使用选择语句,使用循环语句。 实验内容及要求: 1、题目1:编写程序,实现从键盘输入一个0到100之内的整数,把百分制分数到等级分数的转换 键盘输入10个数,排序输出。 要求:请同学们把调试好的程序及运行结果、存在的问题写在下面(不够可以附页)。 1、 package test1; import .*; public class TEST1 { public static void main(String[] args){ "请输入一个0到100之间的整数"); Scanner scanner=new Scanner; int x; int m=(); x=m/10;

switch(x) { case 9: "A");break; case 8: "B");break; case 7: "C");break; case 6: "D");break; default: "E");break; } } } 2、 package test2; public class TEST2 { public static void main(String[] args){ int num;int m; for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ num=i*j; "*"+i+"="+num+ "\t"); if(i==j) } }

《C语言程序设计》实验报告(实验1-11) 2013.3

《C语言程序设计》 实验报告 2012~2013学年第二学期 班级 姓名 学号 指导教师

实验一 实验项目名称:C程序的运行环境和运行C程序的方法 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序; 2.通过运行简单的C程序,初步了解C源程序的特点。 二、预习内容: 教材《C语言程序设计教程》第1章。 三、实验内容: 1. 在Visual C++ 6.0环境下输入并运行下面的程序: #include int main( ) { printf("This is a C program.\n"); return 0; } 2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序 无语法错误,然后运行程序,并观察分析运行结果。 #include int main( ) { int a,b,sum a=3; b=4; sun=a+b; print(“%d+%d=%d\n”,a,b,sum); return 0; } 四、实验结果: 1. 运行结果(或截图):

2. (1) 改正后的源程序: (2) 运行结果(或截图): 五、思考题: 1. 一个C程序上机的步骤有哪些? 答: 2. 组成C程序的基本单位是函数,一个函数包括哪几个部分? 答: 成绩指导教师签名

实验二 实验项目名称:数据类型、运算符和表达式 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.掌握整型、实型与字符型这三种基本类型的概念; 2.掌握常量及变量的使用方法; 3. 掌握基本算术运算符及其表达式的使用方法; 4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。 二、预习内容: 教材《C语言程序设计教程》第2章。 三、实验内容: 1. 在Visual C++ 6.0环境下输入下面的程序,编译、连接、调试该程序。 main( ) { char m,n; m=280; n=320; printf(“%d\t%d\n”,m,n); printf(“%c\t%c\n”,m,n); } 2. 在Visual C++ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include int main( ) { int a=3,b=4,c=8; float d,e; d=a+b/c; e=a+(float)b/c; printf("d=%f,e=%f\n",d,e); } 3. 在Visual C++ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include main( ) { int a,b,c,d,i,j,m,n; a=b=c=d=3; i=a++; j=++b;

计算机实验报告

实验指导 实验一 Visual C++开发环境使用 大气科学专业实验日期 4月 18日姓名:学号 1.实验目的 (1)熟悉Visual C++集成开发环境。 (2)掌握C语言程序的书写格式和C语言程序的结构。 (3)掌握C语言上机步骤,了解C程序的运行方法。 (4)能够熟练地掌握C语言程序的调试方法和步骤 2. 实验内容 输入如下程序,实现两个数的乘积。 #include ; int main() { x=10,y=20 p=prodct(x,t) printf("The product is : ",p) int prodct(int a ,int b ) int c c=a*b return c } (1)在编辑状态下照原样键入上述程序。 (2)编译并运行上述程序,记下所给出的出错信息。 (3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。 3.分析与讨论 (1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。(2)总结C程序的结构和书写规则。 实验心得: 通过本次实验,我了解到C语言的特点,初步认识程序设计方法和程序设计一般步骤,掌握C语言程序编译、链接和运行过程,为我进一步学好C语言打下了基础。

实验二数据类型、运算符和表达式 大气科学专业实验日期4 月 25日姓名:刘园园学号327 1.实验目的 (1)理解常用运行符的功能、优先级和结合性。 (2)熟练掌握算术表达式的求值规则。 (3)熟练使用赋值表达式。 (4)理解自加、自减运算符和逗号运算符 (5)掌握关系表达式和逻辑表达式的求值 2.实验内容 (1)整数相除 #include<> int main() { int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; printf("d=%d , e=%d ,f=%d\n",d,e,f); return 0; } (2)自加、自减运算 #include<> int main() { int a=5,b=8; printf("a++=%d\n",a++);

杨辉三角(教案)

杨辉三角(1) 目的要求 1.了解有关杨辉三角的简史,掌握杨辉三角的基本性质。 2.通过研究杨辉三角横行的数字规律,培养学生由特殊到一般的归纳猜想能力。 3.通过小组讨论,培养学生发现问题。探究知识、建构知识的研究型学习习惯及合作化学习的团队精神。 内容分析 本课的主要内容是总结杨辉三角的三个基本性质及研究发现杨辉三角横行的若干规律。 杨辉三角的三个基本性质主要是二项展开式的二项式系数即组合数的性质,它是研究杨辉三角其他规律的基础。杨辉三角横行的数字规律主要包括横行各数之间的大小关系。组合关系以及不同横行数字之间的联系。 研究性课题,主要是针对某些数学问题的深入探讨,或者从数学角度对某些日常生活中和其他学科中出现的问题进行研究。目的在于培养学生的创新精神和创造能力。它要求教师给学生提供研究的问题及背景,让学生自主探究知识的发生发展过。从问题的提出、探索的过程及猜想的建立均主要由学生自主完成,教师不可代替,但作为组织者,可提供必要指导。 教师首先简介杨辉三角的相关历史,激发学生的民族自豪感和创造欲望,然后引导学生总结有关杨辉三角的基本知识(研究的基础)及介绍发现数字规律的主要方法(研究的策略),并类比数列的通项及求和,让学生对n阶杨辉三角进行初步的研究尝试活动,让学生充分展开思维进入研究状态。 以下主要分小组合作研究杨辉三角的横行数字规律,重点发现规律,不必在课堂上证明。 教学过程 (一)回顾旧知 1.用电脑展示贾宪三角图、朱泄杰的古法七乘方图、帕斯卡三角图(附后),同时播放用古代民族乐器演奏的音乐。

教师介绍杨辉三角的简史:北宋人贾宪约1050年首先使用“贾宪三角”进行高次开方运算,南宋数学家杨辉在《详解九章算法》(1961年)记载并保存了“贾宪三角”,故称杨辉三角。元朝数学家朱世杰在《四元玉鉴》(1303年)扩充了“贾宪三角”成“古法七乘方图”。在欧洲直到1623年以后,法国数学家帕斯卡在13岁时发现了“帕斯卡三角”。 2.用电脑展示15阶杨辉三角或事先印好15阶杨辉三角分发给学生。对照杨辉三角,回顾高二下学期学过的杨辉三角的构造及基本性质,并由学生叙述。 1°与二项式定理的关系:杨辉三角的第n行就是二项式 n b a) (+展开 式的系数列 } {R N C。 2°对称性:杨辉三角中的数字左、右对称,对称轴是杨辉三角形底边 上的“高”,即 r n n r n c C- =。 3°结构特征:杨辉三角除斜边上1以外的各数,都等于它“肩上”的 两数之和,即 r n r n n r n C c C 1 1- - - + =。 (二)分组研究杨辉三角横行规律(将全班学生按前后排四或五人一组分成若干研究小组) 1.介绍数学发现的方法:杨辉三角中蕴涵了许多优美的规律。古今中外,许多数学家如贾宪、杨辉、朱世杰、帕斯卡、华罗庚等都曾深入研究过,并将研究结果应用于其他工作。他们研究的方法可以归纳为:

java实验报告(全)

学生学号0120910680526 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称软件工具与环境 开课学院计算机科学与技术学院 指导老师姓名付国江 学生姓名 学生专业班级软件工程0905 2011— 2012学年第1学期

实验课程名称: java语言程序设计 实验项目名称JDK安装与配置、简单的程序编写实验成绩 实验者专业班级软件0905 组别 同组者实验日期年月日第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验目的: 熟悉JDK的安装、配置和使用,掌握Java Application程序的基本结构。 实验内容: (1)安装JDK,并练习设置JAVA_HOME、path和classpath环境变量; (2)编写一个打印出”HelloWorld”的Java Application程序,并编译运行; 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或 者算法描述) (1)jdk的安装 (2)”HelloWorld”的编译运行 三、主要仪器设备及耗材 个人计算机,jdk 第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)(1)jdk的安装步骤: 1:双击jdk-6u10-windows-i586.exe安装文件 2:点击接受 3:点击下一步 4:选择JRE路径 5:点击下一步 6:完成 配置环境变量: 1:右键我的电脑,找到属性,高级中的环境变量 2:点击环境变量:3:系统变量针对所有用户,这里找到系统变量中的Path 点击编辑: 3:系统变量针对所有用户,这里找到系统变量中的Path 点击编辑: 4:在变量值末尾打上分号分隔,加入JDK库路径。 点击确定,完成! 5:变量配置好后。 6:测试环境是否好 在控制台中 输入javac指令,能显示参数,说明成功。

2016年C语言实验报告

通知 各位老师: 本学期非计算机专业《计算机程序设计基础(C语言)》课实验报告要求: 1.统一用《武汉科技大学实验报告》本写。本学期交三次实验报告。 ①循环结构程序设计。 ②数组。 ③函数。 要求学生在完成以下实验报告,参考《C语言程序设计课程实验与题解》中的要求认真完成。 实验1 循环结构程序设计 一、实验目的 1.熟悉用while语句,do-while语句和for语句实现循环的方法。 2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。 3.熟悉break语句和continue语句用法的不同之处。 二、实验内容 【例】以下程序,输出下三角形状的乘法九九表。 #include void main() { int i,j; for (i=1;i<=9;i++) /* 打印表头*/ printf(" %4d",i); printf("%c",'\n'); for (i=0;i<=50;i++) printf("%c",'_'); printf("%c",'\n'); for (i=1;i<=9;i++) /* 循环体执行一次,打印一行*/ { for (j=1;j<=i;j++) printf(" %4d",i*j); /* 循环体执行一次,打印一个数据*/ printf("%c",'\n'); /* 每行尾换行*/ } printf("%c",'\n'); } 输入并执行该程序,观察输出结果,试着修改程序打印上三角形状的乘法九九表。 三、编程序并上机调试运行。 1.打印出所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和正好等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。 解题思路:根据题目要求只要分别求出一个三位数的个位、十位、百位上的数字,然后判断是否满足(某一三位数a=a的百位的立方+a的十位的立方+a的个位的立方)这个公式,满足这个三位数就是“水仙花数”。 2.李先生岁数的平方与他的夫人的岁数之和是1053,而他的夫人的岁数的平方与他

杨辉三角与二项式系数的性质(教案)

1. 3.2“杨辉三角”与二项式系数的性质 教学目标: 知识与技能:掌握二项式系数的四个性质。 过程与方法:培养观察发现,抽象概括及分析解决问题的能力。 情感、态度与价值观:要启发学生认真分析书本图1-5-1提供的信息,从特殊到一般,归纳猜想,合情推理得到二项式系数的性质再给出严格的证明。 教学重点:如何灵活运用展开式、通项公式、二项式系数的性质解题教学难点:如何灵活运用展开式、通项公式、二项式系数的性质解题授课类型:新授课 教 具:多媒体、实物投影仪 第一课时 一、复习引入: 1.二项式定理及其特例: (1)01()()n n n r n r r n n n n n n a b C a C a b C a b C b n N -*+=+++++∈, (2)1 (1)1n r r n n n x C x C x x +=++ ++ +. 2.二项展开式的通项公式:1r n r r r n T C a b -+= 3.求常数项、有理项和系数最大的项时,要根据通项公式讨论对r 的限制;求有理项时要注意到指数及项数的整数性 二、讲解新课: 1二项式系数表(杨辉三角) ()n a b +展开式的二项式系数,当n 依次取1,2,3…时,二项式系数 表,表中每行两端都是1,除1以外的每一个数都等于它肩上两个数的和 2.二项式系数的性质: ()n a b +展开式的二项式系数是0n C ,1n C ,2n C ,…,n n C .r n C 可以看成 以r 为自变量的函数()f r 定义域是{0,1,2, ,}n ,例当6n =时,其图象是7个孤立的点(如图) (1)对称性.与首末两端“等距离”的两个二项式系数相等 (∵m n m n n C C -=). 直线2 n r = 是图象的对称轴. (2)增减性与最大值.∵1(1)(2)(1)1!k k n n n n n n k n k C C k k ----+-+= =? ,

杨辉三角

杨辉三角 教学设计思想: 这节课是高三数学(选修II )的研究性课题,是在高二学过的“二项式定理”的基础上,进一步探讨和研究杨辉三角的性质,实质上就是二项展开式的二项式系数即组合数的性质。 (1)让学生在教师设计的问题情境中,自己根据已经学过的知识去发现问题→提出问题→解决问题,即观察、猜想、归纳杨辉三角横行、竖向、斜向的数字各数之间的大小关系、组合关系及各数字之间的联系等规律。 (2)在学生自主探究知识的发生发展过程中从中体会到数学世界的神奇和有趣,激发他们对数学的热爱之情。培养他们的交流与协作的能力。 (3)通过向他们介绍杨辉三角的有关历史,让他们了解中国古代数学的伟大成就,增强他们的民族自豪感。 教学 目标: 1 使学生了解杨辉及杨辉三角的有关历史,掌握杨辉三角的基本性质,并能认识到中国古代的数学的辉煌成就。 2 让学生在老师的启发下自己去探讨杨辉三角中行、列的数字的特点, 发现杨辉三角的有关的性质,培养学生由特殊到一般的归纳猜想能力。 3通过讨论,培养学生发现问题、提出问题、解决问题的能力。在交流中培养学生的协作能力,形成探究知识、建构知识的研究型学习习惯及合作化学习的团队精神,为进一步学习作好准备。 教学过程: 一 引入 今天我们在高二学过的杨辉三角的基础上,进一步探索杨辉三角数字中横 向、竖向、斜向…中蕴含的有趣的数量关系。(幻灯片:出示杨辉三角的前3行,余下的让学生补充完整) 二 杨辉简介 杨辉,中国南宋时期杰出的数学家 和数学教育家。在13世纪中叶活动于 苏杭一带,其著作甚多。其中《详解九章算术》 中的“开方作法本源图”,曾被称为“杨辉三角”, 杨辉指明次系贾宪(约11世纪)所用. 三 探讨杨辉三角的性质 ? ??++++++=++++++=+++++=++++=+++=++=+=+6 43223245665 432234554 3223443 22332 221061520156)(510105)(464)(33)(2)()(1)(b ab b a b a b a b a a b a b ab b a b a b a a b a b ab b a b a a b a b ab b a a b a b ab a b a b a b a b a

实验报告1

南京工程学院 实验报告 程序设计语言-JA V A 开课院系:经济管理学院 实验:() 班级:K信管101 学生姓名:顾永晨 学号:240103824

JAVA语言课程实验报告

一、实验目的及要求 熟悉JDK环境,掌握Jcreator的使用方法,理解Java 应用程序的运行原理和方法。 二、实验设备(环境)及要求 JDK;Jcreator;Windows 操作系统 三、实验内容与步骤 1、编辑、编译、运行以下程序,说出程序的功能。改变变量n的初值,观察运行结果有何变化。 public class Sum10_for { public static void main(String args[]) { int i=1,n=10,s=0; System.out.print("Sum("+n+") = "); for (i=1;i

杨辉三角形

有趣的杨辉三角形 【教学目的】 1.初步探索杨辉三角的基本性质及数字排列规律; 2.培养学生发现问题、提出问题、解决问题的能力,重点培养创新能力; 3.了解我国古今数学的伟大成就,增强爱国情感. 【教学手段】 课堂教学,以学生自学为主,教师引导探索。 【教学思路】 →学生自学教材,然后思考几个问题。 →分组探讨杨辉三角的性质。 →展示学生探究成果 →教学小结 【自学教材】; 1.什么是杨辉三角? 二项式(a+b)n展开式的二项式系数,当n依次取1,2,3...时,列出的一张表,叫做二项式系数表,因它形如三角形,南宋的杨辉对其有过深入研究,所以我们又称它为杨辉三角.(表1) 例如,它的兩項的係數是1和1; ,它的三項係數依次是1、2、1; ,它的四項係數依次1、3、3、1。 2.杨辉——古代数学家的杰出代表 杨辉,杭州钱塘人。中国南宋末年数学家,数学教育家.著作甚多,他编著的数学书共五种二十一卷,著有《详解九章算法》十二卷(1261年)、《日用算法》二卷、《乘除通变本末》三卷、《田亩比类乘除算法》二卷、《续古摘奇算法》二卷.其中后三种合称《杨辉算法》,朝鲜、日本等国均有译本出版,流传世界。 “杨辉三角”出现在杨辉编著的《详解九章算法》一书中,此书还说明表内除“一”以外的每一个数都等于它肩上两个数的和.杨辉指出这个方法出于《释锁》 算书,且我国北宋数学家贾宪(约公元11世纪)已经用过它,这表明 我国发现这个表不晚于11世纪. 在欧洲,这个表被认为是法国数学家物理学家帕斯卡首先发现的 (Blaise Pascal,1623年~1662年),他们把这个表叫做帕斯卡三角.这就

杨辉三角形实验报告

题目:编写程序,根据输入的行数,屏幕显示杨辉三角形(Pascal’s triangle) 班级:自动化05 姓名:刘丽丽 学号:10054107 完成日期:2011.12.20 一.需求分析 1、本演示程序中,利用顺序队列打印杨辉三角。杨辉三角的特 点是两个腰上的数字都为1,其它位置上的数字是其上一行 中与之相邻的两个整数之和,故在打印过程中,第i行上的 元素要由第i-1行中的元素来生成。这是一个基于队列的操 作来实现杨辉三角不断生成的过程。 2、此次输出的杨辉三角不需要只有一个1的第一行,但只需对 输出实际杨辉三角的程序稍作修改即可; 3、在计算机终端上显示"提示信息"之后,由用户在键盘上输入 演示程序中需要输入的数据,以“回车符”为结束标志。相 应的输入数据和运算结果显示在其后。 4、程序执行的命令包括: 1)构造顺序队列; 2)分析第 i 行元素与第 i+1行元素的关系

目的是从前一行的数据可以计算下一行的数据 从第i 行数据计算并存放第i+1行数据 5、 测试数据 输入行数 n=3; 输出结果为: 1 1 1 2 1 1 3 3 1 二. 概要设计 链队列的抽象数据类型定义为: ADT Queue{ 数据对象 :D={ai| ai ∈Elemset ,i=1,2,3,···n ,n >=0} 1 1 i = 1 1 2 1 2 1 3 3 1 3 1 4 6 4 1 4 1 5 10 10 5 1 5 1 6 15 20 15 6 1 6

数据关系:R={<ai-1 ,ai>| ai-1 ,ai∈D,i=1,2,···n} (约定其中ai端为队列头,an端为队列尾) 基本操作: InitQueue(&Q) 操作结果:构造一个空队列 DestroyQueue(&Q) 初始条件:队列已存在 操作结果:队列被销毁 ClearQueue(&Q) 初始条件:队列已存在 操作结果:将Q清空 QueueEmpty(Q) 若队为空,则返回为TRUE,否则返回为FALSE。Queuelength(Q) 初始条件:队列已存在 操作结果:返回Q的元素个数 Gethead(Q,&e) 初始条件:队列非空 操作结果:用e返回Q的队首元素 Enqueue(&Q,&e) 初始条件:队列已存在 操作结果:插入的元素e为Q的新队首元素

算法与设计实验报告

算法与分析实验报告软件工程专业 安徽工业大学 指导老师:许精明

实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 一:实验目的 1:掌握动态规划算法的基本思想,学会用其解决实际问题。 2:通过几个基本的实验,提高算法分析与设计能力,提高动手操作能力和培养良好的编程习惯。 二:实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 实验一:杨辉三角

问题分析: ①每行数字左右对称,由1开始逐渐变大,然后变小,回到1。 ②第n行数之和为2^n。 ③下一行每个数字等于上一行的左右两个数字之和。 算法设计及相关源代码: public void yanghui(int n) { int[] a = new int[n]; if(n==1){ System.out.println(1); }else if(n==2) { System.out.print(1 + " " +1); }else{ a[1]=1; System.out.println(a[1]); a[2]=1;

System.out.println(a[1]+" "+a[2]); for(int i=3;i<=n;i++){ a[1]=a[i]=1; for(int j=i-1;j>1;j--){ a[j]=a[j]+a[j-1]; } for(int j=1;j<=i;j++){ System.out.print(a[j]+" "); } System.out.println(); } } } 实验结果:n=10 实验二:0-1背包问题 问题分析::令V(i,j)表示在前i(1<=i<=n)个物品中能够装入容量为就 j(1<=j<=C)的背包中的物品的最大价值,则可以得到如下的动态规划函数: (1) V(i,0)=V(0,j)=0 (2) V(i,j)=V(i-1,j) j

高中数学_杨辉三角教学设计学情分析教材分析课后反思

【教学设计】 一、教学目标 (一)知识与技能 1. 了解“杨辉三角”及其历史 2. 认识“杨辉三角”中行、列数字的特点及其组合数性质、二项式系数之间的联系。 (二)过程与方法 提高学生的归纳推理能力,树立由特殊到一般的数学思想。 (三)情感、态度与价值观 利用“杨辉三角”的历史对学生进行爱国主义教育,激励学生的民族自豪感和为国富民强而奋斗学习的热情,提高学生的数学应用意识,培养学生学习数学的兴趣。 教学重点:引导学生探讨“杨辉三角”中蕴含的数字规律。 教学难点:二项式系数的最大值及其应用。 二、教学过程 1. 新课引入 (1) 二项式定理: )N ()(222110+---∈++++++=+n b C b a C b a C b a C a C b a n n n r r n r n n n n n n n n

①二项式系数:___________;②通项:___________. (2)计算(a+b)n展开式的二项式系数并填入下表 n 二项式系数 1 2 3 4 5 6 (3)杨辉三角的历史 【设计意图】从学生已有的关于二项式定理的知识及二项式系数的运算出发,让学生通过填表的形式发现二项式系数具有一定的规律。同时也让学生发现,这样的表格不利于发现二项式系数的其它性质,由此引发思考:如何对表格进一步整理,得到更方便观察二项式系数的数字规律的表格,由此可以自然引出“杨辉三角”。 通过对杨辉的介绍,让学生了解中国古代数学的伟大成就,增强学生的爱国情感。 2.课堂探究 探究1:各行数有什么规律? 性质1: ①______________________________

相关文档
最新文档