
(1)顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
例如;a
=
3,b
=
5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:
c
=
a;
a
=
b;
b
=
c;
执行结果是a
=
5,b
=
c
=
3如果改变其顺序,写成:a
=
b;
c
=
a;
b
=
c;
则执行结果就变成a
=
b
=
c
=
5,不能达到预期的目的,初学者最容易犯这种错误。
顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s
=
314159rr,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
(2)
分支结构
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。
学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。下面我介绍几种基本的分支结构。
①if(条件)
{
分支体
}
这种分支结构中的分支体可以是一条语句,此时“”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。如:要计算x的绝对值,根据绝对值定义,我们知道,当x>=0时,其绝对值不变,而x<0时其绝对值是为x的反号,因此程序段为:if(x<0)
x=-x;
②if(条件)
else
这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求ax^2+bx+c=0的根
分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下:
d=bb-4ac;
if(d>=0)
{x1=(-b+sqrt(d))/2a;
x2=(-b-sqrt(d))/2a;
printf(“x1=%84f,x2=%84f\n”,x1,x2);
}
else
{r=-b/(2a);
i
=sqrt(-d)/(2a);
printf(“x1=%84f+%84fi\n”r,
i);
printf(“x2=%84f-%84fi\n”r,i)
}
③嵌套分支语句:其语句格式为:
if(条件1)
;
else
if(条件2)
else
if(条件3)
……
else
if(条件n)
else
嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句。
④switch开关语句:该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else
语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用。
(3)循环结构:
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do
–while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、do…while、for三种循环。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。
在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的 *** 作应在循环体之前,而for循环一般在语句1中进行的;while
循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while
循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和
continue语句进行控制的。
顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,我们均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。
(4)模块化程序结构
C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。
因此,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。
顺序功能流程图(英语:Sequential function chart)简称SFC,是为可编程逻辑控制器(PLC)开发的图形编程语言,是IEC_61131-3标准定义的五种语言之一。顺序功能流程图是以GRAFCET为基础,而后者又以Petri网为基础。
顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。步、转换和动作是顺序功能图的三种主要元件。步是一种逻辑块,每一步代表一个控制功能任务,用方框表示;动作是控制任务的独立部分,每一步可以进一步划分为一些动作;转换是从一个任务到另一个任务的条件;编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步的按照顺序动作。
顺序功能流程图编程语言的特点为:以功能为主线,按照功能流程的顺序分配,条理清楚,便于对用户程序阅读及维护,大大减轻编程的工作量,缩短编程和调试时间,避免梯形图或其他语言不能顺序动作的缺陷,同时也避免了用梯形图语言对顺序动作编程时,由于机械互锁造成用户程序结构复杂、难以理解的缺陷,用户程序扫描时问也大大缩短。
目前,大多数的PLC仅将顺序功能图作为组织编程的工具使用,需要梯形图等其他编程语言将它转换成PLC可执行程序,因此,通常只是将它作为PLC的辅助编程工具,而不是一种独立的编程语言。 [1]
梯形图程序的结构有三种类型:顺序结构、分支结构和循环结构。
顺序结构是指在程序中,按照顺序执行一系列的步骤。程序中的每一步都按照预定的顺序依次执行,直到程序结束。
分支结构是指在程序中,根据特定的条件判断,执行不同的代码。例如,如果条件为真,就执行一组语句;如果条件为假,就执行另一组语句。
循环结构是指在程序中,重复执行一组语句。例如,可以使用循环结构来重复执行一组语句,直到满足特定的条件为止。
综上所述,梯形图程序的结构有顺序结构、分支结构和循环结构。
#include<bits/stdc++h>
using namespace std;
int main(){
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
return 0;
}
以上就是关于C语言中for循环嵌套的流程图怎么画全部的内容,包括:C语言中for循环嵌套的流程图怎么画、什么叫顺序功能流程图、梯形图程序的结构有哪三种程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)