(Translated by https://www.hiragana.jp/)
電腦程式編寫 - 維基百科,自由嘅百科全書 とべ內容

電腦でんのうほどしきへんうつし

呢篇文係一篇好文。想知更多,請撳呢個掣。
出自しゅつじ維基百科ひゃっか自由じゆう百科全書ひゃっかぜんしょ
(ゆかりへんほどとべてん嚟)

うえだんみなもとかかりよう高級こうきゅうほどしきげんうつし嘅,ただし依然いぜんあかりあらわ唔似じん日常にちじょうかたぶけこう嘢。
一個人坐喺電腦前面寫程式;佢部電腦でんのう熒光まく顯示けんじいち段段だんだん嘅源碼。

へんほど粵拼pin1 cing4英文えいぶんprogramming),ぜんほどしきへんうつしあるもの電腦でんのうほどしきへんうつしかかりゆびせいどう設計せっけいのう執行しっこういた電腦でんのうほどしきへんうつし電腦でんのうほどしき嘅過ほどだい致上わたる及以嘅工じょ[1][2]

喺編ほど嘅過ほどとうなかへんほどいん要用ようようほどしきげんこう電腦でんのう命令めいれい電子でんし電腦でんのう原理げんりがかり內部よう微弱びじゃく電流でんりゅう嚟傳ゆうでん(1)どう冇電(0)嘅訊號,而電腦でんのう內部よう機械きかいげん就係よういちくしくし 0 どう 1 きょう電腦でんのう運算うんざん[4];而好組合くみあいげんどう高級こうきゅうげんひとし高級こうきゅう啲嘅げん,就會はた呢啲 0 どう 1 轉化てんか做對人類じんるい嚟講えき睇易あきら符號ふごうれい文字もじ噉)[5]ようよう呢啲高級こうきゅうげんうつしこう咗源碼之電腦でんのうかいようへんやくはただん碼轉機械きかいげんとう電腦でんのうのう夠行だん命令めいれい[6]

喺廿いち世紀せいきはつへんほどがかりこう科技かぎ產品さんぴんとうちゅう不可ふかあるかけ一部いちぶ份,れい人工じんこう智能ちのう(AI)どうぞう遊戲ゆうぎとう技術ぎじゅつ都會とかいよういたへんほど-AI 簡單かんたんこう就係ようゆう技巧ぎこう嘅編ほど方法ほうほう嚟令機械きかい做出類似るいじゆう智能ちのう噉嘅行為こうい[7],而視ぞう遊戲ゆうぎ就係以電腦でんのうほどしき形式けいしき存在そんざい遊戲ゆうぎ[8]へんほどまたいんため呢啲こう泛嘅應用おうよう而成ためいちしゅ相當そうとうゆう市場いちば技能ぎのう[9]

抽象ちゅうしょう概念がいねん

[編輯へんしゅう]

演算えんざんほう

[編輯へんしゅう]
いち解決かいけつ「盞燈唔着」呢個問題もんだい嘅演算法さんぽう演算えんざんほう以用ながれほど表示ひょうじ
うちぶん演算えんざんほう

いち電腦でんのうほどしきかい包含ほうがん若干じゃっかんだん演算えんざんほう。喺數學すうがくどう電腦でんのう科學かがくうえ,一個演算法係一串能夠完全唔含糊噉話俾人あるもの電腦でんのう聽要てんさま解決かいけつぼう問題もんだい命令めいれい[1][10]こうがかり以下いか呢段嘢噉[11]

ようかい問題もんだいいえ吓俾若干じゃっかん正數せいすうinput)你,假設かせつ呢個れつ唔係いち空列くうれつどうわが搵呢啲數いれめん最大さいだい嗰個

よう嘅演算法さんぽう嘅步驟:

  1. しつらえいち變數へんすうさけべ佢做 maxなみ且將佢個すう值設做 0;
  2. はた input 嗰啲正數せいすう逐個逐個攞嚟どう max 較吓;
  3. 如果撞到個數こすうがかり大過たいか max 嘅(さけべ呢個すうx)嘅話,はた max 嘅數值設做 xなみ繼續けいぞくしょう max どうした正數せいすう較吓;
  4. はた最後さいごとく嗰個 max 嘅數值俾嚟(output)。max 嘅數值會がかり拃數いれめん最大さいだい嗰個。

諗演算法さんぽう嘅過ほどかかりようしょう一份作業揼散做組成份作業嘅細部份,まい細部さいぶ份都ようがかり一啲電腦普遍都會識做嘅簡單運算うんざんれい如係「比較ひかく兩個りゃんこかず,睇吓だい啲」噉-呢啲細部さいぶ份可以話がかり組成そせい演算えんざんほう元素げんそゆう咗呢啲細份就ゆう可能かのうはたにんなに運算うんざんほどけいた作業さぎょうみぎりいた[11][12]

