输出杨辉三角形设计报告.docx

上传人:b****2 文档编号:1194738 上传时间:2022-10-18 格式:DOCX 页数:11 大小:79.74KB
下载 相关 举报
输出杨辉三角形设计报告.docx_第1页
第1页 / 共11页
输出杨辉三角形设计报告.docx_第2页
第2页 / 共11页
输出杨辉三角形设计报告.docx_第3页
第3页 / 共11页
输出杨辉三角形设计报告.docx_第4页
第4页 / 共11页
输出杨辉三角形设计报告.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

输出杨辉三角形设计报告.docx

《输出杨辉三角形设计报告.docx》由会员分享,可在线阅读,更多相关《输出杨辉三角形设计报告.docx(11页珍藏版)》请在冰豆网上搜索。

输出杨辉三角形设计报告.docx

输出杨辉三角形设计报告

 

《C程序设计》

课程设计报告

(2014—2015学年第2学期)

 

题目:

输出辉三角

 

一、课程设计概述

课程设计问题描述

辉三角,又称贾宪三角形、帕斯卡三角形,是二项式系数在三角形中的一种几何排列。

在我过南宋数学家辉所著的《详解九章算术》一书中用辉三角形解释二项式和乘方规律。

与辉三角联系最紧密的是二项式乘方展开式的系数规律,即二项式定理。

1

11

121

设计要求

