2012-12-19 66 views
-1
String s = ""; 

    myf = new Finch(); 
    do 
    { 
     //Run the menu until quit or cancel is selected 
     s = FinchMenu(); 
     //menu 1 
     if (s.equals("Back and forward")) RunAccelerationTest(s); 
    } 

你會如何將這樣的東西轉換爲僞代碼?例如java中的僞代碼?

String s = ""; 

它的僞代碼是這樣的東西?

Set s to "" 

這對我來說似乎是錯誤的。

請幫忙嗎?謝謝

+5

僞代碼就是你所做的。 –

+0

閱讀*僞代碼*標籤維基:「僞代碼是計算機編程算法的一種緊湊且非正式的高級描述,代表了代碼,可能看起來類似於代碼或代碼結構,但它不是實際的代碼。是代碼或代碼構造的表示。「 –

+2

沒有單一的普遍使用的僞代碼語言(除了Python,顯然!))只要你寫的是明確的並且類似於代碼,它就是*僞代碼。 – NPE

回答

8

僞代碼,我認爲,沒有預定義的語法。只需遵循兩條規則:

  • 它應該是普通的英語與常見的編程結構。

  • 它應該是通用的,並非特定於任何語言。

以下應符合:

Step 1: Initialize an empty string. (say str) 

Step 2: Construct a new 'Finch' object. 

Step 3: BEGIN LOOP 

      Fetch 'FinchMenu' from 'Finch' object. 

      assign 'FinchMenu' to 'str' 

      IF 'FinchMenu' is "Back and forward" 

       Call 'RunAccelerationTest' method with 'str' as argument. 

      END IF 

     END LOOP 
+0

啊,好的,謝謝! – Adz

0

僞代碼只是一個非語言特定的人類可讀的演練,無論你正在嘗試做什麼。

您可以編寫set s to ""甚至make s an empty string或描述此步驟正在執行的任何其他操作。

0

僞代碼沒有規則,它可以是任何你認爲看起來可以理解的東西。如果我想有時勾畫出一些看起來像Groovy或Python的東西(不使用分號或類型,使用列表和地圖的文字符號,使用縮進來表示嵌套塊),所以如果你想它看起來像

def s = "" 

let s = "" 

或只是

s = "" 

取決於它是你想怎麼有用叫出你是聲明一個局部變量與重用一個可能存在的變量。

高級語言一直致力於成爲「可執行僞代碼」的理想,所以如果您真的想要一個僞代碼標準,您可以選擇一種Python語言,並嘗試將其用作指導原則。

0

一般來說(這完全是我如何使用僞代碼,而不是任何一個規則集)我用僞碼擺脫什麼樣板或語法正確。

舉例來說,假設我有以下的Java代碼...

import java.io.*; 
class FileRead 
{ 
public static void main(String args[]) 
    { 
    try{ 
    // Open the file that is the first 
    // command line parameter 
    FileInputStream fstream = new FileInputStream("textfile.txt"); 
    // Get the object of DataInputStream 
    DataInputStream in = new DataInputStream(fstream); 
    BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
    String strLine; 
    //Read File Line By Line 
    while ((strLine = br.readLine()) != null) { 
    // Print the content on the console 
    System.out.println (strLine); 
    } 
    //Close the input stream 
    in.close(); 
    }catch (Exception e){//Catch exception if any 
    System.err.println("Error: " + e.getMessage()); 
    } 
    } 
} 

我爲僞代碼的解釋會是這樣的......

main() { 
FileInputStream fstream = new FileInputStream(fileLocation); 
BufferedReader br = BufferedReader(.....fstream); 
String str; 
while(br.readline!=empty, str=br.readline) { 
    System.out(str); 
} 
} 

下面這段代碼可能是沒有用的,任何人,但我 - 但我知道我可以再看一下,看看它是什麼,如果需要寫。這對於在會議中做出快速筆記是很好的,如果我想寫快速的僞代碼,像異常處理這樣的事情我不會考慮。

+0

請不要使用DataInputStream來讀取文本http://vanillajava.blogspot.co.uk/2012/08/java-memes-which-refuse-to-die.html –

+1

啊 - 很酷,我沒有意識到這一點與StringBuilder vs StringBuffer處於同一領域。感謝您的博客鏈接,我將有一個gander :) – david99world

+0

這個DataInputSTream + fstream代碼示例中有20個貼子每月有20個貼子,所以它是起義常見的東西是不正確的。我會*愛*追蹤此代碼的原作者;) –