热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c语言123传统流程图,1.3.2用流程图描述算法

1.3.2用流程图描述算法简单的算法可以用自然语言来描述,但是较为复杂的算法要如何描述呢?在计算机程序中经常会出现很多多分支选择结构的语句࿰

1.3.2 用流程图描述算法

简单的算法可以用自然语言来描述,但是较为复杂的算法要如何描述呢?在计算机程序中经常会出现很多多分支选择结构的语句,这样的语句很容易产生歧义。而计算机程序需要每一步都是确切的,因此,流程图成了描述算法最为常见的方法。

1.流程图基本符号

流程图是由一些简单的框图组成表示解题步骤及顺序的方法。美国国家标准化协会(ANSI)规定了一些常用的流程图符号,如图1.2所示。

b72caed1068bb2c2aa61a47147d4e1e6.png

图1.2  常用流程图符号

(1)起止框:表示一个算法的开始和结束。

(2)处理框:将要进行的操作内容简洁明了地写到框中。

(3)判断框:在判断框中写入算法中需要判断的条件。满足条件,执行一条路径;不满足条件则执行另一条路径。

(4)输入/输出框:记录从外部输入数据到计算机内部或者从计算机内部中输出数据到计算机外部。

(5)流程线:指向算法即将运行的方向。

2.3种基本控制结构

在程序人员编写程序时,为了满足某些需求,会强制程序在某些地方跳转,即进行控制转移,这样使得程序的可读性降低,使本身让人望而生畏的算法更加复杂、难于理解。为了改善此问题,人们规定了3种基本控制结构,将这3种基本结构作为设计和理解算法的基本单元(如同一栋大楼中的几个单元)。

(1)顺序结构

顺序结构是最为简单的一种基本结构,就是由上至下、按先后顺序依次执行程序语句。顺序结构的流程表示方法如图1.3所示。

(2)选择结构

选择结构也称为分支结构,是根据给定的条件进行判断的一种结构。此结构流程图中必定包括一个判断框,满足条件执行一个处理框,不满足条件执行另一个处理框。选择结构的流程表示方法如图1.4所示。

003b3070d0819e545737e8d294fcbf6f.png

图1.3  顺序结构

39dad968478fd85ef36abc86f04d6b23.png

图1.4  选择结构

(3)循环结构

循环结构是一种重复某一部分的操作的结构,它可以简化程序的难度,将大工作量拆分成小工作量,并对小工作量进行重复操作,这种方法充分利用了计算机运算速度快、自动化的优点。有两种典型的循环结构:while型循环和do-while型循环。

while型循环采取先判断表达式,后执行语句的方式。当判断框中的表达式为非0值时,执行while语句中的内嵌语句,如此往复,直到表达式为0值,结束循环。while型循环结构的流程表示如图1.5所示。

do-while型循环采用先执行循环体,再判断循环条件是否成立的方式。其执行过程为先执行一次循环体语句,然后判断表达式,当表达式为非0值时,返回重新执行循环体语句,如此循环,直到表达式为0值时跳出循环。do-while循环的流程如图1.6所示。

f4dd22b9cbe3638611c09e4c832902df.png

图1.5 while循环结构

43d13aa57514205045421747f88809fa.png

图1.6  do-while循环结构

3.小练习

下面通过累加求和的小实例来体会一下流程图对算法的描述,并学会看和画流程图。

学习园地

例如,使用流程图表示求1+2+3+4+5+6的算法,流程图如图1.7所示。

6b7f436aa442340ccf5fc497af351777.png

图1.7  流程图

【责任编辑:云霞 TEL:(010)68476606】

点赞 0



