c++程序判断该关系是否为函数与函数类型_结构化程序设计

​设计一整套能解决问题的程序就像盖房子,要首先构建好房子的整体框架,然后再进行部分性的房间的布局规划,最后进行细节的设计,这种设计方法就是自顶向下,逐步求精的设计思路。我们设计程序也要按照这种方式方法来设计,面对一项任务,先经过初步考虑,把整个任务细化为几个子任务,如果这几个子任务还不能一步实现完成任务,那就再把子任务进行细分,直到最后实现任务。这种分层解决问题的方式即严谨又方便。当设计好层次结构后,再对每个层级进行模块化的设计,完成每个层级的部分功能。最后再经过对层级及各模块进行结构化编码、嵌套,最终实现整套程序的逻辑结构。

16d81b28b91c5b3677dfbfe6ea400ad8.png

最后的结构化程序为了方便构建整体框架,把结构化程序分为了三种方式,顺序结构、选择结构、循环结构。顾名思义,顺序化结构就是一种按照执行顺序依次执行的一条线方式。选择结构就是有判断选择的方式,判断选择一般只分为两类,是或者否,根据判断条件是否直接执行下一步操作。而循环结构则是根据条件判定是否要重新循环上一步操作,如果没满足条件则一直循环执行。为了更加深入的理解三种结构在程序设计中的具体表现,接下来对三种结构分别进行细化说明。

按顺序结构执行的语句一般有以下几种:

1.赋值语言,就是给一个变量赋予相应的值,格式为:变量=表达式。例如:X=89。

2.函数调用语句,就是按照函数名对应的函数操作对括号里面的参数进行相应的运算,得出结果。格式为:函数名(参数1,参数2...)。例如:printf()。意思是将()里面的数值输出显示在标准输出显示器上。这里要对函数的意义做一些补充知识点:函数是一种对应关系,有的函数(对应关系是已经写好的成熟的)是被放在库函数里面的,只需要输入函数名和()就能直接运用这种对应关系输出结果,常用的简单的函数都是放在库函数里面,一般直接用函数调用语句就可以,我们写的一段段的代码完成的模块化的功能用{}括起来的整体也可以理解为一个函数,这种对应关系是新创建的自行编辑定义的函数。程序开头一般都会写到的一个语句#include就是编译预处理命令,它的作用就是把文件stdio.h里面的库函数运行代码先提前调出来,方便给程序里面用到的所有库函数语言对应使用,由此也就知道在安装C语言运行软件的时候安装包会把所有的库函数放在stdio.h这个文件里面。库函数会有哪些了?下一章我会专门整理出前期可能需要用到各种表。

3.表达式语句,就是直接的一个表达式,比如X+Y。

4.复合语句,就是函数调用语句里面提到过的模块化的功能用{}括起来的一个整体,它是有许多语句组合而成能够整体来看完成一项功能的一段程序。

5.字符输入/输出函数,就是能够在这段程序里将字符输出显示在标准显示器上或者将字符从标准输入设备键盘上将字符输入的函数。字符输出函数就是putchar(),输入函数就是getchar()。强调一点就是这两个函数每次只能输入输出一个字符,而且只是字符。

6.格式输入/输出函数,这个函数就是重点语句函数了,因为它用到的非常频繁。他跟字符输入输出函数不一样的地方就是字符函数只能输入输出字符,格式函数能够输入输出所有信息。格式输出函数的格式:printf(格式控制字符串,输出项表),格式控制字符串用来规定输出信息的格式,比如整数或者字符,输出项表就是要输出的内容了,它们两个一一对应,比如有三个格式控制字符串,就有三个对应的输出项表。每一个格式控制字符串前面加一个%号来表示它,不然搞混了,然后它们之间用,来隔开,所有的格式控制字符串用双引号“”括起来,比如printf("%d,%c,%f",x,y,z)。%号后面的d,c,f就代表要输出的格式,下面我会列张表说出不同的格式表示的意思。前面的那个函数意思就是输出x,y,z三个数值在显示器上,输出的格式分别是d,c,f。格式表示如下表

