找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

算法初步的知识点汇总!!!

admin 2019-3-5 06:02 158人围观 C++相关

来源于微信公众号:高中数学王晖

点击上方蓝色字体“高中数学王晖”关注王晖老师,免费获取各种知识干货和学习经验~~~您的点赞转发是对老师的最大鼓舞~~~

距高考还有95天






算法和程序框图算法

定义:

算法是指用阿拉伯数字进行算数运算的过程。

在数学中,算法通常是指按照一定规则解决某一类问题的明确和有限的步骤。

例题:写出判断n是否为质数的算法

解:

第一步:给定大于2的整数n

第二步:令i=2

第三步:用i除n,得到余数r

第四步:判断“r=0”是否成立,若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示。

第五步:判断“i>(n-1)”是否成立,若是,则n是质数,结束算法;否则,返回第三步。

程序框图

定义:

程序框图又称流程图,是一种用程序框,流程线及文字说明来表示算法的图像。

在程序框图中,一个或几个程序框的组合表示算法中的一个步骤,带有方向剪头的流程线将程序框连接起来,表示算法步骤的执行顺序。下表列出了几个基本的程序框,流程线和他们表示的功能。



算法的基本逻辑结构

算法的三种基本结构是:顺序结构,条件结构,循环结构。尽管算法千差万别,但都是由这三种基本的机构组成的。

1.顺序结构

顺序结构是由若干个依次执行的步骤组成的,这是任何一个算法都离不开的基本结构。

顺序结构可以用程序框图表示如下:



例题:已知一个三角形三条边的边长分别是a,b,c,利用海伦-秦九韶公式设计一个计算三角形面积的算法,并画出程序框图表示。

解:

程序框图如下:  



2.条件结构:

在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同流向。条件结构就是处理这种过程的结构。

常见的条件结构用程序框图表示有下面两种形式:



例题:任意给定3个正实数,设计一个算法,判断以这3个正实数为三条边边长的三角形是否存在,并画出这个算法的程序框图。

解:

程序框图如下:



3.循环结构

在一些算法中,经常会出现从某处开始,按照一定的条件反复执行某些步骤的情况,这就是循环结构。反复执行的步骤称为循环体。循环结构一定包含条件结构。

循环结构主要有两种:直到型循环结构和当型循环结构

直到型循环结构:

在执行一次循环体后,对条件进行判段,如果条件不满足,就继续执行循环体,直到条件满足时终止循环。

直到型循环结构的程序框图的形式:



当型循环结构:

在每次执行循环体前,对条件进行判断,当条件满足时,执行循环体,否则终止循环体,这种循环结构称为当型循环结构。

当型循环结构的程序框图的形式:



例题:设计一个计算1+2+3+……+100的值的算法,并画出程序框图。

解:

程序框图如下:



程序框图的画法:

第一步:用自然语言表述算法的步骤;

第二步:确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示,得到该步骤的程序框图

第三步:将所有步骤的程序框图用流程线连接起来,并加上终端框,得到表示整个算法的程序框图。




基本算法语句
计算机完成一项任务也需要算法,如果用自然语言或者程序框图表示的算法,计算机无法理解,因此需要将算法表示为计算机能够理解的程序设计语言。

程序设计语言包含下列基本算法语句:输入语句,输出语句,赋值语句,条件语句,循环语句。

输入语句:

输入语句与程序框图中的输入框对应,用来输入信息

输入语句的一般格式为:

INPUT “提示内容”:变量

例如下面程序框图,输入框可以用输入语句表示为:

INPUT “a,b,c=”:a,b,c



备注:

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

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

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

输出语句:

输出语句与程序框图中的输出框对应,用来输出信息

输出语句的一般格式为:

PRINT “提示内容”:表达式

例如上面“输入语句”中举例的程序框图,输出框可以用输出语句表示为:

PRINT “S=”:S

备注:

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

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

