笔记--2、算法

1、什么是算法

算法是为了解决问题而执行的一系列步骤。

  • 计算机的算法可分为两大类别:

    –数值运算算法

    –非数值运算算法

  • 数值运算的目的是求数值解

  • 非数值运算,用于事务管理领域

2、简单的算法举例

例1、求1x2x3x4x5

a.使p=1

b.使i=2

c.使p与i相乘,乘积仍放在变量p中,p=p*i

d.使i的值加1,i=i+1

f.如果i不大于5,返回重新执行c;否则,算法结束

g.最后得到p的值就是5!的值

求1x3x5x7x9x11

a.使p=1

b.使i=3

c.使p与i相乘,乘积仍放在变量p中,p=p*i

d.使i的值加1,i=i+2

f.如果i不大于11,返回重新执行步骤c;否则,算法结束

g.最后得到p的值就是所求值

例2、有50个学生,要求将成绩在80分以上的学生的学号和成绩输出

用ni代表第i个学生学号,gi代表第i个学生成绩

a. i = 1

b.如果gi>=80,则输出ni和gi,否则不输出

c. i = i+1

d.如果i<=50,返回到步骤b,继续执行;否则,算法结束

例3、判定2000-2500年中的每一年是否闰年,并将结果输出

设year为被检测的年份

a. year = 2000

b.若year不能被4整除,则输出year的值和“不是闰年”,然后转到步骤f

c.若year能被4整除,不能被100整除,则输出year的值和“是闰年”

d.若year能被400整除,则输出year的值和“是闰年”,然后转到步骤f

e.其他情况输出year的值和“不是闰年”

f. year = year + 1

g.当year<=2500时,转步骤b,否则停止

例4、求1-1/2+1/3-1/4+…+1/99-1/100

sign表示当前项符号

term表示当前项的值

sum表示当前各项的和

deno表示当前项分母

a. sign=1

b. sum=1

c. deno=2

d. sign=(-1)*sign

e. term=sign*(1/deno)

f. sum = sum+term

g. deno = deno+1

h. 若deno<=100返回步骤d;否则算法结束

例5、给出一个大于或等于3的正整数,判断它是不是一个素数

a.输入n的值

b. i = 2

c. n 被 i 除,得余数r

d. 如果r = 0,表示n能被i整除,则输出n“不是素数”,算法结束;否则执行步骤e

e. i = i+1

f.如果i<=n-1,返回步骤c;否则输出n“是素数”,然后结束

3、算法的特性

(1)有穷性:一个算法应包含有限的操作步骤,而不能是无限的

(2)确定性:算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的

(3)有零个或多个输入:所谓输入是指在执行算法时需要从外界取得必要的信息

(4)有一个或多个输出:算法的目的是为了求解,“解”就是输出

没有输出的算法是没有意义的

(5)有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果

4、怎样表示一个算法

常用方法:

  • 自然语言
  • 流程图
  • NS图
  • 伪代码

用流程图来表示算法

  • 流程图是用一些图框来表示各种操作
  • 用图形表示算法,直观形象,易于理解

在这里插入图片描述

三种基本结构和改进的流程图

三种基本结构

(1)顺序结构

在这里插入图片描述

(2)选择结构

在这里插入图片描述

(3)循环结构
①当型循环结构

在这里插入图片描述

②直到型循环结构

在这里插入图片描述

由三种基本结构派生出来的结构

在这里插入图片描述
在这里插入图片描述

例6、将例1的算法用流程图表示

在这里插入图片描述

例7、将例2的算法用流程图表示

在这里插入图片描述

用N-S流程图表示算法

在这里插入图片描述

例8、将例1的求5!算法用N-S表示

在这里插入图片描述

例9、将例4用N-S图表示

在这里插入图片描述

5、用计算机语言表示算法

例10、将例8表示的算法(求5!)用C语言表示

在这里插入图片描述

例11、求1-1/2+1/3-1/4+…+1/99-1/100用C语言表示

在这里插入图片描述

6、结构化程序设计方法

  • 结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构

  • 结构化程序设计方法的基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。

  • 采取以下方法保证得到结构化的程序:

    ①自顶向下;

    ②逐步细化;

    ③模块化设计;

    ④结构化编码。

习题

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值