91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一個程序員的腦回路進程分析

5RJg_mcuworld ? 來源:未知 ? 作者:易水寒 ? 2018-03-29 15:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫在前面:

這篇回答并不是講述在生活中程序員如何買蘋果,而是以買蘋果為例說明程序員如何解決問題。程序員需要對問題進行透徹的分析,理清其涉及的所有細節,預測可能發生的所有意外與非意外的情況,列出解決方案的所有步驟,以及對解決方案進行盡量全面的測試。

而這些正是我認為編程難的地方。任何一點遺漏都會成為bug,輕則導致挨罵,重則導致經濟損失甚至危害安全。

注意這些難點全部和語言無關。和編程所需要的絕對嚴密的邏輯相比,語言實在是太簡單了。(某些自帶代碼混淆效果的語言除外)

普通人:

我今天要買一斤蘋果。

程序員:

我今天要買一斤蘋果。

  • 因為我只喜歡紅富士蘋果,所以我只買紅富士蘋果。

  • 我能接受的最高價格是10元/斤。

  • 正常情況下一斤蘋果用一個袋子能裝下,但是為防萬一,我會帶兩個袋子。

  • 我知道附近的3家水果店,所以我會依次訪問這3家水果店。

根據上述條件,我設計出以下的買蘋果的流程:

(以下區域,可以左右拖動查看完整內容)

買蘋果流程開始 對水果店0、水果店1、水果店2依次執行: 拜訪一家水果店流程開始   走到此水果店   如果此水果店沒有開門,則結束當前的“拜訪一家水果店流程”   如果此水果店沒有蘋果,則結束當前的“拜訪一家水果店流程”   如果此水果店的蘋果當中沒有紅富士蘋果,則結束當前的“拜訪一家水果店流程”   如果此水果店的紅富士蘋果剩余不到一斤,則結束當前的“拜訪一家水果店流程”   如果此水果店的紅富士蘋果的價格高于10元/斤,則執行3次:   講價流程開始     詢問店主是否愿意將價格降到10元/斤或更低     如果店主愿意,則跳過剩余的“講價流程”   講價流程結束   如果此水果店的紅富士蘋果的價格仍然高于10元/斤,則結束當前的“拜訪一家水果店流程”   打開一個袋子,將其作為當前的袋子   重復執行以下流程,直到總重量大于一斤:   裝袋一個蘋果流程開始     從所有的不在袋子中的紅富士蘋果中選出最好的一個     如果此蘋果能裝入當前的袋子,則將此蘋果裝入當前的袋子,否則執行:     換袋子流程開始       如果我有剩余的袋子,則從中任意選出一個并作為當前的袋子,否則執行:       向店主要袋子流程開始         向店主索要一個袋子         如果店主拒絕給我袋子,則將我的所有袋子里的所有蘋果取出,然后結束當前的“拜訪一家水果店流程”         將店主給我的袋子作為當前的袋子       向店主要袋子流程結束     換袋子流程結束     測量我的所有袋子里的所有蘋果的總重量   裝袋一個蘋果流程結束   根據我的所有袋子里的所有蘋果的總重量和店主給出的價格,計算我應付的價格   向店主詢問我應付的價格   如果我不接受店主索要的價格,則執行3次:   校對流程開始     向店主解釋我計算出的價格,并詢問其是否同意     如果店主同意,則跳過剩余的“校對流程”   校對流程結束   如果我仍然不接受店主索要的價格,則將我的所有袋子里的所有蘋果取出,然后結束當前的“拜訪一家水果店流程”   如果我沒帶錢,則將我的所有袋子里的所有蘋果取出,然后結束當前的“拜訪一家水果店流程”   付錢拿走蘋果   跳過剩余的“拜訪一家水果店流程” 拜訪一家水果店流程結束買蘋果流程結束

這個流程怎么樣?我來設計一些測試樣例,測試一下這個流程。

測試發現一個問題:如果水果店0 和水果店1 都有紅富士蘋果并且價格都低于10元/斤,而且水果店1 的價格比水果店0 更低,那么我希望買水果店1 的蘋果,但我設計的流程會讓我買水果店0 的蘋果。

為了解決這個問題,我應該先詢問所有水果店的價格,然后去價格最低的那一家買蘋果。

經過修改,我重新設計出以下的買蘋果的流程:

(以下區域,可以左右拖動)

