kl800.com省心范文网

高中信息技术


算法与程序设计

第一章 揭开计算机解决问题的 神秘面纱

算法与程序设计

1.1 计算机解决问题的过程
从一个生产方案问题了解用计算机解决问题的步骤:P6

具体问题

分析问题

设计算法

编写程序

调试程序

得到答案

掌握用自然语言表达算法。(P8实践与练习)

算法与程序设计
1、具体问题: 华南太阳能设备厂在计划期内拟生产甲、乙、丙三种适销产品,每件销售收分别为4 万元、3万元、2万元。按工艺规定,甲、乙、丙三种产品都需要在A、B、C、D四种 不同的设备上加工,其加工所需要的时间见下表。已知A、B、C、D四种设备在计划 期内有效使用台时数分别为12、8、16、12。如何安排生产可使收入最大?
设备 产品 甲 乙 丙 A 2 2 1 B 1 2 1 C 4 0 0 D 0 4 0

2、分析问题:
探究的问题 找出已知和未知 明确已知和未知之间关系 人工求解问题 写出解题的算法 探究过程 已知甲乙丙销售收入,ABCD四种设备有效使用台时数,甲乙丙加工的台时数,未知的是甲乙丙的产 量及总销售额。 甲乙丙加工的台时数不能超过ABCD有效使用台时数。 甲乙丙的产量及总销售额。 穷举

算法与程序设计

2x+2y+z≤12 X+2y+z ≤8 4x ≤16 4y ≤12

0 ≤x ≤6; 0 ≤y ≤6; 0 ≤z ≤12 0 ≤x ≤8; 0 ≤y ≤4; 0 ≤z ≤8 0 ≤x ≤4 0 ≤y ≤3

0≤x≤4 0 ≤y ≤3 0 ≤z ≤8

算法与程序设计
3、设计算法: 开始 x=0 1 Y x>4 N y=0 y>3 N z=0 y=y+1 Y z>8 N 2*x+2*y+z<=12 x+2*y+z<=8 Y f(x,y,z)=4*x+3*y+2*z z=z+1 Y x=x+1 结束

1
x=0 x>4 N y=0 y>3 N z=0 y=y+1 Y z>8 N Y x=x+1

输出结果 Y

f(x,y,z)=0 N

f_max<f(x,y,z)
Y f_max=f(x,y,z) x_max=x y_max=y z_max=z

z=z+1

算法与程序设计
4、编写程序 Dim x As Integer, y As Integer, z As Integer Dim x_max As Integer, y_max As Integer, z_max As Integer Dim f(4, 3, 12) As Single Dim f_max As Single For x = 0 To 4 For y = 0 To 3 For z = 0 To 12 If (2 * x + 2 * y + z <= 8) And (x + 2 * y + z <= 8) Then f(x, y, z) = 4 * x + 3 * y + 2 * z Else f(x, y, z) = 0 End If Next z Next y Next x

算法与程序设计
f_max = 0 For x = 0 To 4 For y = 0 To 3 For z = 0 To 8 If f_max < f(x, y, z) Then f_max = f(x, y, z) x_max = x y_max = y z_max = z End If Next z Next y Next x Print “当x=”; x_max; “,y=”; y_max; “,z=”; z_max; “时," Print “f(x,y,z)的最大值="; f_max

算法与程序设计
5、调试程序、得到结果 1)、新建工程; 2)、在窗体添加按钮控件; 3)、给按钮添加单击事件过程; 4)、在单击事件过程内输入编写好的程序; 5)、运行程序调试结果。
人工解题步骤 1、理解和分析所面临的问题 2、寻找解题的途径和方法 3、用笔、纸和算盘、计算器等工具进行计算 4、验证计算结果 计算机解题步骤 1、理解和分析所要解决的问题

2、寻找解题的途径和方法
3、生成解题算法

4、选用一种编程语言根据算法编写程序
5、通过编辑、编译和连接产生计算机能够识别的指令序列

6、在计算机上执行该指令序列

相同点:无论何种解题方式,在解决某一实际问题时,都应该正确的理解问题的题意,从看似复杂的 问题中整理出一个头绪,然后通过算法(即解决问题的一个一个步骤)描述出某一问题的解决过程, 进行一定量的计算,最后都必须验证计算结果。

不同点:当计算量较大时,人工解题就有点力不从心了,而计算机每秒上亿次的计算速度却不在话下, 并且只要算法正确,编程语句无误的话,使用计算机编写的解题程序可以反复使用。例如: sum=1+2+3+4+5……+(n-1)+n这样的问题。

算法与程序设计

