版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、算法与程序设计算法与程序设计 第一章第一章 揭开计算机解决问题的揭开计算机解决问题的 神秘面纱神秘面纱 算法与程序设计算法与程序设计 1.1 计算机解决问题的过程 从一个生产方案问题了解用计算机解决问题的步骤:P6 具体问题分析问题设计算法编写程序调试程序得到答案 掌握用自然语言表达算法。(P8实践与练习) 算法与程序设计算法与程序设计 1、具体问题:、具体问题: 华南太阳能设备厂在计划期内拟生产甲、乙、丙三种适销产品,每件销售收分别为4 万元、3万元、2万元。按工艺规定,甲、乙、丙三种产品都需要在A、B、C、D四种 不同的设备上加工,其加工所需要的时间见下表。已知A、B、C、D四种设备在计划
2、 期内有效使用台时数分别为12、8、16、12。如何安排生产可使收入最大? 设备 产品 ABCD 甲2140 乙2204 丙1100 探究的问题探究过程 找出已知和未知已知甲乙丙销售收入,ABCD四种设备有效使用台时数,甲乙丙加工的台时数,未知的是甲乙丙的产 量及总销售额。 明确已知和未知之间关系甲乙丙加工的台时数不能超过ABCD有效使用台时数。 人工求解问题甲乙丙的产量及总销售额。 写出解题的算法穷举 2、分析问题:、分析问题: 算法与程序设计算法与程序设计 2x+2y+z12 X+2y+z 8 4x 16 4y 12 0 x 6; 0 y 6; 0 z 12 0 x 8; 0 y 4; 0
3、 z 8 0 x 4 0 y 3 0 x 4 0 y 3 0 z 8 算法与程序设计算法与程序设计 3、设计算法:、设计算法: x=0 x4 y=0 y3 z=0 z8 2*x+2*y+z=12 x+2*y+z4 y=0 y3 z=0 z8 f_maxf(x,y,z) f_max=f(x,y,z) x_max=x y_max=y z_max=z z=z+1 y=y+1 x=x+1 N Y Y Y Y N N 结束 输出结果 算法与程序设计算法与程序设计 4、编写程序、编写程序 Dim x As Integer, y As Integer, z As Integer Dim x_max As I
4、nteger, 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 F
5、or 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)、给按钮添加单击事件过程
6、; 4)、在单击事件过程内输入编写好的程序; 5)、运行程序调试结果。 6、在计算机上执行该指令序列 5、通过编辑、编译和连接产生计算机能够识别的指令序列 4、选用一种编程语言根据算法编写程序4、验证计算结果 3、生成解题算法3、用笔、纸和算盘、计算器等工具进行计算 2、寻找解题的途径和方法 2、寻找解题的途径和方法 1、理解和分析所要解决的问题 1、理解和分析所面临的问题 计算机解题步骤计算机解题步骤人工解题步骤人工解题步骤 相同点:无论何种解题方式,在解决某一实际问题时,都应该正确的理解问题的题意,从看似复杂的 问题中整理出一个头绪,然后通过算法(即解决问题的一个一个步骤)描述出某一问题的
7、解决过程, 进行一定量的计算,最后都必须验证计算结果。 不同点:当计算量较大时,人工解题就有点力不从心了,而计算机每秒上亿次的计算速度却不在话下, 并且只要算法正确,编程语句无误的话,使用计算机编写的解题程序可以反复使用。例如: sum=1+2+3+4+5+(n-1)+n这样的问题。 算法与程序设计算法与程序设计 1.2 算法和算法的描述 1、算法的概念、算法的概念 算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。即,用计算机求 解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。 算法的特征: 1)、有0或多个输入。解题算法中可以没有数据输入,也可以同时输入多个需 要算法处理
8、的数据。 2)、确定性。解题方法中的任何一个操作步骤都是清晰无误的,不会使人产生 歧义或者误解。 3)、有穷性。任何一种提出的解题方法都是在有限的操作步骤内可以完成的, 哪怕是失败的解题方法。 4)、有1个或多个输出。一个算法执行结束之后必须有数据处理结果输出,哪怕 是输出错误的数据结果,没有输出的算法使毫无意义的。 5)、能行性。解题方法中的任何一个操作步骤在现有计算机软硬件条件下和逻 辑思维中都能够实施实现。 算法与程序设计算法与程序设计 辗转相除法 又名欧几里德算法(Euclidean algorithm)是求两个正整数之最大公约数的算法。它 是已知最古老的算法, 其可追溯至前300年。
9、它首次出现于欧几里德的几何原本 (第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的九章算术。它并不 需要把二数作质因子分解。 1. a b,令r为所得余数(0rb),若 r = 0,b 即为最大公约数;算法结束 。 2. 互换:置 ab,br,并返回第一步。 例如:求112和64的最大公约数.算法如下: (1).112除以64,余数为_; (2)_除以_余数为_; (3)_除以_余数为_. 答:112和64的最大公约数为_. 两数的最大公约数乘以其最小公倍数=两数相乘 例如:求112和64的最小公倍数 (1).利用辗转相除法求得它们的最大公约数为_; (2).利用表达式求得最小公倍
10、数: 答: 112和64的最小公倍数为_. 练习:求164和64的最大公约数 求256和24的最大公约数 练习:求164和64的最小公倍数 求256和24的最小公倍数 算法与程序设计算法与程序设计 2、算法的描述、算法的描述 表示算法的语言有自然语言、流程图、伪代码等。 1)、用自然语言描述算法; 2)、用流程图描述算法:掌握流程图的基本图形及其功能。 3)、用伪代码描述算法。 注意对比三种算法描述方式的优劣。 1).输入m和n的值; 2).r=m除以n的余数; 3).如果r=0,则输出n值; 否则令m=n,n=r返回第2步; 4).结束. 开始 输入正整数m和n r=m除以n的余数 r=0
11、m=n, n=r 输出n的值 结束 是 否 输入m和n值 r m Mod n do while r0 m=n n=r r=m mod n loop 输出n值 算法与程序设计算法与程序设计 算法与程序设计算法与程序设计 优点缺点 自然语言不需专门训练,通俗易懂P10 流程图描述清晰简洁,容易表达选 择结构;利于不同环境的程 序设计.P11 无法被计算机直接接受并 进行操作 伪代码书写方便,格式紧凑,易于理 解,便于向计算机程序设计 语言过渡.P12 种类繁多,语句不容易规范. P12 三种算法描述方式的优劣三种算法描述方式的优劣 算法与程序设计算法与程序设计 使用自然语言描述算法的方法虽然比较容
12、易掌握,但是存在着很大的缺陷。例如,当算法 中含有多分支或循环操作时很难表述清楚。另外,使用自然语言描述算法还很容易造成歧 义(称之为二义性),譬如有这样一句话“武松打死老虎”,我们既可以理解为“武 松/打死老虎”,又可以理解为“武松/打/死老虎”。自然语言中的语气和停顿不同,就可 能使他人对相同的一句话产生不同的理解。又如“你输他赢”这句话,使用不同的语气说, 可以产生3种截然不同的意思,同学们不妨试试看。 无论是使用自然语言还是使用流程图描述算法,仅仅是表述了编程者解决问题的一种思路, 都无法被计算机直接接受并进行操作。 伪代码通常采用自然语言、数学公式和符号来描述算法的操作步骤,同时采用
13、计算机高级 语言(如C、Pascal、VB、C+、Java等)的控制结构来描述算法步骤的执行顺序。 算法与程序设计算法与程序设计 在运用计算机程序解决问题的过程中,算法设计有着举足轻重的地位和作用,算法是程 序设计的核心,是程序设计的灵魂.算法的好坏,直接影响着程序的通用性和有效性,影 响着问题解决的效率. 程序的编制依赖于算法的设计。程序的效率主要取决于算法的效率。 算法与程序设计算法与程序设计 1.3、程序与程序设计语言、程序与程序设计语言 1)、程序是一组机器操作的指令或语句的序列,是算法的一种描述。 2)、程序的七个特征:P15 3)、程序的基本结构:P16 顺序结构:各语句依次按照顺
14、序执行。 选择结构:通过检验条件是否成立来决定做还是不做的控件结构。 循环结构:在一定条件下需要重复执行的控件结构。 任何复杂的算法都可以用顺序结构、选择结构、循环结构三种基本结构组合而 成的程序表示。 算法与程序设计算法与程序设计 S1 S2 Sn C S1S2 C S1 顺序结构选择结构循环结构 算法与程序设计算法与程序设计 4)、程序设计:即是编写程序的过程。 一个高质量的程序,应具备以下条件: (1)、建立正确的灵堂模型和确定有效的计算方法; (2)、运行结果必须正确,且在精度和其他各方面均满足要求; (3)、程序本身具有良好的结构,逻辑清楚,易读易懂。 (4)、程序运行时间尽可能短,同时尽可能合理地使用内存; (5)、便于检查、修正、移植和维护。 5)、程序设计语言的产生与发展(P18) (1)、机器语言:由“0”和“1”组成的二进制代码,是能够被计算机直接接受 和 执行的计算机语言。 优缺点: (2)、汇编语言:采用类似英语缩写略词且带有助记性的符号形式代替二进制 机器代码的计算机语言。是符号化了的机器语言。用能反映 指令功能的助记符表达的计算机语言。 优缺点: (3)、高级语言:相对于汇编语言而言,它并不是特指某一种具体的语言,而 是包括了很多编程语言,如VB、C、C+,VC、Java、Pascal等。 算法与程序设计算法与程序设计 语言种类优势不足
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026宁波甬科天使创业投资基金管理有限公司招聘1人备考题库及答案详解【名师系列】
- 2026云南红河州个旧市疾病预防控制中心(个旧市卫生监督所)合同制人员招聘3人备考题库附答案详解
- 【沉管碎石桩施工方案】
- 2026四川成都市青白江区人民医院集团第二次招聘专业技术人员29人备考题库附答案详解【完整版】
- 2026广东深圳高级中学集团招聘23人备考题库附参考答案详解(满分必刷)
- 2026内蒙古鄂尔多斯东胜区第一小学三部教师招聘1人备考题库附参考答案详解(精练)
- 2025-2030智慧法院市场研究应用前景评估报告
- 2025-2030智慧楼宇系统建设方案与运营模式创新研究
- 2025-2030智慧校园建设设备市场供需互动特点分析投资前景发展
- 2025-2030智慧景区管理系统运营商服务模式市场竞争格局市场发展潜力投资评估现状报告
- 超声内镜在胰腺疾病诊疗中的应用
- 供应链协同对农村电商发展的机制分析
- CIP、SIP工艺流程操作说明书
- 桩基施工安全措施方案
- 盘活利用闲置低效厂区厂房实施方案
- 高空安全培训试题及答案
- 2024年1月20日河北省委办公厅公开选调工作人员笔试真题及解析(综合文字岗)
- 商场人员进出管理制度
- 建设工程用电合同协议
- SJG 130 – 2023《混凝土模块化建筑技术规程》
- GB/T 4340.2-2025金属材料维氏硬度试验第2部分:硬度计的检验与校准
评论
0/150
提交评论