ゆうせき演算えんざん要點ようてん分析ぶんせきどううめひょう估,以睇吓運算うんざん理論りろんどう運算うんざん複雜ふくざつとう課題かだい

資料しりょう類型るいけい

[編輯へんしゅう]

資料しりょう類型るいけいかかりいちけん資料しりょうかい具有ぐゆういち屬性ぞくせい

實際じっさい應用おうようかいよういた嘅演算法さんぽうじつようがかり噉將啲資料しりょう攞去做運算うんざん。一件資料會掕住個類型,類型るいけい會話かいわ俾部へんやくほどしき打算ださんてんさまよう呢件資料しりょうとうへんやく識得適當てきとう噉將だん變成へんせい電腦でんのう直接ちょくせつぎょういた機械きかい[13]常見つねみ絕大ぜつだい多數たすうほどしきげん支援しえん、而且ひとよう-嘅資料しりょう類型るいけい包括ほうかつ

... とうとう

舉個簡化れい想像そうぞうじん電腦でんのうおさむいたいちけんすうよりどころ 0001,如果呢件すうよりどころしめぎあきら咗係 int 類型るいけい,噉部電腦でんのう就知呢件すうよりどころ代表だいひょう1 呢個整數せいすうただし如果件數けんすうよりどころしめぎあきら咗係 bool 類型るいけい,噉呢件數けんすう據所よりどころ代表だいひょう嘅係しんさきいたり啱。うつしほどしき嗰陣,まい變數へんすうどう常數じょうすう都會とかいゆうかえし資料しりょう類型るいけい[註 1];而如はてよう嘗試しょう一個類型唔啱嘅數值加落一件資料嗰度-れいほどしき嘅開あたまこうあきらmax 呢個變數へんすうぞくいち整數せいすうただしほどしきはん出現しゅつげん

max = 0.005しょう max 呢件すうよりどころしつらえ做 0.005)

電腦でんのう就會だんけんしんじいき嚟,どうよう講話こうわだん碼有錯[14][15]

しん)、かり
整數せいすう 浮點すう ぬのりん

ほどしきげん

[編輯へんしゅう]

ほどしきげんかかりじんこう電腦でんのう命令めいれい媒介ばいかいさい原始げんし電腦でんのう唔會識得聽自然しぜんげん簡單かんたんこうそくがかりこう廣東かんとんばなしどうきゃくばなしとう日常にちじょうこう嘢會ようかたりげん),所以ゆえん就噉はたあたまさき嗰段「搵一個數列入面嘅最大數值」嘅演算法さんぽう落去電腦でんのうかかり唔會ゆうにんなん結果けっかいた嘅。一個編程員決定咗個程式做要邊啲運算用咩演算法,就需よう搵返せき啱用嘅程しきげんよう隻語せきごごとはた啲演算法さんぽううつし做一串串電腦會聽得明嘅陳述ちんじゅつしきあたまさき嗰段「搵拃すういれめん最大さいだい嗰個すう值」嘅演算法さんぽうよう Python 呢隻ほどしきげんうつし嚟嘅ばなしかいがかり噉嘅[11]

# Input:いちれつ冧巴 L。
# Output:L いれめん最大さいだい嘅冧ともえ

def wan2_max (L):  # 定義ていぎ乜嘢がかり "wan2_max"。
   max = 0         # しつらえ max 做 0。
   for x in L:     # どうまい喺 L いれめん嘅 x,做...
      if x > max:       # 如果 x 大過たいか max,
         max = x         # しつらえ max 做 x。
   return max      # 俾返 max 值出嚟。

唔同ほどしきげん喺「支持しじ啲咩へんほど範式はんしきひとし多方面たほうめん可能かのうゆうこと。搞清すわえ要用ようよう乜演算法さんぽうかい問題もんだいのちへんほどいん需要じゅよう諗吓ようあたりいちせきほどしきげん,而揀ようあたり隻語せきごげんけつ於好いんもとれい如係隻語せきごげんゆういく啱用、公司こうし政策せいさくゆう冇啱ようへんやくどううめがかりへんほどいん自己じこ習慣しゅうかん呀噉。