買蘋果流程開始 對水果店0、水果店1、水果店2依次執行: 詢問一家水果店的紅富士價格流程開始   走到此水果店   如果此水果店沒有開門,則視此水果店的紅富士價格為無窮大元/斤,并結束當前的“詢問一家水果店的紅富士價格流程”   如果此水果店沒有蘋果,則視此水果店的紅富士價格為無窮大元/斤,并結束當前的“詢問一家水果店的紅富士價格流程”   如果此水果店的蘋果當中沒有紅富士蘋果,則視此水果店的紅富士價格為無窮大元/斤,并結束當前的“詢問一家水果店的紅富士價格流程”   如果此水果店的紅富士蘋果剩余不到一斤,則視此水果店的紅富士價格為無窮大元/斤,并結束當前的“詢問一家水果店的紅富士價格流程”   向店主詢問此水果店的紅富士蘋果價格并記錄 詢問一家水果店的紅富士價格流程結束 從3家水果店中選出紅富士價格最低的一家(如果有并列則隨機選擇),將其作為目標水果店 如果目標水果店的紅富士蘋果價格為無窮大元/斤,則結束當前的“買蘋果流程” 走到目標水果店 如果此水果店的紅富士蘋果的價格高于10元/斤,則執行3次: 講價流程開始   詢問店主是否愿意將價格降到10元/斤或更低   如果店主愿意,則跳過剩余的“講價流程” 講價流程結束 如果此水果店的紅富士蘋果的價格仍然高于10元/斤,則結束當前的“買蘋果流程” 打開一個袋子,將其作為當前的袋子 重復執行以下流程,直到總重量大于一斤: 裝袋一個蘋果流程開始   從所有的不在袋子中的紅富士蘋果中選出最好的一個   如果此蘋果能裝入當前的袋子,則將此蘋果裝入當前的袋子,否則執行:   換袋子流程開始     如果我有剩余的袋子,則從中任意選出一個并作為當前的袋子,否則執行:     向店主要袋子流程開始       向店主索要一個袋子       如果店主拒絕給我袋子,則將我的所有袋子里的所有蘋果取出,然后結束當前的“買蘋果流程”       將店主給我的袋子作為當前的袋子     向店主要袋子流程結束   換袋子流程結束   測量我的所有袋子里的所有蘋果的總重量 裝袋一個蘋果流程結束 根據我的所有袋子里的所有蘋果的總重量和店主給出的價格,計算我應付的價格 向店主詢問我應付的價格 如果我不接受店主索要的價格,則執行3次: 校對流程開始   向店主解釋我計算出的價格,并詢問其是否同意   如果店主同意,則跳過剩余的“校對流程” 校對流程結束 如果我仍然不接受店主索要的價格,則將我的所有袋子里的所有蘋果取出,然后結束當前的“買蘋果流程” 如果我沒帶錢,則將我的所有袋子里的所有蘋果取出,然后結束當前的“買蘋果流程” 付錢拿走蘋果買蘋果流程結束

現在這個流程是不是完美了呢?不是,我還能發現很多問題。

如果3家水果店都有紅富士蘋果但都不到一斤,但是三家店加起來能達到一斤,那么我不應該結束流程回家,而是應該把三家店的紅富士蘋果都買下來。

如果我向水果店詢問價格的時候這家店還有紅富士蘋果,但我詢問完所有水果店的價格后這家店的紅富士蘋果賣完了,那么我的流程會讓我試圖處理不存在的紅富士蘋果。

我走路的過程中可能會遇到突發事件,比如發現了新的水果店,比如袋子破掉了蘋果掉一地,對于這些情況我的流程都無法進行處理。

啊問題太多了我懶得再改流程了。我還是去X寶買吧。

那么接下來我要設計一個在X寶買紅富士蘋果的流程……


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3689

    瀏覽量

    95250
  • 程序員
    +關注

    關注

    4

    文章

    954

    瀏覽量

    30409

