怎样写好的程式.docVIP

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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; 盡量使

您可能关注的文档

文档评论(0)

xiaofei2001129 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档