杨辉三角实验报告

杨辉三角实验报告
杨辉三角实验报告

实验一

杨辉三角实验报告

学生姓名:学号: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

1 1

1 2 1

1 3 3 1

1 4 6 4 1

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

(3)输出要求:为确保图形的美观输入杨辉三角的级数以12为宜。

3、概要设计

3.1抽象界面设计

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

3.2总体框图以及功能描述

3.3基本功能实现

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

private void button1_Click(object sender, EventArgs e)

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

private void button2_Click(object sender, EventArgs e)

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

private void button3_Click(object sender, EventArgs e)

4 详细设计

4.1数据类型的定义

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

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

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

杨辉三角图形 杨辉三角图形

输入杨辉三角

行数

杨辉三角图形 杨辉三角

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

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

//动态,而每一行的数值数不等所以如此定义4.2主要模块的算法描述

(1)一维数组:

private void button1_Click(object sender, EventArgs e)

{

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

int n = System.Convert.ToInt32(textBox1.Text);

int i, j, m = 2 * n;

int[] a = new int[n];

string L = new string(' ', m);

for (i = 0; i < n; i++)//i控制着行数,即当前打印到第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 = new string(' ', m -= 2);

}

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

(2)二维数组

private void button2_Click(object sender, EventArgs e)

{

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

int n = System.Convert.ToInt32(textBox1.Text);

int i, j;

for (i = 0; i < n; i++) //i控制行数

{

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

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

}

for (i = 2; i < n; i++)//其余元素的值由杨辉公式计算

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

a[i, j] = a[i - 1, j - 1] + a[i - 1, j];//杨辉公式for (i = 0; i < n; i++)//遍历数组输出杨辉三角形

{

string st = new string(' ', 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)多维数组

private void button3_Click(object sender, EventArgs e)

{

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

int i;

int n = System.Convert.ToInt32(textBox1.Text);

int[][] a = new int[n][];

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

{

a[i] = new int[i + 1];

for (int j = 0; j < a[i].Length; 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 < n; i++)

{

string st = new string(' ', 2*n - 2 * i);

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

这次实验终于顺利完成了,在实验中遇到了很多编程问题,最后在老师

的辛勤指导和同学们的热心帮助下,终于游逆而解。

附录(主要源程序清单)

using System;

using System.Collections.Generic;

using https://www.360docs.net/doc/619976022.html,ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

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

int n = System.Convert.ToInt32(textBox1.Text);

int i, j, m = 2 * n;

int[] a = new int[n];

string L = new string(' ', m);

for (i = 0; i < n; i++)//i控制着行数,即当前打印到第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 = new string(' ', m -= 2);

}

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

private void button2_Click(object sender, EventArgs e)

{

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

int n = System.Convert.ToInt32(textBox1.Text);

int i, j;

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

for (i = 0; i < n; i++) //i控制行数

{

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

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

}

for (i = 2; i < n; i++)//其余元素的值由杨辉公式计算

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

a[i, j] = a[i - 1, j - 1] + a[i - 1, j];//杨辉公式for (i = 0; i < n; i++)//遍历数组输出杨辉三角形

{

string st = new string(' ', 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("* ** ** ** ** ** ** ** ** ** ** ** *"); }

private void button3_Click(object sender, EventArgs e)

{

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

int i;

int n = System.Convert.ToInt32(textBox1.Text);

int[][] a = new int[n][];

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

{

a[i] = new int[i + 1];

for (int j = 0; j < a[i].Length; 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 < n; i++)

{

string st = new string(' ', 2*n - 2 * i);

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

{

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

listBox1.Items.Add(st);

}

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

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

杨辉三角的规律以及定理 李博洋 摘要杨辉三角中的一些规律 关键词杨辉三角幂二项式 引言 杨辉是我国南宋末年的一位杰出的数学家。在他所着的《详解九章算法》一书 中,画了一张表示二项式展开后的系数构成的三角图形,称做“开方做法本源”,现 在简称为“杨辉三角”,它是世界的一大重要研究成果。我们则来对“杨辉三角”的 规律进行探讨和研究。 内容 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 ++++=+

程序设计基础C实验报告201303

《程序设计基础C》 实 验 报 告 教学班级:_______ 学号:__________ 姓名:___________ 课程教师:______________ 实验辅导教师:_____________ 重庆理工大学计算机学院 2012年2月

实验5 循环程序设计 教学班级:_______ 学号:__________ 姓名:___________ 实验日期:___________ 实验地点:_________(机房) 实验成绩:___________ 一、实验目的 (1) 了解C语言循环结构的使用范围。 (2) 学会正确使用逻辑运算符和逻辑表达式。 (3) 熟练掌握C语言的三种循环结构:whilc语句、do……whilc语句、for语句的特点和使用方法。 (4) 能够编写一些有实际应用意义的循环结构程序。 二、实验内容 1.基本内容 题目1:计算1-3+5-7+......-99+101的值。(提示:注意符号的变化)#include void main() { int i,t=1,s=0; /* t标识正负符号*/ for (i=1;i<101; i+=2) /*error*/ { s+=i*t; t= -t; } printf("s=%d\n",s); } ①请改错,并运行程序。 ②分别用do……while语句和while语句改写以上程序。 题目2:分析程序,运行时输入:24579(注:表示回车换行)。 #include

void main() { int c; while((c=getchar())!='\n') { switch(c-'2') { case 0: case 1: putchar(c+4); case 2: putchar(c+4);break; case 3: putchar(c+3); case 4: putchar(c+2);break; default:putchar(c); } } printf("\n"); } 题目3:下面程序的功能是打印100以内个位数为3且能被3整除的所有数,选择合适的语句填入该空格中。 #include void main() { int i,j; for(i=0;__________________ ;i++) { j=i*10+3; if(__________________) continue; printf("%4d",j); } } 题目4:编程输出:用0~4任意组成无重复数字的三位数?都是多少?每行输出10个数。 #include

《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.介绍数学发现的方法:杨辉三角中蕴涵了许多优美的规律。古今中外,许多数学家如贾宪、杨辉、朱世杰、帕斯卡、华罗庚等都曾深入研究过,并将研究结果应用于其他工作。他们研究的方法可以归纳为:

实验报告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. 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 ----+-+= =? ,

计算机实验报告

实验指导 实验一 Visual C++6.0开发环境使用 大气科学专业实验日期 4月 18日姓名:学号1.实验目的 (1)熟悉Visual C++6.0集成开发环境。 (2)掌握C语言程序的书写格式和C语言程序的结构。 (3)掌握C语言上机步骤,了解C程序的运行方法。 (4)能够熟练地掌握C语言程序的调试方法和步骤 2. 实验内容 输入如下程序,实现两个数的乘积。 #include (stdio.h); 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日姓名:刘园园学号20151301327 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++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return 0; }

杨辉三角

杨辉三角 教学设计思想: 这节课是高三数学(选修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.3.2“杨辉三角”与二项式定理 昌邑一中吴福顺 一、复习引入: 1.二项式定理及其特例: (1), (2) . 2 .二项展开式的通项公式: 3.求常数项、有理项和系数最大的项时,要根据通项公式讨论对的限制;求有理项时要注意到指数及项数的整数性二、讲解新课: (首先介绍杨辉本人,让学生了解杨辉) 1 二项式系数表(杨辉三角) 展开式的二项式系数,当依次取…时,二项式系数表,表中每行两端都是,除以外的每一个数都等于它肩上两个数的和2.二项式系数的性质: 展开式的二项式系数是,,,…,.可以看成以为自变量的函数 定义域是,例当时,其图象是个孤立的点(如图) (1)对称性.与首末两端“等距离”的两个二项式系数相等(∵). 直线是图象的对称轴. (2)增减性与最大值.∵, ∴相对于的增减情况由决定,, 当时,二项式系数逐渐增大.由对称性知它的后半部分是逐渐减小的,且在中间取得最大值; 当是偶数时,中间一项取得最大值;当是奇数时,中间两项,取得最大值. (3)各二项式系数和: ∵, 令,则

(讲解完成后,学生搜索有关二项式系数性质的网页,更加全面的了解二项式系数) 三、讲解范例: 例1.在的展开式中,奇数项的二项式系数的和等于偶数项的二项式系数的和证明:在展开式中,令,则, 即, ∴, 即在的展开式中,奇数项的二项式系数的和等于偶数项的二项式系数的和. (搜索赋值法,了解什么是赋值法) 说明:由性质(3)及例1知 . 例2.已知,求: (1);(2);(3) . 解:(1)当时,,展开式右边为 ∴, 当时,,∴, (2)令,① 令,② ①②得:,∴ . (3)由展开式知:均为负,均为正, ∴由(2)中①+②得:, ∴, ∴ 例3.求 (1+x)+(1+x)2+…+(1+x)10展开式中x3的系数 解: =,

c语言实验报告

C程序设计课程 实验报告册 所在学院________________ 班级________________ 学号________________ 姓名________________ 教师________________ 2016 年6 月

《C语言程序设计》实验报告(1 )学号:姓名:班级:成绩:

2. 编写一个函数prim,要求判定正整数n是否为素数,调用上述函数,按每行8个输出2到200 之间所有素数。 (源程序上传文件名为:您自己的学号+实验报告1-2.c,例如:10151234实验报告1-2.c)代码: 程序运行结果截图(要体现出您的学号和姓名): 四、实验收获

《C语言程序设计》实验报告(2 )学号:姓名:班级:成绩:

#20. 出错行号原因正确代码 2、请在函数fun的横线上填写若干表达式,使从键盘上输入一个整数n,输出斐波纳契数列。斐波纳契数列是一种整数数列,其中每数等于前面两数之和,如:0 1 1 2 3 5 8 13……,请上机调试该程序验证自己的填充。 (源程序上传文件名为:您自己的学号+实验报告2-1.c,例如:10151234实验报告2-1.c) #include int fun(int n); main() { int i, n = 0; scanf("%d", &n); for (i=0; i

杨辉三角形实验报告

题目:编写程序,根据输入的行数,屏幕显示杨辉三角形(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.什么是杨辉三角? 二项式(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年),他们把这个表叫做帕斯卡三角.这就

ASPNET实验报告

实验1 C#程序设计1(2学时) [实验目的] 了解C#语言的特点。 熟悉C#的开发环境。 掌握用VS2008编写C#基本程序。 [实验内容] 1、循环实现: 2、从键盘输入一行字符串,用数组来存放统计出的字母、数字、空格和其他字符个数。题一 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace shiyan1 { class Program { static void Main(string[] args) { int x=2, y=1,a=0,b=0; double s = 0, t = 1.0; for (int i = 0; i < 10; i++) { a = x ; b = y; s +=t* a / b; x = a + b; y = a; t = -1.0 * t; } Console.WriteLine("s="+s); Console.ReadKey(); }

} } 题二 public static void Main() { int letters = 0, digits = 0, spaces = 0, others = 0; Console.WriteLine("请输入一个字符串: "); string input = Console.ReadLine(); foreach(char chr in input) { if (char.IsLetter(chr)) letters++; else if (char.IsNumber(chr)) digits++; else if (char.IsWhiteSpace(chr)) spaces++; else others++; } Console.WriteLine("字母的个数为:{0}",letters); Console.WriteLine("数字的个数为:{0}", digits); Console.WriteLine("空格的个数为:{0}", spaces); Console.WriteLine("其他字符的个数为:{0}", others); } 运行结果

相关文档
最新文档