原文標題:編程到底難在哪里?

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    程序設計與數據結構

    的地址)出發,采用推導的方式,深入淺出的分析了廣大C程序員學習和開發中遇到的難點。 2. 從方法論的高度對C語言在數據結構和算法方面的應用進行了深入講解和闡述。 3. 講解了絕大多數C程序員開發
    發表于 05-13 16:45

    Linux系統進程管理入門指南

    在 Linux 系統中,進程是正在運行的程序的實例。理解進程的管理、查看和控制對于系統管理和開發者來說非常重要
    的頭像 發表于 04-22 14:34 ?394次閱讀
    Linux系統<b class='flag-5'>進程</b>管理入門指南

    進程、線程、協程傻傻分不清?文帶你徹底扒光它們的\"底褲\"!

    消耗 大胃王 中等食量 節食達人 面試官看到你會 直接pass 給及格分 大概率拿offer 性格特點 孤僻但靠譜 熱情但容易打架 高效但有點強迫癥 最后送大家張「程序員認親圖譜
    發表于 03-26 09:27

    基于ads1299做一個電采集設備的話,電極帽上需要有參考電極嗎?

    基于ads1299做一個電采集設備的話,電極帽上需要有參考電極嗎?
    發表于 01-22 06:44

    阿里云升級通義靈碼AI程序員,全面上線

    近日,阿里云宣布其備受矚目的通義靈碼AI程序員已正式全面上線,為開發者帶來更為強大和便捷的編程輔助工具。 此次上線的通義靈碼AI程序員,在功能上實現了全面升級。現在,它支持VS Code
    的頭像 發表于 01-09 11:16 ?715次閱讀

    TMS320C6000程序員指南

    電子發燒友網站提供《TMS320C6000程序員指南.pdf》資料免費下載
    發表于 12-24 17:19 ?0次下載
    TMS320C6000<b class='flag-5'>程序員</b>指南

    TMS320C55x DSP CPU程序員參考補充

    電子發燒友網站提供《TMS320C55x DSP CPU程序員參考補充.pdf》資料免費下載
    發表于 12-21 11:36 ?3次下載
    TMS320C55x DSP CPU<b class='flag-5'>程序員</b>參考補充

    深入解析Linux程序進程

    什么是程序 組計算機能識別和執行的指令,用于指導計算機執行特定任務或解決特定問題。程序通常由代碼、數據和資源文件組成,涉及語法、算法和數據結構。為二進制文件 什么是進程
    的頭像 發表于 12-18 11:01 ?480次閱讀
    深入解析Linux<b class='flag-5'>程序</b>與<b class='flag-5'>進程</b>

    UCD3138A64/UCD3138128程序員手冊

    電子發燒友網站提供《UCD3138A64/UCD3138128程序員手冊.pdf》資料免費下載
    發表于 12-09 14:42 ?0次下載
    UCD3138A64/UCD3138128<b class='flag-5'>程序員</b>手冊

    機械革命發布CODE AI程序員

    近日,英特爾新質生產力技術生態大會在成都舉行,機械革命作為重要參展商帶來了多款明星產品引爆全場!其中更是在AI PC軟件生態產品發布分論壇上,Intel、智譜、機械革命三方聯合發布了專為程序員設計的CODE AI程序員本,成為本次大會的
    的頭像 發表于 11-30 10:34 ?1103次閱讀

    程序進程的區別

    比如: 開發寫的代碼我們稱為程序,那么將開發的代碼運行起來。我們稱為進程
    的頭像 發表于 11-25 16:03 ?1236次閱讀
    <b class='flag-5'>程序</b>和<b class='flag-5'>進程</b>的區別

    Linux驅動程序程序員指南

    電子發燒友網站提供《Linux驅動程序程序員指南.pdf》資料免費下載
    發表于 11-22 15:53 ?0次下載
    Linux驅動<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南

    AI編程工具會不會搶程序員飯碗

    AI編程工具可輔助編程,減少手動編碼,提升效率,對程序員有積極影響也有挑戰。程序員需深化技能、拓寬知識應對。長遠看,AI與人類程序員將共生共榮。
    的頭像 發表于 11-08 10:17 ?530次閱讀

    第五屆長沙·中國1024程序員節開幕

    據官方媒體報道,10月24日;? 第五屆長沙·中國1024程序員節在湖南湘江新區開幕;本次中國1024程序員節以“智能應用新生態”為主題。設置有岳麓對話、技術英雄會、主題峰會及賽事、展覽等活動,
    的頭像 發表于 10-25 15:42 ?498次閱讀

    socket對應連接嗎

    的接口,允許在不同計算機之間建立連接,進行數據交換。socket可以看作是兩程序之間的通信端點,由IP地址和端口號唯標識。
    的頭像 發表于 08-16 10:55 ?927次閱讀
    主站蜘蛛池模板: 日韩xx00 | 中文字幕一区二区三区在线不卡 | 国产老肥熟xxxx | 伊人久久大香线蕉资源 | 97影院午夜午夜伦不卡 | 另类免费视频 | 久久精品亚洲一区二区三区浴池 | 97综合色| 午夜女同影院 | 女的扒开尿口让男人桶爽 | 手机在线黄色网址 | 女人张开腿让男人捅爽 | 天天色影院 | 日本污视频在线观看 | 欧美熟色妇 | 加勒比在线免费视频 | 热99在线视频 | 你懂的网站在线观看网址 | 亚洲综合国产一区二区三区 | 男人日女人视频在线观看 | 色吧五月天 | 国产成人三级经典中文 | 久久精品亚洲精品国产欧美 | 免费高清特黄a 大片 | 91极品反差婊在线观看 | 精品国产柚木在线观看 | 欧美午夜一区 | 日日操天天射 | 亚洲精品蜜桃久久久久久 | 亚洲一区免费 | 四虎影视4hu4虎成人 | 99在线国产 | 欧美69xxx| 免费在线视频你懂的 | 色多多网站在线观看 | 天天色天天色 | 一级特黄牲大片免费视频 | 久久精品亚洲热综合一本奇米 | 婷婷激情丁香 | 天天摸天天澡天天碰天天弄 | 国产美女亚洲精品久久久综合 |