1)算法中出現(xiàn)的數(shù)組、變量可以是以下類型:整數(shù)、實數(shù)、字符、位串或指針。通常這些類型可以從算法的上下文來看是清楚的,并不需要額外加以說明。
2)在算法中的某些指令或子任務(wù)可以用文字來敘述,例如,"設(shè)x是A中的最大項",這里A是一個數(shù)組;或者"將x插入L中",這里L是一個鏈表。這樣做的目的是為了避免因那些與主要問題無關(guān)的細節(jié)使算法本身雜亂無章。
3)算術(shù)表達式可以使用通常的算術(shù)運算符( ,-,*,/,以及表示冪的^)。邏輯表達式可以使用關(guān)系運算符=,≠,<,>,≤和≥,以及邏輯運算符與(and),或(or),非(not)。
4)賦值語句是如下形式的語句:a<-b。
這里a是變量、數(shù)組項,b是算術(shù)表達式、邏輯表達式或指針表達式。語句的含義是將b的值賦給a。
5)若a和b都是變量、數(shù)組項,那么記號a<->b 表示a和b的內(nèi)容進行交換。
6)goto語句具有形式
goto label(goto標號)
它將導致轉(zhuǎn)向具有指定標號的語句。
7)條件語句有以下兩種形式:
if c then s或者
if c then s
else s′
這里c是邏輯表達式,s和s′是單一的語句或者是被括在do和end之間的語句串。對于上述兩種形式,假若c為真,則s被執(zhí)行一次。假若c為假,則在第一種形式中,if語句的執(zhí)行就完成了,而在第二種形式中,執(zhí)行s′。在所有的情況下,控制就進行到了下一個語句,除非在s或s′中的goto語句使控制轉(zhuǎn)向到其它地方。
8)有兩種循環(huán)指令:while和for。
while語句的形式是
while c do
s
end
這里c是邏輯表達式,而s是由一個或更多個語句組成的語句串。當c為真時,執(zhí)行s。在每一次執(zhí)行s之前,c都被檢查一下;假若c為假,控制就進行到緊跟在while語句后面的語句。注意,當控制第一次達到while語句時,假若c為假,則s一次也不執(zhí)行。
for語句的形式是
for var init to limit by incr do
s
end
這里var是變量,init、limit和incr都是算術(shù)表達式,而s是由一個或多個語句組成的語句串。初始時,var被賦予init的值。假若incr≥0,則只要var≤limit,就執(zhí)行s并且將incr加到var上。(假若incr<0,則只要var≥limit,就執(zhí)行s并且將incr加到var上)。incr的符號不能由s來該改變。
9)exit語句可以在通常的結(jié)束條件滿足之前,被用來結(jié)束while循環(huán)或者for循環(huán)的執(zhí)行。exit導致轉(zhuǎn)向到緊接在包含exit的(最內(nèi)層)while或者for循環(huán)后面的一個語句。
10)return用來指出一個算法執(zhí)行的終點;如果算法在最后一條指令之后結(jié)束,它通常是被省略的;它被用得最多的場合是檢測到不合需要的條件時。return的后面可以緊接被括在引號的信息。
11)算法中的注釋被括在/* */之中。諸如read和output之類的各種輸入或者輸出也在需要時被用到。

偽代碼實例

  偽代碼只是像流程圖一樣用在程序設(shè)計的初期,幫助寫出程序流程。簡單的程序一般都不用寫流程、寫思路,但是復雜的代碼,最好還是把流程寫下來,總體上去考慮整個功能如何實現(xiàn)。寫完以后不僅可以用來作為以后測試,維護的基礎(chǔ),還可用來與他人交流。但是,如果把全部的東西寫下來必定可能會讓費很多時間,那么這個時候可以采用偽代碼方式。比如:

  IF 九點以前 THEN