雖然ばなし唔同ほどしきげんゆう頗大嘅差異さいゆう唔少こうのうがかり主流しゅりゅうほどしきげん冚唪唥都ゆう嘅。美國びくに電腦でんのう科學かがくりん·とうあま喺佢ほん著作ちょさく《How To Think Like A Computer Scientist》(粵譯:てんさまこう電腦でんのう科學かがく思考しこういれめん指出さしで所有しょゆうほどしきげんゆう以下いか呢啲こうのう[16]

高級こうきゅう低級ていきゅう

[編輯へんしゅう]
呢個熒幕顯示けんじ緊用機械きかいげんうつしなり嘅碼;呢種げん完全かんぜん唔似自然しぜんげん,冇返咁上下じょうげ專業せんぎょう知識ちしき唔會睇得あかり

ほどしきげん以分做高級こうきゅうどう低級ていきゅうりょう大類おおるい。呢種ぶんきゅう唔係ばなし唔同ほどしきげんゆう啲勁啲有啲渣啲」,而且もと於一隻程式語言有幾似自然語言:

  • 低級ていきゅう嘅語ごとこうがかり機械きかいげん噉)唔多完全かんぜんがかりよし 1 どう 0 とう數字すうじ組成そせい嘅,一般人冇乜可能會睇得明,ただし電腦でんのう就係もと於呢啲語げん嚟行嘅-機械きかいげん冇將電腦でんのう運算うんざん抽象ちゅうしょう
  • 高級こうきゅう啲嘅げんこうがかりあたまさきひっさげ嘅 Python 噉)就係電腦でんのう科學かがくため咗令うつしほどしき呢家嘢容易ようい啲而設計せっけい嚟嘅,呢啲げん比較ひかく自然しぜんげんれい如上じょじょうめん嗰串 Python 碼就ゆう if とう嘅英文字もじ所以ゆえんたい於一般人嚟講比較易明,ただし就同電腦でんのう實際じっさい處理しょり緊嘅訊號(ゆうでん冇電)こう唔同,所以ゆえんよう高級こうきゅうげんうつしほどしき嗰陣,吓吓うつしかんだんげん碼之ようへんやくはただんげん碼轉化成かせい機械きかいげんあるもの直譯ちょくやくはただんげん碼實處理しょりただしかかりそく使がかりようへんやくへん嚟嘅機械きかい碼行おこりじょう嚟可能會のうかい少少しょうしょう[17]

喺廿いち世紀せいきあたま比較ひかくひとよう高級こうきゅうほどしきげん包括ほうかつ[18]

... とうとう

へんほど範式はんしき

[編輯へんしゅう]

へんほど範式はんしきかかり一種按功能而對程式語言作出嘅分類。唔同ほどしきげんゆう唔同嘅功のう[註 4],唔同嘅功能會のうかい支援しえん唔同嘅編ほど處理しょり方法ほうほう」。一隻程式語言有可能可以屬多過一隻編程範式[19]

舉個れい說明せつめい物件ぶっけんしるべむこうへんほど(OOP)がかり一種常用嘅編程範式,ゆびけん構程しき嗰陣よう物件ぶっけん嚟去做基本きほん單元たんげんほどしきかいゆう[20][21]

  • いち個個ここ類別るいべつclass),まい類別るいべつかいゆう若干じゃっかん實例じつれいinstance),
  • まい個物こぶつけんがかりいち實例じつれいかいゆう若干じゃっかん資料しりょう
  • まいけんどう類別るいべつ物件ぶっけんゆう嘅變すういちよう

れい如以呢段 C++ 碼噉:

class Car { // "Car" かかりいち類別るいべつ
  public: // Car 嘅每いち實例じつれいまいけんぞく於 Car 嘅物件ぶっけん都會とかいゆう以下いか呢啲變數へんすう...
    string brand; // ぱい
    string model; // かたごう
    int year; // とし
};

呢種做法喺好應用おうようじょうこうのう夠令ほどしきさらえきれい想像そうぞうゆう遊戲ゆうぎ製作せいさく喺度へんうつし佢隻しん遊戲ゆうぎ遊戲ゆうぎほどしき,佢想創造そうぞういち遊戲ゆうぎ世界せかい玩家喺裏めん移動いどう;佢想きょなずらえ世界せかい設計せっけいなりこう一座いちざ現實げんじつ城市じょうし噉,喺度諗緊城市じょうし其中いちじょうがい要點ようてん設計せっけい,佢想じょうがいゆういくしゃはく咗喺背景はいけい,佢可以設定せっていいちくるまclass class まい instance みやこゆういろすいどう位置いちとう嘅變すうしかさけべほどしきはたけんいちしゃinstance」呢樣嘢做さん-就唔使吓吓おもしんけんいちしゃinstance」嘅碼[22]

いんため OOP 咁好使こうもちいゆうこう常見つねみほどしきげん支援しえん OOP,かいためよう提供ていきょういち啲專做 OOP 嘅陳述ちんじゅつしき包括ほうかつ咗 C++、JavaScript どううめこう遊戲ゆうぎ引擎支援しえんC#... とうとう[23]