1ae0549f07042d076834a86e84b8e5a1.png

输入函数和输出函数类似,格式是:scanf(格式控制字符串,输入项首地址表),它和输出函数不一样的地方是它的输入项首地址表前面要加一个符号&,其他详细的规则格式这里就先不提了,现在能看懂输入输出函数的表示就可以。

9a6651ea97a625d381e22ba5fc2f244a.png

选择结构是通过对给定条件进行判断决定所要执行的操作。分为三种选择结构语句,单分支选择语句,双分支选择语句,多分支选择语句。

1.单分支选择语句的形式是:if(表达式) 语句;意思是:如果是()里面的这种情况为真的(也就是非0),则执行语句表示的操作,否则不是真的话就直接执行下一句语言。

2.双分支选择语句的形式是:if(表达式) 语句1;

else 语句2;

意思就是如果()里面的表达式是真的(非0),则执行语句1的操作,否则执行语句2的操作。再执行接下来的语句。这种语句可以实现嵌套,就是一层套一层的形式不断判断条件往下级判断。这种双分支选择语句还有一种特殊情况,就是这样一种形式:if(表达式) 语句1;

else if(表达式2) 语句2;

else if(表达式3) 语句3;

这种形式的意思是如果表达式成立,则执行语句1,否则判断表达式2成立不,如果成立,则执行语句2,否则继续往下判断,当表达式成立则执行对应的语句后,结束整个判断。

3.多分支选择语句的形式是:switch(表达式)

{

case 常量表达式1:语句1;break;

case 常量表达式2:语句2;break;

case 常量表达式3:语句3;break;

[default:语句组;[break;]]

}

意思就是依次对比常量表达式1,2,3等等看是否和switch后面的表达式相同,相同的话就执行对应的后面的语句1,2,3。如果都不相同的话就默认执行default后面的语句组。这种形式也可嵌套,就是一层套一层的进行条件判断。

3750c17f40c575070fa59f62dd4c4d3b.png

循环结构同样包括三种循环语句,当型循环语句,直到型循环语句,次数型循环语句。和选择结构的三种不同语句不太相同,循环语句的三种结构相互之间基本都可以互通简化,差别不是很大,只是简化版或者复杂版的关系。

1.当型循环结构(while型语句)的格式:while(表达式)

语句

表达式一般情况是一个条件判断,当条件成立时为真(非0),不成立时为假(0),意思就是当表达式条件成立时就执行下面的语句,然后再判断表达式继续循环,直到表达式条件为假则跳出循环。

2.直到型循环结构(do-while语句)的格式:do 语句;

while(表达式)

意思是先执行语句,然后再判断表达式的条件是不是成立,如果成立,则继续执行上面的语句,直到表达式条件不成立就跳出循环语句。它与当型循环结构的区别是它是先执行一遍语句,再判断条件。

3.次数型循环语句(for语句)的格式:for(表达式1;表达式2;表达式3)

语句;

意思是先执行表达式1,一般表达式1是先对一个变量赋一个初值,然后判断表达式2是不是成立,表达式2一般是个判断条件,如果表达式2成立,则执行语句,执行完语句后再执行表达式3(表达式3一般是对变量改变一定的数,让循环趋近于结束),执行完表达式3后再执行语句之后再判断表达式2,直到表达式2不成立,则循环结束,跳出循环。需要注意的是用for语句后面括号里面的表达式1,2,3之间的;号不可以省略。

4.循环语句里面还有两种语句用于结束循环,break语句和continue语句。这两种语句一般都在if语句后面,意思是当一定的条件成立的时候,就结束循环。它们两个的区别在于当执行break语句时跳出的是整个循环语句,就是整个循环语句不再执行,而执行continue语句时跳出的只是当前循环语句里面的循环而重新判断一下循环条件。

结构化程序设计最主要的就是搞清楚这三种结构化设计方式以及具体执行它们的语句,本章学习结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值