一、算法及描写办法
算法的概念文章源自微观生活(93wg.com)微观生活-https://93wg.com/2407.html
解决问题的算法,设计出正确的计算机算法是编程正确程序的条件前提。著名的计算机科学家沃思(N.Wirth)曾经提出这样一个经典公式:数据结构+算法=程序文章源自微观生活(93wg.com)微观生活-https://93wg.com/2407.html
1.数据的描写以及组织情势,即数据结构。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2407.html
2.对操作或行动的描写,即操作步骤,也称算法。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2407.html
合理地组织数据以及设计算法是编程解决问题的关键。解决一个问题可能有不少种算法,通常情况下,不同的算法以及不同的程序设计语言解决同一个问题,效力上会不同。设计程序的进程实质上也就是算法以及数据结构的进程。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2407.html
算法,简单地讲,就是为解决一个具体问题而采用的、肯定的、有限的操作步骤。固然,这里所说的算法仅指计算机的算法,即计算性能够执行的算法。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2407.html
计算机解题的算法可分两大类:文章源自微观生活(93wg.com)微观生活-https://93wg.com/2407.html
a、数值运算的算法,主要解决求数值解的问题,如二分法求方程的根,梯形法的计算定积分等。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2407.html
b、非数值运算的算法,主要用于解决需要用分析推理、逻辑推理才能解决的问题。例如,分类、查找、排序等。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2407.html
二、算法的描写的办法文章源自微观生活(93wg.com)微观生活-https://93wg.com/2407.html
进行算法设计时,可使用不同的办法来描写算法,经常使用的有自然语言、传统流程图、NS流程图、伪代码等。
1.自然语言
自然语言就是咱们往常生活中使用的语言。用自然算法描写算法时,可以使用汉语、英语以及符号等,容易理解。初学者容易掌握,但描写文字显得冗杂,在表达上容易呈现疏漏,并引发理解上的歧义,不宜直接转化为程序,所以一般合用合用算法较简单的情况。
例子:假定现在待描写的问题是计算N!。首先分析此问题,并设计解决问题的算法,斟酌N!=1*2*……*N,于是计算N!可用N次乘法计算来实现,每一次在原有结果基础上乘上一个数,而这个数是从1变化到N的,将这一思路用自然语言描写为
step1读入N的值
step2如果N<0,则输犯错误的信息,直接转到step4
step3如果N>=0,则
a、给寄存结果的变量fac置初值为1
b、给代表乘数的变量i置初值为1
c、进行累乘运算fac=fac*i
d、乘数变量增1得到下一个乘数的值,即i=i+1
e、如果i未超过N,则重复执行步骤c以及d,否则执行步骤f
f、输出fac的值
step4算法收场
2.流程图描写
流程图是一个描写程序的节制流程以及指令执行情况的有向图,它是程序的一种比较直观的表达情势。
a、传统流程图跟高中学的流程图同样的,小编在这里就不多讲这个传统流程图了。
b、NS结构化流程图描写
NS结构化流程图是由美国学者I.Nassi以及B.Schneiderman于1973年提出的,NS图就是以这两位著名的学者名字的首字母命名的。它最重要的特色是完整取缔了流程线,这样的算法被迫只能从上到下顺序来执行,从而防止了算法流程图的任意转向,保证程序的质量。用NS结构图解决上面的例子如下
计算N!的NS结构化流程图
二、顺序结构
顺序结构是最简单的C语言结构程序结构,也是最多见的程序结构,其特色是程序的流程是固定的,不能跳转,完整依照语句呈现的前后执行程序。
例子一、假定某银行的按期存款的年利率rate为2.13%,存款期为n年,存款本金为capital元则n年
以上就是微观生活(93wg.com)关于“C语言学习|程序的节制及结构(4)”的详细内容,希望对大家有所帮助!
评论