OOP 嘅例;如果じんようそう電腦でんのう顯示けんじ四個外形上有少少唔同嘅星形物體,ほどしき以將嗰四件物體當成喺「顏色かおいろ」呢個變數へんすうじょう唔同、ただしぞくどういち class物件ぶっけん
1947 ねん嗰個 bug;當時とうじ電腦でんのう科學かがく電腦でんのういれめん搵到せきしたがえ此程しき錯就ゆう咗個はなめいさけべむし
うちぶんDebug

Debug粵拼di6 bak1がかりうつしこうほどしきこれよう做嘅こうじょ。Debug ゆびけん查吓ほどしき,搵吓佢有冇 bug粵拼bak1-嚟自英文えいぶん名詞めいしむし意思いし),ゆう嘅話就將啲 bug きよしじょ咗佢。

Debug 嘅一種常見方法係俾個程式行幾次,睇吓佢 output 嗰啲結果けっかゆう異常いじょう。呢個過程かてい可能かのうかい嘥好時間じかん複雜ふくざつ嘅程しきかなめゆきいち可能かのう要用ようようなりいくにち咁耐嘅時あいだ debug こう緊要きんようしょう一個有錯嘅程式放出嚟俾人用後果可以好嚴重,れい如一隻負責用嚟分析けんかずよりどころ嘅軟けん如果ゆう錯,可能かのうかい連累れんるいようせき軟件嚟做研究けんきゅう科學かがく研究けんきゅう結果けっか跟住錯。たい debug 嘅思考しこうかい影響えいきょうほどしきげん選擇せんたくぼう啲程しきげんれいしゃ容易よういゆうぼう啲類がた問題もんだいこうがかりいんため呢啲げんへんやく嘅過ほどとうちゅう冇其げんけん查得咁嚴密げんみつ[24][25]

Bug 種類しゅるい

[編輯へんしゅう]
うちぶんBug

Bug 主要しゅようゆう以下いか種類しゅるい

  • 句法くほう錯誤さくご句法くほうかかりゆび一隻程式語言有嘅一啲法則,せめ指定していあたり符號ふごう包括ほうかつ數字すうじどう字母じぼ)嘅組合算がっさんがかりゆう意思いし」,れい如喺 C ほどしきげんいれめんprintf("xxx"); 呢行碼會きょう電腦でんのう顯示けんじ xxx 噉嘅いんため C げん嘅句ほうゆびあかりprintf陳述ちんじゅつしきかかりきょう電腦でんのう做「顯示けんじだんあるもの變數へんすう嘅數值出嚟」嘅作業さぎょう,而如はて一個編程員打錯字,はただん碼打咗做(れい如)prinf("xxx");しょう噉咗 t),就會搞到ほどしきいんため句法くほう問題もんだい而出錯。句法くほうじょう錯誤さくごがかり咁多しゅ錯誤さくごとうちゅうさいえき搵到嘅:喺へんやくはただんげん轉換てんかんなり機械きかい嗰陣,かい捉到句法くほうじょう錯誤さくご[26]
  • 算術さんじゅつじょう錯誤さくご:就算一個程式句法冇錯、而且また冇打錯字,ほどしきゆう可能かのう算術さんじゅつ上出かみで錯,こうがかりじょ以 0 就會搞到ほどしきぎょうぎょう吓出錯(くだり吓行吓,だん碼叫電腦でんのうはた變數へんすう嘅數值除 0,跟手電腦でんのう就出錯),また反映はんえいへんほどいんうつしほどしき嗰陣考慮こうりょとく唔夠しゅうしょう,冇諗到ほどしきぎょういた呢個有可ゆか能會のうかい出現しゅつげん噉嘅すう值。ようおうづけ呢種錯誤さくごへんほどかいいちしゅ常見つねみ做法がかりさけべほどしき定時ていじていこうはた啲變すう嘅數值顯示けんじ嚟(以睇かえし C ほどしきげんprintf),とうへんほどいん以一路睇到個程式行嗰陣每個變數嘅數值點樣變,そくがかりほどしきかいこう以下いか噉嘅輸出ゆしゅつ[27]
    t=0:    wai_zi = 0      cuk_dou = 0 // 喺時あいだてん(t)0 嗰陣,wai_zi 嘅值がかり 0,cuk_dou 嘅值がかり 0 
    t=1:    wai_zi = 0      cuk_dou = 10 // 喺時あいだてん(t)1 嗰陣,wai_zi 嘅值がかり 0,cuk_dou 嘅值がかり 10 
    t=2:    wai_zi= 10      cuk_dou = 20 // ... 如此類推るいすい
    t=3:    wai_zi = 30     cuk_dou = 30
    t=4:    wai_zi = 60     cuk_dou = 40
    t=5:    wai_zi = 100    cuk_dou = 50
    
  • 迴圈どう遞歸うえ錯誤さくご迴圈かかり一種好常用嘅編程技術;一個迴圈會掕住若干句陳述式同埋重複條件,ほどしきかい按住じょう重複じゅうふく條件じょうけん重複じゅうふく噉行掕住嗰柞陳述ちんじゅつしき若干じゃっかんちょくいたり重複じゅうふく條件じょうけんたちいたためやめれいゆう while 迴圈どう for 迴圈がかり噉。ゆうじんへんほどいん可能かのう錯字,搞到ほどしき出現しゅつげん無限むげん迴圈あるもの無限むげん遞歸とう問題もんだいれいいたほどしきがかり噉行どう一段碼永遠都唔停[28][29]
  • 資源しげんじょう錯誤さくごゆうかえし上下じょうげ複雜ふくざつ嘅程しき基本きほんじょうかいよういたけん資源しげん包括ほうかつよう電腦でんのう記憶きおくたいじゅう處理しょり緊嗰啲變すう嘅數值;呢個過程かてい以引おこりこう錯誤さくごれい如係へんほどいんはつはじめ嗰陣唔記とく咗要設定せっていぼう變數へんすう嘅數值,しかこうほどしきよう攞個變數へんすう運算うんざん,跟住搞到電腦でんのういんため變數へんすう冇數值而[30]

