2011-01-07 51 views
0

我想了解帕斯卡爾實驗室考試特別程序之前,這些代碼請解釋這些Pascal代碼..?

PROGRAM vowels; 

USES crt; 

{Program that counts the number of vowels in a sentence} 

CONST space=' '; 
     maxchar=80; 

TYPE vowel=(a,e,i,o,u); 

VAR buffer:ARRAY[1..maxchar] of char; 
    vowelcount:ARRAY[vowel] of integer; 

PROCEDURE initialize; 

VAR ch:vowel; 

BEGIN 
    FOR ch:=a TO u DO 
    BEGIN 
      vowelcount[ch]:=0; 
    END; 
END; 

PROCEDURE textinput; 

VAR index:integer; 

BEGIN 
    writeln('Input a sentence'); 
    FOR index:=1 TO maxchar DO 
     IF eoln THEN buffer[index]:=space 
     ELSE read(buffer[index]); 
     readln; 
END; 

PROCEDURE analysis; 

VAR index:integer; 
    ch:vowel; 

BEGIN 
    index:=1; 
    WHILE index<>maxchar+1 DO 
    BEGIN 
      IF buffer[index] IN ['a','e','i','o','u'] THEN 
      BEGIN 
       CASE buffer[index] OF 
       'a':ch:=a; 
       'e':ch:=e; 
       'i':ch:=i; 
       'o':ch:=o; 
       'u':ch:=u; 
       END; 
       vowelcount[ch]:=vowelcount[ch]+1; 
      END; 
      index:=index+1; 
    END; 
END; 

PROCEDURE vowelout; 

VAR ch:vowel; 

BEGIN 
    clrscr; 
    writeln; 
    writeln(' a e i o u'); 
    FOR ch:=a TO u DO 
    write(vowelcount[ch]:4); 
    writeln; 
END; 

BEGIN 
    initialize; 
    textinput; 
    analysis; 
    vowelout; 
END. 

請幫我

+0

你知道嗎? – Orbling 2011-01-07 02:04:46

+2

它計數在韻味 – Jason 2011-01-07 02:12:02

回答

10

總評:好吧,這代碼計數輸入字符串提供元音數量。

讓我們開始....

TYPE元音=(A,E,I,O,U); VAR 緩衝區:char的ARRAY [1..maxchar]; vowelcount:整數的ARRAY [元音];

此代碼定義了英文(a,e,i,o,u)中的元音列表。

PROCEDURE initialize; VAR ch:元音; 開始爲ch:=一個你做開始 vowelcount [ch]:= 0;結束;結束;

然後它定義了一個變量來收集每個元音的數量,稱爲vowelcount。該變量是一個數組,看起來有點像這樣:

vowelcount[a]=0; 
vowelcount[e]=0; 
vowelcount[i]=0; #... etc 

然後定義過程「分析」。這將從屏幕輸入(將在程序中稍後調用)並逐步輸入輸入中的每個字母。

WHILE指數<> maxchar + 1 DO BEGIN IF 緩衝液[指數]在[ 'A', 'E', 'I', '0', 'U'] THEN BEGIN CASE緩衝液[指數] 'a':ch:= a; 'e' 的CH:= E;的 'i':CH:= I; 'o':ch:= o; 'U':CH:= U;結束;

如果這些字母中的任何一個碰巧在字母列表中,而不是匹配元音,那麼它會在上面的vowelcount數組中添加一個數字。 (vowelcount [ch]:= vowelcount [ch] +1)其中ch是匹配的字母。正如你所看到的,這隻有在它是一個有效的元音(IF緩衝[索引] IN ['a','e','i','o','u'])時纔會被觸發)

最後。該程序的主要代碼或實際運行的內容:

BEGIN clrscr; writeln; writeln('a e i o u'); FOR ch:= a TO u DO write(vowelcount [ch]:4); writeln;結束;

BEGIN初始化;的TextInput;分析; vowelout;結束。

這基本上是將應用程序串在一起,首先清除屏幕(在dos提示符下),然後將元音輸出到屏幕上。然後它添加一些格式並輸出當前的vowelcount數(如上)。 然後它會請求你的輸入,最後它會再次輸出vowelcount的內容,它已經用你輸入的vowelcounts進行了更新。