杨辉三角实验报告.docx

上传人:b****2 文档编号:3307470 上传时间:2023-05-05 格式:DOCX 页数:14 大小:76.55KB
下载 相关 举报
杨辉三角实验报告.docx_第1页
第1页 / 共14页
杨辉三角实验报告.docx_第2页
第2页 / 共14页
杨辉三角实验报告.docx_第3页
第3页 / 共14页
杨辉三角实验报告.docx_第4页
第4页 / 共14页
杨辉三角实验报告.docx_第5页
第5页 / 共14页
杨辉三角实验报告.docx_第6页
第6页 / 共14页
杨辉三角实验报告.docx_第7页
第7页 / 共14页
杨辉三角实验报告.docx_第8页
第8页 / 共14页
杨辉三角实验报告.docx_第9页
第9页 / 共14页
杨辉三角实验报告.docx_第10页
第10页 / 共14页
杨辉三角实验报告.docx_第11页
第11页 / 共14页
杨辉三角实验报告.docx_第12页
第12页 / 共14页
杨辉三角实验报告.docx_第13页
第13页 / 共14页
杨辉三角实验报告.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

杨辉三角实验报告.docx

《杨辉三角实验报告.docx》由会员分享,可在线阅读,更多相关《杨辉三角实验报告.docx(14页珍藏版)》请在冰点文库上搜索。

杨辉三角实验报告.docx

杨辉三角实验报告

实验一

杨辉三角实验报告

 

 

 

学生姓名:

学号:

11317119

学院:

专业:

计算机科学与技术 

题目:

杨辉三角

指导教师

 

 

 

 

 2013年10月14日

 

目录

1问题描述-0-

2需求分析-0-

3、概要设计-1-

3、概要设计-1-

3.1抽象界面设计-1-

3.2总体框图以及功能描述-2-

3.3基本功能实现-2-

4详细设计-2-

4.1数据类型的定义-2-

4.2主要模块的算法描述-3-

5测试分析-5-

6、实现总结-7-

附录(主要源程序清单)-8-

1问题描述

利用VS环境编写一段代码实现一维数组,二维数组以及交错数组输出杨辉三角。

设计要求:

(1)符合课题要求,实现相应功能;

(2)要求界面友好美观,操作方便易行;

(3)注意程序的实用性、安全性,易操作性。

2需求分析

(1)逐行打印出二项展开式(a+b)i的系数,以为杨辉三角就是以这样的数值组成的。

(如下所示)

杨辉三角

1

11

121

1331

14641

(2)输入要求:

本程序中,需要用户输入杨辉三角的行数,以创建一个动态的杨辉三角的输出形式,并在文本框中显示出杨辉三角形。

(3)输出要求:

为确保图形的美观输入杨辉三角的级数以12为宜。

3、概要设计

3.1抽象界面设计

利用VS平台,创建一个新项目,设计出杨辉三角运行输出的界面。

(如图所示)

3.2总体框图以及功能描述

3.3基本功能实现

(1)实现一维数组输出杨辉三角

privatevoidbutton1_Click(objectsender,EventArgse)

(2)实现维维数组输出杨辉三角

privatevoidbutton2_Click(objectsender,EventArgse)

(3)实现交错数组输出杨辉三角

privatevoidbutton3_Click(objectsender,EventArgse)

4详细设计

4.1数据类型的定义

(1)一维数组实现杨辉三角的数组定义

int[]a=newint[n];//定义一维数组,存储杨辉三角值

(2)二维数组实现杨辉三角的数组定义

int[,]a=newint[n,n];//定义二维数组

(3)交错数组的数组定义

int[][]a=newint[n][];//定义交错数组,由于杨辉三角的行

//动态,而每一行的数值数不等所以如此定义

4.2主要模块的算法描述

(1)一维数组:

privatevoidbutton1_Click(objectsender,EventArgse)