推荐阅读
  • 学生总结内容回复1147div指令,内存寻址,数组用dup设置内存空间重复的值,根据指令,分析操作数的 ... [详细]
  • 在C语言程序开发中,调试和错误分析是确保代码正确性和效率的关键步骤。本文通过一个简单的递归函数示例,详细介绍了如何编写和调试C语言程序。具体而言,我们将创建一个名为 `factorial.c` 的文件,实现计算阶乘的功能,并通过逐步调试来分析和解决可能出现的错误。此外,文章还探讨了常见的调试工具和技术,如GDB和断点设置,以帮助开发者高效地定位和修复问题。 ... [详细]
  • 在C语言中,指针的高级应用及其实例分析具有重要意义。通过使用 `&` 符号可以获取变量的内存地址,而 `*` 符号则用于定义指针变量。例如,`int *p;` 定义了一个指向整型的指针变量 `p`。其中,`p` 代表指针变量本身,而 `*p` 则表示指针所指向的内存地址中的内容。此外,指针在不同函数中可以具有相同的变量名,但其作用域和生命周期会有所不同。指针的灵活运用能够有效提升程序的效率和可维护性。 ... [详细]
  • 深入解析C语言中的动态规划算法:以背包问题为例
    本文深入探讨了C语言中动态规划算法的应用,以经典的背包问题为例进行详细解析。通过实例分析,展示了如何利用动态规划解决复杂优化问题,并提供了高效的代码实现方法。文章不仅涵盖了算法的基本原理,还讨论了其在实际编程中的应用技巧和优化策略,为读者提供了全面的理解和实践指导。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 软考C语言历年真题精解与详细答案解析 ... [详细]
  • 本文详细解析了高性能通信库 NanoMsg 的框架及其应用场景。其中,BUS模式支持多对多的简单通信方式,消息会传递给所有直接连接的节点。REQREP模式则适用于构建无状态的服务集群,用于处理用户的请求,每个请求都需要一个相应的响应。 ... [详细]
  • x86x64体系探索及编程(对x86处理器介绍得最详尽又最具实践指导意义的一本书)邓志著ISBN978-7-121-18176-42012年10月出版定价:119.00元16开840页对x86处理 ... [详细]
  • 题目《BZOJ2654: Tree》的时间限制为30秒,内存限制为512MB。该问题通过结合二分查找和Kruskal算法,提供了一种高效的优化解决方案。具体而言,利用二分查找缩小解的范围,再通过Kruskal算法构建最小生成树,从而在复杂度上实现了显著的优化。此方法不仅提高了算法的效率,还确保了在大规模数据集上的稳定性能。 ... [详细]
  • 在Python中,利用MD5哈希算法生成密码值是一种常见的安全措施。本文详细介绍了MD5算法的基本原理及其在密码学中的应用,探讨了如何使用Python标准库中的`hashlib`模块来实现MD5哈希值的生成,并讨论了其在实际项目中的应用场景和潜在的安全风险。此外,文章还提供了代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在 LeetCode 的“有效回文串 II”问题中,给定一个非空字符串 `s`,允许删除最多一个字符。本篇深入解析了如何判断删除一个字符后,字符串是否能成为回文串,并提出了高效的优化算法。通过详细的分析和代码实现,本文提供了多种解决方案,帮助读者更好地理解和应用这一算法。 ... [详细]
  • 在使用达梦数据库时,管理员可能会遇到连接频繁中断或特定SQL语句语法错误的问题。这些问题通常源于开发人员在创建对象时的不规范操作。为了解决这些问题,建议对数据库配置进行优化,并确保所有SQL语句符合达梦数据库的标准语法。此外,定期检查和维护数据库连接参数,以及对异常日志进行详细分析,也有助于及时发现并解决问题。 ... [详细]
  • 搜索引擎技术概论(上篇):核心原理与应用分析
    搜索引擎技术概论(上篇)探讨了搜索的基本概念及其核心原理。搜索的本质在于信息检索,即用户通过输入关键词,利用特定的算法从海量数据中快速定位并提供所需信息。本文详细分析了搜索引擎的工作机制及其在实际应用中的表现。 ... [详细]
  • 六、流程控制语句
    选择结构if只有条件判断结果为真时才执行相应的操作循环结构for、whileuntil反复执行相同操作时,使用循环结构分支结构case根据变量值的匹配结果执行相 ... [详细]
  • 本文小编为大家详细介绍“Java中的逻辑结构模式有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中的逻辑结构模式有哪些”文章能帮 ... [详细]
author-avatar
123456ws1043
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有