计算机算法与结构知识点,【数学】“算法初步与框图”知识点总结

一、算法的概念

(一) 算法概念:

在数学上,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题是程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.

(二)算法的特点:

1. 有限性:一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的.

2. 确定性:算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可.

3. 顺序性与正确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题.

4. 不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法.

5. 普遍性:很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限、事先设计好的步骤加以解决.

二、程序框图

(一)程序框图基本概念:

1. 程序构图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。

一个程序框图包括以下几部分:表示相应操作的程序框;带箭头的流程线;程序框外必要文字说明。

2. 构成程序框的图形符号及其作用

116558638_1_20171118103758133

学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:

(1)使用标准的图形符号。

(2)框图一般按从上到下、从左到右的方向画。

(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点。判断框具有超过一个退出点的唯一符号。

(4)判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。

(5)在图形符号内描述的语言要非常简练清楚。

3. 算法的三种基本逻辑结构:顺序结构、条件结构、循环结构。

(1)顺序结构:顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。

顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤。如在示意图中,A框和B框是依次执行的,只有在执行完A框指定的操作后,才能接着执行B框所指定的操作。

116558638_2_20171118103758258

(2)条件结构:条件结构是指在算法中通过对条件的判断,根据条件是否成立而选择不同流向的算法结构。

条件P是否成立而选择执行A框或B框。无论P条件是否成立,只能执行A框或B框之一,不可能同时执行A框和B框,也不可能A框、B框都不执行。一个判断结构可以有多个判断框。

(3)循环结构:在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。循环结构又称重复结构,循环结构可细分为两类:

① 一类是当型循环结构,如下左图所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,再判断条件P是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次条件P不成立为止,此时不再执行A框,离开循环结构。

② 另一类是直到型循环结构,如下右图所示,它的功能是先执行,然后判断给定的条件P是否成立,如果P仍然不成立,则继续执行A框,直到某一次给定的条件P成立为止,此时不再执行A框,离开循环结构。

116558638_3_20171118103758367

116558638_4_20171118103758461

注意:

A. 循环结构要在某个条件下终止循环,这就需要条件结构来判断。因此,循环结构中一定包含条件结构,但不允许“死循环”。

B. 在循环结构中都有一个计数变量和累加变量。计数变量用于记录循环次数,累加变量用于输出结果。计数变量和累加变量一般是同步执行的,累加一次,计数一次。

三、输入、输出语句和赋值语句

(一)输入语句

1. 输入语句的一般格式

116558638_5_20171118103758539

2. 输入语句的作用是实现算法的输入信息功能;

3. “提示内容”提示用户输入什么样的信息,变量是指程序在运行时其值是可以变化的量;

4. 输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式;

5. 提示内容与变量之间用分号“;”隔开,若输入多个变量,变量与变量之间用逗号“,”隔开。

(二)输出语句

1. 输出语句的一般格式

116558638_6_20171118103758680

2. 输出语句的作用是实现算法的输出结果功能;

3. “提示内容”提示用户输入什么样的信息,表达式是指程序要输出的数据;

4. 输出语句可以输出常量、变量或表达式的值以及字符。

(三)赋值语句

1. 赋值语句的一般格式

116558638_7_20171118103758758

2. 赋值语句的作用是将表达式所代表的值赋给变量;

3. 赋值语句中的“=”称作赋值号,与数学中的等号的意义是不同的。赋值号的左右两边不能对换,它将赋值号右边的表达式的值赋给赋值号左边的变量;

4. 赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个数据、常量或算式;

5. 对于一个变量可以多次赋值。

注意:

A. 赋值号左边只能是变量名字,而不能是表达式。如:2=X是错误的。

B. 赋值号左右不能对换。如“A=B”“B=A”的含义运行结果是不同的。

C. 不能利用赋值语句进行代数式的演算。(如化简、因式分解、解方程等)

D. 赋值号“=”与数学中的等号意义不同。

四、条件语句

(一)条件语句的一般格式有两种:

IF—THEN—ELSE语句;

IF—THEN语句。

(二)IF—THEN—ELSE语句

IF—THEN—ELSE语句的一般格式为图1,对应的程序框图为图2。

116558638_8_20171118103758868

116558638_9_20171118103758977

分析:在IF—THEN—ELSE语句中,“条件”表示判断的条件,“语句1”表示满足条件时执行的操作内容;“语句2”表示不满足条件时执行的操作内容;END IF表示条件语句的结束。计算机在执行时,首先对IF后的条件进行判断,如果条件符合,则执行THEN后面的语句1;若条件不符合,则执行ELSE后面的语句2。

(三)IF—THEN语句

IF—THEN语句的一般格式为图3,对应的程序框图为图4。

116558638_10_20171118103759133

116558638_11_20171118103759211

注意:“条件”表示判断的条件;“语句”表示满足条件时执行的操作内容,条件不满足时,结束程序;END IF表示条件语句的结束。计算机在执行时首先对IF后的条件进行判断,如果条件符合就执行THEN后边的语句,若条件不符合则直接结束该条件语句,转而执行其它语句。

五、循环语句

循环结构是由循环语句来实现的。对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构。即WHILE语句和UNTIL语句。

(一)WHILE语句

1. WHILE语句的一般格式是:

116558638_12_20171118103759305

对应的程序框图是:

116558638_13_20171118103759383

2. 当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。因此,当型循环有时也称为“前测试型”循环。

(二)UNTIL语句

1. UNTIL语句的一般格式是:

116558638_14_20171118103759477

对应的程序框图是:

116558638_15_20171118103759555

2. 直到型循环又称为“后测试型”循环,从UNTIL型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句。

(三)当型循环与直到型循环的区别:

1. 当型循环先判断后执行,直到型循环先执行后判断;

2. 在WHILE语句中,是当条件满足时执行循环体,在UNTIL语句中,是当条件不满足时执行循环体。

六、辗转相除法与更相减损术

(一)辗转相除法。也叫欧几里德算法,用辗转相除法求最大公约数的步骤如下:

1. 用较大的数m除以较小的数n得到一个商

116558638_16_20171118103759649和一个余数

116558638_17_20171118103759711

2. 若

116558638_17_20171118103759711=0,则n为m,n的最大公约数;若

116558638_17_20171118103759711≠0,则用除数n除以余数

116558638_17_20171118103759711得到一个商

116558638_18_20171118103759821和一个余数

116558638_19_20171118103759930

3. 若

116558638_19_20171118103759930=0,则

116558638_19_20171118103759930为m,n的最大公约数;若

116558638_19_20171118103759930≠0,则用除数

116558638_17_20171118103759711除以余数

116558638_19_20171118103759930得到一个商

116558638_20_2017111810380024和一个余数

116558638_21_2017111810380086;……

依次计算直至

116558638_22_20171118103800164=0,此时所得到的

116558638_23_20171118103800258即为所求的最大公约数。

(二)更相减损术

我国早期也有求最大公约数问题的算法,就是更相减损术。

在《九章算术》中有更相减损术求最大公约数的步骤:可半者半之,不可半者,副置分母·子之数,以少减多,更相减损,求其等也,以等数约之。

翻译为:

1. 任意给出两个正数;判断它们是否都是偶数。若是,用2约简;若不是,执行第二步。

2. 以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数。

辗转相除法与更相减损术的区别:

A. 都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。

B. 从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到。

七、秦九韶算法与排序

(一)秦九韶算法概念:

116558638_24_20171118103800336求值问题

116558638_25_20171118103800430

116558638_26_20171118103800524

求多项式的值时,首先计算最内层括号内依次多项式的值,即

116558638_27_20171118103800586

然后由内向外逐层计算一次多项式的值,即

116558638_28_20171118103800680

这样,把n次多项式的求值问题转化成求n个一次多项式的值的问题。

(二)两种排序方法:直接插入排序和冒泡排序

1. 直接插入排序

基本思想:插入排序的思想就是读一个,排一个。将第1个数放入数组的第1个元素中,以后读入的数与已存入数组的数进行比较,确定它在从大到小的排列中应处的位置.将该位置以及以后的元素向后推移一个位置,将读入的新数填入空出的位置中.(由于算法简单,可以举例说明)

2. 冒泡排序

基本思想:依次比较相邻的两个数,把大的放前面,小的放后面.即首先比较第1个数和第2个数,大数放前,小数放后。然后比较第2个数和第3个数......直到比较最后两个数。第一趟结束,最小的一定沉到最后。重复上过程,仍从第1个数开始,到最后第2个数...... 由于在排序过程中总是大数往前,小数往后,相当气泡上升,所以叫冒泡排序。

八、进位制

(一)概念:进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值。可使用数字符号的个数称为基数,基数为n,即可称n进位制,简称n进制。

现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。对于任何一个数,我们可以用不同的进位制来表示。比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的。

一般地,若k是一个大于一的整数,那么以k为基数的k进制可以表示为:

116558638_29_20171118103800789

而表示各种进位制数一般在数字右下脚加注来表示,如

116558638_30_20171118103800899表示二进制数,

116558638_31_20171118103800977表示5进制数。

知识点若有误,欢迎留言指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值