- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
プログラミング作法
PRACTICE OF PROGRAMMING
8
ソフトウェア工学
Software Engineering
良いプログラムを作成するための経験的ノウハウが
さまざまな作法としてまとめられている
プログラミング作法とは
プログラミングの細かな実践的ノウハウ
ソフトウェア工学的な価値観
今回学ぶ内容: スタイル,テスト,デバッグ,移植性
【参考文献】
1) B. W. Kernighan, R. Pike: プログラミング作法, アスキー(2000)
2) D. Boswell, T. Foucher: リーダブルコード, オライリー(2012)
スタイル
STYLE
グローバル変数の名前はわかりやすく
■グローバル変数の宣言
int nusers = 0; // ユーザの人数
int n = 0;
ローカル変数の名前は短めに
■ローカル変数
int theElementIndex; // 要素の添え字
for (theElementIndex = 0; theElementIndex < nusers;
theElementIndex++)
elementArray[theElementIndex] = theElementIndex;
int i;
for (i = 0; i < nusers; i++)
elem[i] = i;
関数名の付け方は統一的に
副作用が主のもの: 作用を表す動詞
add(canvas, pic), print(str)
戻り値が主のもの: 戻り値の意味を表す名詞またはget+名詞
length(str), getTime(date)
真偽値を返すもの: 形容詞または is+名詞
even(n), isDigit(ch)
関 数
戻り値
環 境 (グローバル変数, 入出力など)
副作用
引 数
副作用
副作用:
戻り値を返す以外の作用
【統一的な命名規則の例】
グローバルデータにコメントを
struct Nvtab { /* 名前(Name)と値(Value)の対応表 */
int nval; /* 値の現在の個数 */
int max; /* 割り当て済みの値の個数 */
Nameval *nameval; /* 名前ー値ペアの配列 */
} nvtab;
int nusers = 0; // ユーザの人数
int 型より列挙型が良いことも
typedef enum{INSERT, UPDATE, DELETE} Status ;
Status status = UPDATE;
void operate(Status status) {
switch(status) {
case INSERT:
printf("登録します。");
break;
case UPDATE:
printf("更新します。");
break;
case DELETE:
printf("削除します。");
}
}
(enumeration type)
列挙型
変数の宣言と代入
enum型を定義し,適切な型名を付ける
仮引数での宣言
int型のように使える
bool 型より列挙型が良いことも
setBoxStyle(false, false, true);
typedef enum{SOLID, DOTTED} LineType;
typedef enum{SHARP, CURVED} Corner;
typedef enum{TOP, BOTTOM} Place;
void setBoxStyle (LineType t, Corner c, Place p){
. . .
};
setBoxStyle(DOTTED, CURVED, TOP);
数値はマクロより定数で定義しよう
#define WIDTH 80
#define HEIGHT 24
const int WIDTH = 80, HEIGHT = 24;
マクロ: ソースコードの文字列を置き換える
enum {
WIDTH = 80,
HEIGHT = 24};
定数: 値を変更できない変数
您可能关注的文档
- zjk1.3区县管理员账号.ppt
- サツマイモによる屋上緑化の熱的影響の実測NIPPON..ppt
- シミュレーテッドアニーリングにおける重要温度領域に関す….ppt
- スペイン語初級文字と発音lectureeccutokyoac.jp.ppt
- スライド1アーク日本株式会社.ppt
- スライド1茨城大学図書館.ppt
- スライド1岐阜工業高等専門学校.ppt
- チーム豊田中間発表.ppt
- チベットの歴史と文化明治大学.ppt
- チュートリアル講演特定物体認識大阪府立大学.ppt
- 2024年天津财经大学珠江学院单招职业技能测试题库带答案解析.docx
- 2024年xx学院职业倾向性测试题库含完整答案【夺冠】.docx
- 2024年天府新区航空旅游职业学院单招综合素质考试题库及完整答案解析.docx
- 2024年河南省开封市高职单招综合素质考试题库标准卷及解析.docx
- 2024年南京特殊教育师范学院单招职业技能测试题库及完整答案解析.docx
- 抖音创作者信用分学习考试题库精品加答案.docx
- 2024年湘南幼儿师范高等专科学校单招综合素质考试题库完美版含答案解析.docx
- 2024年湖南艺术职业学院单招职业适应性测试试题库含答案解析.docx
- 2024年山东省临沂市高职单招职业适应性测试题库必考题含答案解析.docx
- 2024年上海杉达学院单招综合素质考试题库带答案解析.docx
文档评论(0)