项目4 数组和算法-任务4.2 字符串加密_数学算法(上)(教案)-《C#程序设计基础》(河海大学出版社)同步精品课堂
|
5页
|
45人阅读
|
0人下载
精品
内容正文:
任务4.2字符串加密-数学算法(上)
授课题目
《字符串加密-数学算法(上)》
授课时数
2课时
授课班级
授课地点
多媒体教室、云机房
教学方法
讲授法、讨论法、演示法
授课类型
理实一体课
1.掌握累加、累乘算法基本概念和性质
知识目标
2.理解最值、均值算法的实现方法
3.掌握求最大公约数的算法过程
1.能够找出一组数据的最大值、最小值、平均值
能力目标
2.能够编写算法找出一组数据的累加和,能够计算阶乘
教学目标
3.能够编写算法求两数的最大公约数
1.培养良好的编程习惯和代码规范,包括但不限于命名规范、缩
进规范、代码结构等
素养目标
2.培养问题分析能力,能够根据问题需求选择合适的算法和数据
结构
3.培养团队协作和沟通能力,能够与其他成员协作完成项目任务
1.最值、均值算法的实现和优化
教学重点
2.累加累乘算法的理解和应用
3.最大公约数辗转相除法的理解和算法实现
1.如何引导学生理解并掌握辗转相除法的使用,特别是对于非数学专业的学
教学难点
生。
教学基本内容(第一节课)》
一、导入环节
老师通过展示一个实际应用场景的例子(如统计班级学生身高,找出最高和最低身高,
计算平均身高等),让学生思考如何使用编程语言实现这些功能,从而引入今天的授课内容:
数组和算法。
二、授课内容提要
1.累加和累乘算法:介绍累加和累乘的概念,讲解如何使用循环语句实现这两种算法。
(1)累加是在原有和的基础上每次加1个数,存放累加和的变量通常称作累加器,累
加器的初值一般为0:
(2)累乘则是在原有积的基础上每次乘以一个数,存放累乘积的变量通常称作累乘器,
累乘器的初值一般为1。
(3)【示例】请编写程序,求s的值,s=1+2+3++10。
inti=1,s=0;
while(i <=10)
{
s+=i;
itt;
Console.WriteLine("s的值为:{o",si
2.最值和均值算法:介绍如何寻找数组中的最大值、最小值和计算平均值,讲解如何使
用条件语句和循环语句实现这些算法。
(1)最值:求最值问题通常采用“打擂法”。
(2)均值:求均值就是将数字和除以数的个数。
(3)【示例】随机产生100个[10,99]之间的整数,求出它们的最大值、最小值及平均
值。
using System;
川生成随机数的程序
class Program
static void Main()
{
Random rand=new Random);/∥创建一个随机数生成器对象
川创建一个包含5个随机整数的数组
int[]randomNumbers new int[];
∥生成5个在10到99之间的随机整数
Console..WriteLinet("原始数据为:"方
for (int i=0;i<5;i++)
{
∥将随机整数存储在数组中
randomNumbers[i]rand.Next(10,100);
Console.WriteLine(randomNumbers[i]);
}
Console.WriteLine();/换行
int max=randomNumbers[o];/∥第一个数字被假设为最大值
for(int i=1;i<randomNumbers.Length;i++)
∥如果当前数字大于当前最大值,则更新最大值
if(randomNumbers[i]max)
max randomNumbers[i];
}
Console.WriteLine("最大值:"+max;
int min=max;/第一个数字被假设为最小值
for (int i=1;i<randomNumbers.Length;i++)
{
川如果当前数字小于当前最小值,则更新最小值
if(randomNumbers[i]<min)
min=randomNumbers[i];
}
}
Console.WriteLine("最小值:"+min;
∥计算平均值
int sum=0;
for(int i=0;i<randomNumbers.Length;i++)
sum+=randomNumbers[;/将所有数字相加求和
}
double avg sum /(randomNumbers.Length )
Console.WriteLine("平均值:"+avgl;
Console.ReadLine();
}
三、练习与互动
1.将学生分成小组,让他们在课堂上编写一个程序,实现对给定数组的累加、累乘、寻
找最大值、寻找最小值和计算均值等功能。
2.让学生展示他们的程序,并讨论不同算法的优缺点。
四、课堂小结
总结本节课学习到的内容,强调数组的重要性以及常见算法的应用。同时,强调编程实
践的重要性,鼓励学生在课后进行编程练习。
教学基本内容(第二节课)
一、导入环节
老师通过展示一个实际应用场景的例子(如两个数相除,需要求它们的公约数,并找出
最大的公约数),让学生思考如何使用编程语言实现这个功能,引入本节课的主题最大公约
数算法。
二、授课内容提要
1.欧几里得算法求最大公约数
(1)原理:两个数相除得到余数。将除数传给被除数,将余数传给除数,再次相除,
直到余数为0,被除数中放的就是最大公约数。
(2)讲解欧几里得算法的步骤和实现方式。
(3)【示例】请编写程序,求整数x和y的最大公约数和最小公倍数。
static void Main()
{
int x,y,m,n,t;
Console.WriteLine("请输入一个数x:";
x int.Parse(Console.ReadLine());
Console.WriteLine("请输入一个数y:";
y=int.Parse(Console.ReadLine());
m =X;
n=y;
while (y I=0)
t=x%y;
X=Y;
y=t;
}
Console.WriteLine("最大公约数是:"+x;
Console.WriteLine("最小公倍数是:"+m*n/x;
2.最大公约数算法在实际应用中的重要性:介绍最大公约数在数学、计算机科学和实际
生活中的应用。
三、练习与互动
1.让学生分组讨论并展示他们对最大公约数算法的理解与实现。
2.设计一些实际场景问题,让学生应用最大公约数算法解决问题。
四、课堂小结
总结本节课学习到的内容,强调最大公约数算法的实际应用和重要性。同时,鼓励学生
在课后深入研究欧几里得算法及其应用。
五、课后作业
1.深入了解欧几里得算法,并了解其在实际中的应用场景和优势。
2.设计一个小程序,实现对两个给定数的最大公约数求解。
六、板书设计
累加和累泰
任务4.2字符串加密
常用数学算法
最值和均值
最大公约数
七、教学后记
本次教学涉及了数组和算法相关的内容,通过两节课的教学,学生们对数组的基本概念、
操作方法以及常见的算法应用有了更深入的理解和掌握。在第一节课中,学生们通过编写程
序实现对数组的累加、累乘、寻找最大值、最小值和计算均值等功能,加深了对这些算法的
理解。在第二节课中,学生们学习了欧几里得算法求最大公约数的原理与实现方法,以及最
大公约数算法在实际应用中的重要性,拓展了他们的算法知识。
在教学过程中,我注意引导学生思考问题、讨论交流、小组合作,激发了学生们的学习
兴趣和动手实践能力。通过设计丰富多样的练习和互动环节,学生们不仅加深了对知识点的
理解,还提高了编程能力和问题解决能力。在课堂上讨论中,学生们积极发言,分享彼此的
见解和思路,形成了良好的学习氛围。
作为老师,我在教学中注重引导学生主动探索和思考,促使其从理论到实践,全面提高他们
的计算思维和编程能力。在今后的教学中,我将继续关注学生个体差异,鼓励多样化的学习
方式,激发学生的自主学习动力,提升他们的综合素质和创新能力。希望通过不断的教学实
践和改进,能够更好地帮助学生提高专业技能,培养扎实的基础知识和解决问题的能力,使
他们成为未来优秀的程序员和算法工程师。
资源预览图