什麼是偽碼(what is the pseudocode)和演算法?(algorithm?)的區別

簡單來說,偽程式碼是一種描述演算法邏輯的敘述。...

什麼是偽碼(what is the pseudocode)和演算法?(algorithm?)的區別

簡單來說,偽程式碼是一種描述演算法邏輯的敘述。

偽程式碼不是可執行程式碼,因此不必使用精確的語法;但是,遵循業界廣泛使用的標準是很有幫助的,解決方案團隊可以很容易地理解該標準。

統一建模語言(UML)和其他業務建模方法也可以稱為偽程式碼的例子。儘管這些工具不完全基於文字,但它們用於提供可執行任務或流程的視覺化表示。

最好的做法是清楚地記錄結構化和完整的偽程式碼,以幫助準確地翻譯它,這是規劃解決方案和程式設計邏輯的重要部分。

如果一個演算法不存在偽程式碼,那麼在編碼階段就要花費不必要的時間去思考解決方案,或者提取一些模糊的想法,通常最後期限就要到了。

在對演算法進行故障排除時,偽程式碼提供瞭如何將其組合在一起的背景思想,開發人員可能會也可能不會一直在幫助解決問題。

看看這個來自khan academy[i]的偽程式碼示例:

這是用軟體開發工具編寫的基於文字的偽程式碼。

前面的筆劃//表示文字是註釋(或在開發術語中註釋掉),因此不是可執行程式碼的一部分。

下麵的粗體文字顯示了開發人員將偽程式碼中的需求解釋為可執行程式碼時的語法和維度。

//如何將我們的想法轉化為程式碼?//繪製面,在中心橢圓上畫一個橢圓形(寬/2,高/2200300);//畫兩隻眼睛,兩個橢圓形,大約2/3的臉,1/5的臉橢圓的大小(寬/2-40,高/2-50,40,40);橢圓(寬/2+40,高/2-50,40,40);

下麵的另一個例子展示了編寫偽程式碼的更具技術性和結構化的方法:

如果學生成績大於或等於60分,請列印“幹得好!”elsePrint“對不起,你失敗了”

當提到結構化偽程式碼時,有一些表示演算法邏輯的標準術語,例如SEQUENCE,而IF-THEN-ELSE和其他結構也很有用,包括REPEAT-UNTIL、CASE和FOR。

這些術語被開發人員理解,並且有助於構建需求,而不使用其他人可能不理解的俚語或個人術語。

  • SEQUENCE表示從上到下依次執行任務。
  • WHILE是在滿足開始時定義的條件之前執行的重覆迴圈。
  • IF-THEN-ELSE是在兩個條件之間做出的決定:
例如如果工作小時數>;正常工作周,然後顯示加班時間表訊息顯示正常時間表訊息
  • REPEAT-UNTIL是一個重覆的迴圈,一直執行到滿足最後定義的條件為止。
示例RepeatSequenceUntil條件
  • CASE提供了基於表示式值的多個決策。
  • 因為這是一個重覆的計數迴圈

請註意,對於每個任務或流程,在末尾使用END/ENDIF(如果使用IF)表示它是終止點或輸出結果。

當構造相互巢狀時,它們必須從父構造中清楚地縮排,因此換句話說,所有顯示依賴關係的語句都應該縮排。

用動詞表示“做”字,使用諸如程序、計算機、重置、增量、加法、乘法、列印、顯示等術語,並註意縮排和偽程式碼。

什麼是偽碼(what is the pseudocode)和演算法?(algorithm?)的區別

現在讓我們看看演算法以及它們與偽程式碼的區別。

首先,什麼是演算法?

非正式地說,演算法是任何定義良好的計算過程,它以某個值或一組值作為輸入,產生某個值或一組值作為輸出。因此,演算法是一系列將輸入轉化為輸出的計算步驟

因此,更簡單地說,演算法是由解決問題或完成任務的一系列步驟定義的可執行程式碼邏輯。

與偽程式碼不同,編寫演算法的人需要程式設計知識,因為它是由計算機(而不是開發人員)來解釋的,以執行任務、操作、加密和提取資料。

演算法從根本上指導計算機程式執行程式碼邏輯中定義的任務。任何程式設計語法中的錯誤都會妨礙這些任務的成功執行,而這正是需要程式設計知識的地方。

在規劃階段編寫偽程式碼時,要記住演算法必須有效、集中,並達到最終結果;必須始終考慮解決方案的所有方面。

演算法做什麼?基本上,它由觸發器、程序或其他演算法執行,並接受資料作為其輸入。資料經過指令和操作的步驟來產生輸出。

資料儲存在變數中,每個變數都以演算法命名,以便在執行過程中將資料分配給它。

演算法也被命名,因為它們可以包含對其他演算法的引用和呼叫。無論使用何種編碼軟體,在開發演算法時都可能存在許多複雜性和技術性問題,因此需要進行良好的定義,以產生準確和期望的結果。

