字符编码与信息交换实验报告.docx

上传人:b****6 文档编号:12929279 上传时间:2023-06-09 格式:DOCX 页数:13 大小:15.91KB
下载 相关 举报
字符编码与信息交换实验报告.docx_第1页
第1页 / 共13页
字符编码与信息交换实验报告.docx_第2页
第2页 / 共13页
字符编码与信息交换实验报告.docx_第3页
第3页 / 共13页
字符编码与信息交换实验报告.docx_第4页
第4页 / 共13页
字符编码与信息交换实验报告.docx_第5页
第5页 / 共13页
字符编码与信息交换实验报告.docx_第6页
第6页 / 共13页
字符编码与信息交换实验报告.docx_第7页
第7页 / 共13页
字符编码与信息交换实验报告.docx_第8页
第8页 / 共13页
字符编码与信息交换实验报告.docx_第9页
第9页 / 共13页
字符编码与信息交换实验报告.docx_第10页
第10页 / 共13页
字符编码与信息交换实验报告.docx_第11页
第11页 / 共13页
字符编码与信息交换实验报告.docx_第12页
第12页 / 共13页
字符编码与信息交换实验报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

字符编码与信息交换实验报告.docx

《字符编码与信息交换实验报告.docx》由会员分享,可在线阅读,更多相关《字符编码与信息交换实验报告.docx(13页珍藏版)》请在冰点文库上搜索。

字符编码与信息交换实验报告.docx

字符编码与信息交换实验报告

字符编码与信息交换实验报告

实验三实验报告表

实验名称:

字符编码与信息交换学号

姓名

班级:

实验时间:

年月日

实验报告表3-1西文字符显示过程编码记录表

实验报告表3-2汉字显示过程编码记录表

实验报告表3-3不同字体的字型码

信息论与编码实验报告

学院:

计算机与通信工程学院

专业:

计算机科学与技术

班级:

计1203班

学号:

姓名:

xx年12月29日

实验一唯一可译码判别准则

实验目的:

1.进一步熟悉唯一可译码判别准则;

2.掌握C语言字符串处理程序的设计和调试技术。

实验内容:

1.已知:

信源符号数和码字集合C;

2.输入:

任意的一个码,码字的个数和每个具体的码字在运行时从键盘输入;

3.输出:

判决(是唯一可译码/不是唯一可译码);循环(若继续判决则输入1循环判决,否则输入0结束运行)。

实验原理:

根据唯一可译码的判别方法,利用数据结构所学的知识,定义字符串数据类型并利用指针进行编程来实现算法。

算法:

1、考察C中所有的码字,若Wi是Wj的前缀,则将对应的后缀作为一个尾随后缀码放入集合Fi+1中;

2、考察C和Fi俩个集合,若Wi∈C是Wj∈F的前缀或Wi∈F是Wj∈C的前缀,则将相应的后缀作为尾随后缀码放入集合Fi+1中;

3、F=∪Fi即为码C的尾随后缀集合;

4、若F中出现了C中的元素,算法终止,返回假(C不是唯一可译码);否则若F中没有出现新的元素,则返回真。

实验环境及实验文件存档名:

1.实验环境:

visualC++6.0

2.文件名:

weiyikeyi.cpp

实验结果及分析:

1.源代码:

#include

#include

charc[100][50];

charf[300][50];

intN,sum=0;//N为输入码字的个数,sum为尾随后缀集合中码字的个数

intflag;//判断是否唯一可译标志位

voidpatterson(charc[],chard[])//检测尾随后缀

{

inti,j,k;

for(i=0;;i++)

{

if(c[i]=='\0'&&d[i]=='\0')//2字符串一样,跳出

break;

if(c[i]=='\0')//d比c长,将d的尾随后缀放入f中

{

for(j=i;d[j]!

='\0';j++)f[sum][j-i]=d[j];

f[sum][j-i]='\0';

for(k=0;k

{

if(strcmp(f[sum],f[k])==0)//查看当前生成的尾随后缀在f集合中是否存在{

sum--;break;

}

}

sum++;

break;

}

if(d[i]=='\0')//c比d长,将c的尾随后缀放入f中

{

for(j=i;c[j]!

='\0';j++)f[sum][j-i]=c[j];

f[sum][j-i]='\0';

for(k=0;k

{

if(strcmp(f[sum],f[k])==0)//查看当前生成的尾随后缀在f集合中是否存在{

sum--;break;

}

}

sum++;

break;

}

if(c[i]!

=d[i])//字符不一样了也退出

break;

}

}

voidyima()

{

inti,j;

printf("********唯一可译码判别********\n");

printf("请输入码字的个数:

");//输入码得个数

scanf("%d",&N);

while(N>100)

{

printf("输入码字个数过大,请输入小于100的数\n");

printf("请输入码字的个数:

");

scanf("%d",&N);

}

flag=0;

printf("请分别输入码字:

\n");

for(i=0;i

{

scanf("%s",&c[i]);

}

for(i=0;i

for(j=i+1;j

{

if(strcmp(c[i],c[j])==0)

{flag=1;break;}

}

if(flag==1)//如果码本身有重复,就可以断定它不是唯一可译码

{

printf("这不是唯一可译码。

\n");

}

else

{

for(i=0;i

for(j=i+1;j

{

patterson(c[i],c[j]);

}

}

for(i=0;;i++)//根据原始码与s[i]生成s[i+1]也放入f[i]

{

ints=0;

for(j=0;j

{

if(i==sum)

{s=1;break;}

else

patterson(f[i],c[j]);

}

if(s==1)break;

}

for(i=0;i

for(j=0;j

{

if(strcmp(f[i],c[j])==0){

flag=1;

break;

}

}

}

if(flag==1)

{

printf("这不是唯一可译码!

\n");}

else

printf("这是唯一可译码!

\n");}

}

voidmain()

{

intflag=1;

while(flag){

yima();

printf("是否继续判别?

1/0\n");

scanf("%d",&flag);

}

}

2.运行结果

(1)输入0,01,001时:

(2)继续执行,输入1,01,10,1010

实验三实验报告表

实验名称:

字符编码与信息交换学号:

姓名:

班级:

实验时间:

实验报告表3-1西文字符显示过程编码记录表

实验报告表3-2汉字显示过程编码记录表

实验报告表3-3不同字体的字型码

内容仅供参考

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2