输出杨辉三角形设计报告.docx
- 文档编号:412738
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:11
- 大小:79.72KB
输出杨辉三角形设计报告.docx
《输出杨辉三角形设计报告.docx》由会员分享,可在线阅读,更多相关《输出杨辉三角形设计报告.docx(11页珍藏版)》请在冰豆网上搜索。
输出杨辉三角形设计报告
"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 指导教师评定成绩 指导教师〔签名〕 年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输出 三角形 设计 报告