首页 > 编程知识 正文

选择结构程序设计例题,c语言程序设计案例教程答案

时间:2023-05-05 14:09:27 阅读:148732 作者:1511

yxdct

内容分析

这部分是教育科学出版社出版的必修1 《数据与计算》第四单元第一节的内容,整本书的构思是初始数据与计算、编程计算、识别数据、计算与问题解决、数据分析与人工智能,第四章是比较重要的章节,主要是算法的概念与特点、算法的枚举法是最重要的算法之一,在现实生活中也经常被用来解决问题,所以笔者选择它在课余时间说话。

这一节的知识需要用到两个课时,第一课时主要说明算法及其特点,第二课时主要说明枚举法的程序实现及其优化,这一节课是这一节的第二课时。

学情分析

这门课的对象是高一学生,他们在以前的学习中已经学习了Python语言,了解了该语言的基本语法和程序的基本结构,所以这门课枚举法的实现部分使用Python语言。

学习目标

理解枚举法概念把握枚举法特征的枚举法程序实现; 优化枚举法。

核心素养

分析引导学生提出的问题,讨论问题的解决方案,设计解决问题的算法,使用编程语言实现该算法,最终解决问题。 解决后,继续考虑是否有更好的解决方案,是否可以优化算法,更高效地解决问题。 通过这门课的学习,对学生的核心素养,特别是信息意识和计算思维的提高有一定的促进作用。

教育上的重要难点

重点:枚举法的特点,枚举法的程序实现。

难点:枚举法的程序实现,枚举法的优化。

教育媒体

多媒体教室、广播教育软件、投影仪、教学幻灯片、Python软件。

教育战略

本节主要采用信息技术网络教学平台支持下的教学模式,即在教师教学的指导下,学生通过任务驱动实现自主学习的教学方法。 课程的流程是:提出问题讨论问题解决方法引出枚举法的概念和特征如何用Python实现枚举法能否使程序更有效率枚举法的优化。

上课的过程

1 .新课引进(3分钟) )。

提出问题:有4位数的种类,如3025。 分为30和25两位数。 这两个数之和的平方正好等于那个数本身。 即3025 )2=552=3025。 请求出所有符合这个特征的4位。 学生们试图解决这个问题,请告诉老师你的想法怎么样了。

设计意图:提出实际问题,让学生自己解决,引出今天要说的内容; 让学生使用不同的方法,为以后的优化埋下伏笔; 最后让学生自己动手,让学生更深入地理解。

2 .引出枚举法的概念(3分钟)。

教师引出枚举法的概念:列举所有可能的答案,合适就保留,不合适就丢弃(也就是说,我们在日常生活中通常所说的一一尝试)。

要求学生列举日常生活中可能使用或被看到的枚举法,如密码锁忘记了密码; 公安机关在破案时,首先锁定了几个嫌疑人,一个个验证指纹,最后抓获了嫌疑人。

设计意图:无论学生是否解决了这个问题,他们的方法都可以通过测试是否满足每一个条件来引出枚举法的概念。

3 .引导学生总结列举法的特点(2分钟)

总结:观察以上例子,有什么共同点? 明确:有列举范围有一定的验证条件。

设计意图:在教师的指导下,学生根据前面的例子总结了列举法的特点。

4 .枚举算法的程序实现(4分钟) )。

教师解释枚举算法实现的三首歌曲:

)1)确定列举对象、列举范围、判定条件。

该数I的范围为1000到9999,判定条件为上位2位x和下位2位y之和的平方等于该数。

)2)列举可能的解(使用循环结构)。

foriinrange (1000,9999 ) :

)3)验证是否是问题的解)使用选择结构)。

if(xy )2=i :

PIRnt(I ) )。

设计意图:分三个步骤实现枚举法,使学生容易理解和实现枚举法。

5 .课堂活动:实践与尝试(15分钟)。

实践一)基于以上说明的列举法实现的三部曲,写出以下两个演习问题的三部曲。

问题1 )班级举办班级聚会,要用600元的班级会费为50名同学准备50份礼物进行抽奖。 选定了雄仔(20元/个)、杯子(15元/个)、笔筒(10元/个) 3种商品。 正好花光600元要求买50件礼物(每件礼物至少一件),这三种礼物的数量如何才能搭配? 提示:假设这三个项目的数量分别为x、y和z,则它们的范围是多少? )

问题2 )这次面试的冠军是在A、b、c、d四个同学中出生的。 a“不是我”b说“是c”。 “是d的。 ”。 D“C说的是错的。 ’众所周知,四个人中有一个人撒了谎。 你能判断到底谁是冠军吗? ((提示)可以将a、b、c、d视为1、2、3、4 ) ) )。

使用实践Python软件编写上述问题1的完整程序。

注意事项:督促学生写程序时注意缩进。 Python对这一要求很严格三个周期如何实现(教师演示); 学生完成后,教师使用广播软件转播学生的完成情况,选择错误的地方进行讲解,并对一些学生的步骤进行总结评估。 完整的步骤如下。

forxinrange (1,50 ) :

foryinrange(1,

50):

for z in range(1,50):

if (x+y+z==50) and (x*20+y*15+z*10==600):

print(x,y,z)

设计意图:这两道习题主要用来训练学生怎样用程序来实现枚举法,第一道题难点在于确定枚举对象和范围,有一个三重循环,第二道题难点在于判断条件,怎样将现实中说的话转换为计算机里的if语句。

6.交流评价,优化枚举(10分钟)

提出问题:枚举法是一种比较耗时的方法,能不能克服这个缺点呢?有的时候我们可以通过优化来解决这个问题,让计算量减少,最常用的方法就是减少枚举的范围。同学们能不能通过优化使上面的题1的枚举范围减小呢?相邻的同学比一比,看谁优化得好,让循环的次数最少。优化前后本题循环次数分别是多少?同时思考,本节课开始的问题能不能优化呢?怎么优化?

设计意图:通过枚举优化及优化前后枚举次数的比较,培养学生优化程序的思想;交流优化方案,引导学生自我反思,加深对所学知识的认识和理解,从而得到思想与方法的提升。

7.总结与拓展(3分钟)

回顾和总结本课所学的知识:枚举法的概念、枚举法的特征、枚举法的程序实现、枚举法的优化。

枚举法是日常生活中经常用到的一种算法,是在没有其他更好的方法情况下所使用的容易理解的算法,它的缺点是所耗费的时间比较长,但是我们可以通过优化来缩短它的计算时间。本节课我们使用了缩小枚举范围的方法来优化枚举法,大家也可以到网络上搜索其他的优化方法,让枚举法更优秀。

设计意图:通过总结,让学生进一步巩固本节课的知识;通过知识的拓展,扩展学生的知识视野,激发他们的学习兴趣。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。