do 私人事務(wù);

  ELSE 9點到18點 THEN

  工作;

  ELSE

  下班;

  END IF

  這樣不但可以達到文檔的效果,同時可以節(jié)約時間. 更重要的是,使結(jié)構(gòu)比較清晰,表達方式更加直觀.

  下面介紹一種類Pascal語言的偽代碼的語法規(guī)則。

  在偽代碼中,每一條指令占一行(else if 例外,),指令后不跟任何符號(Pascal和C中語句要以分號結(jié)尾);

  書寫上的“縮進”表示程序中的分支程序結(jié)構(gòu)。這種縮進風格也適用于if-then-else語句。用縮進取代傳統(tǒng)Pascal中的begin和end語句來表示程序的塊結(jié)構(gòu)可以大大提高代碼的清晰性;同一模塊的語句有相同的縮進量,次一級模塊的語句相對與其父級模塊的語句縮進; 

  在偽代碼中,通常用連續(xù)的數(shù)字或字母來標示同一即模塊中的連續(xù)語句,有時也可省略標號。

  符號△后的內(nèi)容表示注釋;

  在偽代碼中,變量名和保留字不區(qū)分大小寫,這一點和Pascal相同,與C或C 不同;

  在偽代碼中,變量不需聲明,但變量局部于特定過程,不能不加顯示的說明就使用全局變量;

  賦值語句用符號←表示,x←exp表示將exp的值賦給x,其中x是一個變量,exp是一個與x同類型的變量或表達式(該表達式的結(jié)果與x同類型);多重賦值i←j←e是將表達式e的值賦給變量i和j,這種表示與j←e和i←e等價。

  例如:

  x←y

  x←20*(y 1)

  x←y←30

  以上語句用C分別表示為:

  x = y;

  x = 20*(y 1);

  x = y = 30;

  選擇語句用if-then-else來表示,并且這種if-then-else可以嵌套,與Pascal中的if-then-else沒有什么區(qū)別。

  例如:

  if (Condition1)

  then [ Block 1 ]

  else if (Condition2)

  then [ Block 2 ]

  else [ Block 3 ]

  循環(huán)語句有三種:while循環(huán)、repeat-until循環(huán)和for循環(huán),其語法均與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

   上述語句用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;

  數(shù)組元素的存取有數(shù)組名后跟“[下標]”表示。例如A[j]指示數(shù)組A的第j個元素。符號“ …”用來指示數(shù)組中值的范圍。

  例如:

  A[1…j]表示含元素A[1], A[2], … , A[j]的子數(shù)組;

  復合數(shù)據(jù)用對象(Object)來表示,對象由屬性(attribute)和域(field)構(gòu)成。域的存取是由域名后接由方括號括住的對象名表示。

  例如:

  數(shù)組可被看作是一個對象,其屬性有l(wèi)ength,表示其中元素的個數(shù),則length[A]就表示數(shù)組A中的元素的個數(shù)。在表示數(shù)組元素和對象屬性時都要用方括號,一般來說從上下文可以看出其含義。

  用于表示一個數(shù)組或?qū)ο蟮淖兞勘豢醋魇侵赶虮硎緮?shù)組或?qū)ο蟮臄?shù)據(jù)的一個指針。對于某個對象x的所有域f,賦值y←x就使f[y]=f[x],更進一步,若有f[x]←3,則不僅有f[x]=3,同時有f[y]=3,換言之,在賦值y←x后,x和y指向同一個對象。

  有時,一個指針不指向任何對象,這時我們賦給他nil。

  函數(shù)和過程語法與Pascal類似。

  函數(shù)值利用 “return (函數(shù)返回值)” 語句來返回,調(diào)用方法與Pascal類似;過程用 “call 過程名”語句來調(diào)用;

  例如:

  1. x ← t 10

  2. y ← sin(x)

  3. call CalValue(x,y)

  參數(shù)用按值傳遞方式傳給一個過程:被調(diào)用過程接受參數(shù)的一份副本,若他對某個參數(shù)賦值,則這種變化對發(fā)出調(diào)用的過程是不可見的。當傳遞一個對象時,只是拷貝指向該對象的指針,而不拷貝其各個域。

 

常用的偽代碼關(guān)鍵詞含義如下表所示:

偽代碼 含義 C/C 語言 縮進 程序塊 {} / / 行注釋 / / ← 賦值 = = 比較運算——等于 == ≠ 比較運算——不等于 != ≤ 比較運算——小于或等于 < = ≥ 比較運算——大于或等于 >= for i←1 to n do For循環(huán) for(i=1;i⇐n;i ){} for i←n downto 1 do For循環(huán) for(i=n;i>=1;i–){} while i<n do Wihle循環(huán) while(i<n){} do while i<n Do-While循環(huán) do {} while(i<n) repeat until i<n Repeat循環(huán) if i<n else If-Else語句 if(i<n){} else {} return 函數(shù)返回值 return A[0..n-1] 數(shù)組定義 int A[n-1] A[i] 引用數(shù)組 A[i] SubFun() 函數(shù)調(diào)用 SubFun()更多關(guān)于云服務(wù)器,域名注冊,虛擬主機的問題,請訪問三五互聯(lián)官網(wǎng):m.shinetop.cn

贊(0)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。郵箱:3140448839@qq.com。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明出處:三五互聯(lián)知識庫 » 偽代碼的寫法

登錄

找回密碼

注冊

主站蜘蛛池模板: 亚洲区综合区小说区激情区| 野外做受三级视频| 国产99在线 | 欧美| 男人和女人做爽爽免费视频| 精品久久久久久无码人妻蜜桃| 免费观看的av在线播放| 九九热视频在线免费观看| 视频一区视频二区制服丝袜 | av日韩在线一区二区三区| 国产草草影院ccyycom| 国产日韩精品一区二区在线观看播放 | 国产精品无码无片在线观看3d| 日本一区二区三区视频一| 亚洲AV无码乱码在线观看性色扶| 天堂网亚洲综合在线| 成人欧美一区二区三区在线| 欧美激情一区二区三区成人| 国产免费午夜福利757| 99riav精品免费视频观看| 日本一二三区视频在线| 在线日韩日本国产亚洲| 国产精品老熟女乱一区二区| 国产一区二区av天堂热| 人妻少妇456在线视频| 信宜市| 女人与牲口性恔配视频免费| 免费看成人欧美片爱潮app| 国产熟妇另类久久久久久| 欧洲美熟女乱av在免费| 欧美日韩精品一区二区三区不卡| 久久这里只精品热免费99| 无码精品一区二区三区在线| 亚洲悠悠色综合中文字幕| 国产精品线在线精品国语| 免费观看在线A级毛片| 国语对白做受xxxxx在线中国| 蜜桃AV抽搐高潮一区二区| 国产成人精品亚洲午夜麻豆| 鲁一鲁一鲁一鲁一澡| 国产精品人妇一区二区三区| 久久精品国产亚洲AV瑜伽 |