- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何寫好的程式程式除了必須正確外,還要重視可讀性高、速度快及記憶體少。
要提高程式的可讀性必須注意下列原則:
將程式盡量函式化,有助於產生可讀性高的程式,但卻必須付出執行速度緩慢的代價。程式必須結構化,而且要縮排每個程式的第一行必須加上註解,說明程式的輸入及輸出變數、程式的目的、程式的版本、撰寫人及撰寫日期等。可讀性的程式#include iostream.h
void main()
{ int i, sum = 0;
for (i = 1; i = 100; i++)
{
if (i % 2 == 0)
sum = sum + 7;
else
sum = sum + i;
}
cout sum = sum endl;
} 可讀性的程式#include iostream.h
void main()
{
int i;
int sum = 0;
for (i = 1; i = 100; i++)
{
if (i % 2 == 0)
sum = sum + 7;
else
sum = sum + i;
}
cout sum = sum endl;
} 可讀性的程式#include iostream.h
void main()
{
int sum = 0;
for (int i = 1; i = 100; i++)
{
if (i % 2 == 0) sum = sum + 7;
else sum = sum + i;
}
cout sum = sum endl;
} 可讀性的程式#include iostream.h
void main()
{
int sum = 0;
for (int i = 1; i = 100; i++) sum += ((i % 2)? i : 7);
cout sum = sum endl;
}
函式的參數不要太多,參數太多代表函式可能執行太多工作,應考慮將此函式分割成數個較小的函式。
使用遞迴函式化,有助於快速產生正確且可讀性高的程式,但卻必須付出執行速度緩慢的代價。
unsigned gcd(unsigned a, unsigned b)
{
if (b == 0) return a; // a divides a and 0
else return gcd(b, a%b); // recursive step
} unsigned long fib(unsigned n)
{ return (n = 1? n : fib(n-1) + fib(n-2); }
盡量保持程式的單純化,即以簡單直接的方法寫程式
U[k++] = (S[i] S[j]? S[i++]: S[j++]);
上一行程式太過複雜,若改寫如下,則容易理解
if (S[i] S[j]) { U[k] = S[i]; i++; }
else { U[k] = S[j]; j++; }
k++; 上一行程式太過複雜,若改寫如下,則容易理解
下列程式可用來複製字元陣列:
int length = strlen(q);
for (int i = 0; i = length; i++) p[i] = q[i];
此程式可改寫如下:
int i;
for (i = 0; q[i] != 0; i++) p[i] = q[i];
p[i] = 0;
可進一步改寫如下:
while (*q != 0) *p++ = *q++;
*p = 0;
可進一步改寫如下:
while((*p++ = *q++) != 0) ;
可進一步改寫如下:
while(*p++ = *q++) ; // 對不熟悉的人會覺得難以理解
注意: *p++相當於*(p++); 所以*p++ = *q++; 相當於
*p = *q; p++; q++;
使用正確的資料型態,能減少程式錯誤且加快程式執行速度。
使用有意義的函式與變數名稱,有助於程式自我說明。
結構:儘量使用結構以減少變數的個數。
// For 3D geometry
typedef struct Point3Struct { double x, y, z; } Point3;
typedef Point3 Vector3;
typedef struct Matrix4Struct { double element[4][4]; } Matrix4;
typedef struct Box3dStruct { Point3 min, max; } Box3;
盡量使
您可能关注的文档
- CAN总线技术与其在现代汽车中的应用.doc
- 日语商务礼仪解读.doc
- 执行器控制主板调试说明幻灯片.doc
- 第七章 VC++模拟试题一.doc
- 进程服务详解课件.doc
- 2005学年第2学期试卷与答案.doc
- 数据库系统与应用教程(清华大学出版社)习题答案(根据老师上课讲的内容改的).docx
- 2012年数据结构本科试题与答案.doc
- c语言程序设计 第三章 运算符及表达式.doc
- 第十一章 iOS开发Facebook几个常用方法.doc
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
最近下载
- 【自考复习资料】28061现代教育技术(复习重点).doc VIP
- JB-TG-NFS3-3030用户手册说明书.pdf VIP
- 《智能超轻型飞行器安全技术评估规范》.pdf VIP
- 全国二卷-2025年高考语文真题作文深度点评与分析(2025.6.7).docx VIP
- 小学数学专题研究自考必备最全知识点 .pdf VIP
- 北京卷:议论文-2025年高考语文真题作文深度点评与分析.docx VIP
- 北京卷(2):记叙文-2025年高考语文真题作文深度点评与分析(2025.6.7).docx VIP
- 持续葡萄糖监测临床应用专家共识 2024.pdf VIP
- 部编人教版八年级语文上册全套测试卷(配2025年秋改版教材).doc
- 2025年高考北京卷语文真题作文记叙文深度点评与分析.docx VIP
文档评论(0)