根据辉三角图形分析出数字间的规律;要求用四种方法输出辉三角形的前n(1

设计目的

掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。

开发环境

本程序采用MicrosoftVisualC++6.0的英文版本进行编译。

VisualC++是微软公司推出的基于Windows操作系统的可视化C++编程工具。

二、总体设计

(1)

系统功能需求分析

此系统的主要功能是用四种不同的方法输出辉三角的前n(1

要实现目标就要完成以下步骤:

1、要熟练掌握相关的C语言知识。

2、要熟练掌握辉三角的基本规律。

1辉三角第n行中的n个数之和等于2的n-1次幂。

2每个数字都等于它上方的两数之和。

3每行数字左右对称,由1开始逐渐变大。

4第n行的数字有n+1项。

5(a+b)的n次幂的展开式中各项系数依次对应辉三角第n+1行中的每一项。

并由二项式系数规律推出公式:

k=k*(i-j)/j。

3、将辉三角的基本规律转换为C语言程序

4、调试C语言,找出其中的错误。

此系统实现的关键是掌握辉三角的基本规律,以及C语言的转换。

二、总体设计

(2)

系统总体设计框架

三、详细设计

(1)

主要功能模块1的算法设计

解法一:

首先定义一个二维数组,长度为21,21。

接着定义三个变量i,j,n。

然后输出提示字符,输入辉三角行数。

再用一个for循环将每一行的第一个数字与最后一个数字初始化。

然后用双重for循环计算每一行中间各个数字。

最后再用双重for循环输出每一个数字并且换行。

解法二:

首先定义一个二维数组,长度为21,21,。

接着定义三个变量i,j,n。

然后输出提示字符,提示输入辉三角行数。

将每一行第一个数字和最后一个数字的初始化置于双重for循环中,减少一个循环,并计算每一行中间的各个数字。

最后用双重for循环输出每一个素质并且换行。

三、详细设计

(1)

主要功能模块1源程序

解法一

#include

voidmain()

{inta[21][21];

inti,j,n;

printf("请输入辉三角的行数");

scanf("%d",&n);

for(i=0;i

{a[i][0]=1,a[i][i]=1;}

for(i=2;i

{

for(j=1;j

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

}

for(i=0;i

{

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

printf("%5d",a[i][j]);

printf("\n");

}

}

解法二

#include

voidmain()

{

inta[100][100];

inti,j,n;

printf("请输入辉三角的行数:

");

scanf("%d",&n);

for(i=0;i

{a[i][0]=1,a[i][i]=1;

for(j=1;j

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

}

for(i=0;i

{

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

printf("%5d",a[i][j]);

printf("\n");

}

}

三、详细设计

(2)

主要功能模块2的算法设计

解法三:

首先声明一个子函数,声明变量n。

主函数中首先输出提醒字符,提示输入辉三角函数,并调用子函数。

子函数中首先定义二维数组长度为21,21,定义两个变量i,j。

用双重for循环将每一行的第一个数字和最后一个数字初始化,并计算出每一行中间其他各个数字,最后用双重for循环和输出每一个数字并且换行。

解法四:

首先定义四个变量i,j,n,k。

接着输出提示字符,提示输入辉三角的行数。

然后用双重for循环,将k赋值为1,并用二项式系数推出的公式k=k*(i-j)/j计算出每一行每一个数字,最后换行。

三、详细设计

(2)

主要功能模块2源程序

解法三

#include

voidYanghui(intn);

intmain()

{intn;

printf("请输入辉三角的行数:

");

scanf("%d",&n);

Yanghui(n);

return0;

}

voidYanghui(intn)

{

inti,j;

inta[100][100];

for(i=0;i

{a[i][0]=1,a[i][i]=1;

for(j=1;j

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

for(i=0;i

{

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

printf("%5d",a[i][j]);

printf("\n");

}

}

解法四

#include

voidmain()

{

inti,j,n,k;

printf("请输入要输出的辉三角的行数:

");

scanf("%d",&n);

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

{

k=1;

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

{

printf("%5d",k);

k=k*(i-j)/j;}

printf("\n");

}

}

四、调试分析过程

(1)

调试过程出现的问题

1、函数的定义出现错误,遗漏函数的声明。

2、定义精度出现问题。

3、大括号上下括号对应出错,下括号掉了,导致程序无法运行。

4、C语言书写错误,掉了字母或写错字母。

5、C语言知识不熟练,无法使用多种方法输出辉三角形。

6、一位数组中的变量出现错误,导致程序崩溃。

问题的解决方法

1、补充函数的声明。

2、重新定义精度。

3、利用系统的自动检测功能,在相应的位置添加大括号。

4、重新查阅书籍,反复检查,改正错误的C语言。

5、查阅资料,寻找更多解题方法。

6、反复检查,找出错误的地方并更正。

四、调试分析过程

(2)

测试数据

输出n=12行辉三角形

测试结果

五、总结

设计用到的知识点

1、循环结构。

2、数组。

3、调用函数。

收获与体会

复习了c语言,掌握了写报告的基础知识方法,初步实现把语言转换成c语言的知识和思维方式。

更重要的是学会了如何在拿到一个题目后进行简单的程序分析,并编译出一些相对的简单程序。

不足与努力方向

把现实的语言转换成C语言还是有一定的难度,不但这方面的知识很欠缺,而且逻辑思维也不是很到位,基础的技能不够熟练。

以后应该多学习、多练习关于这方面的知识,多适应这种逻辑思维。

六、参考文献

参考书籍

1.谭浩强著.C程序设计(第3版).:

清华大学,2005.7

2.光蓉、汪靖、陆登波主编.C程序设计实验与实践教程.:

清华大学,2011.2.

3.游洪跃主编.C语言程序设计实验与课程设计教程.:

清华大学,2011.5

参考论文

参考网址

.baidu.

课程设计成绩评审表

黄铮

学号

1304080020

班级

电气1309

设计题目

输出辉三角形

作品描述

用四种不同的方法输出前n(1

更上一层楼中将辉三角形变为了等腰的辉三角形。

 

指导教师评语

观测容

分值

评分(上限)

得分

A

B

C

D

E

程序运行情况

20

20

15

10

5

3

程序功能的完善程度

10

10

8

6

4

2

程序结构的合理性

10

10

8

6

4

2

对问题的答辩情况

20

20

15

10

5

3

创新情况

10

10

8

6

4

2

工作态度与独立工作能力

10

10

8

6

4

2

设计报告的规性

20

20

15

10

5

3

指导教师评定成绩

 

指导教师(签名)

年月日

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1