1.2 算法和算法的描述
1、算法的概念 算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。即,用计算机求 解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。 算法的特征: 1)、有0或多个输入。解题算法中可以没有数据输入,也可以同时输入多个需 要算法处理的数据。 2)、确定性。解题方法中的任何一个操作步骤都是清晰无误的,不会使人产生 歧义或者误解。 3)、有穷性。任何一种提出的解题方法都是在有限的操作步骤内可以完成的, 哪怕是失败的解题方法。 4)、有1个或多个输出。一个算法执行结束之后必须有数据处理结果输出,哪怕 是输出错误的数据结果,没有输出的算法使毫无意义的。 5)、能行性。解题方法中的任何一个操作步骤在现有计算机软硬件条件下和逻 辑思维中都能够实施实现。

算法与程序设计
辗转相除法 又名欧几里德算法(Euclidean algorithm)是求两个正整数之最大公约数的算法。它 是已知最古老的算法, 其可追溯至前300年。它首次出现于欧几里德的《几何原本》 (第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。它并不 需要把二数作质因子分解。 1. a ÷ b,令r为所得余数(0≤r<b),若 r = 0,b 即为最大公约数;算法结束 。 2. 互换:置 a←b,b←r,并返回第一步。 例如:求112和64的最大公约数.算法如下: (1).112除以64,余数为______; (2)._____除以_____余数为_______; (3)._____除以_____余数为_______. 答:112和64的最大公约数为______. 两数的最大公约数乘以其最小公倍数=两数相乘 练习:求164和64的最小公倍数. 求256和24的最小公倍数. 练习:求164和64的最大公约数. 求256和24的最大公约数.

例如:求112和64的最小公倍数. (1).利用辗转相除法求得它们的最大公约数为______; (2).利用表达式求得最小公倍数: 答: 112和64的最小公倍数为______.

算法与程序设计
2、算法的描述 表示算法的语言有自然语言、流程图、伪代码等。 1)、用自然语言描述算法; 2)、用流程图描述算法:掌握流程图的基本图形及其功能。 3)、用伪代码描述算法。 开始

输入正整数m和n
1).输入m和n的值; 2).r=m除以n的余数; 3).如果r=0,则输出n值; 否则令m=n,n=r返回第2步; 4).结束. r=m除以n的余数 r=0 是 输出n的值 结束 注意对比三种算法描述方式的优劣。 否 m=n, n=r

输入m和n值 r ←m Mod n do while r<>0 m=n n=r r=m mod n loop 输出n值

算法与程序设计

算法与程序设计
三种算法描述方式的优劣
优点 自然语言 不需专门训练,通俗易懂 缺点 P10

流程图

描述清晰简洁,容易表达选 择结构;利于不同环境的程 序设计.P11 书写方便,格式紧凑,易于理 解,便于向计算机程序设计 语言过渡.P12

无法被计算机直接接受并 进行操作

伪代码

种类繁多,语句不容易规范. P12

算法与程序设计

使用自然语言描述算法的方法虽然比较容易掌握,但是存在着很大的缺陷。例如,当算法 中含有多分支或循环操作时很难表述清楚。另外,使用自然语言描述算法还很容易造成歧 义(称之为二义性),譬如有这样一句话——“武松打死老虎”,我们既可以理解为“武 松/打死老虎”,又可以理解为“武松/打/死老虎”。自然语言中的语气和停顿不同,就可 能使他人对相同的一句话产生不同的理解。又如“你输他赢”这句话,使用不同的语气说, 可以产生3种截然不同的意思,同学们不妨试试看。

无论是使用自然语言还是使用流程图描述算法,仅仅是表述了编程者解决问题的一种思路, 都无法被计算机直接接受并进行操作。

伪代码通常采用自然语言、数学公式和符号来描述算法的操作步骤,同时采用计算机高级 语言(如C、Pascal、VB、C++、Java等)的控制结构来描述算法步骤的执行顺序。

算法与程序设计
算法的地位:

在运用计算机程序解决问题的过程中,算法设计有着举足轻重的地位和作用,算法是程 序设计的核心,是程序设计的灵魂.算法的好坏,直接影响着程序的通用性和有效性,影 响着问题解决的效率. 程序的编制依赖于算法的设计。程序的效率主要取决于算法的效率。

算法与程序设计
1.3、程序与程序设计语言 1)、程序是一组机器操作的指令或语句的序列,是算法的一种描述。 2)、程序的七个特征:P15 3)、程序的基本结构:P16 顺序结构:各语句依次按照顺序执行。

选择结构:通过检验条件是否成立来决定做还是不做的控件结构。
循环结构:在一定条件下需要重复执行的控件结构。 任何复杂的算法都可以用顺序结构、选择结构、循环结构三种基本结构组合而 成的程序表示。

算法与程序设计

顺序结构

选择结构

循环结构

S1
S2 S1 … Sn

C

S1 S2

C

