您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

八、程序设计语言基础--九、多媒体——软考软件设计师

文章目录

    • 第八章 √ 程序设计语言基础 3~5分
      • 1,编译与解释
      • 2,文法
      • 3,数据类型与和程序控制
      • 其他知识点
    • 第九章 √ 多媒体 3分
      • 第一节 音频相关概念
      • 第二节 多媒体相关计算问题
      • 第三节 常见的多媒体标准
      • 其他知识点

第八章 √ 程序设计语言基础 3~5分

1,编译与解释

编译过程

源程序

  • 词法分析——正规式,有限自动机(NFA或DFA)
  • 语法分析——根据语言语法规则,语句结构
  • 语义分析——语义检查,静态语义分析
  • 中间代码生成
  • 代码优化
  • 目标代码生成——中间代码转底,与目标机器的体系结构是密切相关的。分配寄存器
  • 目标程序

词法错误:非法字符,关键字或标识符拼写错误
语法错误:语法结构出错,if end if 不匹配,缺分号,括号不配对
语义错误:死循环(动态语义错误),零除数,其它逻辑错误
中间代码”是一种简单且含义明确的记号系统,与具体的机器无关,可以有若干种形式。可以将不同的高级程序语言翻译成同一种中间代码。由于与具体机器无关,使用中间代码有利于进行与机器无关的优化处理,以及提高编译程序的可移植性。常见的有逆波兰记号(后缀式),三地址码,四元式,三元式和树。

语法分析方法分为两类:自上而下(自顶向下)分析法和自下而上(自底向上)分析法,递归下降分析法和预测分析法属于自上而下分析法,移进-归约分析法属于自下而上(自底向上)分析法。

2,文法

形式语言理论中一种重要的变换文法,用来描述上下文无关语言,在乔姆斯基分层中称为2型文法。由于程序设计语言的语法基本上都是上下文无关文法,因此应用十分广泛。上下文无关文法拥有足够强的表达力来表示大多数程序设计语言的语法。另一方面,上下文无关文法又足够简单,使得我们可以构造有效的分析算法来检验一个给定字串是否是由某个上下文无关文法产生的。

一个形式文法是一个有序四元组G=(V, T, S, P),其中

  • V:非终结符。不是语言组成部分,不是最终结果,可以理解为占位符
  • T:终结符。是语言的组成部分,是最终结果。 V ∩ T = ∅ V∩T=∅ VT=
  • S:起始符。是语言的开始符号。
  • P:产生式。用终结符代替非终结符的规则。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jp7lopQZ-1625186296671)(软件设计师笔记.assets/image-20210514143032105.png)]

语法树

一棵语法树应具有以下特征:

  • 每个结点都有一个标记,此标记是V的一个符号;
  • 根的标记是S;
  • 若一结点n至少有一个它自己除外的子孙,并且有标记A,则A肯定在Vn中
  • 如果结点n的直接子孙,从左到右的次序是结点n,n2…nk,其标记分别是:A1,A2…,那么A–>A1A2…Ak。一定是P中的一个产生式。

例题:文法G= ( {a,b},{S,A},S,P),其中:S->aAS|a;A->SbA|SS|ba。请构造语句aabAa的推导树

S → a A S → 因 为 A − S b A → a S b A → 因 为 S − a → a a b A a S \to aAS \to 因为A-SbA\to aSbA \to 因为S-a \to aabAa SaASASbAaSbASaaabAa

有限自动机

M = ( S , ξ , δ , S 0 , Z ) M=(S, \xi , \delta,S0,Z) M=(S,ξ,δ,S0,Z)

  • S是一个有限集,每个元素为一个状态
  • ξ \xi ξ 是一个有穷字母表,每个元素为一个输入字符
  • δ \delta δ 是转换函数:是一个单值对照
  • SO,属于S,是其唯一的初态
  • Z是一个终态集(可空)

有限状态自动机可以形象地用状态转换图表示,设有限状态自动机: D F A = ( { S , A , B , C , f } , { 1 , 0 } , δ , S , { f } ) DFA = (\{S,A,B,C,f\},\{1,0\},\delta,S,\{f\}) DFA=({S,A,B,C,f},{1,0},δ,S,{f}) 其中,