... とうとう

質素しっそ要求ようきゅう

[編輯へんしゅう]
いち軟件工程こうてい喺度ためし軟件

一般いっぱん嚟講,無論むろん一個程式係用嚟做乜嘅都好,啲人都會とかい希望きぼうほどしき具有ぐゆう以下いか呢啲特性とくせい

  • もたれたびゆびほどしきゆういく常會じょうかい俾到啱嘅結果けっか,一個完美可靠嘅程式每次行嗰陣都會成功俾到正確輸出;もたれけつ於啲演算えんざんほう概念がいねんうえがかり咪正かくどううめうつしほどしき嘅過ほどとう中有ちゅうう冇出錯,もたれ唔住嘅程しきなりかいゆう競爭きょうそう危害きがいゆびほどしき最終さいしゅう輸出ゆしゅつかい受一啲唔受控制嘅時間差影響)あるもの緩衝かんしょう溢位とう問題もんだい-如果ゆう呢類問題もんだい出現しゅつげん,噉通常つうじょう表示ひょうじほどしきうつしとく唔好[31]
  • 頑健がんけんゆびほどしきゆういくのう夠預はかどう應對おうたい一啲佢自身以外嘅差錯,包括ほうかつ輸入ゆにゅう資料しりょう唔啱款れい如係輸入ゆにゅう需要じゅようがかり浮點すうただしよう俾咗)、要用ようよう嘅資げんこうがかり記憶きおくたい)唔夠よう以及がかりよう方面ほうめん嘅出錯... 呀噉。いち頑健がんけん嘅程式能しきのう夠喺佢自おのれ以外いがい嘅嘢錯嗰じんゆう方法ほうほう應對おうたい簡單かんたんこう以想ぞうなり
    if ゆう問題もんだいthen よう噉噉噉嘅驟嚟應對おうたい」,
  • 移植いしょくゆびほどしき嘅源碼可以喺いくこう泛嘅電腦でんのうかたけんどう作業さぎょう系統けいとう上面うわつらぎょう,一個有完美可移植度嘅程式能夠喺任何電腦(無論むろんかかり個人こじん電腦でんのうじょうがかりひとし上面うわつらぎょう移植いしょくゆかりこういん素話すばなしごとれい如係ゆう啲程しき可能かのうよう咗一啲比較專業嘅指令,而呢啲指れい專業せんぎょうとどこお未必みひつ電腦でんのうみやこゆうそう呢啲指令しれい-噉就かい搞到ほどしき喺某啲電腦でんのう上面うわつらぎょう唔到[33]
  • 維護ゆび嗰個ほどしきゆういくえき以俾現時げんじあるもの將來しょうらい嘅編ほどいん攞去改良かいりょう錯或しゃ調ちょう較。こう嘅可維護たい於普どおり嘅用嚟講重要じゅうようせい唔係咁明あらわただし就對一個程式長遠嘅命運同價值嚟講就好緊要-具有ぐゆうだか維護嘅程しき往往おうおうかい俾人攞去あらためかんまたあらためいん而有一個更活躍嘅用家群[34][35]

... とうとう

可讀かどく

[編輯へんしゅう]
うちぶん可讀かどく

喺程しきへんうつしじょう可讀かどくゆび一個程式嘅源碼對人嚟講有幾易睇得明。

ゆう啲程しきこう簡潔かんけつれいじん一睇就知段源碼係點運作同用嚟做乜;ただしまたゆう啲程しき可能かのうかいれい如)ゆう一大柞唔等使嘅陳述ちんじゅつしき,搞到一個冇份幫手寫段碼嘅人望落就俾佢搞到一頭霧水。可讀かどくたい於一段源碼嚟講相當緊要:くびさき可讀かどく度會わたらい影響えいきょういたほどしきゆういくえきよう移植いしょくどう維護げん可讀かどく嘅程しきかいれいいた他人たにん一睇就明佢搞緊乜,所以ゆえんまた

  • れいじん容易ようい攞去よう
  • はただん碼用落去喺第啲機じょう移植いしょくどううめ
  • 呢段碼(維護);

