演算法描述偽代碼
㈠ 請問什麼是偽代碼啊``
偽代碼(pseudocode)是一種演算法描述語言。使用偽代碼的目的是為了使被描述的演算法可以容易地以任何一種編程語言(pascal,c,java,etc)實現。因此,偽代碼必須結構清晰、代碼簡單、可讀性好,並且類似自然語言。
介於自然語言與編程語言之間。
意思就是說。偽代碼不是可以直接運行的代碼。偽代碼只是用來描述編程思想的。
㈡ 偽代碼是什麼意思
偽代碼是一種非正式的,類似於英語結構的,用來描述模塊結構圖的語言。它是半形式化、不標準的語言,可以將整個演算法運行過程的結構用接近自然語言的形式(可以使用任何一種熟悉的文字,關鍵是把程序的意思表達出來)描述出來。
使用偽代碼的目的是使被描述的演算法可以容易地以任何一種編程語言(Pascal,C,Java等)實現。因此,偽代碼必須結構清晰、代碼簡單、可讀性好,並且類似自然語言。 介於自然語言與編程語言之間。以編程語言的書寫形式指明演算法職能。使用偽代碼, 不用拘泥於具體實現。
簡單示例:輸入3個數,列印輸出其中最大的數。可用如下的偽代碼表示:
Begin(演算法開始)
輸入 A,B,C
IF A>B 則 A→Max
否則 B→Max
IF C>Max 則 C→Max
Print Max
End (演算法結束)
(2)演算法描述偽代碼擴展閱讀
偽代碼應用領域
偽代碼中常被用於技術文檔和科學出版物中來表示演算法,也被用於在軟體開發的實際編碼過程之前表達程序的邏輯。偽代碼不是用戶和分析師的工具,而是設計師和程序員的工具。計算機科學在教學中通常使用虛擬碼,以使得所有的程序員都能理解。當考慮演算法功能(而不是其語言實現)時,偽代碼常常得到應用。
偽代碼只是像流程圖一樣用在程序設計的初期,幫助寫出程序流程。如果把全部的程序流程寫下來必定可能會浪費很多時間,那麼這個時候可以採用偽代碼方式。
簡單地說,偽代碼是讓人便於理解的代碼,是不依賴於語言的,用來表示程序執行過程,而不一定能編譯運行的代碼。
㈢ 寫出演算法的偽代碼
偽代碼(Pseudocode)是一種演算法描述語言。使用為代碼的目的是為了使被描述的演算法可以容易地以任何一種編程語言(Pascal, C, Java, etc)實現。因此,偽代碼必須結構清晰,代碼簡單,可讀性好,並且類似自然語言。
下面介紹一種類Pascal語言的偽代碼的語法規則。
偽代碼的語法規則
在偽代碼中,每一條指令佔一行(else if 例外,),指令後不跟任何符號(Pascal和C中語句要以分號結尾);
書寫上的「縮進」表示程序中的分支程序結構。這種縮進風格也適用於if-then-else語句。用縮進取代傳統Pascal中的begin和end語句來表示程序的塊結構可以大大提高代碼的清晰性;同一模塊的語句有相同的縮進量,次一級模塊的語句相對與其父級模塊的語句縮進;
例如:
line 1
line 2
sub line 1
sub line 2
sub sub line 1
sub sub line 2
sub line 3
line 3
而在Pascal中這種關系用begin和end的嵌套來表示,
line 1
line 2
begin
sub line 1
sub line 2
begin
sub sub line 1
sub sub line 2
end;
sub line 3
end;
line 3在C中這種關系用{ 和 } 的嵌套來表示,
line 1
line 2
{
sub line 1
sub line 2
{
sub sub line 1
sub sub line 2
}
sub line 3
}
line 3
在偽代碼中,通常用連續的數字或字母來標示同一即模塊中的連續語句,有時也可省略標號。
例如:
1. line 1
2. line 2
a. sub line 1
b. sub line 2
1. sub sub line 1
2. sub sub line 2
c. sub line 3
3. line 3符號△後的內容表示注釋;
在偽代碼中,變數名和保留字不區分大小寫,這一點和Pascal相同,與C或C++不同;
在偽代碼中,變數不需聲明,但變數局部於特定過程,不能不加顯示的說明就使用全局變數;
賦值語句用符號←表示,x←exp表示將exp的值賦給x,其中x是一個變數,exp是一個與x同類型的變數或表達式(該表達式的結果與x同類型);多重賦值i←j←e是將表達式e的值賦給變數i和j,這種表示與j←e和i←e等價。
例如:
x←y
x←20*(y+1)
x←y←30
以上語句用Pascal分別表示為:
x := y;
x := 20*(y+1);
x := 30; y := 30;
以上語句用C分別表示為:
x = y;
x = 20*(y+1);
x = y = 30;
選擇語句用if-then-else來表示,並且這種if-then-else可以嵌套,與Pascal中的if-then-else沒有什麼區別。
例如:
if (Condition1)
then [ Block 1 ]
else if (Condition2)
then [ Block 2 ]
else [ Block 3 ]
循環語句有三種:while循環、repeat-until循環和for循環,其語法均與Pascal類似,只是用縮進代替begin - end;
例如:
1. x ← 0
2. y ← 0
3. z ← 0
4. while x < N
1. do x ← x + 1
2. y ← x + y
3. for t ← 0 to 10
1. do z ← ( z + x * y ) / 100
2. repeat
1. y ← y + 1
2. z ← z - y
3. until z < 0
4. z ← x * y
5. y ← y / 2
上述語句用Pascal來描述是:
x := 0;
y := 0;
z := 0;
while x < N do
begin
x := x + 1;
y := x + y;
for t := 0 to 10 do
begin
z := ( z + x * y ) / 100;
repeat
y := y + 1;
z := z - y;
until z < 0;
end;
z := x * y;
end;
y := y / 2;
上述語句用C或C++來描述是:
x = y = z = 0;
while( z < N )
{
x ++;
y += x;
for( t = 0; t < 10; t++ )
{
z = ( z + x * y ) / 100;
do {
y ++;
z -= y;
} while( z >= 0 );
}
z = x * y;
}
y /= 2;
數組元素的存取有數組名後跟「[下標]」表示。例如A[j]指示數組A的第j個元素。符號「 …」用來指示數組中值的范圍。
例如:
A[1…j]表示含元素A[1], A[2], … , A[j]的子數組;
復合數據用對象(Object)來表示,對象由屬性(attribute)和域(field)構成。域的存取是由域名後接由方括弧括住的對象名表示。
例如:
數組可被看作是一個對象,其屬性有length,表示其中元素的個數,則length[A]就表示數組A中的元素的個數。在表示數組元素和對象屬性時都要用方括弧,一般來說從上下文可以看出其含義。
用於表示一個數組或對象的變數被看作是指向表示數組或對象的數據的一個指針。對於某個對象x的所有域f,賦值y←x就使f[y]=f[x],更進一步,若有f[x]←3,則不僅有f[x]=3,同時有f[y]=3,換言之,在賦值y←x後,x和y指向同一個對象。
有時,一個指針不指向任何對象,這時我們賦給他nil。
函數和過程語法與Pascal類似。
函數值利用 「return (函數返回值)」 語句來返回,調用方法與Pascal類似;過程用 「call 過程名」語句來調用;
例如:
1. x ← t + 10
2. y ← sin(x)
3. call CalValue(x,y)
參數用按值傳遞方式傳給一個過程:被調用過程接受參數的一份副本,若他對某個參數賦值,則這種變化對發出調用的過程是不可見的。當傳遞一個對象時,只是拷貝指向該對象的指針,而不拷貝其各個域。
㈣ 計算機演算法的偽代碼是什麼
演算法中的偽代碼是指採用類似於C語言或Pascal語言或ada語言來描述演算法。之所以說類似,是因為描述演算法的語言與真正的(或實際使用的)C語言或Pascal或ada語言有些差異。不過這些差異不大。
或者從另一個角度講,演算法中的偽代碼與編譯器無關。
㈤ 演算法的描述可以採用什麼
如下:
1、用自然語言描述演算法
前面關於歐幾里的演算法以及演算法實例的描述,使用的都是自然語言。自然語言是人們日常所用的語言,如漢語、英語、德語等。使用這些語言不用專門訓練,所描述的演算法也通俗易懂。
2、用流程圖描述演算法
在數學課程里,我們學習了用程序框圖來描述演算法。在程序框圖中流程圖是描述演算法的常用工具由一些圖形符號來表示演算法。
3、用偽代碼描述演算法
偽代碼是用介於自然語言和計算機語言之間的文字和符號來描述演算法的工具。它不用圖形符號,因此,書寫方便、格式緊湊,易於理解,便於向計算機程序設計語言過度。
演算法的特徵
輸入:一個演算法必須有零個或以上輸入量。
輸出:一個演算法應有一個或以上輸出量,輸出量是演算法計算的結果。
明確性:演算法的描述必須無歧義,以保證演算法的實際執行結果是精確地符合要求或期望,通常要求實際運行結果是確定的。
有限性:依據圖靈的定義,一個演算法是能夠被任何圖靈完備系統模擬的一串運算,而圖靈機器只有有限個狀態、有限個輸入符號和有限個轉移函數(指令)。而一些定義更規定演算法必須在有限個步驟內完成任務。
㈥ 偽代碼是什麼
偽代碼
對機器編譯而言,就像文言文對我們一樣,沒法完全理解,需要進行翻譯。要將偽代碼用高級程序語言翻譯過來以後給機器編譯才會有效。
㈦ 什麼是偽代碼
偽代碼是一種演算法描述語言,只是將演算法的思想及結構按近似自然語言表示出來,它本身不能運行簡單說就是用代碼概況表示流程圖
㈧ 演算法和偽代碼有什麼區別啊
偽代碼(Pseudocode)是一種演算法描述語言。使用為代碼的目的是為了使被描述的演算法可以容易地以任何一種編程語言(Pascal, C, Java, etc)實現。因此,偽代碼必須結構清晰,代碼簡單,可讀性好,並且類似自然語言。 下面介紹一種類Pascal語言的偽代碼的語法規則。 偽代碼的語法規則 在偽代碼中,每一條指令佔一行(else if 例外,),指令後不跟任何符號(Pascal和C中語句要以分號結尾); 書寫上的「縮進」表示程序中的分支程序結構。這種縮進風格也適用於if-then-else語句。用縮進取代傳統Pascal中的begin和end語句來表示程序的塊結構可以大大提高代碼的清晰性;同一模塊的語句有相同的縮進量,次一級模塊的語句相對與其父級模塊的語句縮進; 例如: line 1 line 2 sub line 1 sub line 2 sub sub line 1 sub sub line 2 sub line 3 line 3 而在Pascal中這種關系用begin和end的嵌套來表示, line 1 line 2 begin sub line 1 sub line 2 begin sub sub line 1 sub sub line 2 end; sub line 3 end; line 3在C中這種關系用{ 和 } 的嵌套來表示, line 1 line 2 { sub line 1 sub line 2 { sub sub line 1 sub sub line 2 } sub line 3 } line 3 在偽代碼中,通常用連續的數字或字母來標示同一即模塊中的連續語句,有時也可省略標號。 例如: 1. line 1 2. line 2 a. sub line 1 b. sub line 2 1. sub sub line 1 2. sub sub line 2 c. sub line 3 3. line 3符號△後的內容表示注釋; 在偽代碼中,變數名和保留字不區分大小寫,這一點和Pascal相同,與C或C++不同; 在偽代碼中,變數不需聲明,但變數局部於特定過程,不能不加顯示的說明就使用全局變數; 賦值語句用符號←表示,x←exp表示將exp的值賦給x,其中x是一個變數,exp是一個與x同類型的變數或表達式(該表達式的結果與x同類型);多重賦值i←j←e是將表達式e的值賦給變數i和j,這種表示與j←e和i←e等價。 例如: x←y x←20*(y+1) x←y←30 以上語句用Pascal分別表示為: x := y; x := 20*(y+1); x := 30; y := 30; 以上語句用C分別表示為: x = y; x = 20*(y+1); x = y = 30; 選擇語句用if-then-else來表示,並且這種if-then-else可以嵌套,與Pascal中的if-then-else沒有什麼區別。 例如: if (Condition1) then [ Block 1 ] else if (Condition2) then [ Block 2 ] else [ Block 3 ] 循環語句有三種:while循環、repeat-until循環和for循環,其語法均與Pascal類似,只是用縮進代替begin - end; 例如: 1. x ← 0 2. y ← 0 3. z ← 0 4. while x < N 1. do x ← x + 1 2. y ← x + y 3. for t ← 0 to 10 1. do z ← ( z + x * y ) / 100 2. repeat 1. y ← y + 1 2. z ← z - y 3. until z < 0 4. z ← x * y 5. y ← y / 2 上述語句用Pascal來描述是: x := 0; y := 0; z := 0; while x < N do begin x := x + 1; y := x + y; for t := 0 to 10 do begin z := ( z + x * y ) / 100; repeat y := y + 1; z := z - y; until z < 0; end; z := x * y; end; y := y / 2; 上述語句用C或C++來描述是: x = y = z = 0; while( z < N ) { x ++; y += x; for( t = 0; t < 10; t++ ) { z = ( z + x * y ) / 100; do { y ++; z -= y; } while( z >= 0 ); } z = x * y; } y /= 2; 數組元素的存取有數組名後跟「[下標]」表示。例如A[j]指示數組A的第j個元素。符號「 …」用來指示數組中值的范圍。 例如: A[1…j]表示含元素A[1], A[2], … , A[j]的子數組; 復合數據用對象(Object)來表示,對象由屬性(attribute)和域(field)構成。域的存取是由域名後接由方括弧括住的對象名表示。 例如: 數組可被看作是一個對象,其屬性有length,表示其中元素的個數,則length[A]就表示數組A中的元素的個數。在表示數組元素和對象屬性時都要用方括弧,一般來說從上下文可以看出其含義。 用於表示一個數組或對象的變數被看作是指向表示數組或對象的數據的一個指針。對於某個對象x的所有域f,賦值y←x就使f[y]=f[x],更進一步,若有f[x]←3,則不僅有f[x]=3,同時有f[y]=3,換言之,在賦值y←x後,x和y指向同一個對象。 有時,一個指針不指向任何對象,這時我們賦給他nil。 函數和過程語法與Pascal類似。 函數值利用 「return (函數返回值)」 語句來返回,調用方法與Pascal類似;過程用 「call 過程名」語句來調用; 例如: 1. x ← t + 10 2. y ← sin(x) 3. call CalValue(x,y) 參數用按值傳遞方式傳給一個過程:被調用過程接受參數的一份副本,若他對某個參數賦值,則這種變化對發出調用的過程是不可見的。當傳遞一個對象時,只是拷貝指向該對象的指針,而不拷貝其各個域。
㈨ VB里描述演算法的為什麼叫偽代碼而不是代碼
簡單的說:偽代碼是用人類自然語言說明演算法,代碼是用編譯器語言寫演算法。
比如:
偽代碼:
假如x大於5,那麼x等於5。
代碼:
if x>5 then x=5