热门标签 | 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语言代码实现。 ... [详细]
  • 云屏系统基于嵌入式微系统msOS,旨在解决当前嵌入式彩屏GUI编程中硬件要求高、软件开发复杂、界面效果不佳等问题。该系统通过结合MCU和Android技术,利用Html5+JavaScript实现高效、易用的图形用户界面开发,使嵌入式开发人员能够专注于业务逻辑。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 序列化与反序列化是数据处理中的重要技术,特别是在网络通信和数据存储中。它们允许将复杂的数据结构转换为可传输或存储的格式,再从这些格式恢复原始数据。本文探讨了序列化与反序列化的基本概念,以及它们在不同协议模型中的角色。 ... [详细]
  • x86x64体系探索及编程(对x86处理器介绍得最详尽又最具实践指导意义的一本书)邓志著ISBN978-7-121-18176-42012年10月出版定价:119.00元16开840页对x86处理 ... [详细]
  • 本文深入探讨了 Python 列表切片的基本概念和实际应用,通过具体示例展示了不同切片方式的使用方法及其背后的逻辑。 ... [详细]
  • 本文详细介绍了K-Medoids聚类算法,这是一种基于划分的聚类方法,适用于处理大规模数据集。文章探讨了其优点、缺点以及具体实现步骤,并通过实例进行说明。 ... [详细]
  • 本文探讨如何利用人工智能算法自动区分网页是详情页还是列表页,介绍具体的实现思路和技术细节。 ... [详细]
  • 本文探讨了 C++ 中普通数组和标准库类型 vector 的初始化方法。普通数组具有固定长度,而 vector 是一种可扩展的容器,允许动态调整大小。文章详细介绍了不同初始化方式及其应用场景,并提供了代码示例以加深理解。 ... [详细]
  • 本实验主要探讨了二叉排序树(BST)的基本操作,包括创建、查找和删除节点。通过具体实例和代码实现,详细介绍了如何使用递归和非递归方法进行关键字查找,并展示了删除特定节点后的树结构变化。 ... [详细]
  • 六、流程控制语句
    选择结构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社区 版权所有