热门标签 | 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



推荐阅读
  • C语言判断正整数能否被整除的程序
    本文介绍了使用C语言编写的判断正整数能否被整除的程序,包括输入一个三位正整数,判断是否能被3整除且至少包含数字3的方法。同时还介绍了使用qsort函数进行快速排序的算法。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • c语言基础编写,c语言 基础
    本文目录一览:1、C语言如何编写?2、如何编写 ... [详细]
  • 利用空间换时间减少时间复杂度以及以C语言字符串处理为例减少空间复杂度
    在处理字符串的过程当中,通常情况下都会逐个遍历整个字符串数组,在多个字符串的处理中,处理不同,时间复杂度不同,这里通过利用空间换时间等不同方法,以字符串处理为例来讨论几种情况:1: ... [详细]
  • C++基础 | 从C到C++快速过渡
    一、开发环境c++使用的编译器是g& ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • 本文介绍了数模国赛的报名参加方法,包括学校报名和自己报名的途径。同时给出了建模竞赛的建议,重在历练的同时掌握方法以及弥补自己的短板。此外,还分享了论文的结构和模型求解部分的注意事项,包括数学命题的表述规范和计算方法的原理等。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 六、流程控制语句
    选择结构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社区 版权所有