{

listBox1.Items.Add("*****一位数组实现*****");

intn=System.Convert.ToInt32(textBox1.Text);

inti,j,m=2*n;

int[]a=newint[n];

stringL=newstring('',m);

for(i=0;i

{

a[i]=1;//初始化一行中最后一个元素为1

j=i-1;//第3行才开始本循环

while(j>0)

{

a[j]+=a[j-1];//赋值前yh[j]实际上是前一行的数据,

//即[i-1]行的数据,所以此处重新赋值yh[j-1]+yh[j],

//赋值后yh[j]才变成当前行需要的数据。

j--;

}

for(j=0;j<=i;j++)//输出一行中的数据

{

L=L+System.Convert.ToString(a[j])+"";

}

listBox1.Items.Add(L);

listBox1.Items.Add("");

L=newstring('',m-=2);

}

listBox1.Items.Add("************************");

}

(2)二维数组

privatevoidbutton2_Click(objectsender,EventArgse)

{

listBox1.Items.Add("*****二维数组实现*****");

intn=System.Convert.ToInt32(textBox1.Text);

inti,j;

int[,]a=newint[n,n];//定义二维数组

for(i=0;i

{

a[i,i]=1;//每一行最右边赋值为1

a[i,0]=1;//把第1行左边的元素都赋1

}

for(i=2;i

for(j=1;j<=i-1;j++)

a[i,j]=a[i-1,j-1]+a[i-1,j];//杨辉公式

for(i=0;i

{

stringst=newstring('',2*n-2*i);

for(j=0;j<=i;j++)

st+=System.Convert.ToString(a[i,j])+"";

listBox1.Items.Add(st);

listBox1.Items.Add("");

}

listBox1.Items.Add("************************");

}

(3)多维数组

privatevoidbutton3_Click(objectsender,EventArgse)

{

listBox1.Items.Add("*****交错数组实现*****");

inti;

intn=System.Convert.ToInt32(textBox1.Text);

int[][]a=newint[n][];

for(i=0;i

{

a[i]=newint[i+1];

for(intj=0;j

{

if(j==0||j==i)

{

a[i][j]=1;

}

else

{

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

}

}

for(i=0;i

{

stringst=newstring('',2*n-2*i);

for(intk=0;k<=i;k++)

{

st+=System.Convert.ToString(a[i][k])+"";

}

listBox1.Items.Add(st);

}

listBox1.Items.Add("************************");

}

}

5测试分析

(1)输入杨辉三角行数后,一维数组运行结果

(2)输入杨辉三角行数后,二维数组运行结果

(3)输入杨辉三角行数后,交错数组输出效果

 

(4)输入行数后,不同方法输出的杨辉三角效果

6、实现总结

平时的实验主要的目的是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。

本次试验主要是编写出杨辉三角,这次实验也是第一次的C#实验,真的是感触良多,这次实验过程中可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次实验我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到了很多问题,由于对C#是刚开始学习,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说在数组……通过这次实验之后,一定把以前所学过的知识重新温故。

这次实验终于顺利完成了,在实验中遇到了很多编程问题,最后在老师的辛勤指导和同学们的热心帮助下,终于游逆而解。

附录(主要源程序清单)

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceWindowsFormsApplication1

{

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

listBox1.Items.Add("*****一位数组实现*****");

intn=System.Convert.ToInt32(textBox1.Text);

inti,j,m=2*n;

int[]a=newint[n];

stringL=newstring('',m);

for(i=0;i

{

a[i]=1;//初始化一行中最后一个元素为1

j=i-1;//第3行才开始本循环

while(j>0)

{

a[j]+=a[j-1];//赋值前yh[j]实际上是前一行的数据,

//即[i-1]行的数据,所以此处重新赋值yh[j-1]+yh[j],

//赋值后yh[j]才变成当前行需要的数据。

j--;

}

for(j=0;j<=i;j++)//输出一行中的数据

{

L=L+System.Convert.ToString(a[j])+"";

}

listBox1.Items.Add(L);

listBox1.Items.Add("");

L=newstring('',m-=2);

}

listBox1.Items.Add("************************");

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

listBox1.Items.Add("*****二维数组实现*****");

intn=System.Convert.ToInt32(textBox1.Text);

inti,j;

int[,]a=newint[n,n];//定义二维数组

for(i=0;i

{

a[i,i]=1;//每一行最右边赋值为1

a[i,0]=1;//把第1行左边的元素都赋1

}

for(i=2;i

for(j=1;j<=i-1;j++)

a[i,j]=a[i-1,j-1]+a[i-1,j];//杨辉公式

for(i=0;i

{

stringst=newstring('',2*n-2*i);

for(j=0;j<=i;j++)

st+=System.Convert.ToString(a[i,j])+"";

listBox1.Items.Add(st);

listBox1.Items.Add("");

}

listBox1.Items.Add("************************");

}

privatevoidbutton3_Click(objectsender,EventArgse)

{

listBox1.Items.Add("*****交错数组实现*****");

inti;

intn=System.Convert.ToInt32(textBox1.Text);

int[][]a=newint[n][];

for(i=0;i

{

a[i]=newint[i+1];

for(intj=0;j

{

if(j==0||j==i)

{

a[i][j]=1;

}

else

{

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

}

}

for(i=0;i

{

stringst=newstring('',2*n-2*i);

for(intk=0;k<=i;k++)

{

st+=System.Convert.ToString(a[i][k])+"";

}

listBox1.Items.Add(st);

}

listBox1.Items.Add("************************");}}}

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

当前位置:首页 > 解决方案 > 学习计划

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

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