循环算法程序的推导及其应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

i d 【]> 【] { f( 0 d 1) t =d 【】 0 ;d 【】= d [】 0 1 ;d 【]: ; 1 t}
, , 当条件成立时互换 d 【】 0 ,d 【】的值 。 l
在 日常生 活 中,做 任何 事情都 必须要 有一定 的步 骤 。如 果 违背 了做 事 的步 骤 ,将一 事无成 。事实 上 ,人 们 已经意识
到 做每 ~件 事情 之前 都必 须设计 好 “ 行动 步骤 ” “ 动 步 。 行 骤 ”就是算 法 ,是 为解决某 一 问题 而采取 的方法 和步 骤 。同
这 时,我们 已经把 累加式 由不 同变成了统一的形式 “= + ss
程序段 :


j ,但两条 “=+”语句之间间隔了对变量 J ; ’ ’ ssj ; 的不同赋值 ,
如何将上述不 同的变成相 同的表示 。i 的取值 由 1到 5不断递
增 的 ,因此 J 的变化可用 i+ + 来表示 ,并 在不影响程序 运行 结
s =O:
软 件开发与设计
f j1< 5 + ) o = . = + r( j
ssj = +; .
3 应 用
顺序 比较排 序算 法是 程序 设计 中经常用 到 的经 典算 法 , 掌握好顺 序 比较 排序算法将极 大减轻 了程序设 计 的难度 。下 面就 以顺 序 比较排 序算法 的推导过程 为例来讲 解循 环结 构程 序算法推导方 法的应用 。 顺序 比较排序 的基本思路 :首先用 数组 的第 1个元 素分 别 与其后 面 的所 有元 素进 行 比较 ,如 有不 符合排 序 要求 的 , 则交 换两个元素 的值 ,第 一轮结束 后 ,会将 第一个 符合 要求 的值存 放在数组 的第一个 元素 中 ,再 用数组 的第 2个元 素分 别 与其后面 的所 有元 素进 行 比较……依此 类推 ,直到数 组 中 所有元素 的值按要求全部排好序 为止 。 下面 以数 组 d【】按升序 为例谈谈算 法推导方法 的应用 , 6 数组 d[】中含有 6 6 个元素 ,它 们分别是 d【】 0、d[1 1、d[】 2、 d【1 3、d[】 4、d[1 5。根据 顺序 比较排 序 的基本 思路 ,整个排
( ag uR doAn V Unvr t a’n cl g J n s a’a o a o a E u a o e t s,i guHa a 2 6 0 J n S ai dT ies y H ia ol e,i guH i nV ct nl d ct nC ne Ja s l n 2 6 0 ) i i e a i i r n
方 法 。是将程序 中多次重 复 出现 的相 同的语句加 以合 并 ,从 而构建循环 。下面 以 s 1 2 3 4 5为例来谈 谈循环结 构程序 =+ + ++
算 法推导的一般方法 。 步骤 1 按顺序结构写 出程序段 。

样 事情 ,不同 的人 去做 ,有 多种不 同 的做 ,也 就是数 学 中所 说 的一题 多解 ,有 多种算法 ,但不 管采用 哪种算 法 ,这些算 法 都应该 具有相 同的特性 。任何一 个算法 应该具 有 以下 5个
向 :C语言程序设计 。 收稿 日期 :2 1 - 0 1 0 1 1— 0
()至少要 有一个 输出 。算法处 理 的结 果必 须通过 输 出 4
誉 与
SFW R EE0M N N EIN 0r A E V LP ET D S D A D G
序段如下 : sO , 赋初值为 0 -; / s ss l g + = =+ ; O l l,将 l 赋给 S ,即 S 的值 为 1 。 s s2 H + = =+ ; 1 2 3,将 3 给 S 赋 ,即 S 的值为 3 。 s s3 / + = = + ; / 3 6,将 6赋 给 S 3 ,即 S 的值为 6 。 ss 4 / + = 0,将 l =+ ; / 4 1 6 0赋给 S ,即 S 的值 为 1 。 0 ss 5 # 0 5 1 : + ; 1+ = 5,将 l 5赋给 S ,即 S的值为 l 。 5
法。
关键词 :算法 ; 程序结构 ; 循环算法程序推导
Th rv to n p i a i n o r u a i n Al o ih o r m e De i a i n a d Ap l t fCi c l t g rt m Pr g a c o o
CHEN a u Hu g o
Ma y b gn e s la n n r g a n e i n r e r ig p o r mmi g o e e l p z ld n f n fe u ze .Gr s i g t e meh d o p r p i t l o t m e u t n wi e t a p n h t o f a p o rae a g r h d d ci l b i o l
难。
序渐进 地推导 出循环算 法程序段 呢?下 面就谈谈 我在 c语 言
教学中是如何进行循环算 法程 序段 的推导和应用 的。
1 算 法 及程序 结构
11算法及特性 .
2 一 般方 法
在 程序设 计过程 中 ,正 确掌握算 法程 序段推 导方 法 ,将
会 帮助 理解程序 的执行过 程 。什 么循 环 ?简单地 说 ,重复 的 步骤就是 循环 。循环是程 序优化 的一种手 段 ,是 简化 程序 的
h l f l i e r i g p o r m e in e p u n l a n r ga d sg .T i r ce i e in d t e c t d n s t ma t r t e g n r l meh d f c ce n h s t l s a i d sg e o t a h su e t o se h e e a t o s o y l a g rt ms lo h . i Ke r s Al o i m ; r g a s u t r C r u ai n a g rt m r g a d rv t n y wo d : g r h t P o r m t cu e; ic l t lo h p o r m e ai r o i i o
著 名的计算机科学家 沃思 (jjlu r )提 出一个公 Nkkas Wjh t
式 :程 序= 数据 结构+ 法 。也就是 说一个 程序应 该包括两个 算
反馈给用户。
()有 效性 。是 指算法 中的每一步 都必须 是有用 的 ,都 5
将有机会被执行到。
1 程 序 结 构 . 2
方面 的内容 :一是 数据结 构 ,它 是对在 程序 中要指定 数据类 型和数 据组织形 式 的描 述 ;二是 算法 ,即操作 步骤 ,是对任 务处理 的操作 步骤 的描 述 。在程 序设计 中,我们 除了弄 清程 序处理 的对象一 一 数据 以及如何 对数据 操作外 ,还要掌握 结 构 化程序 设计方法 和一 门程序设 计语 言。作 为一名学 习程序
第一步 :按顺序结构写出程序段 。

步骤 2 找出异 同点 ,将不 同点用变量代替。 以上 程序段 中没任 意两 条语 句是相 同的 ,但 都符合 累加
的一般 表示形 式 “= +” s sj ,所 以分别 令 J ቤተ መጻሕፍቲ ባይዱ 1 、3 、 取 、2 、4
5 。因此 ,以上程序段可作如下修改 。 s0 , 赋初值为 0 =; , s 。 j1 =; 赋初值为 l 。 s sj / + = =+; / 1 1,将 1 0 赋给 S ,即 S 的值为 1 。 j2 / 赋值 为 2 =; / j 。 s sj , + = =+; / 2 3,将 3赋给 S 1 ,即 S 的值为 3 。 j3 , 赋值 为 3 =; , j 。
序过程需要经过 5轮 比较。首轮算法程序段推导如下 1 d 2『 d 3j :( ; ( ; = f l f l 首先用 d[]分别与 d[】 0 1、d[ 、d[] 2 ] 3、d[】 伽 ]作 4、d[ 叫 5
> > 比较 ,若 d [ 0 】小于后面的某个元素的值则互换。所 以有 d 以下 d
要 处理 问题的数据 组织形 式和对数 据处 理 的算 法 。算 法是程 序 设计 的灵 魂 ,是来 解决 “ 什么 ”和 “ 么做 ” 的问题 。 做 怎
因此 ,设计 好算 法是 编程 的关键 。在多年 的 e语言教学中 ,我
发 现对 中职计算机 专业 的学生来说 ,算 法 的设 计显得 尤其 困
电脑 编程技巧与维护
循 环算法程序 的推导及其应 用
陈华 国
( 江苏广播 电视大学海安学 院, 江苏省海安职业教育 中心 ,江苏 海安 2 6 0 ) 2 6 0

要 :算法要求将现 实可行的处理事情的方 法抽 象化 ,最终用程序设计语 言来描 述。而不少初 学者学 习程序设计
往往是摸 不着 头脑 。掌握恰 当的算法推导 方法将有助 于 学习程 序设计 。 旨在教 导 学生掌握 循环 算法推导 的一般 方
设 计 的人 员 ,在学 习程序设 计时必 须要认 真考 虑和设 计好所
任一个 程序从 总体看 ,它呈 现 的顺 序结构 ,但从 局部 来 看 ,其 结构有顺 序 、选 择和循环 3种基 本结构 之分 。虽然 现 在都 习惯使用 面向对象 高级程序 设计语 言 ,但不 管怎 样 ,在
程序设 计 过程 中都 离不 开面 向过程 的结 构化程 序设 计 思想 。 对于一 个初学者 来说 ,顺 序结构 、选择结 构 的算 法表 示一 般 不会有 什么 困难 。最关键 的是循 环结构 的算法设 计方 面 ,不 少 中职 学生感 到非常 困难 ,甚至 有些学 生根本 就不能 理解循 环 ,更谈 不上循 环结构 的设计 了。能否用 一种 简洁 的方法循
的数据 。
赋初 为 0即有 “= ” , s0 ,而累加 的一般表示形式 为 “= +” ssj ,其
中i 为累加项 。因此 , “= + + + + ”可用 C语 言表 示的程 s 12 3 4 5
作者简介 :陈华 国 (9 0 ) 17 一 ,男 ,中学一级 ( 讲师) ,研究 方
Ab ta t h lo t m e u r s a r ait y o a di g t i s a s a t ,t e c i e t e p o r m e in l n u g . s r c :T e ag r h r q i e l i wa f h n l h ng b t cl o d s r h r g a d sg a g a e i e sc n r y b
s sj =+; + = 3 6,将 6赋给 S ,即 s 的值为 6 。 j4 / _ ; 4赋值 为 4 。 s sj # + = 0,将 l =+; 6 4 1 0赋给 S ,即 S的值为 l。 0 i5 / 赋值 为 5 :; / j 。 s sj # 0 5 1 =+; 1+ = 5,将 l 5赋给 S ,即 S 的值为 l 。 5 步骤 3 找 出变量的变化 规律 ,构建多次重复 的程序段。
特性 :
s123 4 5 = + + + + ”是 一个 累加 的式子 ,需要设 累加 器 S 并
()有穷性 。即做任何事情都必须在有限步骤 内完成 。 1 () 确定性 。处理 问题 的方法一 旦确定 ,其 中 的每一步 2 骤都必须确定 的,不能存在歧义 。 ()有零个 或多个 输入 。算法执 行 时可从外 界获取 必要 3
相关文档
最新文档