另一方面ほうめん專業せんぎょう嘅編ほどいんかい揼好時間じかん心機しんき讀同研究けんきゅう彼此ひしうつし嘅程しき,嘗試理解りかい其他へんほどいんうつし嘅程しき,以及がかりはた其他へんほどいん嘅程しきあらため少少しょうしょう攞嚟よう,而可讀度だかかいれい呢個過程かていさら容易ようい事實じじつじょうゆう研究けんきゅうゆびこうよう一啲簡單方法令段源碼變可讀啲,就能夠幫其他へんほどいん慳好時間じかん[36]

ようひさげだか一段源碼嘅可讀度,常見つねみ嘅方ほうゆう[37]

... とうとう[36]れい如之前提ぜんていいた嗰個「搵出數列すうれついれめん最大さいだい嘅數值」嘅 Python ほどしき噉:

冇縮はい注釋ちゅうしゃく ゆうちぢみはいゆう注釋ちゅうしゃく
def wan2_max (L):                                   
max = 0
for x in L:
if x > max:
max = x
return max
# Input:いちれつ冧巴 L。
# Output:L いれめん最大さいだい嘅冧ともえ

def wan2_max (L):  # 定義ていぎ乜嘢がかり "wan2_max"。
   max = 0         # しつらえ max 做 0。
   for x in L:     # どうまい喺 L いれめん嘅 x,做...
      if x > max:       # 如果 x 大過たいか max,
         max = x         # しつらえ max 做 x。
   return max      # 俾返 max 值出嚟。
えいかくらん數學すうがく勒芙つぼみいと嘅畫ぞう