{ δ ( S , 0 ) = B , δ ( S , 1 ) = A δ ( A , 0 ) = f , δ ( A , 1 ) = C δ ( B , 0 ) = C , δ ( B , 1 ) = f , δ ( C , 0 ) = f , δ ( C , 1 ) = f , \begin{cases} \delta(S,0) = B, \delta(S,1)=A \\ \delta(A,0)=f,\delta(A,1)=C\\ \delta(B,0)=C,\delta(B,1)=f,\\ \delta(C,0)=f, \delta(C,1)=f, \end{cases} δ(S,0)=B,δ(S,1)=Aδ(A,0)=f,δ(A,1)=Cδ(B,0)=C,δ(B,1)=f,δ(C,0)=f,δ(C,1)=f,

image-20210514152100685

答案:C

非确定有限状态自动机与确定有限状态自动机的最大区别是它们的转移函数不同。

  • 确定有限状态自动机对每个可能的输入只有个状态的转移。
  • 非确定有限状态自动机对每一个可能的输入可以有多个状态转移,接受到输入时从这多个状态转移中非确定地选择一个。

3,数据类型与和程序控制

常见数据类型:数字数据类型,布尔类型,字符类型,枚举类型,指针类型

程序控制结构主要有:顺序结构,选择结构和循环结构

前缀表达式(+ab) 中缀表达式(a+b) 后缀表达式(ab-)

后缀表达式又称为逆波兰式,利用进行求值

例题:表达式(a-b)*(c+5)的后缀式是 ab-c5+*。【进行后序遍历】

函数调用——传值与传址

传递方式主要特点
传值调用形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变
引用(传址)调用形参取的是实参的地址,相当于实参存储单元的地址引用。因此其值的改变同时就改变了实参的值

进行函数调用时,常需要在调用环境中的数据传递给被调用函数,作为输入参数由被调用函数处理,基本的调用方式为值调用(或传值调用)和引用调用。其中,值调用方式下是将实参的值单向地传递给被调用函数的形参,引用调用方式下通过将实参的地址传递给形参,在被调用函数中通过指针实现对实参变量数据的间接访问和修改,从而达到将修改后的值“传回来”的效果。

函数调用时基本的参数传递方式有传值与传地址两种,

  • 在传值方式下是将实参的值传递给形参,因此实参可以是表达式(或常量),也可以是变量(或数组元素),这种信息传递是单方向的,形参不能再将值传回给实参。
  • 在传地址方式下,需要将实参的地址传递给形参,因此,实参必须是变量(数组名或数组元素),不能是表达式(或常量)。 这种方式下,被调用函数中对表达式参数的修改实际上就是对实际参数的修改,因此客观上可以实现数据的双向传递。

多种程序语言特点

  • Fortran语言(科学计算,执行效率高)
  • Pascal语言(为教学而开发的,表达能力强,Delphi)
  • C语言(指针操作能力强,高效)
  • Lisp语言(函数式程序语言,符号处理,人工智能)
  • C++语言(面向对象,高效)
  • Java语言(面向对象,中间代码,跨平台)
  • C#语言(面向对象,中间代码,.Net)
  • Prolog语言(逻辑推理,简洁性,表达能力,数据库和专家系统)
  • Python语言(解释型,面向对象,胶水语言)

其他知识点

软件开发小组的沟通路径受到小组组织形式和规模的影响。若任意小组成员之间均可能有沟通路径,则可用完全连通图来对开发小组的沟通路径建模,最多的沟通路径为完全连通图的边数,即n个成员的开发小组的沟通路径是n(n-1)/2,因此8个成员的开发小组的沟通路径有28条。

沟通渠道公式如下:M=n*(n-1)/ 2。M表示沟通渠道数,n表示项目中的成员数

脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,通常以文本(如 ASCII)保存,只在被调用时进行解释或编译。Python是一种脚本语言。

解释程序也称为解释器,它可以直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;而编译程序(编译器)则首先将源程序翻译成目标语言程序,然后在计算机上运行目标程序。这两种语言处理程序的根本区别是:

  • 在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;
  • 而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不产生独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。 分阶段编译器的工作过程如下图所示。其中,中间代码生成和代码优化不是必须的

记号流,词法分析的输出是记号流,也就是语法分析的输入。字符流,在Java中,根据处理的数据单位不同,分为字节流和字符流。字符流是由字符组成的,例如 FileReader、FileWriter、BufferedReader、BufferedWriter、InputStreamReader、OutputStreamWriter 等。与本题无关。源程序,词法分析的任务是把源程序的字符串转换成单词符号序列。分析树,如果没有语法错误,语法分析后就能正确的构造出其语法树。括号不匹配是典型的语法错误,会在语法分析阶段检测出来。

变量是内存单元的抽象,用于在程序中表示数据。当变量存储的是内存单元地址时,称为指针变量,或者说指针变量指向了另一个变量。指针量可以定义在函数或复合语句内,也可以定义在所有的函数之外,即可以是全局变量,也可以是局部变量。需要区分指针变量与指针所指向的变量,无论指针变量指向何种变量,其存储空间大小都是一样的。当指针变量指向数组中的一个元素时,对指针变量进行算术运算可以使其指向同一个数组中的其他元素。

编译和解释方式是翻译高级程序设计语言的两种基本方式。

  • 解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;
  • 而编译程序(编译器)则首先将源程序翻译成目标语言程序, 然后在计算机上运行目标程序。
  • 这两种语言处理程序的根本区别是:
    • 在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;
    • 而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释器。解释器翻译源程序时不产生独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。 程序执行的速度慢

许多程序设计语言规定,程序中的数据都必须具有类型,其作用包括
便于为数据合理分配存储单元
便于对参与表达式计算的数据对象进行检查
便于规定数据对象的取值范围及能够进行的运算

变量是计算机内存单元的抽象,在程序中表示数据,具有名称、类型、值、地址、作用域、存储类别等属性,其值在运行过程中由指令进行修改。

常量也用于在程序中表示数据,但常量在程序运行过程中不能修改,常量也具有类型,如整型常量、浮点型常量、字符串常量等,也称为字面量或文字。

编译是将高级语言源程序翻译成机器语言程序(汇编形式或机器代码形式),反编译是编译的逆过程。反编译通常不能把可执行文件还原成高级语言源代码,只能转换成功能上等价的汇编程序

在编写C/C++源程序时,为所定义的变量赋初始值是良好的编程习惯,而赋初值不是强制的要求,因此编译程序不检查变量是否赋初值。如果表达式中引用的变量从定义到使用始终没有赋值,则该变量中的值表现为一个随机数,这样对表达式的求值结果就是不确定的了。

程序设计语言的基本成分包括数据、运算、控制和传输等。 程序设计语言的控制成分包括顺序、选择和循环3种结构。

符号表在编译程序工作的过程中需要不断收集、记录和使用源程序中一些语法符号的类型和特征等相关信息。这些信息一般以表格形式存储于系统中。

  • HTML用于处理静态网页;
  • LISP一种基于λ演算的函数式编程语言
  • PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
  • Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网。
  • C++是一个接近系统底层的综合的,支持面向对象和范编程的程序设计语言,适用于开发要求很高效率的程序,例如大型游戏、大型企业应用、系统应用等。C++为面向对象的编译型语言,而非解释型语言。C/C++是编译型程序设计语言,常用于进行系统级软件的开发。
  • XML (可扩展标记语言)是标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
  • Python是一种面向对象、解释型计算机程序设计语言。 也是脚本语言。
  • JavaScript是脚本语言。
  • Prolog是逻辑型程序设计语言。

动态语言是指程序在运行时可以改变其结构,例如新的函数可以被引进、己有的函数可以被删除等在结构上的变化等。动态语言的类型检查是在运行时进行的,其优点是方便阅读,不需要写非常多的与类型相关的代码;缺点是不方便调试,命名不规范时会读不懂、不利于理解等。

脚本语言代表一套与系统程序设计语言不同的协定。它们牺牲执行速度和与系统程序设计语言相关的类型长度而提供更高的编程创作能力和软件重用。脚本语言更适合在联系复杂的应用程序中进行胶着(粘合)。为了简化连接组件的工作,脚本语言被设计为无类型的,脚本语言一般是面向字符的,因为字符为许多不同的事物提供了一致的描述。 事实上,脚本语言都是动态语言,而动态语言都是解释型语言,不管它们是否是面向对象的语言。

面向对象开发方法有Booch方法、Coad方法和OMT方法。Jackson方法是一种面向数据结构的开发方法。

正则表达式:在正规式中,符号*表示重复若干次(包括0次),因此正规式“中的表达式“(a*a)*,不能保证有偶数个a。同理,“(a* (ba*)*b)*”和“(a|b)* (aa)*”中对a的个数也没有限制,而在“(ab*a)*”中可以确保a的出现为偶数个。

编译过程中为变量分配存储单元所用的地址是逻辑地址程序运行时再映射为物理地址

一种程序设计语言规定其程序中的数据必须具有类型,好处如下:

  • 有利于在翻译程序的过程中为数据合理分配存储单元,因为程序设计语言为不同的数据类型规定了其所占的存储空间,如果数据类型确定,其所占的存储空间也是确定的。
  • 有利于对参与表达式计算的数据对象进行检查,因为知道数据的数据类型,我们就可以根据类型来判断该数据是否可以参与某表达式计算,如自加、自减的操作数不允许是浮点数,这只要根据数据的类型就能判断某操作数,是否能进行自加、自减运算。
  • 有利于规定数据对象的取值范围及能够进行的运算,根据数据类型,我们可以数据的存储空间,也同时能知道数据的表示范围,如C语言中的整型数据,它占两个字节(16位),能表示的数据范围就是 − 2 16 至 2 16 − 1 -2^{16}至2^{16}-1 2162161

程序运行时的用户内存空间一般划分为代码区、静态数据区、栈区和堆区,其中栈区和堆区也称为动态数据区。全局变量的存储空间在静态数据区。

运行时结合是动态绑定,编译时结合是静态绑定。

程序设计语言的语义分为静态语义和动态语义,其中静态语义分析方法是语法制导翻译,其基本思想是将语言结构的语义以属性的形式赋予代表此结构的文法符号,而属性的计算以语义规则的形式赋予文法的产生式。

非确定有限状态自动机与确定有限状态自动机的最大区别是它们的转移函数不同。确定有限状态自动机对每一个可能的输入只有一个状态的转移。非确定有限状态自动机对每一个可能的输入可以有多个状态转移,接受到输入时从这多个状态转移中非确定地选择一个。在本题中给出的图M1中,我们可以看到当在状态A输入0时,它可以转移到它自己,也可以转移到状态B,所以M1是非确定的。而M2中不存在这样的情况,因此是确定的有限自动机。

第九章 √ 多媒体 3分

第一节 音频相关概念

  • 声音的带宽
    • 人耳&乐器:20Hz ~ 20kHz
    • 说话:300Hz ~ 3400Hz
  • 采样
    • 采样频率: 采 样 频 率 = 1 采 样 周 期 采样频率=\frac {1}{采样周期} =1
    • 采样精度
    • 采样频率应为声音最高频率2倍
  • A/D转换:采样 -> 量化 -> 编码
  • 常见的音频格式:WAVE , MP3 , MIDI(乐器标准)
  • 每秒容量(bp/s)=采样频率(Hz)×量化/采样位数(位)×声道数÷8

多媒体技术基本概念

  • 亮度:画面的明亮程度
  • 色调(红,绿): 颜色的种类,如红色、绿色、蓝色等不同颜色就是指色调。同时画面整体颜色倾向,也是色调。
  • 饱和度: 色彩的纯洁性,即颜色的艳丽程度。

媒体

感觉媒体:指人们接触信息的感觉形式。如:视觉、听觉、触觉、嗅觉和味觉等。
表示媒体:指信息的表示形式(编码形式)。如:文字、图形、图像、动画、音频和视频等。
显示媒体(表现媒体):表现和获取信息的物理设备。如:输入显示媒体键盘、鼠标和麦克风等;输出显示媒体显示器、音箱等。
存储媒体:存储数据的物理设备,如磁盘、光盘和内存等。
传输媒体:传输数据的物理载体,如电缆、光缆和交换设备等。

第二节 多媒体相关计算问题

1,图像容量计算

条件示例
知道像素,位数每个像素为16位,图像为640×480像素,求容量
640 × 480 × 16 ÷ 8 = 614400 B 640×480×16÷8=614400B 640×480×16÷8=614400B
知道像素,色数640×480像素,256色的图像,求容量:
640 × 480 × l o g 2 ( 256 ) ÷ 8 = 307200 B 640×480×log_2(256)÷8=307200B 640×480×log2(256)÷8=307200B

2,音频容量计算

容量 = 采样频率(Hz)×量化/采样位数(位)×声道数÷8

3,视频容量计算

容量 = 每一帧图像的容量(B)× 每秒帧数 × 时间 + 音频容量 × 时间

例题

某数码相机内置128MB的存储空间,拍摄分辨率设定为1600x1200像素,颜色深度为24位,若不采用压缩存储技术,便用内部存储器最多可以存储( ) 张照片。
A.12 B.22 C.13 D23

答案:D 1600 ∗ 1200 ∗ 24 ÷ 8 = 5760000 B ≈ 5.49 M B − − − 128 M B ÷ 5.49 M B = 23.7 张 1600*1200*24÷8 = 5760000B ≈ 5.49MB---128MB÷5.49MB = 23.7张 1600120024÷8=5760000B5.49MB128MB÷5.49MB=23.7

CD上声音的采样频率为44.1kHz,样本精度为16bit,双声道立体声,那么其未经压缩的数据传输率为( )
A.88.2kb/s B.705.6kb/s C.1411.2kb/s D.1536.0kb/s

答案:C 44.1 k H z ∗ 16 b i t ∗ 2 位 = 1411.2 k b 44.1kHz*16bit*2位 = 1411.2kb 44.1kHz16bit2=1411.2kb

若视频图像每帧的数据量为6.4MB,帧速率为30帧/秒,则显示10秒的视频信息,其原始数据量为(3)_MB。
A.64 B.192 C.640 D.1920

答案:D 6.4 M B ∗ 30 帧 / 秒 ∗ 10 秒 = 1920 M B 6.4MB*30帧/秒*10秒 = 1920MB 6.4MB30/10=1920MB

第三节 常见的多媒体标准

  • JPEG:有损,RGB转YUV,离散余弦
  • JPEG-2000:有损&无损,压缩比更高,小波变换,医学图像应用
  • MPEG-1:离散余弦,VCD,MP3
  • MPEG-2:离散余弦,Huffman,DVD,有线/卫星电视,AAC
  • MPEG-4:网络应用/可视电话,无线通信,增强交互性,数码权限管理,多媒体传输集成框架
  • MPEG-7:多媒体内容描述接口,具备描述功能,不是编码标准
  • MPEG-21:融合不同协议,制定新标准,标准集成

数据压缩技术

  • 空间冗余(几何冗余)
  • 时间冗余
  • 视觉冗余
  • 信息熵冗余
  • 结构冗余
  • 知识冗余

损压缩和无损压缩

一类是无损压缩编码法( Lossless compression coding),也称冗余压缩法或熵编码法;
另-类是有损压缩编码法( Loss compression coding )也称为熵压缩法。

在这里插入图片描述

其他知识点

DPI即每英寸的点数,根据题目的描述,得(300×600)/(2×4)=150 * 150 。

目前,计算机数字音乐合成技术主要有FM和Wave Table,其中FM即频率调制,在电子音乐合成技术中,是最有效的合成技术之一,而WaveTable即波形表合成,它是一种真实的音乐合成技术,其合成的音乐音质更好。

国际电话电报咨询委员会(CCITT)将媒体分为感觉媒体、 表示媒体、 表现媒体、存储媒体和传输媒体5类。

  • 感觉媒体指直接作用于人的感觉器官.,使人严生内接感觉的媒体, 如引起听觉反应的声音、引起视觉反应的图像等;

  • 传输媒体指传输表示媒体的物理介质,如电缆、光缆。电磁波等;

  • 表示媒体指传输感觉媒体的中介媒体,即用于数据交换的编码,如图像编码、文本编码和声音编码等;

  • 表现媒体是指进行信息输入和输出的媒体,如键盘、鼠标、话筒,以及显示器、打印机、喇叭等;

  • 存储媒体指用于存储表示媒体的物理介质,如硬盘、光盘等。

  • JPEG累进(或增量、渐进、递增、progressive)编码模式,这样可以实现图像内容的方式传输,在浏览器上的直观效果是无需过久等待即可看到模糊的图像,然后图像显示内容由模糊逐渐变得清晰。

  • GIF图像文件格式以数据块为单位来存储图像的相关信息,采用了LZW无损压缩算法按扫描行压缩图像数据。它可以在一个文件中存放多幅彩色图像,每一幅图像都由一个图像描述符、可选的局部彩色表和图像数据组成。如果把存储于一个文件中的多幅图像逐幅读出来显示到屏幕上,可以像播放幻灯片那样显示或者构成简单的动画效果。

  • GIF定义了两种数据存储方式,一种是按行连续存储,存储顺序与显示器的显示顺序相同;另一种是按交叉方式存储,由于显示图像需要较长的时间,使用这种方法存放图像数据,用户可以在图像数据全部收到之前这幅图像的全貌,而不觉得等待时间太长。

  • 图像信号是一种模拟信号,计算机要对它进行处理,必须将它转换成为数字图像信号,即用二进制数字的编码形式来表示图像,转换过程一般称为A/D转换(模数转换)。将图像播放出来,需进行D/A转换(数模转换)。

  • 音调(Pitch)用来表示人的听觉分辨个声音的调子高低的程度,主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对定频率的纯音、低频纯音的音调随声强增加而下降,高频纯者的音调却随强度增加而上升。

  • 音色(Timbre)是指声音的感觉特性,不同的人声和不同的声响都能区分为不同的音色,即音频泛音或谐波成分

  • 音高是指各种不同高低的声音(即首的高度),是首的基本特征的一种。

  • 改变数字载波频率可以改变乐音的音调,改变它的幅度可以改变乐音的音高。

语音信号频率范围是300Hz〜3.4kHz,也就是不超过4kHz,按照奈奎斯特定律,要保持话音抽样以后再恢复时不失真,最低抽样频率是2倍的最高频率,即8kHz就可以保证信号能够正确恢复,因此将,字语音的采样频率定义为8kHz。


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进