国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個(gè)程序員的腦回路進(jìn)程分析

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

掃碼添加小助手

加入工程師交流群

寫在前面:

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

而這些正是我認(rèn)為編程難的地方。任何一點(diǎn)遺漏都會(huì)成為bug,輕則導(dǎo)致挨罵,重則導(dǎo)致經(jīng)濟(jì)損失甚至危害安全。

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

普通人:

我今天要買一斤蘋果。

程序員:

我今天要買一斤蘋果。

  • 因?yàn)槲抑幌矚g紅富士蘋果,所以我只買紅富士蘋果。

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

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

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

根據(jù)上述條件,我設(shè)計(jì)出以下的買蘋果的流程:

(以下區(qū)域,可以左右拖動(dòng)查看完整內(nèi)容)

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

這個(gè)流程怎么樣?我來設(shè)計(jì)一些測(cè)試樣例,測(cè)試一下這個(gè)流程。

測(cè)試發(fā)現(xiàn)一個(gè)問題:如果水果店0 和水果店1 都有紅富士蘋果并且價(jià)格都低于10元/斤,而且水果店1 的價(jià)格比水果店0 更低,那么我希望買水果店1 的蘋果,但我設(shè)計(jì)的流程會(huì)讓我買水果店0 的蘋果。

為了解決這個(gè)問題,我應(yīng)該先詢問所有水果店的價(jià)格,然后去價(jià)格最低的那一家買蘋果。

經(jīng)過修改,我重新設(shè)計(jì)出以下的買蘋果的流程:

(以下區(qū)域,可以左右拖動(dòng))

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

現(xiàn)在這個(gè)流程是不是完美了呢?不是,我還能發(fā)現(xiàn)很多問題。

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

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

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

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

那么接下來我要設(shè)計(jì)一個(gè)在X寶買紅富士蘋果的流程……


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3716

    瀏覽量

    97191
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    956

    瀏覽量

    30940

原文標(biāo)題:編程到底難在哪里?

