




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十一章第十一章 程序开发程序开发n自顶向下、逐步求精自顶向下、逐步求精n结构化程序设计原则结构化程序设计原则n程序风格程序风格作业作业: 11.1 11.7 练习练习: 11.6 编程序并不难,只要有算法,会程序设计语言,任何人都编程序并不难,只要有算法,会程序设计语言,任何人都可以编出程序,但是不同人编出的程序却大不相同。针对同一可以编出程序,但是不同人编出的程序却大不相同。针对同一个问题个问题: 有人编的程序风格好、易读、易维护、易重用、可靠性高、有人编的程序风格好、易读、易维护、易重用、可靠性高、运行得既快又节省存储空间;运行得既快又节省存储空间; 有人编的程序风格差、晦涩难懂、难于维
2、护、冗长、正确有人编的程序风格差、晦涩难懂、难于维护、冗长、正确性和可靠性极低、运行起来既慢又占用空间。性和可靠性极低、运行起来既慢又占用空间。编程序易,编好程序难编程序易,编好程序难。 要想编出一个风格优美、正确可靠、各方面均优秀的好程要想编出一个风格优美、正确可靠、各方面均优秀的好程序,必须按照现代软件工程的规范进行。同时也必须遵循好的序,必须按照现代软件工程的规范进行。同时也必须遵循好的程序设计原则和使用好的程序设计方法。程序设计原则和使用好的程序设计方法。 本章介绍程序开发、结构化程序设计。本章介绍程序开发、结构化程序设计。11.1 11.1 求三角形外心求三角形外心 -自顶向下、逐步
3、求精自顶向下、逐步求精 【例【例11.1】编程序,输入平面上三个点,求过该三】编程序,输入平面上三个点,求过该三点的圆的圆心。点的圆的圆心。 解:为了简单,设该三点不在一条直线上。下边考解:为了简单,设该三点不在一条直线上。下边考虑怎样解决改问题。虑怎样解决改问题。 按几何知识,过该三点的圆的圆心应该是由该三点按几何知识,过该三点的圆的圆心应该是由该三点组成的三角形的外心,即三条边的垂直平分线的交点。组成的三角形的外心,即三条边的垂直平分线的交点。设该三点为设该三点为A、B、C,三点的坐标分别为:,三点的坐标分别为:ax、ay、bx、by、cx、cy。该问题的解法可以描述为如下。该问题的解法可
4、以描述为如下PAD.读入三点坐标只是一个读语句,不必求精读入三点坐标只是一个读语句,不必求精 ,下边考虑,下边考虑求垂直平分线和求交点。求垂直平分线和求交点。 输入三点坐标:输入三点坐标:axax、ayay、bxbx、byby、cxcx、cycy计算边计算边AB的垂直平分线的垂直平分线R计算边计算边BC的垂直平分线的垂直平分线S求直线求直线R、S交点交点T输出交点输出交点T坐标坐标开始开始结束结束 求垂直平分线。可以先设计一个函数求线段求垂直平分线。可以先设计一个函数求线段VU的垂直平的垂直平分线,然后分别以分线,然后分别以AB、BC为实在参数调用该函数。求线段为实在参数调用该函数。求线段的垂
5、直平分线应该找到该线段的中点,和该线段的直线方程,的垂直平分线应该找到该线段的中点,和该线段的直线方程,然后过中点的与线段方程垂直的直线即是。按这个分析得如然后过中点的与线段方程垂直的直线即是。按这个分析得如下下PAD。计算边计算边UVUV的中点坐标的中点坐标求线段求线段UVUV的直线方程的直线方程求垂直平分线方程求垂直平分线方程开始开始结束结束计算计算UV中点,只是两个公式:中点,只是两个公式:x=(ux+vx)/2y=(uy+vy)/2求求AB直线方程也只是两个公式:直线方程也只是两个公式:斜率斜率a=(uy-vy)/(ux-vx)截距截距b=uy-a*ux可以写一个函数可以写一个函数 l
6、ine(x1,y1,x2,y2, *a,*b ) line*b = y1-*a*x1结束结束*a = (y2-y1)/(x2-x1)x1,y1,x2,y2:两点坐标:两点坐标 *a, *b :直线方程系数:直线方程系数垂直平分线方程为:垂直平分线方程为:斜率斜率aa= -1/a截距截距bb=y-a*x问题已经解决。问题已经解决。 求求R、S交点。已知交点。已知AB的垂直平分线的垂直平分线 R 的斜率为的斜率为aa,截距,截距为为bb ,设线段,设线段BC的垂直平分线的垂直平分线 S 的斜率的斜率aaa,截距为,截距为bbb,则,则两条垂直平分线方程的交点为:两条垂直平分线方程的交点为:x=(b
7、b-bbb)/(aaa-aa)y=aa*x+bb这就是所求。综合上述分析,编出程序如下:这就是所求。综合上述分析,编出程序如下:/*PROGRAM test*/#include stdio.h#include math.h/*求由两点所确定直线方程系数求由两点所确定直线方程系数y=a*x+b */void line(float x1,float y1,float x2,float y2,float *a,float *b)*a=(y1-y2)/(x1-x2);*b=y1-(*a)*x1;/*求由两点所确定直线的中垂线的方程求由两点所确定直线的中垂线的方程*/void vline(float x
8、1,float y1,float x2,float y2,float *a, float *b)float ta,tb;float x,y;x=(x1+x2)/2;y=(y1+y2)/2;/两点所确定直线的中点两点所确定直线的中点line(x1,y1,x2,y2,&ta,&tb);/两点所确定直线的方程两点所确定直线的方程*a=-1/ta;*b=y-(*a)*x;/中垂线方程中垂线方程运行结果演示运行结果演示/*求两条直线交点,计算交点坐标求两条直线交点,计算交点坐标*/void OnePoint(float a1,float b1,float a2,float b2,floa
9、t *x,float *y)*x=(b2-b1)/(a1-a2);*y=a1*(*x)+b1; /交点坐标交点坐标/*主程序主程序*/void main()float ax,ay,bx,by,cx,cy;/三点坐标三点坐标float a_a,a_b,b_a,b_b;/三角形两条边中垂线的直线方程三角形两条边中垂线的直线方程*/float centerx,centery;/中垂线交点坐标中垂线交点坐标*/printf(please input coordinat of point a、b、c:); /输入三角输入三角形三点坐标形三点坐标scanf(%f%f %f%f %f%f ,&ax,
10、&ay,&bx,&by,&cx,&cy);vline(ax,ay,bx,by,&a_a,&a_b);vline(bx,by,cx,cy,&b_a,&b_b); /求两条中垂线的斜率和截距求两条中垂线的斜率和截距OnePoint( a_a,a_b,b_a,b_b,¢erx,¢ery); /两条中垂线交点两条中垂线交点printf(the center of the circumcircle is:(%g,%g)n ,centerx,centery);例例11.1和本书所有稍微复杂点的例题,全部
11、都和本书所有稍微复杂点的例题,全部都是使用是使用“自顶向下、逐步求精自顶向下、逐步求精”的方法开发的。的方法开发的。“自自顶向下、逐步求精顶向下、逐步求精”的程序设计技术是目前较为时髦的程序设计技术是目前较为时髦的(当然也是较为合理的)找出一个问题的解题算法的(当然也是较为合理的)找出一个问题的解题算法的一种思维方法。该技术的基本思想在第五章已经初的一种思维方法。该技术的基本思想在第五章已经初步介绍过。步介绍过。 “自顶向下、逐步求精自顶向下、逐步求精”过程中的每一步,分解过程中的每一步,分解某一具体问题时,主要用到如下四种求精技术:某一具体问题时,主要用到如下四种求精技术: 1. 顺序连接的
12、求精顺序连接的求精 2. 分支、选择的求精分支、选择的求精 3. 循环的求精循环的求精 4. 递归的求精递归的求精“自顶向下,逐步求精自顶向下,逐步求精”的分析技术实质上是上图所示过程的反复。的分析技术实质上是上图所示过程的反复。 求解一个问题求解一个问题粗略的解决方案粗略的解决方案细细 化化第一步子问题第一步子问题第二步子问题第二步子问题第第n步子问题步子问题.前处理前处理 结束条件结束条件后处理后处理进进展展一一步步前处理前处理后处理后处理条条件件处理处理1处理处理2处理处理n. .条件条件2条件条件n 条件条件1前处理前处理后处理后处理递归递归条件条件递归递归顺序顺序 连接连接循环循环
13、分支分支 选择选择 递归递归 当问题的子解具有前后关系时,采用第一种顺序连接的求精当问题的子解具有前后关系时,采用第一种顺序连接的求精技术,将问题分解成互不相交的几个子问题的顺序执行。技术,将问题分解成互不相交的几个子问题的顺序执行。 当问题是分别不同情况而应该进行不同处理时,采用分支、选择当问题是分别不同情况而应该进行不同处理时,采用分支、选择的求精技术,构造分支。这时要注意分支的条件一定要正确。的求精技术,构造分支。这时要注意分支的条件一定要正确。当问题的子解具有特性:如果有向解的方向前进一步的方法,且当问题的子解具有特性:如果有向解的方向前进一步的方法,且不断重复该步骤,即能解决问题,最
14、终达到完全解。则应该采用不断重复该步骤,即能解决问题,最终达到完全解。则应该采用循环的求精技术(构造循环)。这时一定要弄清循环的初始条件、循环的求精技术(构造循环)。这时一定要弄清循环的初始条件、结束条件和有限进展的一步都是什么。结束条件和有限进展的一步都是什么。 当问题的某步解法与前边高层次的某步解法具有相同性质,只是当问题的某步解法与前边高层次的某步解法具有相同性质,只是某些参数不同时,可采用递归的求精技术。这时应注意递归的参数某些参数不同时,可采用递归的求精技术。这时应注意递归的参数变化规律以及递归出口。变化规律以及递归出口。 “自顶向下、逐步求精自顶向下、逐步求精”是一种思维方式,它不
15、是计算机程是一种思维方式,它不是计算机程序员独有的。事实上在日常生活、工作中也经常的使用该技术,序员独有的。事实上在日常生活、工作中也经常的使用该技术,只不过不自觉或没意识到罢了。只不过不自觉或没意识到罢了。 例如写一本书、或文章,总要作一个提纲,全书分成几章;例如写一本书、或文章,总要作一个提纲,全书分成几章;然后对每一章又列出本章分几节;对每一节又分出几小节等等;然后对每一章又列出本章分几节;对每一节又分出几小节等等;最后再具体着手写每个小节。最后再具体着手写每个小节。 又如,设计生产某产品的一个工厂(比如汽车厂):首先又如,设计生产某产品的一个工厂(比如汽车厂):首先应考虑全厂应该分成几
16、个车间(例如,生产发动机的发动机车应考虑全厂应该分成几个车间(例如,生产发动机的发动机车间、生产底盘的底盘车间、生产车轮的车轮车间、总装车间、生产底盘的底盘车间、生产车轮的车轮车间、总装车间、间、.);然后再考虑每个车间应分成几个工段(例如,发动);然后再考虑每个车间应分成几个工段(例如,发动机车间应分成生产机壳的机壳工段、生产活塞的活塞工段、负机车间应分成生产机壳的机壳工段、生产活塞的活塞工段、负责工件热处理的热处理工段、责工件热处理的热处理工段、.);然后再考虑每个工段应该);然后再考虑每个工段应该配备多少种设备,每种设备应配备多少台,配备多少种设备,每种设备应配备多少台,. 等等。等等。
17、 这就是自顶向下、逐步求精。这就是自顶向下、逐步求精。 采用自顶向下、逐步求精方法构造程序有如下优点采用自顶向下、逐步求精方法构造程序有如下优点: 1. 程序的层次分明、结构清晰。程序的层次分明、结构清晰。 2. 便于集体开发程序。对于大型程序来讲,可以每组便于集体开发程序。对于大型程序来讲,可以每组负责一个模块(一个子部分),在一个组内又可以每个人负负责一个模块(一个子部分),在一个组内又可以每个人负责一个子模块(更小的子部分)等等。而各个模块之间以及责一个子模块(更小的子部分)等等。而各个模块之间以及各个子模块之间相对独立,互相之间没有制约,各个模块的各个子模块之间相对独立,互相之间没有制
18、约,各个模块的负责人员可以独立的进行各自的程序设计。负责人员可以独立的进行各自的程序设计。 3. 便于调试。若程序有错误,可以很容易的将错误局便于调试。若程序有错误,可以很容易的将错误局部于某一子部分,找出错误,同时每一部分的错误是独立的,部于某一子部分,找出错误,同时每一部分的错误是独立的,也不至于影响其它的部分。也不至于影响其它的部分。例例11.2 三个齿轮啮合问题三个齿轮啮合问题 设有三个齿轮互相衔接,求当三个齿轮的某设有三个齿轮互相衔接,求当三个齿轮的某两对齿互相衔接后到下一次这两对齿再互相衔接,两对齿互相衔接后到下一次这两对齿再互相衔接,每个齿轮最少各转多少圈。每个齿轮最少各转多少圈
19、。 解解:这是求最小公倍数的问题。每个齿轮需转这是求最小公倍数的问题。每个齿轮需转圈数是三个齿轮齿数的最小公倍数除以自己的齿圈数是三个齿轮齿数的最小公倍数除以自己的齿数。设数。设 三个齿轮的齿数分别为三个齿轮的齿数分别为:na、nb、nc ; 啮合最小圈数分别为啮合最小圈数分别为:ma、mb、mc ; 三齿轮齿数的最小公倍数为三齿轮齿数的最小公倍数为k3 。计算步骤表示为:计算步骤表示为:开始开始读入三齿轮齿数读入三齿轮齿数求三齿数的最小公倍数求三齿数的最小公倍数 k3分别计算啮合的最小圈数分别计算啮合的最小圈数输出结果输出结果结束结束 读入三齿轮齿数和输出结果,分别只是一次调用读入三齿轮齿数
20、和输出结果,分别只是一次调用读或写函数,不必求精。读或写函数,不必求精。 求精计算三齿数的最小公倍数求精计算三齿数的最小公倍数k3 。可以把该问题分解成。可以把该问题分解成 先求两个齿数先求两个齿数na与与nb的最小公倍数的最小公倍数k2 , 然后再求然后再求k2与第三个齿数与第三个齿数 nc 的最小公倍数的最小公倍数k3 , k3即为即为na、nb、nc三个齿轮齿数的最小公倍数。三个齿轮齿数的最小公倍数。设已经有求两个数的最小公倍数的函数设已经有求两个数的最小公倍数的函数 int lowestcm( int x, int y )则该求精过程可表示成则该求精过程可表示成 。求三齿数的求三齿数的
21、最小公倍数最小公倍数 k3=lowestcm( lowestcm(na,nb), nc)结束结束求精求两个数的最小公倍数的函求精求两个数的最小公倍数的函lowestcm 。 x、y的最小公倍数是的最小公倍数是x、y 的积除以的积除以x、y 的最的最大公约数。设已经有求两个数的最大公约数的函数大公约数。设已经有求两个数的最大公约数的函数 int gcd(int x, int y)则该求精过程可表示成:则该求精过程可表示成: int lowestcm(int x , int y)return x*y / gcd(x,y)结束结束def采用展转相除法求两个数的最大公约数,函数采用展转相除法求两个数的
22、最大公约数,函数int gcd(int x, int y)定义如下定义如下 0y )%,gcd(0y y)gcd(x, yxyx函数函数gcd是一个递归函数,先采用分支求精过程、再采用是一个递归函数,先采用分支求精过程、再采用递归求精过程,可以求精成下图递归求精过程,可以求精成下图int gcd( int x, int y)结束结束y0return gcd(y , x % y)return x最后,分别计算啮合的最小圈数可以被求精成下图最后,分别计算啮合的最小圈数可以被求精成下图 。开始开始ma = na / k3mb = nb / k3mc = nc / k3结束结束/*PROGRAM me
23、sh*/#include stdio.h/*求求x,y的最大公约数的最大公约数*/int gcd(int x,int y)if(y=0)return x;elsereturn gcd(y,x%y);/*求求x,y的最小公倍数的最小公倍数*/int lcm(int x,int y)return(x*y/gcd(x,y);/*主函数主函数*/void main()int n1,n2,n3,result;printf(please input n1 n2 n3:);scanf(%d%d%d,&n1,&n2,&n3);result=lcm(lcm(n1,n2),n3);prin
24、tf(to mesh again the first gear must rotate about %4d ringsn,result/n1);printf(to mesh again the second gear must rotate about %4d ringsn,result/n2);printf(to mesh again the third gear must rotate about %4d ringsn,result/n3);getchar();getchar();运行结果演示运行结果演示11.2 11.2 结构化程序设计原则结构化程序设计原则 从从20世纪世纪60年代开始
25、,计算机软件系统日益发展,作为软年代开始,计算机软件系统日益发展,作为软件主要组成部分的程序系统越来越庞大,复杂度越来越高,造件主要组成部分的程序系统越来越庞大,复杂度越来越高,造价也越来越昂贵,同时出错率也不断增加,系统的可靠性越来价也越来越昂贵,同时出错率也不断增加,系统的可靠性越来越难以保证,维护也越来越困难。比如,当年著名的越难以保证,维护也越来越困难。比如,当年著名的IBM360操作系统出错率是操作系统出错率是3 。经过几年运行后,征集了广大用户的。经过几年运行后,征集了广大用户的意见意见, 集中进行一次修改,修改完成后,最后测试出错率仍是集中进行一次修改,修改完成后,最后测试出错率
26、仍是3 。例子很多,此种情况的不断发展,最后终于导致一场所。例子很多,此种情况的不断发展,最后终于导致一场所谓的软件危机。在该背景下,谓的软件危机。在该背景下,1968年年Dijkstra 提出了结构化程提出了结构化程序设计思想。这种思想的基点是:序设计思想。这种思想的基点是:“清晰,易懂地书写程序逻辑,使程序结构表现得简单、明快清晰,易懂地书写程序逻辑,使程序结构表现得简单、明快” 从这点出发,人们经过艰苦实践,总结出了一套结构化程从这点出发,人们经过艰苦实践,总结出了一套结构化程序设计原则。这套原则要求程序员写出的程序应该是结构良好序设计原则。这套原则要求程序员写出的程序应该是结构良好的,
27、即的,即: 1. 易于保证和验证程序的正确性易于保证和验证程序的正确性 2. 易于阅读、维护和调试。易于阅读、维护和调试。这种良好结构的程序具体体现在:对任意程序段来讲这种良好结构的程序具体体现在:对任意程序段来讲 1. 仅有一个入口,一个出口仅有一个入口,一个出口 2. 没有死循环没有死循环 3. 没有死码区。没有死码区。为了达到上述目的,强调程序员在写程序时应该为了达到上述目的,强调程序员在写程序时应该: 1. 利用自顶向下、逐步求精的技术设计程序利用自顶向下、逐步求精的技术设计程序 2. 具有良好的程序设计风格具有良好的程序设计风格 3. 尽量利用标准的顺序、分支、重复控制结构。保证程序
28、尽量利用标准的顺序、分支、重复控制结构。保证程序仅有一个入口、一个出口。仅有一个入口、一个出口。 4. 限制使用限制使用 GOTO 语句。可能一个坏程序的缺点都是由语句。可能一个坏程序的缺点都是由 GOTO 语句引起的。语句引起的。 结构化程序设计的发展,使程序设计从技艺走向工程,为软件工程学发结构化程序设计的发展,使程序设计从技艺走向工程,为软件工程学发展奠定了有力基础。使软件生产由个体作坊式的艺术创作方式发展成为千千展奠定了有力基础。使软件生产由个体作坊式的艺术创作方式发展成为千千万万人参加的工程方式,达到了万万人参加的工程方式,达到了“系列化、产品化系列化、产品化 、工程化、工程化 、标
29、准化、标准化”。“软件工程软件工程”也从这一时期开始逐步发展起来。也从这一时期开始逐步发展起来。 能够反映结构化程序设计要求,便于书写结构化程序的程序设计语言,能够反映结构化程序设计要求,便于书写结构化程序的程序设计语言,称结构化程序设计语言。可以认为称结构化程序设计语言。可以认为C是结构化程序设计语言。是结构化程序设计语言。 目前程序设计领域的热点是目前程序设计领域的热点是“面向对象程序设计方法面向对象程序设计方法”和和“基于构件的程基于构件的程序设计方法序设计方法”等。但是,它们的主要特长在于程序的组织、信息封装、软件等。但是,它们的主要特长在于程序的组织、信息封装、软件重用等。而最终对于
30、足够小的程序模块的编码,它们没有给人们带来益处。重用等。而最终对于足够小的程序模块的编码,它们没有给人们带来益处。 结构化程序设计方法针对每个程序模块的设计起着不可缺少的十分关键的结构化程序设计方法针对每个程序模块的设计起着不可缺少的十分关键的作用。可以说结构化程序设计是一切程序设计技术的基础,是任何软件工作作用。可以说结构化程序设计是一切程序设计技术的基础,是任何软件工作者必须掌握的技术。本书的目标是讲授程序设计基础,主要介绍结构化程序者必须掌握的技术。本书的目标是讲授程序设计基础,主要介绍结构化程序设计技术。设计技术。11.3 11.3 程序风格程序风格 程序风格是指程序的书写格式等与易读
31、性、清晰性、互相交流有关的,程序风格是指程序的书写格式等与易读性、清晰性、互相交流有关的,而与程序执行无关或关系不大的一些的问题。而与程序执行无关或关系不大的一些的问题。写程序不仅仅是为了与计算机进行交流,而且也是为了与人进行交流,写程序不仅仅是为了与计算机进行交流,而且也是为了与人进行交流,进一步还为了给自己或别人阅读,同时程序员自己也需要不断地查阅自己编进一步还为了给自己或别人阅读,同时程序员自己也需要不断地查阅自己编出的程序,更何况程序的维护很可能由别人来做。出的程序,更何况程序的维护很可能由别人来做。 在写程序时要考虑到:程序既是为了在计算机上运行,也是为了今后的在写程序时要考虑到:程
32、序既是为了在计算机上运行,也是为了今后的交流和阅读,同时还是为了留下有用的参考文件。交流和阅读,同时还是为了留下有用的参考文件。 为此,程序必须是宜于阅读的,也就是必须是结构良好或风格优美的。为此,程序必须是宜于阅读的,也就是必须是结构良好或风格优美的。 程序设计风格不好不利于产生正确、高效、易读、易维护的程序。风格程序设计风格不好不利于产生正确、高效、易读、易维护的程序。风格不好的程序会使程序维护费用与时间增加,甚至导致整个编程过程失败。不好的程序会使程序维护费用与时间增加,甚至导致整个编程过程失败。 程序设计风格是程序员必须的修养。良好的程序设计风格是程序员在长程序设计风格是程序员必须的修
33、养。良好的程序设计风格是程序员在长期的编程实践中逐步发展,积累和提炼出来的。它是产生正确、高效、易读、期的编程实践中逐步发展,积累和提炼出来的。它是产生正确、高效、易读、易维护程序的一种重要的手段。易维护程序的一种重要的手段。 程序风格主要涉及程序的行文格式、注释和空白的合适用法、尽量使用合适的程序风格主要涉及程序的行文格式、注释和空白的合适用法、尽量使用合适的助记名来命名标识符、明白地表示出程序结构和数据结构等。助记名来命名标识符、明白地表示出程序结构和数据结构等。 11.3.1 11.3.1 行文格式行文格式n程序的行文格式不好直接影响程序的可读程序的行文格式不好直接影响程序的可读性、清晰
34、性和外观。性、清晰性和外观。/* A */ #include int i;main ()i=25+38;printf(“25+38=%d”,i);/* B */ #include int i;main () i = 25+38; printf ( “25+38=%d” , i );/* C */ #include int i; /* 声明整型变量声明整型变量i */ int main (void) /* 主函数主函数 */ i = 25+38; /* 求和运算求和运算 */ printf ( “25+38=%d” , i ); /* 打印打印 */ if ( b ) S1else S2 swi
35、tch ( expr ) case a1: S1 case a2: S2 . case an: sn /* switch */ 图图1 函数定义函数定义 图图2 IF语句语句 图图3 SWITCH语句语句 int main ( ) DS DS . /* main */ do S while (b)for(expr1;expr2;expe3) S /* for */ while ( b ) S /* while */ 图图4 WHILE语句语句 图图5 FOR语句语句 图图6 DO语句语句11.3.2 标识符标识符 标识符是程序员给自己引进的常量、类型、变量、函数等标识符是程序员给自己引进的常量
36、、类型、变量、函数等起的名字。程序设计语言对如何命名标识符没有限制,标识符起的名字。程序设计语言对如何命名标识符没有限制,标识符也没有固定的含义。但是从使用角度看,标识符表记的每个对也没有固定的含义。但是从使用角度看,标识符表记的每个对象都有具体的含义。为了提高可读性和有助于记忆,应该使标象都有具体的含义。为了提高可读性和有助于记忆,应该使标识符在拼写上尽量和它所标记对象的物理、数学等含义相一致,识符在拼写上尽量和它所标记对象的物理、数学等含义相一致,并且要避免与系统预定义的标准标识符重名。例如,表示圆周并且要避免与系统预定义的标准标识符重名。例如,表示圆周率率用用pai就比用一个一般的就比用一个一般的a要好;表示面积用要好;表示面积用area就比用就比用s要要好;表示长度用好;表示长度用length就比用就比用l要好;要好; . 。11.3.3 注释注释 注释是间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿尔巴尼亚语中的颜色词汇文化解读论文
- 2025年03月河南开封清明上河园景区公开招聘笔试历年参考题库考点剖析附解题思路及答案详解
- 2025年小学教师资格考试《综合素质》教师礼仪与沟通能力测试试卷(含答案)详解
- 车辆防冲撞课件教案
- 2025年签订中外合资经营企业合同范本
- 2025-2030组织研磨仪产业运行态势分析及未来发展商机研究报告
- 2025-2030红木家具行业风险投资发展分析及投资融资策略研究报告
- 2025-2030精装房产品入市调查研究报告
- 2025-2030端客滚船行业产销率分析及投资运行现状调查报告
- 2025-2030移动厕所行业发展分析及投资战略研究报告
- 黄金卷02(广州专用)-【赢在中考·黄金预测卷】2025年中考数学模拟卷(考试版)
- 2025-2030年班用帐篷项目投资价值分析报告
- 生物会考试题及答案
- 2025年合肥二模数学试题及答案
- 血管活性药物静脉输注护理解读
- (一模)赣州市2025年高三年级摸底考试地理试卷(含答案详解)
- 2025届武汉市二调数学质量分析正式版【课件】
- 2024-2024年上海市高考英语试题及答案
- 电力各种材料重量表总
- 08SS523建筑小区塑料排水检查井
- 正比例函数和反比例函数专项复习试题
评论
0/150
提交评论