




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法的概念及描述Python程序设计丽江市一中信息技术教研组请几位同学来玩一个围猫游戏单机此处编辑2.1.1、算法的概念围猫游戏算法与问题解决单机此处编辑1、农夫一次最多只能带一样东西(狼、羊、白菜)过河。2、农夫不在狼吃羊、羊吃白菜。3、渡口只有一条小船,船只能容下一人和另外一样东西,而且只有农夫才能撑船。2.1.1、算法的概念农夫过河算法与问题解决单机此处编辑信息技术基础狼吃羊;羊吃白菜;注:只有农夫在时,不会被对方吃掉。请同学们思考下:农夫过河应该怎样过河才行?2.1.1、算法的概念农夫过河问题分析算法与问题解决单机此处编辑方案一第一步、农夫先把羊运过河,第二步、再把白菜运过河,此时又把羊捎回,第三步、放下羊,同时把狼运过河,第四步、把羊运过河
方案二第一步、农夫先把羊运过河,第二步、再把狼过河,此时又把羊捎回,第三步、放下羊,同时把白菜运过河,第四步、把羊运过河
2.1.1、算法的概念农夫过河方案算法与问题解决
“百钱买百鸡”问题,是我国古代数学家张丘建在《算经》中提出的经典问题。
书中是这样描述的:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,问翁、母、雏各几何?”算法与问题决
同时,他还在书中给出了解决问题的算法,“鸡翁每增四,鸡母每减七,鸡雏每益增三,即得”。2.1.1、算法的概念百钱买百鸡算法与问题解决֎穷举算法也称为枚举算法,指的是在求解过程中,先按照一定的顺序一一列举所有的可能解,然后用条件判断列举出可能是否为正确解。一般适用于解离散的且范围明确的问题。1、鱼酸菜一袋算法与问题解决2、酸菜切小段3、热油、葱姜爆炒,加入酸菜翻炒4、加水烧开后加入鱼骨,炖一会,加点盐、糖提味5、放入鱼片6、开锅后盛出即可2.1.1、算法的概念酸菜鱼菜谱算法与问题解决单机此处编辑算法的概念由此可见,以上几个问题都有其解决方法。除此之外现实生活中处处都有解决问题的相应步骤、方法。算法与问题解决围猫游戏农夫过河百钱买百鸡酸菜鱼菜谱算法与问题解决单机此处编辑用计算机解决问题即让计算机按照程序执行指令。利用计算机编程的方式进行问题求解时,通常经历以下几个环节:
֎用计算机解决实际问题的过程中,有两个重要的环节:①设计算法、②编制和运行程序来实现算法。2.1.1、算法概念计算机解决问题的步骤算法与问题解决提出问题设计方案编程调试解决问题提出问题分析问题设计方案编程调试单机此处编辑
算法:就是解题方法的精确描述,即解决问题的方法和步骤。
从广义的角度来看,指的是解决问题或完成任务的一系列步骤。并不仅仅“计算”的问题才有算法,日常生活中处处都有,如菜谱是否厨师做菜的算法,广播体操图解是做广播体操的算法。等……
1、算法的定义什么是算法?算法与问题解决洗开水壶烧开水灌凉水洗茶壶洗茶杯拿茶叶泡茶喝方法甲方法乙方法丙同时
֎对同一个问题,有时可以有不同的解决方法和步骤。尽可能采用简单省时的和步骤少的方法去解决问题。同时要保证算法正确、算法的质量。1、算法的定义泡茶算法算法与问题解决1、有穷性:一个算法的处理(执行)步骤必须是有限的。2、确定性:算法中的每一个步骤必须有确切的含义,而不应该的含糊的,模棱两可的。3、可行性:算法的每个步骤都要足够简单,是实际能做的,而且能在有限的时间内完成的。4、有0个或多个输入。5、有一个或多个输出。2、算法的特征——P40算法的特征算法与问题解决斐波那契数列3、算法的要素算法的要素算法与问题解决
用计算机解决问题,本质上是以“数据运算”的方式来实现的。各种“运算”有时需要依次进行,有时需要根据条件选择一部分进行,有时又需要重复执行某些“运算”,这些“运算”顺序的调控就需要借助控制转移来实现。1、数据:用算法解决问题时,必须明确参与运算的初始数据、运算时产生的中间数据以及代表问题解决的结果数据。(在算法执行前,必须设置洗涤模式<时间>、温度、水位、转速等,并把数据输入到算法中,让它按照需求工作。)2、运算:在对数据进行运算时,必须明确每一步的运算是什么、对哪些数据进行运算等。3、控制转移:在算法执行过程中,有时需要根据数据或运算结果的特点进行不同处理。3、算法的要素算法的要素算法与问题解决单机此处编辑如何描述算法?即算法的表示方法?P42
算法的表示方法:一般用自然语言、流程图、伪代码、计算机程序设计语言等进行描述。2.1.2、算法的描述算法的描述算法与问题解决
设计出一个解决问题的算法,也需要用能被算法执行者理解的形式呈现,才能被算法执行者理解并执行。算法的这种呈现就称为算法的描述。丽江市一中信息技术教研组例如:停车场车位探测中的算法(车位探测器——传感器)输入flag的值,根据flag的值设置车位上指示灯的颜色,并输出车位状态(“空位”或“非空车位”)1、输入变量flag的值。2、若flag的值为1,则设置指示灯为绿色,输出“空车位”;否则,设置指示灯为红色,输出“非空车位”。1、用自然语言描述算法算法的描述算法与问题解决
自然语言是人们在日常生活中交流使用的语言。如汉语、英语等,用自然语言描述算法通俗易懂,且不需要进行专门的学习和训练。单机此处编辑流程图2、用流程图描述算法算法的描述算法与问题解决
用自然语言描述算法虽然通俗易懂,但也存在难以避免的问题。如易出现歧义及在处理根据条件处理算法时比较烦琐。
流程图是一种常用的表示算法的图形化工具。
采用流程图来描述会显得比较直观和易于理解。输入flag的值Flag=1?N(条件不成立)Y(条件成立)开始指示灯为绿色输出“空车位”指示灯为红色输出“非空车位”结束单机此处编辑流程图基本图形及其功能算法的描述算法与问题解决判断框(选择框)开始/结束流程线连接点输入/输出处理框单机此处编辑3、用伪代码描述算法算法的描述算法与问题解决流程图虽然直观易懂,但当分支增多时会出现流程线相互交叉而影响算法理解的情况。自然语言和流程图描述的算法转换为计算机程序时,中间还需要较多的语义解释和格式转换工作。
伪代码指的是一种比较直观简洁的、符号接近计算机程序代码的算法描述方式,其风格很像计算机程序设计语言,但又不是真正的可以被计算机理解的代码。它的表示没有统一、严格的规定,只要定义合理、表达正确即可。单机此处编辑3、用伪代码描述算法算法的描述算法与问题解决1)、条件判断语句
格式1:if条件then
(语句序列1)
Else
(语句序列2)
格式1:if条件then
(语句序列1)
֎此时成立时执行语句序列1,不成立就不执。2)、循环语句
格式:while条件(循环体)֎循环由一个或多个语句组成。循环语句执行时,先判断条件是否成立,若条件成立则执行循环体,循环体执行完后再判断条件是否成立,如此重复,直到条件不成立,则结束循环语句,接着去执行循环语句后面的语句。单机此处编辑3、用伪代码描述算法(车位探测伪代码)算法的描述算法与问题解决Flag车位探测结果
#将测得的车位当前状态值输入给变量flagifflag=1
then
(指示灯绿色
输出“空车位”)Else(指示灯红色
输出“非空车位”)
单机此处编辑3、用计算机程序设计语言描述算法算法的描述算法与问题解决
无论是自然语言描述算法,还是流程图或者伪代码描述的算法,计算机都无法理解并执行。要让计算机帮助人们解决问题,需要将算法用某种计算机程序设计语言来描述,这个过程称为程序编写(或代码编写)以下是用C++和python编写的程序VoidMainWindow::on_pushButton_clicked(){intflag=ui->lineEdit->text().toInt()if(flag==1){ui->label_4->setStyleSheet(“color:green”);ui->label_4->setText(“绿色”);ui->label_5->setText(“空车位”);
}else{ui->label_4->setStyleSheet(“color:red”);ui->label_4->setText(“红色”);ui->label_5->setText(“非空车位”);}}flag=int(input(“输入车位状态值”))ifflag==1;print(“绿色”)print(“空车位”)Else:print(“红色”)print(“非空车位”)
单机此处编辑程序设计语言算法的描述算法与问题解决
计算机程序设计语言经历了“机器语言——汇编语言——高级语言”的发展历程。机器语言指令由“0”“1”二进制码组成,机器执行效率高但可读性、维护性差。为提升效率发明了汇编语言和高级语言(用接近人类日常用语的符号来表示各类指令,如Basic、C、C++、Java、Python等)。֎算法的多样性:现实中解决一个问题的算法往往具有多样性,即可用多种不同的算法来解决同一个问题。如求两个正整数的最大公约数问题,“辗转相除法”、“更相减损术”信息技术基础丽江市一中信息技术教研组程序实例例如:两个数进行数值交换(自然语言)1、输入变量X、Y值。2、比较X和Y。如果X<>Y(X不等于Y),则X、Y两个数进行数值交换。3、输出结果X、Y的值,即为交换后X、Y的值。那么两个数交换是怎么实现的呢?信息与信息技术丽江市一中信息技术教研组ABX数值存储单元Y数值存储单元空杯子空的存储单元D1、D=A,此时A杯已空。2、A=B,此时B杯已空。3、B=D,此时D杯已空。单机此处编辑信息技术基础丽江市一中信息技术教研组算法流程图是怎么的呢?开始输入a、v进行a、b交换结束a<>b?N(条件不成立)条件或选择语句语法结构:1、If条件判断then执行相应的语句2、If条件判断then执行语句Aelse执行语句Bendif如:If
条件判断then
执行语句A
else
执行语句B
endif开始输入a、b交换:t=a,a=b,b=t结束输出a、b单机此处编辑信息技术基础丽江市一中信息技术教研组如何让计算机去解决问题?通过新添加中间变量的方式,交换数值.下面通过一个demo1函数进行演示:
defdemo1(a,b):temp=aa=bb=tempprint(a,b)#coding:utf-8a=1b=2#第一种方式t=a#临时存放变量值
a=bb=t#第二种方式a=a+bb=a-ba=a-b
#第三种方式a,b=b,aprint("A->",a,"B->",b)执行结果:A->2B->1单机此处编辑各种算法描述方法的比较算法的描述算法与问题解决描述方法优点缺点自然语言用人们日常所用的语言,比较容易理解。自然语言描述算法通俗易懂。分支或循环多时,易出现歧义及在处理根据条件处理算法时比较烦琐。流程图流程描述清晰、直观。分支增多时会出现流程线相互交叉而影响算法理解的情况。伪代码一种比较直观简洁的、符号接近计算机程序代码的算法描述方式,其风格很像计算机程序设计语言。不是真正的可以被计算机理解的代码单机此处编辑1、下面关于算法描述,正确的是()(A)、一个算法只能有一个输入(B)、算法只能用框图来表示(C)、一个算法的执行步骤可以是无限的。(D)、一个完成的算法,不管用什么方法来表示,都至少有一个输出结果。2、算法描述可以有多种表达方法,下面哪些方法不可以描述“闰年问题”的算法()(A)、自然语言(B)、流程图(C)、伪代码(D)、机器语言DD练习算法与问题解决单机此处编辑3、算法与程序的关系(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年舟山开放大学招聘真题
- 2024年安阳汤阴县招聘公益性岗位人员真题
- 2025贵州遵义市赤水安洁物业服务有限公司招聘临聘值班人员录用模拟试卷附答案详解(考试直接用)
- 2025年宝鸡石油机械有限责任公司春季招聘(10人)模拟试卷及答案详解(全优)
- 2025北京门头沟龙泉镇招聘乡村医生3人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025年湖南衡阳市水务投资集团有限公司招聘模拟试卷及答案详解(网校专用)
- 2025年烟台海阳市卫生健康局所属事业单位公开招聘工作人员(58人)模拟试卷及参考答案详解1套
- 2025贵州贵州省福泉市引进教育系统高层次人才20人模拟试卷及答案详解参考
- 2025广西桂林市资源县中峰镇中心卫生院公开招聘编外专业技术人员2人模拟试卷及答案详解(各地真题)
- 2025北京林业大学附属实验小学教师招聘1人模拟试卷及答案详解(全优)
- (完整)马克思主义政治经济学习题及参考答案
- 大规模模型蒸馏技术
- 贝朗DIALOG+透析机水路设计概览课件
- 光电功能材料课程-13-18课件
- 施工现场污水排放方案
- 黔西市中医医院金阳院区环评报告
- 我的家乡-枣阳
- 青春期生理卫生知识讲座男生篇
- 高中期中考试家长会PPT课件 (共51张PPT)
- 全球卫生治理课件
- 实验室生物安全程序文件
评论
0/150
提交评论