算法与程序设计
4)、程序设计:即是编写程序的过程。 一个高质量的程序,应具备以下条件: (1)、建立正确的灵堂模型和确定有效的计算方法; (2)、运行结果必须正确,且在精度和其他各方面均满足要求; (3)、程序本身具有良好的结构,逻辑清楚,易读易懂。 (4)、程序运行时间尽可能短,同时尽可能合理地使用内存; (5)、便于检查、修正、移植和维护。 5)、程序设计语言的产生与发展(P18) (1)、机器语言:由“0”和“1”组成的二进制代码,是能够被计算机直接接受 和 执行的计算机语言。 优缺点: (2)、汇编语言:采用类似英语缩写略词且带有助记性的符号形式代替二进制 机器代码的计算机语言。是符号化了的机器语言。用能反映 指令功能的助记符表达的计算机语言。 优缺点: (3)、高级语言:相对于汇编语言而言,它并不是特指某一种具体的语言,而 是包括了很多编程语言,如VB、C、C++,VC、Java、Pascal等。

算法与程序设计
各种程序设计语言的比较
语言种类 机器语言 优势 能被计算机直接接受和执行 不足 程序设计任务繁重,效率低 下,与自然语言存在巨大鸿 沟,程序员不易培养。 必须有语言翻译器支持,效 率低,汇编源程序较冗长、 复杂,容易出错。

汇编语言

比机器语言更易理解

高级语言

更接近自然语言,移植性好。 要语言翻译器支持。

算法与程序设计
1.3.3程序的编辑和翻译
1、理解什么是源代码、源文件、程序的编辑? 2、高级语言的翻译程序有两种类型:编译程序和解释程序。

算法与程序设计


高中信息技术学业水平考试试题汇总(含答案).doc

高中信息技术学业水平考试试题汇总(含答案) - 高中信息技术学业考试试题(必修部

高中信息技术课件ppt_图文.ppt

高中信息技术课件ppt - 高中信息技术 基础 必修一 上高中前,也 许你已上过

高中信息技术考试试题汇总(含答案).doc

高中信息技术考试试题汇总(含答案) - 高中信息技术学业考试试题(必修部分) 主

高中信息技术知识点归纳总结.doc

高中信息技术知识点归纳总结 - 高中信息技术知识点归纳总结 书生工作室 2012 年 7 月 12 日 高中信息技术知识点归纳 【 书生工作室】 主题一 信息...

高中信息技术知识点最全.doc

高中信息技术知识点最全 - 信息技术会考复习提纲必修模块 信息技术基础知识点

高中信息技术.pdf

高中信息技术 - 《信息技术学科知识与教学能力》 (高级中学) 一、考试目标 1

高中信息技术课程标准+课时安排.doc

高中信息技术课程标准+课时安排 - 高中信息技术课程标准 (一)信息获取 (1)

高中信息技术说课稿:《信息获取的一般过程》优秀说课稿....doc

高中信息技术说课稿: 《信息获取的一般过程》优秀说课稿范文一、说课标 信息技术教

高中信息技术教案(全套2012-2013).doc

高中信息技术教案(全套2012-2013) - 1.1 信息及其特征 一、教学内

高中信息技术网站设计与制作教学设计.doc

高中信息技术网站设计与制作教学设计 - 高中信息技术网站设计与制作教学设计 【教学分析】 一、教材分析 本教学内容为高中信息技术选修模块《网络技术应用》的重要部分...

高中信息技术说课稿(全套).doc

高中信息技术说课稿(全套) - 1.1 信息及其特征 一、教学内容分析和设计:

高一信息技术课件汇总_图文.ppt

高一信息技术课件汇总 - 高中信息技术基础 必修一 上高中前,也许你已上过网,会

高中信息技术教案(全套2012-2013).doc

高中信息技术教案(全套2012-2013)_其它课程_高中教育_教育专区。教科版高中信息技术导学案 教科版信息技术必修 信息技术基础教案 任课教师:娄海林 1 - - 1.1 ...

高中信息技术必修知识点_图文.doc

高中信息技术必修知识点 - 将来的你一定会感激现在拼命的自己 高中信息技术学业水

高中信息技术知识点汇总.doc

高中信息技术知识点汇总主题 1 信息的获取 主题 3 信息的管理 选修 网络技术

最新高中信息技术会考试题及答案8.doc

最新高中信息技术会考试题及答案8_其它课程_高中教育_教育专区。最新高中信息技术会考试题及答案 第一卷 必修部分评析 一、单选题(题数:15 道,共:30.0 分,得分...

2017高中信息技术会考总复习资料.doc

2017高中信息技术会考总复习资料 - 信息技术学业水平考试总复习资料 必修知识

高中信息技术教材分析_图文.ppt

高中信息技术教材分析 - 简要介绍资料的主要内容,以获得更多的关注... 第三章 高中信息技术教材分析第一节 高中信息技术课程概述 第二节 高中信息技术教材分析 第三...

江苏省高中信息技术知识点汇总.doc

江苏省高中信息技术知识点汇总 - 高中信息技术学业水平测试复习资料 必修 主题

高中信息技术第一节课_图文.ppt

高中信息技术第一节课_其它课程_高中教育_教育专区。高中信息技术开学第一节课PP