字符編碼與信息交換實(shí)驗(yàn)報(bào)告_第1頁
字符編碼與信息交換實(shí)驗(yàn)報(bào)告_第2頁
字符編碼與信息交換實(shí)驗(yàn)報(bào)告_第3頁
字符編碼與信息交換實(shí)驗(yàn)報(bào)告_第4頁
字符編碼與信息交換實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、字符編碼與信息交換實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)三實(shí)驗(yàn)報(bào)告表 實(shí)驗(yàn)名稱:字符編碼與信息交換 學(xué)號 姓名 班級: 實(shí)驗(yàn)時(shí)間:年 月 日 實(shí)驗(yàn)報(bào)告表3-1 西文字符顯示過程編碼記錄表 實(shí)驗(yàn)報(bào)告表3-2 漢字顯示過程編碼記錄表 實(shí)驗(yàn)報(bào)告表3-3 不同字體的字型碼 信息論與編碼實(shí)驗(yàn)報(bào)告 學(xué)院: 計(jì)算機(jī)與通信工程學(xué)院 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級: 計(jì)1203班 學(xué)號: 姓名: xx年12月29日 實(shí)驗(yàn)一 唯一可譯碼判別準(zhǔn)則 實(shí)驗(yàn)?zāi)康模?1.進(jìn)一步熟悉唯一可譯碼判別準(zhǔn)則; 2.掌握C語言字符串處理程序的設(shè)計(jì)和調(diào)試技術(shù)。 實(shí)驗(yàn)內(nèi)容: 1.已知:信源符號數(shù)和碼字集合C; 2.輸入:任意的一個(gè)碼,碼字的個(gè)數(shù)和每個(gè)具體的碼字

2、在運(yùn)行時(shí)從鍵盤輸入; 3.輸出:判決(是唯一可譯碼/不是唯一可譯碼);循環(huán)(若繼續(xù)判決則輸入1循環(huán)判決,否則輸入0結(jié)束運(yùn)行)。 實(shí)驗(yàn)原理: 根據(jù)唯一可譯碼的判別方法,利用數(shù)據(jù)結(jié)構(gòu)所學(xué)的知識,定義字符串?dāng)?shù)據(jù)類型并利用指針進(jìn)行編程來實(shí)現(xiàn)算法。 算法:1、考察C 中所有的碼字,若Wi是 Wj的前綴,則將對應(yīng)的后綴作為一個(gè)尾隨后綴碼放入集合Fi+1中; 2、考察C和Fi倆個(gè)集合,若Wi C是 WjF的前綴或Wi F是 WjC的前綴,則將相應(yīng)的后綴作為尾隨后綴碼放入集合Fi+1中; 3、F=Fi即為碼C的尾隨后綴集合; 4、若F中出現(xiàn)了C中的元素,算法終止,返回假(C不是唯一可譯碼);否則若F中沒有出現(xiàn)

3、新的元素,則返回真。 實(shí)驗(yàn)環(huán)境及實(shí)驗(yàn)文件存檔名: 1.實(shí)驗(yàn)環(huán)境:visual C+ 6.0 2.文件名 :weiyikeyi.cpp 實(shí)驗(yàn)結(jié)果及分析: 1.源代碼: #include #include char c10050; char f30050; int N,sum=0; /N為輸入碼字的個(gè)數(shù),sum為尾隨后綴集合中碼字的個(gè)數(shù) int flag;/判斷是否唯一可譯標(biāo)志位 void patterson(char c,char d) /檢測尾隨后綴 int i,j,k; for(i=0;i+) if(ci=0&di=0)/2字符串一樣,跳出 break; if(ci=0) /d比c長,將d的

4、尾隨后綴放入f中 for(j=i;dj!=0;j+) fsumj-i=dj; fsumj-i=0; for(k=0;ksum;k+) if(strcmp(fsum,fk)=0) /查看當(dāng)前生成的尾隨后綴在f集合中是否存在 sum-;break; sum+; break; if(di=0) /c比d長,將c的尾隨后綴放入f中 for(j=i;cj!=0;j+) fsumj-i=cj; fsumj-i=0; for(k=0;k100) printf(輸入碼字個(gè)數(shù)過大,請輸入小于100的數(shù)n); printf(請輸入碼字的個(gè)數(shù):); scanf(%d,&N); flag=0; printf(請分別輸

5、入碼字:n); for(i=0;iN;i+) scanf(%s,&ci); for(i=0;i for(j=i+1;jN;j+) if(strcmp(ci,cj)=0) flag=1;break; if(flag=1)/如果碼本身有重復(fù),就可以斷定它不是唯一可譯碼 printf(這不是唯一可譯碼。n); else for(i=0;i for(j=i+1;jN;j+) patterson(ci,cj); for(i=0;i+) /根據(jù)原始碼與si生成si+1也放入fi int s=0; for(j=0;j if(i=sum) s=1;break; else patterson(fi,cj); if(s=1)break; for(i=0;i for(j=0;jN;j+) if(strcmp(fi,cj)=0) flag=1; break; if(flag=1) printf(這不是唯一可譯碼!n); else printf(這是唯一可譯碼!n); void main() int flag=1; while(flag) yima(); printf(是否繼續(xù)判別?1/0n); scanf(%d,&flag); 2.運(yùn)行結(jié)果 (1)輸入0,01,001時(shí): (2)繼續(xù)執(zhí)行,輸入1,01,10,1010 實(shí)驗(yàn)三 實(shí)驗(yàn)報(bào)告表 實(shí)驗(yàn)名稱:字符編

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論