文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    飛凌嵌入式ElfBoard-進(jìn)程之什么是進(jìn)程

    系統(tǒng)性能,優(yōu)化系統(tǒng)資源的使用,以及管理進(jìn)程的生命周期。當(dāng)然,在程序中,用戶也可以通過系統(tǒng)調(diào)用和庫函數(shù)來獲取和管理進(jìn)程信息。進(jìn)程IDLinux下每個(gè)進(jìn)
    發(fā)表于 03-02 08:49

    Linux進(jìn)程管理不用愁!這6個(gè)工具幫你搞定90%場(chǎng)景

    在 Linux 系統(tǒng)中,進(jìn)程是資源分配的基本單位,無論是服務(wù)器運(yùn)維、程序調(diào)試還是日常使用,掌握進(jìn)程管理工具都是必備技能。今天就帶大家梳理 6 個(gè)最常用的
    的頭像 發(fā)表于 02-04 16:23 ?1516次閱讀
    Linux<b class='flag-5'>進(jìn)程</b>管理不用愁!這6<b class='flag-5'>個(gè)</b>工具幫你搞定90%場(chǎng)景

    飛凌嵌入式ElfBoard-進(jìn)程之什么是進(jìn)程

    ID,用戶ID,組ID以及終止?fàn)顟B(tài)等)。4.1.1 進(jìn)程程序的區(qū)別程序個(gè)靜態(tài)的代碼集合,是
    發(fā)表于 01-26 08:42

    進(jìn)程概念和特征

    的并發(fā)性和共享性。   為了使參與并發(fā)執(zhí)行的程序(含數(shù)據(jù))能獨(dú)立地運(yùn)行,必須為之配置個(gè)專門的數(shù)據(jù)結(jié)構(gòu),稱為進(jìn)程控制塊(Process Control Block, PCB)。系統(tǒng)利
    發(fā)表于 01-15 06:39

    進(jìn)程的控制

    進(jìn)程控制的主要功能是對(duì)系統(tǒng)中的所有進(jìn)程實(shí)施有效的管理,它具有創(chuàng)建新進(jìn)程、撤銷已有進(jìn)程、實(shí)現(xiàn)進(jìn)程狀態(tài)轉(zhuǎn)換等功能。在操作系統(tǒng)中,
    發(fā)表于 01-15 06:05

    大理的AI野心藏不住了——風(fēng)花雪月中千名程序員探討人工智能

    2025 年12月4日至6日第二屆CCF程序員大會(huì)暨大理人工智能與應(yīng)用國際開發(fā)者大會(huì)在大理圓滿落幕。
    的頭像 發(fā)表于 12-24 17:45 ?719次閱讀
    大理的AI野心藏不住了——風(fēng)花雪月中千名<b class='flag-5'>程序員</b>探討人工智能

    分析嵌入式軟件代碼的漏洞-代碼注入

    進(jìn)行編譯 在大多數(shù)情況下,程序故意像執(zhí)行代碼樣執(zhí)行數(shù)據(jù)是不尋常的,但將數(shù)據(jù)用于構(gòu)造有意執(zhí)行的對(duì)象卻很常見。 1、格式化字符串漏洞 大多數(shù)C程序員熟悉printf函數(shù)。大體上,這些格式字符串
    發(fā)表于 12-22 12:53

    解析Linux的進(jìn)程、線程和協(xié)程

    、基礎(chǔ)概念 進(jìn)程(Process) 進(jìn)程是計(jì)算機(jī)中運(yùn)行的程序的實(shí)例,它是操作系統(tǒng)中最基本的執(zhí)行單元之。每個(gè)
    發(fā)表于 12-22 11:00

    程序員最常見謊言

    了。 28我已經(jīng)測(cè)試過了,這個(gè)功能沒問題,可以上線了。 29別擔(dān)心,這個(gè)問題很快就能解決。 30代碼快寫完了,已經(jīng)完成 90% 了 。 希望大家對(duì)程序員些容忍以及諒解! 各位程序員你們都被我說中了哪些?說說你們的觀點(diǎn)
    發(fā)表于 12-10 08:24

    奔赴熱AI,碼力全開!Talkweb House@1024程序員日系列活動(dòng)圓滿收官

    1024程序員日”系列活動(dòng)至此劃上了個(gè)圓滿句號(hào)。本屆1024程序員節(jié)以“AI構(gòu)建世界,智能引領(lǐng)未來”為主題,廣邀技術(shù)大咖、產(chǎn)業(yè)領(lǐng)袖、企業(yè)代表與全球開發(fā)者齊聚星城
    的頭像 發(fā)表于 10-27 18:59 ?780次閱讀
    奔赴熱AI,碼力全開!Talkweb House@1024<b class='flag-5'>程序員</b>日系列活動(dòng)圓滿收官

    開鴻智谷“以賽促學(xué)、以賽選才”|1024程序員節(jié)暨開源鴻蒙構(gòu)建大會(huì)圓滿落幕!

    10月24日,由開鴻智谷聯(lián)合主辦的長(zhǎng)沙1024程序員節(jié)暨開源鴻蒙構(gòu)建大會(huì)在長(zhǎng)沙圓滿落幕。本次活動(dòng)以“湘聚長(zhǎng)沙,共赴熱AI”為主題,通過技術(shù)分享與實(shí)戰(zhàn)競(jìng)賽相結(jié)合的方式,著力培養(yǎng)“開源鴻蒙+AI”領(lǐng)域
    的頭像 發(fā)表于 10-27 17:58 ?705次閱讀
    開鴻智谷“以賽促學(xué)、以賽選才”|1024<b class='flag-5'>程序員</b>節(jié)暨開源鴻蒙構(gòu)建大會(huì)圓滿落幕!

    程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)

    的地址)出發(fā),采用推導(dǎo)的方式,深入淺出的分析了廣大C程序員學(xué)習(xí)和開發(fā)中遇到的難點(diǎn)。 2. 從方法論的高度對(duì)C語言在數(shù)據(jù)結(jié)構(gòu)和算法方面的應(yīng)用進(jìn)行了深入講解和闡述。 3. 講解了絕大多數(shù)C程序員開發(fā)
    發(fā)表于 05-13 16:45

    Linux系統(tǒng)進(jìn)程管理入門指南

    在 Linux 系統(tǒng)中,進(jìn)程是正在運(yùn)行的程序的實(shí)例。理解進(jìn)程的管理、查看和控制對(duì)于系統(tǒng)管理和開發(fā)者來說非常重要
    的頭像 發(fā)表于 04-22 14:34 ?1144次閱讀
    Linux系統(tǒng)<b class='flag-5'>進(jìn)程</b>管理入門指南

    進(jìn)程、線程、協(xié)程傻傻分不清?文帶你徹底扒光它們的\"底褲\"!

    消耗 大胃王 中等食量 節(jié)食達(dá)人 面試官看到你會(huì) 直接pass 給個(gè)及格分 大概率拿offer 性格特點(diǎn) 孤僻但靠譜 熱情但容易打架 高效但有點(diǎn)強(qiáng)迫癥 最后送大家張「程序員認(rèn)親圖譜
    發(fā)表于 03-26 09:27

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    種非常有用的編程語言,其語法易于閱讀,允許程序員使用比匯編、C或Java等語言更少的代碼行。Python編程語言最初實(shí)際上是作為L(zhǎng)inux的腳本語言而開發(fā)的。Py
    的頭像 發(fā)表于 03-25 09:27 ?2039次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python<b class='flag-5'>程序</b>?