第三章 信息的编程加工和智能化加工
第二课 信息的编程加工
教学目标:
要求学生通过体验一个完整的程序设计过程,知道利用计算机解决问题的步骤,了解计算机加工信息的内在机制。
教学内容:
1.体验程序设计的独特魅力,了解编程加工信息的内在机制
2.了解并尝试编程的主要过程
教学重点:
让学生体验通过编程实现计算机加工信息的过程,知道利用计算机解决问题的步骤和基本思想的步骤和基本方法,从而了解计算机信息加工的内在机制。
教学难点:
让学生理解用算法描述实际问题,理解人们的思维在计算机工作中发挥的作用。
课时数:1课时
要求学生通过体验一个完整的程序设计过程,知道利用计算机解决问题的步骤,了解计算机加工信息的内在机制。
教学内容:
1.体验程序设计的独特魅力,了解编程加工信息的内在机制
2.了解并尝试编程的主要过程
教学重点:
让学生体验通过编程实现计算机加工信息的过程,知道利用计算机解决问题的步骤和基本思想的步骤和基本方法,从而了解计算机信息加工的内在机制。
教学难点:
让学生理解用算法描述实际问题,理解人们的思维在计算机工作中发挥的作用。
课时数:1课时
导入新课
课本 43 页引入的“ 100 米决赛成绩排序程序”一例,目的是“ 计算机语言只是工具,算法才是程序设计” 。
正课讲解
例:求 1~100 的和。
分析:我们可以在纸上按顺序从 1 加到 100 ,也可以采用另外的方法: 100+ ( 99+1 ) + ( 98+2 ) + ……( 49+1 ) +50 。但是在计算机里我们能否这样计算吗?显然是不能的,因为计算机只认识两个数字“ 1 ”、“二维字符串数组怎么定义 0 ”,那我们怎么让计算机认识除 1 和 0 以外的数字呢?这里就需要引入“算法”概念。算法是方法简单、运算步骤少、能迅速得出正确结果的算法。
令S=0,n的取值范围:1~100,计算公式S=S+n。
当n=1时,S=1 当n=2时,S=3 当n=3时,S=6 当n=4时,S=10……
一、 算法设计
1.什么是算法?
——为解决一个问题而采取的方法和步骤。
2 .算法的特征:
课本 43 页引入的“ 100 米决赛成绩排序程序”一例,目的是“ 计算机语言只是工具,算法才是程序设计” 。
正课讲解
例:求 1~100 的和。
分析:我们可以在纸上按顺序从 1 加到 100 ,也可以采用另外的方法: 100+ ( 99+1 ) + ( 98+2 ) + ……( 49+1 ) +50 。但是在计算机里我们能否这样计算吗?显然是不能的,因为计算机只认识两个数字“ 1 ”、“二维字符串数组怎么定义 0 ”,那我们怎么让计算机认识除 1 和 0 以外的数字呢?这里就需要引入“算法”概念。算法是方法简单、运算步骤少、能迅速得出正确结果的算法。
令S=0,n的取值范围:1~100,计算公式S=S+n。
当n=1时,S=1 当n=2时,S=3 当n=3时,S=6 当n=4时,S=10……
一、 算法设计
1.什么是算法?
——为解决一个问题而采取的方法和步骤。
2 .算法的特征:
确定性:算法中的每一步必须是明确的,不可以有“多义性”或“歧义性”。
有效性:算法中的每一步必须是计算机能够有效执行,并且能得到有效结果的。
有穷性:算法中的步骤应是有限的。
一个或多个输出:算法中必须有把结果输出给用户的步骤。
演示:冒泡排序课件
二、数组的基本概念
(1)数组
——一组相同类型的变量集合,集合中的每个元素都是独立的变量,它们能够通过数组序号被引用。
mark(1 to 100)表示一个包含100个数组元素的名为mark。
(2)数组元素(数组中的变量,用下标表示) 表示方法:数组名(P1,P2,……)
P1,P2……是“下标”,表示元素在数组中的排列位置。
(3)数组维数:(由数组元素中下标的个数决定)一个下标表示一维数组
VB中有一维数组、二维数组、……,最多有60维数组
(4)下标(表示顺序号)
有效性:算法中的每一步必须是计算机能够有效执行,并且能得到有效结果的。
有穷性:算法中的步骤应是有限的。
一个或多个输出:算法中必须有把结果输出给用户的步骤。
演示:冒泡排序课件
二、数组的基本概念
(1)数组
——一组相同类型的变量集合,集合中的每个元素都是独立的变量,它们能够通过数组序号被引用。
mark(1 to 100)表示一个包含100个数组元素的名为mark。
(2)数组元素(数组中的变量,用下标表示) 表示方法:数组名(P1,P2,……)
P1,P2……是“下标”,表示元素在数组中的排列位置。
(3)数组维数:(由数组元素中下标的个数决定)一个下标表示一维数组
VB中有一维数组、二维数组、……,最多有60维数组
(4)下标(表示顺序号)
①每个数组有一个唯一的顺序号;
②下标不能超过数组声明时的上、下界范围;
③下标可以是整型的常量、变量、表达式及一个数元素;
④取值范围:下界to 上界,缺省下界,默认为0。下界最小为-32768,上界最大为32767。
练习:判断下列数组的取值范围:A(10),B(-3 to 5)
(5)数组声明(先声明后使用)
声明数组——让系统在内存中分配一个连续的区域,用来存储数组元素。
声明内容:数组名、类型、维数、数组大小
一维数组
⑴一维数组
形式:Dim 数组名(下标) [AS类型]
①数组声明时的下标必须为常数,不可以是表达式或变量。
②一维数组的大小:上界-下界+1
例:Dim A(12) as integer
声明A是数组名、整型、一维数组、有13个元素、下标的范围是0~12。
②下标不能超过数组声明时的上、下界范围;
③下标可以是整型的常量、变量、表达式及一个数元素;
④取值范围:下界to 上界,缺省下界,默认为0。下界最小为-32768,上界最大为32767。
练习:判断下列数组的取值范围:A(10),B(-3 to 5)
(5)数组声明(先声明后使用)
声明数组——让系统在内存中分配一个连续的区域,用来存储数组元素。
声明内容:数组名、类型、维数、数组大小
一维数组
⑴一维数组
形式:Dim 数组名(下标) [AS类型]
①数组声明时的下标必须为常数,不可以是表达式或变量。
②一维数组的大小:上界-下界+1
例:Dim A(12) as integer
声明A是数组名、整型、一维数组、有13个元素、下标的范围是0~12。
练习:说明“Dim A(-3 to 6) as String * 3 ”包含的内容。
多维数组
格式:Dim 数组名(下标1[,下标2……]) [AS 类型]
每一维的大小=上界-下界+1 数组大小=每一维大小的乘积
例:Dim C(-1 to 5,3) As Long
声明C是数组名、长整型、二维数组,第一维下标范围为-1~5,第二维下标范围为0~3,占据7×4个长整型变量的空间。
练习:
(1)多维数组中下标最少有 维数组,最多有 维数组。
(2)求该数组Dim A(5,-3 to 3)的数组大小
(3)试说明“Dim A(5,-2 to 3,4to 8) As Single”
三、冒泡排序法
1.基本思想
将每个记录 R[i] 看作是重量为 R[i].key 的气泡,根据轻泡不能在重泡之下的原则,从最后一个记录开始往上扫描,两两进行比较,凡扫描到违反上述原则的“气泡”就进行交换,保证
多维数组
格式:Dim 数组名(下标1[,下标2……]) [AS 类型]
每一维的大小=上界-下界+1 数组大小=每一维大小的乘积
例:Dim C(-1 to 5,3) As Long
声明C是数组名、长整型、二维数组,第一维下标范围为-1~5,第二维下标范围为0~3,占据7×4个长整型变量的空间。
练习:
(1)多维数组中下标最少有 维数组,最多有 维数组。
(2)求该数组Dim A(5,-3 to 3)的数组大小
(3)试说明“Dim A(5,-2 to 3,4to 8) As Single”
三、冒泡排序法
1.基本思想
将每个记录 R[i] 看作是重量为 R[i].key 的气泡,根据轻泡不能在重泡之下的原则,从最后一个记录开始往上扫描,两两进行比较,凡扫描到违反上述原则的“气泡”就进行交换,保证
气泡在上,如此反复进行,直到任何两个气泡都达到轻者在上,重者在下为止。
例:现把一组数( 5 、 7 、 2 、 14 、 9 、 11 、 8 、 12 )从小到大排列
思考问题:
问题 1 :若让我们对这些数据排序,该怎么办?
问题 2 :计算机会自己会思考如何排序吗?那如何让计算机也知道怎么使用我们设计好的算法完成任务呢?
分析:定义数组 a(7) ,用来存放这 8 个数,分别是 a(0) 、 a(1) 、 a(2) 、 a(3) 、 a(4) 、 a(5) 、 a(6) 、 a(7) 。将 a(0) 和 a(1) 比较,若 a(0)>a(1) ,将 a(0) 和 a(1) 中的值对调,大数放入 a(1) 中,否则不对调,以此类推。当进行完第一趟冒泡排序后,还不能得到最终的结果,就要继续进行第二趟冒泡排序……,直至得到正确的结果为止。
第一趟冒泡排序过程:
例:现把一组数( 5 、 7 、 2 、 14 、 9 、 11 、 8 、 12 )从小到大排列
思考问题:
问题 1 :若让我们对这些数据排序,该怎么办?
问题 2 :计算机会自己会思考如何排序吗?那如何让计算机也知道怎么使用我们设计好的算法完成任务呢?
分析:定义数组 a(7) ,用来存放这 8 个数,分别是 a(0) 、 a(1) 、 a(2) 、 a(3) 、 a(4) 、 a(5) 、 a(6) 、 a(7) 。将 a(0) 和 a(1) 比较,若 a(0)>a(1) ,将 a(0) 和 a(1) 中的值对调,大数放入 a(1) 中,否则不对调,以此类推。当进行完第一趟冒泡排序后,还不能得到最终的结果,就要继续进行第二趟冒泡排序……,直至得到正确的结果为止。
第一趟冒泡排序过程:
a(0) | a(1) | a(2) | a(3) | a(4) | a(5) | a(6) | a(7) | |
初始 | 5 | 7 | 2 | 14 | 9 | 11 | 8 | 12 |
1 次后 | 5 | 7 | 2 | 14 | 9 | 11 | 8 | 12 |
2 次后 | 5 | 2 | 7 | 14 | 9 | 11 | 8 | 12 |
3 次后 | 5 | 2 | 7 | 14 | 9 | 11 | 8 | 12 |
4 次后 | 5 | 2 | 7 | 9 | 14 | 11 | 8 | 12 |
5 次后 | 5 | 2 | 7 | 9 | 11 | 14 | 8 | 12 |
6 次后 | 5 | 2 | 7 | 9 | 11 | 8 | 14 | 12 |
7 次后 | 5 | 2 | 7 | 9 | 11 | 8 | 12 | 14 |
第 2 趟冒泡排序过程的结果:
a(0) | a(1) | a(2) | a(3) | a(4) | a(5) | a(6) | a(7) | |
2 | 5 | 7 | 9 | 8 | 11 | 12 | 14 | |
第 3 趟冒泡排序过程的结果:
a(0) | a(1) | a(2) | a(3) | a(4) | a(5) | a(6) | a(7) | |
2 | 5 | 7 | 8 | 9 | 11 | 12 | 14 | |
内部排序的类型:
⑴插入排序的基本思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序
的子文件中的适当位置,直到全部记录插入完成为止。
⑵选择排序的基本思想:每一趟从待排序的记录中选出关键字最小的记录,顺序存放到已排好的子文件的最后(最前),直到全部记录排序完毕。
⑶交换排序的基本思想:两两比较待排序记录的关键字,发现两个记录次序相反时即进行交换,直到没有反序的记录为止。(类型:冒泡排序和快速排序)
①冒泡排序基本思想:
将每个记录 R[i] 看作是重量为 R[i].key 的气泡,根据轻泡不能在重泡之下的原则,从最后一个记录开始往上扫描,两两进行比较,凡扫描到违反上述原则的“气泡”就进行交换,保证气泡在上,如此反复进行,直到任何两个气泡都达到轻者在上,重者在下为止。
②快速排序基本思想(分治法):
将原问题分解为若干个规模更小但结构与原问题相似的子问题;递归地解这些子问题,然后将这些组合为原问题的解。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论