ちゅう世紀せいき(5 いたり 15 世紀せいきけいやめゆう數學すうがく喺度うつし類似るいじ電腦でんのうほどしき嘅嘢,歷史れきしがく一般いっぱんみとめため史上しじょうだい一個電腦程式係由えいかくらん數學すうがく勒芙つぼみいと喺 1840 ねんうつし嘅,當時とうじ佢為ゆかり運算うんざん機械きかいこれちちともえかい設計せっけい分析ぶんせきうつしいちだん演算えんざんほうよう嚟計はくつとむすうただしかかり喺 19 世紀せいきいたり廿にじゅう世紀せいき初期しょきあいだほどしきへんうつし一路都係一樣高度專業化嘅嘢,平民へいみんこうしょうかい參與さんよ[39]

ほどしきへんうつし普及ふきゅうがかり喺廿世紀せいきちゅう開始かいし嘅:廿にじゅう世紀せいきはつ電腦でんのうほどしきへんうつしよう嘅基本上ほんじょうきよしがかりとく機械きかいげんどう組合くみあいげん,而喺 1953 ねん美國びくに電腦でんのう科學かがくそう·ともえきち提出ていしゅつ咗「そうようゆうおこり組合くみあいげんさらえき嘅程しきげん」嘅諗あたまなみ且喺 1957 ねん開發かいはつ咗世じょうだい一隻廣泛俾人使用嘅高級こうきゅうほどしきげん Fortran [40]高級こうきゅうほどしきげん呢一樣發明令程式編寫更加易做,所以ゆえん助長じょちょう咗「冇乜受過專業せんぎょう訓練くんれん嘅人自己じこがくほどしきへんうつし」嘅風。而到咗廿いち世紀せいきはつへんほどけいやめなりため咗好技術ぎじゅつれい如係人工じんこう智能ちのうどう遊戲ゆうぎへんほどとう-嘅重よう一環いっかん,呢點れいへんほどなりためいちしゅゆう相當そうとう市場いちば技能ぎのう[9]

以下いかかかりへんぶんよう咗嘅彙嘅粵英對照たいしょう,啲拼おんよう嘅係粵拼

註釋ちゅうしゃく

[編輯へんしゅう]
  1. またみやこゆうほどしきげんがかりあかつき自動じどう探測たんそくいちけん資料しりょう嘅類がたれいゆう Python 噉。
  2. 以睇吓輸入ゆにゅうせい
  3. 以睇吓輸出ゆしゅつせい
  4. 技術ぎじゅつ啲講,そくがかり唔同ほどしきごとはた唔同嘢抽象ちゅうしょう
  1. 1.0 1.1 Knuth, D. E. (1997). The art of computer programming (Vol. 3). Pearson Education.
  2. Computer Programming.
  3. Kotonya, Gerald; Sommerville, Ian (1998). Requirements Engineering: Processes and Techniques. Chichester, UK: John Wiley and Sons.
  4. Fishbein, M. (1972). Appraising information in machine language form. The American Archivist, 35(1), 35-43.
  5. Manuel Carro; José F. Morales; Henk L. Muller; G. Puebla; M. Hermenegildo (2006). "High-level languages for small devices: a case study". Proceedings of the 2006 International Conference on Compilers, Architecture and Synthesis for Embedded Systems. ACM.
  6. Hoare, C. A. R. (1969). An axiomatic basis for computer programming. Communications of the ACM, 12(10), 576-580.
  7. "Single pixel change fools AI programs". BBC News. 3 November 2017.
  8. McShaffry, M. (2014). Game coding complete. Nelson Education.
  9. 9.0 9.1 Why Coding Is Still The Most Important Job Skill Of The Future. fastcompany.com.
  10. Bell, C. Gordon and Newell, Allen (1971), Computer Structures: Readings and Examples, McGraw–Hill Book Company, New York.
  11. 11.0 11.1 11.2 Background: Algorithms. 互聯もう檔案かんかえりかえり檔日2018ねん7がつ3ごう,..
  12. Harel, David, Feldman, Yishai (2004). Algorithmics: The Spirit of Computing. Addison-Wesley.
  13. Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. (1986). Compilers: Principles, Techniques, and Tools (1st ed.). Addison-Wesley.
  14. Shaffer, C. A. (2011). Data Structures & Algorithm Analysis in C++ (3rd ed.). Mineola, NY: Dover. 1.2.
  15. Cleaveland, J. Craig (1986). An Introduction to Data Types. Addison-Wesley.
  16. Downey, A., Wentworth, P., Elkner, J., & Meyers, C. (2016). How To Think Like A Computer Scientist: Learning with Python 3.
  17. Hennessy, John L.; Patterson, David A. Computer Organization and Design. The Hardware/Software Interface. Morgan Kaufmann Publishers.
  18. 10 Most Popular Programming Languages Today
  19. Programming Paradigms (PDF).
  20. Kindler, E.; Krivy, I. (2011). "Object-Oriented Simulation of systems with sophisticated control". International Journal of General Systems: 313-343.
  21. Lewis, John; Loftus, William (2008). Java Software Solutions Foundations of Programming Design (6th ed). Pearson Education Inc. ISBN 978-0-321-53205-3., section 1.6 "Object-Oriented Programming".
  22. Quick Tip: Intro to Object-Oriented Programming for Game Development.
  23. Jacobson, Ivar (1992). Object-Oriented Software Engineering: A Use Case-Driven Approach. Addison-Wesley.
  24. Thorsten Grötker, Ulrich Holtmann, Holger Keding, Markus Wloka, The Developer's Guide to Debugging, Second Edition, Createspace, 2012.
  25. Agans, David J. (2002). Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems. AMACOM.
  26. Friedman, Daniel P.; Mitchell Wand; Christopher T. Haynes (1992). Essentials of Programming Languages (1st ed.). The MIT Press.
  27. Pomonis, M., Petsios, T., Jee, K., Polychronakis, M., & Keromytis, A. D. (2014, December). IntFlow: improving the accuracy of arithmetic error detection using information flow tracking. In Proceedings of the 30th Annual Computer Security Applications Conference (pp. 416-425).
  28. Charlesworth, A. (1979). Infinite Loops in Computer Programs. Mathematics Magazine, 52(5), 284-291.
  29. Carbin, M., Misailovic, S., Kling, M., & Rinard, M. C. (2011, July). Detecting and escaping infinite loops with Jolt. In European Conference on Object-Oriented Programming (pp. 609-633). Springer, Berlin, Heidelberg.
  30. Zeller, A. (2009). Why programs fail: a guide to systematic debugging. Elsevier. 7.5.1 Reading Uninitialized Variables.
  31. Institute of Electrical and Electronics Engineers (1990) IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer Glossaries. New York, NY.
  32. 1990. IEEE Standard Glossary of Software Engineering Terminology, IEEE Std 610.12-1990 defines robustness as "The degree to which a system or component can function correctly in the presence of invalid inputs or stressful environmental conditions".
  33. Mooney, J. D. (2004). Developing portable software. In Information Technology (pp. 55-84). Springer, Boston, MA.
  34. Foreman, John T.; Gross, Jon; Rosenstein, Robert; Fisher, David; Brune, Kimberly (January 1997). "Maintainability Index Technique for Measuring Program Maintainability". C4 Software Technology Reference Guide: A Prototype (PDF). Software Engineering Institute. p. 231.
  35. "Programming 101: Tips to become a good programmer - Wisdom Geek". Wisdom Geek.
  36. 36.0 36.1 James L. Elshoff, Michael Marcotty, Improving computer program readability to aid modification (PDF), Communications of the ACM, v.25 n.8, p.512-521, Aug 1982.
  37. Toward Developing Good Programming Style.
  38. Tom DeMarco (1978). Structured Analysis and System Specification. New York, NY: Yourdon, 1978.
  39. Fuegi, J.; Francis, J. (2003). "Lovelace & Babbage and the Creation of the 1843 'notes'". IEEE Annals of the History of Computing. 25 (4): 16.
  40. Backus, John (October–December 1998). "The History of Fortran I, II, and III". IEEE Annals of the History of Computing. 20 (4): 68–78.
  41. Clements, Paul; Felix Bachmann; Len Bass; David Garlan; James Ivers; Reed Little; Paulo Merson; Robert Nord; Judith Stafford (2010). Documenting Software Architectures: Views and Beyond, Second Edition. Boston: Addison-Wesley.
  42. Pigoski, Thomas M., 1997: Practical software maintenance: Best practices for managing your software investment. Wiley Computer Pub. (New York).

文獻ぶんけん

[編輯へんしゅう]
  • A. K. Hartmann, Practical Guide to Computer Simulations, Singapore: World Scientific (2009).
  • A. Hunt, D. Thomas, and W. Cunningham, The Pragmatic Programmer. From Journeyman to Master, Amsterdam: Addison-Wesley Longman (1999).
  • Brian W. Kernighan, The Practice of Programming, Pearson (1999).
  • Weinberg, Gerald M., The Psychology of Computer Programming, New York: Van Nostrand Reinhold (1971).
  • Edsger W. Dijkstra, A Discipline of Programming, Prentice-Hall (1976).
  • O.-J. Dahl, E.W. Dijkstra, C.A.R. Hoare, Structured Pogramming, Academic Press (1972).
  • David Gries, The Science of Programming, Springer-Verlag (1981).
  • Donald Knuth. The Art of Computer Programming, Volumes 1-4A Boxed Set. Third Edition (Reading, Massachusetts: Addison-Wesley, 2011), 3168pp. ISBN 978-0-321-75104-1, 0-321-75104-3
    • Volume 1: Fundamental Algorithms. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xx+650pp. ISBN 978-0-201-89683-1, 0-201-89683-4. Errata: [1] (2011-01-08), [2] (2017-09-18, 27th printing). Addenda: [3] (2011).
    • Volume 2: Seminumerical Algorithms. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xiv+762pp. ISBN 978-0-201-89684-8, 0-201-89684-2. Errata: [4] (2011-01-08), [5] (2017-09-18, 26th printing). Addenda: [6] (2011).
    • Volume 3: Sorting and Searching. Second Edition (Reading, Massachusetts: Addison-Wesley, 1998), xiv+780pp.+foldout. ISBN 978-0-201-89685-5, 0-201-89685-0. Errata: [7] (2011-01-08), [8] (2017-09-18, 27th printing). Addenda: [9] (2011).
    • Volume 4A: Combinatorial Algorithms, Part 1. First Edition (Reading, Massachusetts: Addison-Wesley, 2011), xv+883pp. ISBN 978-0-201-03804-0, 0-201-03804-8. Errata: [10] (2017-09-18, ? printing).
    • Volume 1, Fascicle 1: MMIX – A RISC Computer for the New Millennium. (Addison-Wesley, 2005-02-14) ISBN 0-201-85392-2 (will be in the fourth edition of volume 1). Errata: [11] (2016-08-02).
    • Volume 4, Fascicle 5: Mathematical Preliminaries Redux; Backtracking; Dancing Links. (Addison-Wesley, 2018-10-18) 320pp, ISBN 978-0-13-467179-6 (will become part of volume 4B).
    • Volume 4, Fascicle 6: Satisfiability. (Addison-Wesley, 2015-12-08) xiii+310pp, ISBN 978-0-13-439760-3. Errata: [12] (2017-06-01) (will become part of volume 4B).

そと

[編輯へんしゅう]
  • 英文えいぶん GitHubほどしき設計せっけいしゃ常用じょうよう嘅協さくもう
  • 英文えいぶん StackExchangeほどしき設計せっけいしゃなり日用にちよう嘅網じょう討論とうろん
  • 英文えいぶん CodeForcesほどしき設計せっけいためしもう
  • 英文えいぶん TopCoderがかりほどしき設計せっけいためしもう
  • 英文えいぶん Leetcodeがかりほどしき設計せっけいためしもう