计算机程序算法与算法描述
- 格式:doc
- 大小:535.50 KB
- 文档页数:4
计算机算法定义和特征和描述方法
一、定义:在计算机中表现为指令的有限序列,其中每条指令表示一个或多个操作。
二、算法的描述:类C语言介于伪码语言和程序设计语言之间的一种表示形式,保留了C语言的精华,不拘泥于C语言的语法细节,同时也添加了一些C++的成分。
三、算法的特性:
1、有穷性:算法在执行有限步骤之后,自动结束而不会出现无限循环,并且每一个步骤都在可接受的时间范围内完成。
当然这里的有穷并不是纯数学意义的,而是在实际应用中合理的、可以接受的“边界”。
2、确定性:算法的每一个步骤都有确定的含义,不会出现二义性(不会有歧义)。
3、可行性:算法中的所有操作都可以通过已经实现的基本操作运算执行有限次来实现。
4、输入:一个算法有零个或多个输入。
当用函数描述算法时,输入往往是通过形参表示的,在它们被调用时,从主调函数获得输入值。
5、输出:一个算法有一个或多个输出,它们是算法进行信息加工后得到的结果,无输出的算法没有任何意义。
当用函数描述算法时,输出多用返回值或引用类型的形参表示。
第一章揭开计算机解决问题的神秘面纱
1.2算法和算法的描述
1.在程序设计中算法是指()
A.对解决问题的方法和步骤的描述
B. 以上都不对
C.计算公式
D.计算方法
2.下列关于算法的叙述不正确的是( )
A.算法具有确定性、可行性、有限性等基本特征
B.任何一个问题的算法都只有一种
C.常见的算法描述方法有自然语言、流程图法、伪代码法等D.算法是解决问题的有序步骤
3.以下哪个是编程的核心,是解决问题的方法和步骤( ) A.算法设计B.代码编写C.调试运行D.界面设计
4.以下哪个不是算法的描述方法()
A.伪代码描述法
B.自然语言描述法
C.流程图描述法
D. 顺序法
5.图形符号在算法在流程图描述中表示()
A.处理或运算的功能
B.算法的开始或结束
C.用来判断条件是否满足需求
D.输入输出操作
6.以下哪个图形是流程图中表示“输入输出”功能的图形( )
A.△B.□C D.◇
7.图形符号“口”在算法流程图描述中表示( )
A.用来判断条件是否满足要求B.处理或运算
C.算法的开始或结束D.输入输出操作
8.图形符号“◇"在算法流程图描述中表示( ) A.用来判断条件是否满足需求B.处理或运算C.算法的开始或结束D.输入输出操作9.流程图是描述什么的常用方式( )
A.数据结构B.计算规则C.算法D.程序10.算法与程序的关系描述正确的是( )
A.程序决定算法,是算法设计的核心
B.算法决定程序,是程序设计的核心
C.算法就是对程序的描述
D.算法和程序之间无关系。
算法与算法描述范文算法是计算机科学中最常用的概念之一,它是描述解决问题步骤的一种方法。
通常,算法指的是一系列严格定义的规则或指令,用于解决特定问题或执行特定任务。
算法描述则是对算法的详细说明,包括算法的输入、输出、流程和具体步骤。
算法描述的主要目的是清晰地定义算法的行为和操作,以便程序员和计算机能够准确地理解和执行它。
一个好的算法描述应该具有清晰、简洁、准确和可读性高的特点,以便于他人理解和使用。
算法描述通常包括以下几个部分:1.输入和输出:算法的输入是指算法执行前所接收的数据,在算法执行结束后,会得到一个或多个输出结果。
输入和输出可以是各种数据类型,如整数、字符串、数组等。
2.流程和步骤:算法描述应该明确描述算法的流程和各个步骤。
流程指的是算法的整体执行过程,也就是从开始到结束的全过程。
步骤指的是算法执行过程中的具体操作,通常包括条件判断、循环和各种数学运算等。
3. 算法复杂度:算法的复杂度是衡量算法执行效率和资源消耗的度量标准。
算法复杂度通常包括时间复杂度和空间复杂度。
时间复杂度指的是算法执行所需的时间量级,如O(n)、O(nlogn)等;空间复杂度指的是算法执行所需的存储空间量级,如O(1)、O(n)等。
下面以一个常见的排序算法,冒泡排序作为例子,来展示一个算法的描述:输入:一个包含n个元素的数组A[1...n]输出:按非降序排列的数组A[1...n]流程:重复以下步骤n-1次:1.对于i从1到n-1:1.1如果A[i]>A[i+1],则交换A[i]和A[i+1]2.如果没有任何交换发生,则退出循环步骤:1.读取数组A[1...n]2.重复以下步骤n-1次:2.1 初始化一个交换标志flag为false2.2对于i从1到n-1:2.2.1 如果A[i] > A[i+1],则交换A[i]和A[i+1],并将交换标志flag设置为true2.3 如果flag为false,则退出循环3.输出数组A[1...n]以上是对冒泡排序算法的描述,通过该描述,可以清晰地了解冒泡排序的过程。
第二节算法和算法描述学习目的:1、了解算法的概念及算法的特征。
2、了解自然语言、流程图和为代码三种描述算法的过程。
3、通过对同一个问题不同算法处理过程的体验,了解算法的地位和作用。
4、进一步感受计算机解决问题的过程学习重点:1、掌握用流程图描述算法的过程。
学习内容:一、认识算法感受鸡兔同笼问题的算法设计,理解算法的概念问题:笼子里有鸡和兔共50只,已知鸡和兔子的腿共有160条,问鸡和兔各有多少只?算法设计:第一步:令ji=1第二步:tu=40-ji第三步:leg=ji*2+tu*4第四步:如果leg=100,转到第7步。
否则转下一步。
第五步:ji=ji+1;第六步:如果ji<=40,则转到第2步;第七步:输出ji,tu 的值第八步:结束。
程序:Private Sub Command1_Click()Dim Ji As IntegerDim Tu As IntegerDim Leg As IntegerFor Ji = 1 To 50Tu = 50- JiLeg = Ji * 2 + Tu * 4If Leg = 160 ThenPrint "鸡="; Ji; "只"Print "兔="; Tu; "只"End IfNext JiEnd Sub什么是算法?二、算法的描述算法是人求解问题的思路和方法,是解题过程的精确描述。
算法的表述方法很多,其中主要的有、、。
问题:求三个数中值最大的数1、自然语言自然语言就是人们平时交流使用的语言。
例1:用自然语言描述“求三个数中值最大的数”的算法。
(P19)第1步:输入三个正整数a,b,c第2步:如果a大于b则将a的值赋给max,否则将b的值赋给max;第3步:如果c大于max,则将c的值赋给max;第4步:打印(输出):“最大值为”max。
2、流程图流程图是一种用规定的符号、连线和文字说明来表示的算法。
——辗转相除法。
例如:设给定的两个正整数为m和n,求它们的最大公约数的步骤为:(1)以m除以n,令所得的余数为r。
(2)若r=0,则输出结果n,算法结束;否则,继续步骤(3)。
(3)令m=n,n=r,并返回步骤(1)继续进行。
实践1:求两个正整数112和64的最大公约数。
实践2(可选):求两个正整数112和64的最小公倍数。
师生总结算法的特征,教师简要举例说明。
特征:输入、确定性、有穷性、输出、能行性(可行性、有效性)余为48;(2)64除以48,余为16;(3)48除以16,余为0;答案:112和64的最大公约数为16。
学有余力的学生可尝试写出实践2的算法。
Moodle上提交。
解算法的特征。
3、算法的描述。
(1)问:在游戏和辗转相除法中,我们是用什么来描述算法的?那么还有没有其它方式呢?除了自然语言,还有流程图、伪代码等。
例如辗转相除法用流程图和伪代码描述如下:①流程图描述的辗转相除法(教师简单说明流程图的基本图形及其功能):②伪代码描述的辗转相除法(教师简要说明伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法的工具。
对学生学习不作要求):INPUT m,nr= m mod nDo While r≠0m=nn=rr=m mod nLoopPrint n(2)讨论交流比较三种描述算法的方式的优势和不足(伪代码不做要求)。
算法描述方式优势不足自然语言流程图伪代码学生回答:文字,……(教师引导出自然语言)。
各组就求两个整数的最大公约数的辗转相除法的三种描述方式进行讨论,比较各自的优势和不足,填写表格,进行交流。
Moodle上提交。
结合辗转相除法的不同描述方式进行讲解,学生在比较中体会算法描述的过程,掌握本节重点。
学生通过对三种方式的比较,总结出各自的优势与不足之处,进一步加深对本节重点知识的认识。
考虑到学生的认知水平,伪代码不做要求,鼓励学有余力的学生了解。
操作实践1、写出求一个数的绝对值的算法。
计算机程序算法与算法描述
一、教学目标
(一)知识与技能:
1)学会分析问题。
2)学会用流程图描述问题的算法。
(二)过程与方法:
通过创设现实生活中的问题情境帮助学生分析问题。
(三)情感态度价值观:
提高学生分析、解决问题的能力。
二、教学重难点
(一)重点:
学会用流程图描述算法。
(二)难点
1)让学生学会分析问题,建立描述问题的模型
2)让学生理解用流程图描述实际问题,理解人的思维在计算机工作中发挥的作用
三、教法学法
游戏教学法
四、教学过程
简单解释流程图基本图形:
过程。