内容正文:
第3章 算法基础
1、计算机解决问题的过程
2、算法的概念
3、算法的描述方法
4、计算机的组成部件
5、计算机工作原理
6、计算机程序的概念
7、计算机程序设计语言的种类
8、计算机程序的执行过程
本章主要内容
第3章 算法基础
2
2
数据在信息社会中具有重要价值,掌握数据处理的基本方法与技能具有重要意义。随着数据的快速增长,人工方式处理海量数据的效率正变得低下,因此掌握利用计算机和算法更高效地分析和解决问题的方法在计算机科学界的作用日益凸显。
本章节同学们将体验计算机解决问题的过程,理解和概述算法的概念与特征,学会运用恰当的描述方法和控制结构表示简单算法,懂得描述程序设计语言产生与发展的过程,了解不同种类程序设计语言的特点,从而将知识建构、技能培养与思维发展融入运用数字化工具解决问题和完成任务的过程中,促进信息技术学科核心素养达成,完成项目学习目标。
前言
第3章 算法基础
3
3
3.1 体验计算机解决问题的过程
第3章 算法基础
4
4
人解决问题的过程
一个人带一只羊、一只狼和一篮菜过河,只有一只小船,一次只能带一个物品。如果羊和狼在一起,狼吃羊;如果羊和菜在一起,羊吃菜。怎样才能安全渡河?
3.1.1 人工解决问题的过程
1.农夫带羊到右岸,独自返回左岸;
2.农夫带狼到右岸,返回时白羊带回左岸;
3.农夫把菜带到右岸,独自返回左岸;
4.农夫把羊带到右岸,完成过河。
3.1.1 人工解决问题的过程
有一道IQ题:有四个装了药丸的罐子,每个药丸都有一定的重量,其中有一个药罐被污染了。每片被污染的药丸比污染前增重1克。只允许称量一次,判断出哪个罐子的药被污染了。(同座位讨论该问题的解决步骤)
思
考
3.1.1 人工解决问题的过程
考虑1颗药丸的质量变化,如果药丸被污染,则增重1 克,否则增重0 克。
从任一药瓶中提取n颗药丸,如果被污染,则增重n克,否则增重0 克。
从第一盒中取出1颗,第二盒中取出2颗,第三盒中取出3颗,从第四盒中取出4颗(共10颗)。如果增重________克,则________号药瓶被污染。
输入:?
计算:?
输出:?
3.1.1 人工解决问题的过程
提
示
采用人工解决这个问题的过程如下:
(1)提出问题。
(2)分析问题:
(3)得出答案,问题得到解决。
3.1.1 人工解决问题的过程
9
第3章 算法基础\体验计算机解决问题的过程
不足之处:数据量较大的时候,效率就急速降低。
计算机解决问题的过程
第3章 算法基础
11
分析问题
设计算法
编写程序
调试程序
检测结果
修 改
编制计算机程序解决问题的基本过程
3.1.2 计算机解决问题的过程
分析问题(需求分析):确定要解决的问题,即要求计算机“做什么”。
设计算法(设计方法):对特定的问题给出解决这个问题的详细方法和 步骤。
编写程序(编写代码):把人们设计的算法转换成计算机能够识别的代码来编写程序,实现算法。
调试运行程序:程序设计好以后,通过键盘输入计算机中运行,看程序能否按预想的执行。
程序能顺利完成以后,还需要对程序功能进行分析和检查。
3.1.2 计算机解决问题的过程
12
第3章 算法基础\体验计算机解决问题的过程
程序原代码和运行窗口
3.1.2 计算机解决问题的过程
“韩信点兵”问题:“相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人、17人一列余8……。刘邦茫然而不知其数。”
3.1.2 计算机解决问题的过程
讨
论
15
分析问题(找出已知和未知、列出已知和未知之间的关系) 写出解题步骤
设所求的数为X,则X应满足:
X整除3余1
X整除5余2
X整除7余4 1、令X为1。
2、如果X整除3余1,X整除5余2,X整除7余4,这就是题目要求的数,则记下这个X。
3、令X为X+1(为算下一个作准备)。
4、如果算出,则结束;否则跳转2。
5、写出答案。
3.1.2 计算机解决问题的过程
不足之处:数据量大,效率低。
人工办法解决:
用计算机解决问题
(1)分析问题。设总人数为n,则当三人一排时有 n%3 == a, 当五人一排时有 n%5 == b,当七人一排时有 n%7 == c,因此求出同时满足上述三个条件的n即可。
(2)设计算法。输入包含多组数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100。输入到文件结束为止。
(3)编写程序。用Python语言编写的韩信点兵程序
(4)调试运行程序,得到结果。程序编好以后,通过键盘输入计算机,并