在設計和實現演算法時要考慮的另一個重要方面是演算法的執行速度。這一點在習慣了更快的軟體和更快的裝置的終端使用者中越來越明顯。

例如,對搜尋條件應用過濾器並等待結果顯示的時間異常長,這可能是一種無法忍受的體驗。然後,開發人員將研究如何以及何時接收資料,是否可以在子程序中過濾資料等。

編寫減慢任何程序的程式碼邏輯會對使用者、開發人員和業務產生負面影響。

總之,偽程式碼是規劃程式碼邏輯和實現健壯解決方案的重要敘述。這些解決方案是使用結構良好、快速有效的演算法來實現的,這些演算法可以產生準確和期望的結果。

 

 

  • 發表於 2021-06-24 23:47
  • 閱讀 ( 85 )
  • 分類:科技

你可能感興趣的文章

適應的(adaptive)和非自適應路由演算法(non adaptive routing algorithms)的區別

...由演算法 5. 摘要 什麼是自適應路由演算法(adaptive routing algorithms)? 動態路由或自適應路由使用自適應演算法。這些演算法根據拓撲結構和網路流量改變路由決策。相鄰路由器或所有路由器提供路由資訊。主要的最佳化引數是一...

  • 發佈於 2020-10-18 20:02
  • 閲讀 ( 52 )

演算法(algorithm)和流程圖(flowchart)的區別

...較-演算法與表格形式的流程圖 6. 摘要 什麼是演算法(an algorithm)? 每一個任務都是根據一個演算法來完成的。如果Facebook有一個這樣的問題,那麼它將如何在一個日誌中出現。首先,使用者應該開啟瀏覽器。然後他應該輸入正確...

  • 發佈於 2020-10-19 17:44
  • 閲讀 ( 114 )

在youtube上發現新內容的好方法

...auto-generated channels of trending and popular videos that are created by algorithms. On these channels, you'll see a notice in the "About" section that they've been auto-generated by YouTube. YouTube's auto-generated channels have "Topic" as a suffix. ...

  • 發佈於 2021-03-16 12:38
  • 閲讀 ( 172 )

什麼是校驗和(為什麼要在意)?

... 如果需要其他型別的校驗和,請在命令末尾新增相應的-Algorithm選項,如下所示: Get-FileHash C:\path\to\file.iso -Algorithm MD5 Get-FileHash C:\path\to\file.iso -Algorithm SHA1 將計算出的校驗和與原始校驗和進行比較。您不必看得太近,因為即使...

  • 發佈於 2021-04-05 00:34
  • 閲讀 ( 53 )

sata 3的實際速度是多少?

...ias and Clock Recovery. This is often accomplished using a specific coding algorithm called 8b/10b Encoding. It is not the only encoding algorithm which has been devised to this end (there is also a Manchester encoding), but it has become the de facto standard for SATA data transfer. In 8b/10b encod...

  • 發佈於 2021-04-10 11:06
  • 閲讀 ( 34 )

你所說的:你如何記錄你的密碼

...ember – needs to make a string that is at least 50 characters long 2) an algorithm that allows you to get a set of characters from that set of words – such as every ‘n’ characters 3) write down the start point in that string, and the value of ‘n’ that you will use and the number of chara...

  • 發佈於 2021-04-12 23:24
  • 閲讀 ( 56 )

特朗普最近對230條的攻擊其實是為了審查言論

...harm legislation, would “require platform companies to ensure that their algorithms do not skew toward extreme and unreliable material to boost user engagement.” Under a second, platforms would disclose data on what content is being promoted and to whom, on the process and policies of content mo...

  • 發佈於 2021-04-17 20:21
  • 閲讀 ( 44 )

由於“惡意”內容,windows live messenger阻止了海盜灣連結

...tant messages if they contain malicious or spam URLs based on intelligence algorithms, third-party sources, and/or user complaints. Pirate Bay URLs were flagged by one or more of these and were c***equently blocked."

  • 發佈於 2021-04-21 18:17
  • 閲讀 ( 51 )

本週最佳科技作品,11月4日

...磯書評:斯蒂芬·馬奇-文學不是資料:反對數字人文
 Algorithms are inherently fascistic, because they give the comforting illusion of an alterity to human affairs. "You don’t like this music? The algorithms have worked it out" is not so far from "You don’t like this law? I...

  • 發佈於 2021-04-24 12:42
  • 閲讀 ( 41 )

挖掘公共照片,創造美麗的時光流逝

...ce image that would form the anchor point for the other photos, with their algorithms cropping, aligning, and color-fixing the images to create a single, **ooth time-lapse.
 A time-lapse of 1,000 crowd-sourced photos took six hours to process
 The team says that in the end they were left wit...

  • 發佈於 2021-04-29 22:57
  • 閲讀 ( 51 )
araon111
araon111

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