例题:编写程序,计算一个学生数学,语文,英语三门课的平均成绩。

解:

设输入的数学,语文,英语三门成绩分别为a,b,c,用y表示平均数

则用程序语言表示如下:

INPUT “数学=”:a

INPUT “语文=”:b

INPUT “英语=”:c

y=(a+b+c)/3

PRINT “平均数=”:y

END

注意:最后一行的END表示程序语句的结束。

赋值语句:

赋值语句和程序框图中表示赋值的处理框对应,用来给变量赋值。

赋值语句的一般格式:

变量=表达式

由上面的格式可以看出,赋值语句就是将表达式所代表的值赋给变量

例题:交换两个变量A和B的值,写出程序语言

解:

INPUT  “A=,B=”:A,B

x=A

A=B

B=x

PRINT  “A=,B=”:A,B

END

备注:

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

②赋值语句中的“=”称作赋值号,与数学中的等号的意义是不同的。赋值号的左右两边不能对换,它将赋值号右边的表达式的值赋给赋值号左边的变量,例如“A=B“与”B=A”所代表的含义不同;

③赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个数据、常量或算式,例如:2=x是错误的,左边只能是变量;

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

条件语句:

条件语句与程序框图中的条件结构相对应。程序框图里面的条件结构有以下两种:

①IF-THEN条件语句:

IF-THEN条件语句的一般格式:

IF 条件 THEN

语句体

END IF

注意:在IF-THEN的条件语句中,“条件”表示判断的条件;“语句”表示满足条件时执行的操作内容,条件不满足时,结束程序;END IF表示条件语句的结束。

②IF-THEN-ELSE条件语句:

IF-THEN-ELSE条件语句的一般格式:

IF 条件 THEN

语句体1

ELSE

语句体2

END IF

注意:在IF—THEN—ELSE语句中,“条件”表示判断的条件,“语句1”表示满足条件时执行的操作内容;“语句2”表示不满足条件时执行的操作内容;END IF表示条件语句的结束。

例题:编写一个程序,求实数x的绝对值。

解:

INPUT “x=”:x

IF x>=0  THEN

PRINT “│x│=”: x

ELSE

PRINT“│x│=”:- x

END IF

END

循环语句:

循环语句与程序框图中的循环结构相对应,一般程序设计语言中都有直到型和当型两种循环语句结构,分别对应程序框图中的直到型和当型循环结构。

①直到型循环结构对应的循环语句如下:

DO

循环体

LOOP UNTIL 条件

备注:

当计算机执行上述语句时,先执行一次DO和UNTIL之间的循环体,再对UNTIL后的条件进行判断,如果条件不符合,继续执行循环体,然后再检查上述条件,如果条件仍不符合,再次执行循环体,知道条件符合时为止。这时,计算机将不执行循环体,直接跳到UNTIL语句后,接着执行UNTIL语句之后的语句。

例题:设计一个计算1+2+3+……+100的值的程序,用包含直到型循环语句表示。

解:

i=1

S=0

DO

S=S+ i

i = i +1

LOOP UNTIL i>100

PRINT S

END

②当型循环结构对应的循环语句如下:

WHILE 条件

循环体

WEND

备注:

当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE和END之间的循环体;然后在检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。

例题:设计一个计算1+2+3+……+100的值的程序,用包含当型循环语句表示。

解:

i=1

S=0

WHILE  i<=100

S=S+ i

i = i +1

WEND

PRINT S

END

当型循环与直到型循环的区别:

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

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

备注:

程序语言中常用的数学符号的表示方法:

乘:“*”,例如a与b相乘表示为:a*b

除:“/”,例如a与b相乘表示为:a/b

乘方:“^”,例如a的m次方:a^m

绝对值:“ABS”,例如a的绝对值:ABS(a)

开平方:“SQR”,例如根号a:SQR(a)

除数余数:“MOD”,例如a除以b的余数:a MOD b





----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:高中数学王晖,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......