1.理解符號串與集合運算。
l=d=
說明下表示的含義:
ludld
l4l*
d+l(lud)*
解:lud:所有大小寫字母和數字的集合
ld:由乙個字母和乙個數字組成的所有符號串的集合
l4:由四個字母組成的符號串的集合
l*:ξ和由字母組成的所有符號串的集合
d+:由乙個或若干個數字組成的所有符號串
l(lud)*:以字母開頭,後面是所有字母和數字組成的所有符號串的集合
2.文法g(z):z->azb|ab定義的是什麼樣的語言?
解: 產生式:z->azb, z->ab
推導出:z->azb->aazzbb->aaaabbbb
所以語言為:l(g[z])=
3.寫出教材22頁例2.2中識別符號的文法四元組形式(vn,vt,p,s)。
解:文法g=(vn,nt,p,s),設b為識別符號,l為字母,d為數字。
其中,vn==,vt=
p={->
->
->
->a
->b
->z
->0
->1
->9
s=4.寫出下列表示式的最左推導、最右推導。
g(e):
e=> e + t | t
t=>t * f | f
f=>(e)| i
注意觀察最左和最右推導過程的不同。
解:i*i+i:
最左推導:e=>e+t=>t+t=>t*f+t=>f*f+t=>i*f+t=>i*i+t=>i*i+f=i*i+i
最右推導:e=>e+t=>e+f=>e+i=>t+i=>t*f+i=>t*i+i=>f*i+i=>i*i+i
i+i*i:
最左推導:e=>e+t=>t+t=>f+t=>i+t=>i+t*f=>i+f*f=>i+i*f=i+i*i
最右推導:e=>e+t=>e+t*f=>e+t*i=>e+f*i=>e+i*i=>t+i*i=>f+i*i=>i+i*i
i+(i+i):
最左推導:e=>e+t=>t+t=>f+t=>i+t=>i+f=>i+(e)=>i+(e+t)=>i+(t+t)=>i+(f+t)=>i+(i+t)=>i+(i+f)=>i+(i+i)
最右推導:e=>e+t=>e+f=>e+(e)=>e+(e+t)=>e+(e+f)=>e+(e+i)=>e+(t+i)=>e+(f+i)=>e+(i+i)=>t+(i+i)=>f+(i+i)=>i+(i+i)
第二次作業
execise02 1.查詢85年以後出生的學生姓名 性別和出生日期 2.列表顯示所有可能的學生選課組合 學號 課程號 3.查詢1 2 4班中陳姓同學的資訊 4.查詢所有及格的學生姓名 所選課程名及所得分數 5.統計各門課程的及格人數 課程編號 課程名 及格人數 6.統計各門課程的總人數 及格人數和...
第二次作業
第一題 p1 1 遞迴寫法,效率低 include 1.寫乙個函式返回引數值為1的個數 比如 15 0000 1111 4個1 程式原型 int count one bits unsigned int value int fuc int x else return 0 void mainp1 p1 ...
第二次作業
檔名稱 516.cpp 作 者 闕文榮 完成日期 2016 年 3 月 11 日 版 本 號 v1.1 對任務及求解方法的描述部分 用while語句控制輸出 輸入描述 略 問題描述 現在北京有一套房子,200萬,假設房價每年 10 乙個軟體工程師每年固定能賺40萬。他想買這套房子,多大的 率能夠忍受...