范文一:注册会计师在实施分析程序时常用的比率
注册会计师在实施分析程序时常用的比率
本附录列举了注册会计师在进行比率分析时常用的一些指标。需要注意的是,对于某些行业,如银行和保险业,由于其特定的行业特点,往往有其专门的某些比率,注册会计师应根据被审计单位的实际情况,运用职业判断决定使用哪种比率进行分析。 比率分析所涉及的内容通常可以分为五个方面:(1)流动性;(2)资产管理比率;(3)
负债比率;(4)盈利能力比率;(5)生产能力比率。
一、流动性
流动比率=流动资产?流动负债
速动比率=(流动资产-存货)?流动负债
现金比率=现金?流动负债
已获利息倍数=息税前利润?利息费用
(税前利润,固定支出)?固定支出 固定支出保障倍数=
经营活动现金流量与固定支出比率=经营活动净现金流量?固定支出 利息与长期负债比率=利息费用?长期负债×100,
二、资产管理比率
存货周转率=主营业务成本?存货平均余额×100,
应收账款周转率=主营业务收入净额?应收账款平均余额×100, 营运资金周转率=主营业务收入净额?(流动资产,流动负债)×100, 总资产周转率=主营业务收入净额?平均资产总额×100, 三、负债比率
资产负债率=负债总额?资产总额×100,
负债权益比率=(负债总额?所有者(股东)权益总额)×100, 长期负债与权益比率=长期负债?所有者(股东)权益总额×100, 负债与有形净值比率=负债总额?[所有者(股东)权益总额,无形资 产]×100,
长期负债与总资产比率=长期负债?资产总额×100,
资产权益率=所有者(股东)权益总额?资产总额×100,
四、盈利能力比率
销售毛利率=[(销售收入-销售成本)?销售收入]×100, 主营业务利润率=主营业务利润?主营业务收入净额×100, 总资产回报率=息税前利润?资产总额×100%
权益回报率=息税前利润?所有者(股东)权益总额×100, 五、生产能力比率
原材料成本占收入比例=销售成本中的原材料成本?相应的销售收入×100, 人工成本占收入比例=销售成本中的人工成本?相应的销售收入×100, 人均收入=收入总额?员工人数
人均成本=销售成本?生产员工人数
人均人工成本=人工成本?相应的员工人数
营业费用和管理费用占收入比例=(营业费用,管理费用)?销售收入×100,
注册会计师对财务报表项目可能实施的分析程序
本附录列举了注册会计师对财务报表项目可能实施的分析程序。需要注意的是,这些并不能涵盖注册会计师所有可能实施的分析程序,所列举的分析程序并非对每个被审计单位都适用。
一、现金和银行存款
1.根据被审计单位融资政策等复核现金和银行存款余额。
2.根据平均现金和银行存款余额复核利息收入。
二、应收账款
1.比较当年度及以前年度的应收账款余额,并查明异常情况的原因。
2.比较当年度及以前年度应收账款的账龄,并查明异常情况的原因。
3.比较当年度及以前年度应收账款与主营业务收入的比率,结合当前经济环境及信用政策判断其合理性。
4.比较当年度及以前年度应收账款的回收期,结合当前经济环境、信用政策及行业平均水平判断其合理性。
5.比较当年度及以前年度坏账准备与主营业务收入的比率、坏账准备与应收账款的比率、坏账损失,并查明异常情况的原因。
6.比较截止日前后两个月末应收账款的余额、主要客户及其余额,并查明异常情况的原因。 三、存货采购
1.比较当年度及以前年度原材料成本、制造费用和直接人工占生产成本百分比的变动,并对异常情况作出解释。
2.比较存货购入数量与耗用或销售数量,联系本年度存货的变动,并对异常变动情况作出解释。
3.核对存货采购的标准成本与实际成本。
4.比较当年度及以前年度下述项目的增减变动,并对异常情况作出解
释:
——采购费用;
——各种采购费用占存货采购的比例。
5.按月/季度比较实际发生的采购费用与预算的差异。
6.比较各月存货采购的金额并对异常波动作出解释。
7.比较当年度及以前年度从供应商得到的现金折扣。
8.将采购数量与平均单价之积与账面采购金额相比较。
四、存货
1.按存货品种及存放地点、存货类别,比较当年度及以前年度数量和金额的增减变动,并对异常情况作出解释。
2.按存货成本构成、存货平均成本、材料采购价格差异,比较当年度
及以前年度的增减变动,并对异常情况作出解释。
3.比较当年度及以前年度直接材料、直接人工、制造费用占生产成本的比例,并查明异常情况的原因。
4.比较当年度及以前年度存货跌价准备占存货余额的比例,并查明异常情况的原因。 5.按存货残损情况、存货账龄、库存可用月数,比较当年度及以前年
度的增减变动,并对异常情况作出解释。
6.比较截止日前后两个月的产品毛利率,并对异常波动作出解释。
7.比较当年度及以前年度已售存货的数量,并查明异常情况的原因。
8.比较存货库存量与生产量及库存能力的差异,并分析其合理性。
9.比较存货的实际用量与预算用量的差异,并分析其合理性。
10.比较当年度与以前年度的存货周转率,并查明异常情况的原因。
11.核对下列相互独立部门的数据:(,)仓库记录的材料领用量与生产部门记录的材料领用量;(,)工资部门记录的人工成本与生产部门记录的工时和工资标准之积;(,)仓库记录的产成品入库量与生产部门记录的产品生产量;(,)发票记录的数量与发货量;(,)发票记录的数量与订货量;(,)发票记录的数量与主营业务成本记录的销售量;(,)产品销售量与生产量或采购量;(,)产品销售量和平均单位成本之积与账面产品销售成本。
五、投资
1.比较当年度及以前年度投资余额、收购及转让投资的增减变动,并对异常情况作出解释。 2.比较当年度及以前年度股利收入、利息收入及按持股比例计算投资收益的增减变动,并对异常情况作出解释。
3.比较被审计单位当年度、以前年度及市场的平均投资收益率。
4.按债权性投资的票面价值乘以利率测算利息收入。
六、固定资产
1.按类别分析当年和以前年度的固定资产、在建工程增减变动情况,并将新增固定资产与新增产品产量进行比较。
2.按类别分析固定资产当年度折旧额和以前年度折旧额,如将折旧额与固定资产账面原值进行比较,按类别将固定资产账面价值与平均折旧率的乘积与账面折旧计提数进行比较。 3.分析当年和以前年度固定资产维修费用占固定资产原值、营业收入和费用总额的比率。
七、无形资产
1.按类别比较无形资产当年度及以前年度的摊销,并对异常情况作出解释。
2.将无形资产账面价值与平均摊销率的乘积与无形资产账面摊销额进行比较。
八、待摊费用、待处理财产损失、长期待摊费用、其他长期资产
分析待摊费用、待处理财产损失、长期待摊费用、其他长期资产等占资产总额的比率,以评估合理性。
九、应付账款
1.比较当年度及以前年度应付账款的增减变动,并对异常情况作出解释。 2.比较当年度及以前年度应付账款的构成、账龄及主要供货商的变化,并查明异常情况的原因。
3.比较最近三个月及当年度平均应付账款支付期的变动情况。
4.比较当年度及以前年度应付账款支付期的变动情况。
5.比较截止日前后两个月应付账款的支付期、余额构成及主要供货商的变化,并查明异常情况的原因。
6.比较当年度及以前年度信用额度和折扣及其与采购金额的比例,并查明异常情况的原因。 十、借款和利息费用
1.计算借款平均实际利率并同以前年度及市场平均利率相比较。
2.根据借款平均余额、平均借款利率测算当期利息费用和利息,并与账面记录进行比较。 十一、主营业务收入
1.将收入、成本及毛利率与同行业数据对比分析,分析差异的合理性。
2.比较当年度及以前年度按不同品种的主要产品的收入和毛利率,并查明异常情况的原因。
3.比较当年度及以前年度按销售区域的主要产品的主营业务收入、毛利率,并查明异常情况的原因。
4.比较当年度及以前年度销售退回、销售折扣与折让的总额及其与主营业务收入的比率,并查明异常情况的原因。
5.比较当年度及以前年度截止日前后两个月的主营业务收入、毛利率,销售退回、销售折扣与折让的总额及其与主营业务收入的比率,并查明异常情况的原因。 6.比较当年度及以前年度各月主营业务收入,并查明异常波动的原因。
7.比较当年度及以前年度现销与赊销的比例,并查明异常情况的原因。
8.比较当年度及以前年度销售佣金率、销售折扣率、销售运费率和其他销售费用率,并查明异常情况的原因。
9.根据产品生产能力、仓储能力和运输能力,原材料采购数量及单位产品材料耗用定额,生产工人数量、生产工时及劳动生产率分析产品生产量和销售量的合理性,并查明异常情况的原因。
10.核对相互独立部门的数据,如:(,)发票上记载的销售数量与发货单记载的数量、定单数量和产品销售成本中的销货数量;(,)账面销售数量与商品采购和生产数量;(,)出纳记录的销售收款与应收账款贷方发生额;(,)应收账款借方发生额与销售定单金额总计;(,)运货部门记录的运货数与仓库记录的发货量;(,)主营业务收入贷方发生额与发运部门记录的运货价值;(,)账面销售额与增值税纳税申报的收入。 11.了解下游企业产品同期销售情况,分析被审计单位产品销售量的合理性,并查明异常情
况的原因。
12.将营业收入、主营业务利润与经营活动产生的现金流量、净利润进行对比分析,判断营业收入、主营业务利润的合理性。
13.将营业收入与收入相关的税金如营业税、增值税等进行对比分析,判断其比例关系是否合理。
14.将营业收入与成本、销售佣金、广告费用、运输费用、保险费用等进行对比分析,判断营业收入的合理性。
十二、营业成本
1.比较当年度及以前年度不同品种产品的主营业务成本和毛利率,并查明异常情况的原因。 2.比较当年度及以前年度各月主营业务成本的波动趋势,并查明异常
情况的原因。
3.比较被审计单位与同行业统计资料的毛利率,并查明异常情况的原因。 4.比较当年度及以前年度截止日前后两个月的毛利率,并查明异常情况的原因。 5.比较当年度及以前年度的存货周转率,并查明异常情况的原因。
6.比较当年度及以前年度主要产品的单位成本,并查明异常情况的原因。 7.比较当年度及以前年度各月主要产品的单位成本,并查明异常情况
的原因。
十三、职工工资成本
1.比较当年度及以前年度下述项目的增减变动,并对异常情况作出解释: ——各部门或生产线雇员及工资成本;
——选取期间的工资成本;
——日、周、月的工资支付。
2.比较当年度及以前年度下述项目的增减变动,并对异常情况作出解释: ——各部门或生产线雇员人数;
——符合领取津贴人员的人数;
——各种类雇员的平均工资。
3.比较当年度及以前年度生产人员工资与主营业务成本比率的增减变动。 4.比较个人所得税与工资、薪金所得。
5.比较当年度及以前年度管理人员与直接人工比率的变动。
6.比较当年度及以前年度员工津贴、工资、工作小时与雇员人数的变动情况。 7.比较奖金与工资的关系。
8.分析雇员人数,包括对当年度及以前年度雇员的核对。
9.比较当年度及以前年度与员工有关负债的变动情况。
10.核对下列相互独立部门的数据:
——工资部门记录的工资支出与出纳记录的工资支付数;
——工资部门记录的工时与生产部门记录的工时。
11.用以下方法测算人员工资:
——平均雇员人数乘以人均工资;
——产品产量乘以计件工资。
12.考虑下述因素调整各部门以前年度的人工成本并分析当年度人工成本: ——雇员人数变化;
——雇员组成变化;
——其他工资增长因素。
十四、营业费用、管理费用及制造费用
1.计算分析各个月份营业费用总额及主要项目金额占主营业务收入的比率,并与上一年度进行比较,判断变动的合理性。
2.计算分析各个月份营业费用、管理费用中主要项目发生额及占费用
总额的比率,并与上一年度进行比较,判断其变动的合理性。
3.计算分析制造费用各月各项费用构成情况,并与上一年度进行对比,判断变动的合理性。 4.将营业费用、管理费用及制造费用中的工资、折旧等与相关的资产、负债科目核对,分析其勾稽关系的合理性。
实质性分析程序应用举例
一、背景
A公司生产某种化工产品,其产品主要通过公司的销售部及分销商进行销售。A公司非常关注其产品质量,并主要根据其产品质量确定销售价格。由于其生产的产品的特点,A公司的产品价格通常比较稳定。2001,2003年期间,A公司的销售情况一直增长缓慢。2004年11月,A公司从它的竞争对手B公司那里雇用了一个新的销售总监M,M将其原来在B公司的客户带到了A公司,使得A公司2004年12月份的销售量增加了25,。并且A公司在2005年全年一直保持着向这些客户的销售。主要由于客户的增加,
A公司2005年度的销售额比2004年增加了28.7%。在风险评估程序中,通过比率分析,注册会计师发现,A公司的材料采购成本与销售收入同比例增加,但是人工成本与制造费用占销售收入的比例下降。2004年和2005年A公司的部分财务数据如下:
年度2005 年2004 年
度度 金额金额占销售收入的 占销售收入的 :人民币千元::人民币千元:项目
销售收入2 203100.001 712100.0比例:,: 比例:,: 销售成本:
材料成本86739.468039.7
人工成本37817.235020.4
制造费用1175.31106.4
销售成本小计1 36261.91 14066.5
毛利84138.157233.5
注册会计师设定的重要性水平为人民币40,000元。
二、对收入实施实质性分析程序
在2004年A公司销售收入已经审计的基础上,A公司2005年的销售收入能够被合理预期,注册会计师决定使用实质性分析程序对2005年度的销售收入的发生、完整和准确认定获取一定的保证水平。
(一)建立期望值
与2004年度相比,A公司的销售在2005年度发生了下述变化:
(1)由于客户的增加,2005年度1,11月份的销售额与2004年度相同期间相比,增加了25,,注册会计师已经在对应收账款进行审计的过程中,通过向客户函证的方式证实了这一增加;
(2)自2005年4月起,A公司的平均销售价格增加了5,。注册会计师通过检查A公司的标准价格表核实了这一事项。基于上述情况,注册会计师决定将A公司2005年度的销售收入按月份进行拆分,以建立期望值。拆分结果如下:
单位:人
民币千元
销售额增加销售价格2005年度2005年度实月份 2004年度 差异
25,增加5, 期望值 际发生额
113734 171169(2)
213834 1721731
313433 1671703
4141359185159(26)*
513935918320017*
61383491811832
71433691881880
81473791931941
91453691901911
101433691881902
1113935918319512*
12168--817619115*
合计17123858021772203
根据上述分析,有四个月份的差异额超过了注册会计师设定的可接受差异额(在上表中以*标识)。
(二)确定可接受的差异额 注册会计师计划从实质性分析程序中获取的计划保证水平较高,可接受的差异额确定为人民币10000元。
(三)分析和调查差异
1.4月和5月的差异。四月份的实际值比期望值低26000元,而5月
份的实际值比期望值高17000元。就此,注册会计师首先询问了被审计单位管理层。管理层回答由于未曾对4月和5月的收入进行调查,不能解释上述差异。注册会计师接着与财务主管人员讨论上述差异,财务主管回忆
说4月份有一名销售人员N在结账以后才提交其四月份的销售单据,为方便起见,财务部门将这些四月份的销售记录在5月份的账簿中。
针对这一解释,注册会计师检查了A公司5月份销售账簿中与N有关的销售记录,并抽取了其中一部分追查到原始凭证。通过这些程序,注册会计师确定,记录在5月份中的属于4月份的销售共计人民币20000元,考虑这一因素的影响,4月份和5月份的差异额将低于注册会计师设定的可接受的差异额。因此,注册会计师决定不再执行进一步调查工作。
2.11月和12月的差异。11月和12月实际销售额分别比期望值高人民
币12000元及15000元。注册会计师对此予以进一步调查,询问了被审计单位的管理层。管理层解释,在2005年10月初公司与一个大型分销商签订了代理合同,此外,销售总监M也在10月份争取了两个新的大客户,因此2005年4季度的销售比以往年度有所增加是正常的情形。
针对管理层的解释,注册会计师检查了销售部门的月度总结报告,发现销售部门确实在10月份采取了行动并取得了管理层所说的客户。然后注册会计师对新增客户于2005年度的销售记录进行了检查,并同时检查了这些销售的收款情况,并未发现异常。经检查,新增客户在2005年11月和
12月分别使得A公司的销售额增加了人民币8000元和10000元。考虑这
一因素的影响,A公司11月和12月的差异额将低于注册会计师设定的可接受的差异额,因此注册会计师决定不再进行进一步调查。
三、销售成本的实质性分析
(一)材料成本
由于A公司所使用的原材料价格在2005年度相对稳定,整体加工过程亦无变化,
年度的数字已经过审计,而2005年度的收入也已执行了上述分析程序,并且2004
并进行了审计。因此,注册会计师在2004年度材料成本占销售收入比例的基础上建立对2005年材料成本的期望值。由于2005
月以后A公司的销售价格平均增加了5,,因此在计算材料成本的期望 年4
值时应消除这部分涨价的影响。另外,由于注册会计师仅需要在销售成本的实质性程序中取得较低水
平的确信度,因此可以接受一个较大的差异。注册会计师决定,在销售成
本项目中,可接受的差异为人民币32000元。
材料成本的期望值,[1至3月份的销售收入,4至12月份的销售收入×1?(1+5%)]×2004年度材料成本占销售收入的比例
,(512000+1691000×0.952)×39.7%
=842367(元)期望值与实际值的差异,842367-867000,-24633(元) 由于上述差异小于注册会计师设定的可接受的差异水平,因此注册会计师决定不再进行进一步调查。
(二)人工成本
正如上文提到的,管理层认为2005年度的员工人数与2004年相比并无变化。注册会计师从人力资源部门取得了2004年和2005年度的员工清单,对员工人数的变化进行了检查,并未发现变化。同时,A公司在每年1月均会根据对上年度的考核结果调整员工薪酬,注册会计师取得2005年度
1月份A公司调整员工薪酬的董事会决议,这次调整使得员工薪酬平均增加
3.5%,注册会计师检查了2005年度薪酬支付记录,证实A公司已经执行了
调整薪酬的决议。
注册会计师设定的人工成本的可接受差异额为人民币32000元。人工成本的期望值,2004年度人工成本×103.5,,350000×103.5,=362250(元)
378000,15750(元)由于上述差异小于注册会计师设定的可接差异额,362250-
受的差异水平,因此注册会
计师决定不再进行进一步调查。审计结论:对于销售收入,超过注册会计师设定的可接受的差异额的
所有差异已经得到解释和证实。对于销售成本中的材料成本和人工成本,
其实际发生额与注册会计师建立的期望值之间的差异均小于注册会计师设定的可接受的差异额。因此,销售收入和材料成本、人工成本没有重大错报。
范文二:内部审计(李江涛)实施分析程序时常用的比率
审计人员在实施分析程序时常用的比率
本附录列举了审计人员在进行比率分析时常用的一些指标。需要注 意的是,对于某些行业,如银行和保险业,由于其特定的行业特点,往往 有其专门的某些比率,审计人员应根据被审计单位的实际情况,运用职 业判断决定使用哪种比率进行分析。
比率分析所涉及的内容通常可以分为五个方面:(1)流动性;(2)资 产管理比率;(3)负债比率;(4)盈利能力比率;(5)生产能力比率。
一、流动性
流动比率=流动资产?流动负债
速动比率=(流动资产-存货)?流动负债
现金比率=现金?流动负债
已获利息倍数=息税前利润?利息费用
固定支出保障倍数=(税前利润,固定支出)?固定支出
经营活动现金流量与固定支出比率=经营活动净现金流量?固定支出
利息与长期负债比率=利息费用?长期负债×100,
二、资产管理比率
存货周转率=主营业务成本?存货平均余额×100,
应收账款周转率=主营业务收入净额?应收账款平均余额×100,
营运资金周转率=主营业务收入净额?(流动资产,流动负债)×100,
总资产周转率=主营业务收入净额?平均资产总额×100,
三、负债比率
资产负债率=负债总额?资产总额×100,
负债权益比率=(负债总额?所有者(股东)权益总额)×100,
长期负债与权益比率=长期负债?所有者(股东)权益总额×100,
负债与有形净值比率=负债总额?[所有者(股东)权益总额,无形资
产] ×100,
长期负债与总资产比率=长期负债?资产总额×100,
资产权益率=所有者(股东)权益总额?资产总额×100,
四、盈利能力比率
销售毛利率=[(销售收入-销售成本)?销售收入]×100,
主营业务利润率=主营业务利润?主营业务收入净额×100,
总资产回报率=息税前利润?资产总额 ×100%
权益回报率=息税前利润?所有者(股东)权益总额×100,
1
五、生产能力比率
原材料成本占收入比例=销售成本中的原材料成本?相应的销售收入×100,
人工成本占收入比例=销售成本中的人工成本?相应的销售收入×100,
人均收入=收入总额?员工人数
人均成本=销售成本?生产员工人数
人均人工成本=人工成本?相应的员工人数
营业费用和管理费用占收入比例=(营业费用,管理费用)?销售收入×100,
2
审计人员对财务报表项目可能实施的分析程序
本附录列举了审计人员对财务报表项目可能实施的分析程序。需要注意的是,这些并不能涵盖审计人员所有可能实施的分析程序,所列举的分析程序并非对每个被审计单位都适用。
一、现金和银行存款
1.根据被审计单位融资政策等复核现金和银行存款余额。
2.根据平均现金和银行存款余额复核利息收入。
二、应收账款
1.比较当年度及以前年度的应收账款余额,并查明异常情况的原因。
2.比较当年度及以前年度应收账款的账龄,并查明异常情况的原因。
3.比较当年度及以前年度应收账款与主营业务收入的比率,结合当前经济环境及信用政策判断其合理性。
4.比较当年度及以前年度应收账款的回收期,结合当前经济环境、信用政策及行业平均水平判断其合理性。
5.比较当年度及以前年度坏账准备与主营业务收入的比率、坏账准备与应收账款的比率、坏账损失,并查明异常情况的原因。
6.比较截止日前后两个月末应收账款的余额、主要客户及其余额,并查明异常情况的原因。
三、存货采购
1.比较当年度及以前年度原材料成本、制造费用和直接人工占生产成本百分比的变动,并对异常情况作出解释。
2.比较存货购入数量与耗用或销售数量,联系本年度存货的变动,并对异常变动情况作出解释。
3.核对存货采购的标准成本与实际成本。
4.比较当年度及以前年度下述项目的增减变动,并对异常情况作出解释:
——采购费用;
——各种采购费用占存货采购的比例。
5.按月/季度比较实际发生的采购费用与预算的差异。
6.比较各月存货采购的金额并对异常波动作出解释。
7.比较当年度及以前年度从供应商得到的现金折扣。
8.将采购数量与平均单价之积与账面采购金额相比较。
四、存货
1.按存货品种及存放地点、存货类别,比较当年度及以前年度数量和金额的增减变动,并对异常情况作出解释。
2.按存货成本构成、存货平均成本、材料采购价格差异,比较当年度及以前年度的增减变动,并对异常情况作出解释。
3
3.比较当年度及以前年度直接材料、直接人工、制造费用占生产成本的比例,并查明异常情况的原因。
4.比较当年度及以前年度存货跌价准备占存货余额的比例,并查明异常情况的原因。
5.按存货残损情况、存货账龄、库存可用月数,比较当年度及以前年度的增减变动,并对异常情况作出解释。
6.比较截止日前后两个月的产品毛利率,并对异常波动作出解释。
7.比较当年度及以前年度已售存货的数量,并查明异常情况的原因。
8.比较存货库存量与生产量及库存能力的差异,并分析其合理性。
9.比较存货的实际用量与预算用量的差异,并分析其合理性。
10.比较当年度与以前年度的存货周转率,并查明异常情况的原因。
11.核对下列相互独立部门的数据:(,)仓库记录的材料领用量与生产部门记录的材料领用量;(,)工资部门记录的人工成本与生产部门记录 的工时和工资标准之积;(,)仓库记录的产成品入库量与生产部门记录的 产品生产量;(,)发票记录的数量与发货量;(,)发票记录的数量与订 货量;(,)发票记录的数量与主营业务成本记录的销售量;(,)产品销 售量与生产量或采购量;(,)产品销售量和平均单位成本之积与账面产品 销售成本。
五、投资
1.比较当年度及以前年度投资余额、收购及转让投资的增减变动,并对异常情况作出解释。
2.比较当年度及以前年度股利收入、利息收入及按持股比例计算投资收益的增减变动,并对异常情况作出解释。
3.比较被审计单位当年度、以前年度及市场的平均投资收益率。
4.按债权性投资的票面价值乘以利率测算利息收入。
六、固定资产
1.按类别分析当年和以前年度的固定资产、在建工程增减变动情况,并将新增固定资产与新增产品产量进行比较。
2.按类别分析固定资产当年度折旧额和以前年度折旧额,如将折旧额与固定资产账面原值进行比较,按类别将固定资产账面价值与平均折旧率的乘积与账面折旧计提数进行比较。
3.分析当年和以前年度固定资产维修费用占固定资产原值、营业收入和费用总额的比率。
七、无形资产
1.按类别比较无形资产当年度及以前年度的摊销,并对异常情况作出解释。
2.将无形资产账面价值与平均摊销率的乘积与无形资产账面摊销额进行比
4
较。
八、待处理财产损失、长期待摊费用、其他长期资产
分析待处理财产损失、长期待摊费用、其他长期资产等占 资产总额的比率,以评估合理性。
九、应付账款
1.比较当年度及以前年度应付账款的增减变动,并对异常情况作出解释。
2.比较当年度及以前年度应付账款的构成、账龄及主要供货商的变化,并查明异常情况的原因。
3.比较最近三个月及当年度平均应付账款支付期的变动情况。
4.比较当年度及以前年度应付账款支付期的变动情况。
5.比较截止日前后两个月应付账款的支付期、余额构成及主要供货商的变化,并查明异常情况的原因。
6.比较当年度及以前年度信用额度和折扣及其与采购金额的比例,并查明异常情况的原因。
十、借款和利息费用
1.计算借款平均实际利率并同以前年度及市场平均利率相比较。
2.根据借款平均余额、平均借款利率测算当期利息费用和利息,并与账面记录进行比较。
十一、主营业务收入
1.将收入、成本及毛利率与同行业数据对比分析,分析差异的合理性。
2.比较当年度及以前年度按不同品种的主要产品的收入和毛利率,并查明异常情况的原因。
3.比较当年度及以前年度按销售区域的主要产品的主营业务收入、毛利率,并查明异常情况的原因。
4.比较当年度及以前年度销售退回、销售折扣与折让的总额及其与主营业务收入的比率,并查明异常情况的原因。
5.比较当年度及以前年度截止日前后两个月的主营业务收入、毛利率,销售退回、销售折扣与折让的总额及其与主营业务收入的比率,并查明异常情况的原因。
6.比较当年度及以前年度各月主营业务收入,并查明异常波动的原因。
7.比较当年度及以前年度现销与赊销的比例,并查明异常情况的原因。
8.比较当年度及以前年度销售佣金率、销售折扣率、销售运费率和其他销售费用率,并查明异常情况的原因。
9.根据产品生产能力、仓储能力和运输能力,原材料采购数量及单位产品
5
材料耗用定额,生产工人数量、生产工时及劳动生产率分析产品生产量和销售量的合理性,并查明异常情况的原因。
10.核对相互独立部门的数据,如:(,)发票上记载的销售数量与发货单记载的数量、定单数量和产品销售成本中的销货数量;(,)账面销售数量与商品采购和生产数量;(,)出纳记录的销售收款与应收账款贷方发生额;(,)应收账款借方发生额与销售定单金额总计;(,)运货部门记录的运货数与仓库记录的发货量;(,)主营业务收入贷方发生额与发运部门记录的运货价值;(,)账面销售额与增值税纳税申报的收入。
11.了解下游企业产品同期销售情况,分析被审计单位产品销售量的合理性,并查明异常情况的原因。
12.将营业收入、主营业务利润与经营活动产生的现金流量、净利润进行对比分析,判断营业收入、主营业务利润的合理性。
13.将营业收入与收入相关的税金如营业税、增值税等进行对比分析,判断其比例关系是否合理。
14.将营业收入与成本、销售佣金、广告费用、运输费用、保险费用等进行对比分析,判断营业收入的合理性。
十二、营业成本
1.比较当年度及以前年度不同品种产品的主营业务成本和毛利率,并查明异常情况的原因。
2.比较当年度及以前年度各月主营业务成本的波动趋势,并查明异常情况的原因。
3.比较被审计单位与同行业统计资料的毛利率,并查明异常情况的原因。
4.比较当年度及以前年度截止日前后两个月的毛利率,并查明异常情况的原因。
5.比较当年度及以前年度的存货周转率,并查明异常情况的原因。
6.比较当年度及以前年度主要产品的单位成本,并查明异常情况的原因。
7.比较当年度及以前年度各月主要产品的单位成本,并查明异常情况的原因。
十三、职工工资成本
1.比较当年度及以前年度下述项目的增减变动,并对异常情况作出解释:
——各部门或生产线雇员及工资成本;
——选取期间的工资成本;
——日、周、月的工资支付。
2.比较当年度及以前年度下述项目的增减变动,并对异常情况作出解释:
——各部门或生产线雇员人数;
——符合领取津贴人员的人数;
——各种类雇员的平均工资。
6
3.比较当年度及以前年度生产人员工资与主营业务成本比率的增减变动。
4.比较个人所得税与工资、薪金所得。
5.比较当年度及以前年度管理人员与直接人工比率的变动。
6.比较当年度及以前年度员工津贴、工资、工作小时与雇员人数的变动情况。
7.比较奖金与工资的关系。
8.分析雇员人数,包括对当年度及以前年度雇员的核对。
9.比较当年度及以前年度与员工有关负债的变动情况。
10.核对下列相互独立部门的数据:
——工资部门记录的工资支出与出纳记录的工资支付数;
——工资部门记录的工时与生产部门记录的工时。
11.用以下方法测算人员工资:
——平均雇员人数乘以人均工资;
——产品产量乘以计件工资。
12.考虑下述因素调整各部门以前年度的人工成本并分析当年度人工成本:
——雇员人数变化;
——雇员组成变化;
——其他工资增长因素。
十四、营业费用、管理费用及制造费用
1.计算分析各个月份营业费用总额及主要项目金额占主营业务收入的比率,并与上一年度进行比较,判断变动的合理性。
2.计算分析各个月份营业费用、管理费用中主要项目发生额及占费用总额的比率,并与上一年度进行比较,判断其变动的合理性。
3.计算分析制造费用各月各项费用构成情况,并与上一年度进行对比,判断变动的合理性。
4.将营业费用、管理费用及制造费用中的工资、折旧等与相关的资产、负债科目核对,分析其勾稽关系的合理性。
7
实质性分析程序应用举例
一、背景
A 公司生产某种化工产品,其产品主要通过公司的销售部及分销商进行 销售。A 公司非常关注其产品质量,并主要根据其产品质量确定销售价格。 由于其生产的产品的特点,A 公司的产品价格通常比较稳定。2001,2003 年期间,A 公司的销售情况一直增长缓慢。2004 年 11 月,A 公司从它的竞 争对手 B 公司那里雇用了一个新的销售总监 M,M 将其原来在 B 公司的客户 带到了 A 公司,使得 A 公司 2004 年 12 月份的销售量增加了 25,。并且 A 公司在 2005 年全年一直保持着向这些客户的销售。主要由于客户的增加,
A 公司 2005 年度的销售额比 2004 年增加了 28.7%。在风险评估程序中,通 过比率分析,审计人员发现,A 公司的材料采购成本与销售收入同比例增 加,但是人工成本与制造费用占销售收入的比例下降。2004 年和 2005 年 A 公司的部分财务数据如下:
年度2005 年2004 年
度度 金额金额占销售收入的 占销售收入的 :人民币千元::人民币千元:项目
比例:,: 比例:,:
销售收入2 203100.001 712100.0
销售成本:
材料成本86739.468039.7
人工成本37817.235020.4
制造费用1175.31106.4
销售成本小计1 36261.91 14066.5
毛利84138.157233.5
审计人员设定的重要性水平为人民币 40,000 元。
8
二、对收入实施实质性分析程序
在 2004 年 A 公司销售收入已经审计的基础上,A 公司 2005 年的销售收入能够被合理预期,审计人员决定使用实质性分析程序对 2005 年度的销 售收入的发生、完整和准确认定获取一定的保证水平。
(一)建立期望值
与2004年度相比,A公司的销售在 2005 年度发生了下述变化: (1)由于客户的增加,2005 年度 1,11 月份的销售额与2004 年度相 同期间相比,增加了25,,审计人员已经在对应收账款进行审计的过程中,通过向客户函证的方式证实了这一增加;
(2)自 2005 年 4 月起,A 公司的平均销售价格增加了 5,。审计人员通过检查 A 公司的标准价格表核实了这一事项。基于上述情况,审计人员决定将 A 公司 2005 年度的销售收入按月份进行拆分,以建立期望值。拆分结果如下:
单位:人民币千元
销售额增加销售价格 2005 年度 2005 年度实 月份 2004 年度 差异
25,增加 5, 期望值 际发生额
113734 171169(2)
213834 1721731
313433 1671703
4141359185159(26)*
513935918320017*
61383491811832
71433691881880
81473791931941
91453691901911
11433691881902111 113935918319512*000 1 1168--817619115*
0 2 合计1 712385802 1772 203
9
根据上述分析,有四个月份的差异额超过了审计人员设定的可接受差异额(在上表中以*标识)。
(二)确定可接受的差异额 审计人员计划从实质性分析程序中获取的计划保证水平较高,可接受的差异额确定为人民币 1000 元。
(三)分析和调查差异
1.4 月和 5 月的差异。四月份的实际值比期望值低 26 000 元,而 5 月份的实际值比期望值高 17 000 元。就此,审计人员首先询问了被审计单位管理层。管理层回答由于未曾对 4 月和 5 月的收入进行调查,不能解释 上述差异。审计人员接着与财务主管人员讨论上述差异,财务主管回忆说 4 月份有一名销售人员 N 在结账以后才提交其四月份的销售单据,为方 便起见,财务部门将这些四月份的销售记录在 5 月份的账簿中。
针对这一解释,审计人员检查了 A 公司 5 月份销售账簿中与 N 有关 的销售记录,并抽取了其中一部分追查到原始凭证。通过这些程序,注册 会计师确定,记录在 5 月份中的属于 4 月份的销售共计人民币 20 000 元, 考虑这一因素的影响,4 月份和 5 月份的差异额将低于审计人员设定的可 接受的差异额。因此,审计人员决定不再执行进一步调查工作。
2.11 月和 12 月的差异。11 月和 12 月实际销售额分别比期望值高人民币 12 000 元及 15 000 元。审计人员对此予以进一步调查,询问了被审 计单位的管理层。管理层解释,在 2005 年 10 月初公司与一个大型分销商 签订了代理合同,此外,销售总监 M 也在 10
10
月份争取了两个新的大客户, 因此 2005 年 4 季度的销售比以往年度有所增加是正常的情形。
针对管理层的解释,审计人员检查了销售部门的月度总结报告,发 现销售部门确实在 10 月份采取了行动并取得了管理层所说的客户。然后注 册会计师对新增客户于 2005 年度的销售记录进行了检查,并同时检查了这 些销售的收款情况,并未发现异常。经检查,新增客户在 2005 年 11 月和12 月分别使得 A 公司的销售额增加了人民币 8 000 元和 10 000 元。考虑这一因素的影响,A 公司 11 月和 12 月的差异额将低于审计人员设定的可接受的差异额,因此审计人员决定不再进行进一步调查。
三、销售成本的实质性分析
(一)材料成本
由于A公司所使用的原材料价格在2005年度相对稳定,整体加工过程亦无变化,并且2004年度的数字已经过审计,而2005年度的收入也已执行了上述分析程序,并进行了审计。因此,审计人员在2004 年度材料成 本占销售收入比例的基础上建立对 2005年材料成本的期望值。由于 2005年4月以后A公司的销售价格平均增加了 5,,因此在计算材料成本的期望值时应消除这部分涨价的影响。另外,由于审计人员仅需要在销售成本的实质性程序中取得较低水平的确信度,因此可以接受一个较大的差异。审计人员决定,在销售成本项目中,可接受的差异为人民币 32 000 元。
材料成本的期望值,[1 至 3 月份的销售收入,4 至 12 月份
11
的销售收入×1?(1+5%)]×2004 年度材料成本占销售收入的比例
,(512 000+1 691 000×0.952)×39.7%
=842 367(元)
期望值与实际值的差异,842 367-867 000,-24 633(元)
由于上述差异小于审计人员设定的可接受的差异水平,因此注册会 计师决定不再进行进一步调查。
(二)人工成本
正如上文提到的,管理层认为2005年度的员工人数与2004 年相比并无变化。审计人员从人力资源部门取得了2004年和2005年度的员工清单,对员工人数的变化进行了检查,并未发现变化。同时,A公司在每年1月均会根据对上年度的考核结果调整员工薪酬,审计人员取得 2005年度1月份 A公司调整员工薪酬的董事会决议,这次调整使得员工薪酬平均增加3.5%,审计人员检查了2005年度薪酬支付记录,证实A公司已经执行了调整薪酬的决议。
审计人员设定的人工成本的可接受差异额为人民币 32 000 元。 人工成本的期望值,2004 年度人工成本×103.5,,350 000×103.5,=362 250(元)
差异额,362 250-378 000,15 750(元)
由于上述差异小于审计人员设定的可接受的差异水平,因此审计人员决定不再进行进一步调查。
审计结论:对于销售收入,超过审计人员设定的可接受的差异额的所有差异已经得到解释和证实。对于销售成本中的材料成本和人工
12
成本,其实际发生额与审计人员建立的期望值之间的差异均小于审计人员设定的可接受的差异额。因此,销售收入和材料成本、人工成本没有重大错报。
13
范文三:预测分析程序
实验预测分析程序
#include #include #include #include char A[20]; /*分析栈*/ char B[20]; /*剩余串*/ char v1[20]={'i','+','-','*','/','(',')','#'}; /*终结符 */ FILE *fop; char v2[20]={'E','G','T','S','F'}; /*非终结符 */ int j=0,b=0,top=0,l; /*L为输入串长度 */ typedefstruct type /*产生式类型定义 { char origin; /*大写字符 */ char array[5]; /*产生式右边字符 */ int length; /*字符个数 */ }type; type e,t,g,g0,g1,s,s0,s1,f,f1; /*结构体变量 */ type C[10][10]; /*预测分析表 */ /*--------------------------------*/ /*输出分析栈 */ void print() { int a; /*指针*/ for(a=0;a<> fprintf(fop,"%c",A[a]); fprintf(fop,"\t\t"); fflush(fop); } /*--------------------------------*/ /*输出剩余串*/ void print1() { int j; for(j=0;j fprintf(fop," "); */ for(j=b;j<> fprintf(fop,"%c",B[j]); fprintf(fop,"\t\t\t"); fflush(fop); } /*--------------------------------*/ void main() { intm,n,k=0,flag=0,finish=0; charch,x; type cha;/*用来接受C[m][n]*/ /*把文法产生式赋值结构体*/ e.origin='E'; strcpy(e.array,"TG"); e.length=2; t.origin='T'; strcpy(t.array,"FS"); t.length=2; g.origin='G'; strcpy(g.array,"+TG"); g.length=3; g0.origin='G'; strcpy(g0.array,"-TG"); g0.length=3; g1.origin='G'; g1.array[0]='^'; g1.length=1; s.origin='S'; strcpy(s.array,"*FS"); s.length=3; s0.origin='S'; strcpy(s0.array,"/FS"); s0.length=3; s1.origin='S'; s1.array[0]='^'; s1.length=1; f.origin='F'; strcpy(f.array,"(E)"); f.length=3; f1.origin='F'; f1.array[0]='i'; f1.length=1; /*初始化分析表*/ for(m=0;m<=4;m++) for(n="">=4;m++)><=5;n++) c[m][n].origin='N'>=5;n++)> /*填充分析表*/ C[0][0]=e; C[0][5]=e; C[1][1]=g; C[1][2]=g; C[1][6]=g1; C[1][7]=g1; C[2][0]=t; C[2][5]=t; C[3][1]=s1; C[3][3]=s; C [3][4]=s; C[3][6]=C[3][7]=s1; C[4][0]=f1; C[4][5]=f; printf("提示:本程序只能对由'i','+','-','*','/','(',')'构成的以'#'结束的字符串进行分析,\n"); char in_fn[30]; //文件路径 FILE *fp; printf("\n请输入源文件名(包括路径和后缀名):"); while(true) { gets(in_fn); if((fp=fopen(in_fn,"r"))!=NULL) break; else printf("文件路径错误! 请重新输入:"); } printf("\n请输入输出文件名(包括路径和后缀名):"); gets(in_fn);fop=fopen(in_fn,"w"); printf("\n请阅览%s",in_fn); fprintf(fop,"\n******************* 分析 *******************\n"); do/*读入分析串*/ { ch=fgetc(fp); if ((ch!='i') &&(ch!='+')&&(ch!='-')&&(ch!='*')&&(ch!='/')&&(ch!='(')&&(ch!=')')&&(ch!='#')) { fprintf(fop,"输入串中有非法字符\n"); exit(1); } B[j]=ch; // 将输入串赋予剩余串 j++; }while(ch!='#'); l=j; /*分析串长度*/ ch=B[0]; /*当前分析字符*/ A[top]='#'; A[++top]='E'; /*'#','E'进栈*/ fprintf(fop,"步骤\t\t分析栈 \t\t剩余字符 \t\t所用产生式 \n"); do { x=A[top--];/*x为当前栈顶字符*/ fprintf(fop,"%d",k++); fprintf(fop,"\t\t"); for(j=0;j<=7;j++) 判断是否为终结符*/="" if(x="=v1[j])" {="" flag="1;" break;="" }="" if(flag="=1)/*如果是终结符*/" {="" if(x="='#')">=7;j++)> finish=1; fprintf(fop,"acc!\n"); getchar(); getchar(); exit(1); } if(x==ch) { print(); print1(); /*结束标记*/ /*接受 */ fprintf(fop,"%c匹配\n",ch); ch=B[++b]; /*下一个输入字符*/ flag=0; /*恢复标记*/ } else { /*出错处理*/ print(); print1(); fprintf(fop,"%c出错\n",ch);/*输出出错终结符*/ exit(1); } } else { /*非终结符处理*/ for(j=0;j<=4;j++) if(x="=v2[j])" {="" }="" m="j;" m:="" 分析表行号*/="" break;="" for(j="">=4;j++)><=7;j++) if(ch="=v1[j])" {="" n="j;" n:="" 分析表列号*/="" break;="" }="" cha="C[m][n];" if(cha.origin!='N' )/*判断是否为空*/="" {="" print();="" print1();="" fprintf(fop,"%c-",cha.origin);="">=7;j++)> } } for(j=0;j 五、测试与执行 **司 生公日期 效制印管章 文件名称质 量 程 序 文 件号 编页 码 1 of 5A/ 版本0/订修 计过程统控制的SP(C)序 程 计过程的控制统SPC)(程序 编 制 :审:核批 准: 日期 :日期:日 : 期 * *公 司效日期生 管制 章印 质 件名文 量 称 程 序变 文件编 号页 码2 of 5 A/ 版0/修订 本 统计过程的制控(SPC)序程 更 履 历 行发日 期 版本修订 A/0/ 变更内容说 明首次发行 *公* 生司效日 管制印章 期 文件名称质 1.目 的量 程 序 文 编号件页 码 of3 5A / 0版本修/ 订计过统的控程制S(P)C程 序采适用的当统技计,对术品产进料的、过和程服务阶等段以予制管、验证和分,析确以 保品质系执行统之有效。 性.2适 范用围 凡有关公司各质项量有数据、产品关键质关量性均可特用适 3。 定义 3..1过 管程制之计技统:各产品之生术、组产过程中装依质品规,划用适运当的计统术技 成达质管制的品的目, 如-R X统技术。 计3. 2程能力制统计之析分于:品特性、产品进料产过程、等阶段采用,统技术计分析制以 能力。程如:pC 分析等k。3 3 .质品活动之统计术:技各品质项绩、实资以料计统术加技以归类、分等。如: 推移析、特表性因要图、拉图或柏其统计他技,术以进品质改善行动活。3 .4PPK: 期过初程能力指数, 的计算是以新时产的初期品过性能研程所得究的数为据基础 35 .PKC 量:产程过能的力数。指它是项有关一程的过指数计算,时需同时考虑过的程 势趋该及趋接势近于规格限界程的度3. 6P MP质量:水,准每百万个零件不即合数格。指一种据实际根缺的陷材料来反过映程能力 的种一方。P法MP数 常据用来先优定纠正制措。施 . 职4 4.责1品管部 依:控据制划计之求于要产、生装组阶段中,检测数据将记于录制表管,中藉以 管制品之品质产性。特用利各种统技术计来管制产品特,性新或产规品 工程能之力分析。 .4 2部各:进行相门关品质活时,动依实际需采要适用当的统计术技以,析分各项品质、 纳期相关的指标,为品作活动质善改用之 。 **司 生效公期日 管印制 质 章文件称名5 内容 .量 程 序 文件 号编页 码 of4 A5/0版 本/修 统计过程订控的制SP(C)序 程 .51统计 术应用技程 统流计技术需求的鉴 定 计统技术的用运 5 .2 统技计的需求鉴术定 .25.1依 控制据划计或顾客指之要定求使用,要之统必计技术。如 X-R 管图制 或抽计 划 A样Q C=0L标准 等。 .5.2 2判定生过程产的序能工力否是于处稳定态,采用 Cp状 分k或析 XR-管制图 。 5.23 当制.有品程质常发生,必异要采取时当适计技术统以分析不,原良因如,推移表、 性特因图要柏拉图、或 其他统技计术。5 2.4.各 门之品质系统改部或其善主他题改善活,动状现把握效果分、析采而适当统计取 术技如,:移表推、特要性因(图鱼图骨) 、柏图拉或其统他技计。术5 . 3统计技的运用。术5 .3. 产品1程过力的能评,价管品部人须依员据顾客要求的、虑考殊特性特或质控制量计 的要划进求行 CP 研K究,评价过能力。程 5.3.2 据依量质制计划控或、顾客要的求行进程制之 X-R 管,由品管制考虑产品特部 设性能定够足满程要过求必要的管制界的限,为生产作过的管程制标准 。53.3 .品产产量过中程,管品部员人依据定的频规次要求定取样期测量,并实绩记将录于 -X R制管上图依,据制管图判定基准进行之生产程能过力判读观,是否查异常的有波动。 品正产生产常后每,进行一年 次-X 管R图制的检,查认确观管制之特性是察 否异有的波常动。 .354 描完一张. -XR管 制图, 后质人品员须算计制其能程力CPK 指数 依,据 PCK值 判定 基(准图附决)是定否采取须要必措的,同施时绘制制界限,管判现读行制界限差距,了 管过程解的变异,决定否是进行制管限界的改更采或预防措施取 。* 公*司 生效 期日 制印管章 质 文 件称名 量 程 序 文 件号 页编码 5 of 5/A0版 /修本订 计过统的程控制S(CP)程序 有特关殊特性的C P 能力K求要下如:管 制性特安全特 (性) 1.6 7 ≤CK 1.3P 3≤C KP1. 0 ≤ PKC≤ .133关 键性特 ) (重特要性 )( 一般特性工程能 力求要(量产) 过能程力足满要求过 程力能足够过程能 力可 制造过程尚进应行改善 本 公司顾客产特殊特品性符说明 见号『殊特特性明细表』说明: )重1要特性: 是指致导产品基构成和产本品能功产生要重响影特性的 (包产品与过括)程2 关键)性:是指可特能导发生致不符法合律法标准规要求,或的者导致产品失的关效 因键特性素包(括品与过产程) 3安全)特性是:可能指导严致重害客户伤身生人安全命或财安全的产要主因(起包产 品与括程过)以 上特将根据实性需要,际实施X -R 图管制并的实施C K 过程P能力析分。 .53. 5种统各计手的使用法及计方算参考法件附 。.45 造制过程有的关 PK、X-CR管 记录须制档管建。理 .6 用使表单 .6 1-R XChra t6. C2K 值计P表算 语义分析程序的设计与实现 实验内容: 编写语义分析程序,实现对算术表达式的类型检查和求值。要求所分析算术表达式由如下的文法产生。 E?E+T|E-T|T T?T*F|T/F|F F?id|(E)|num 实验要求: 用自底向上的语法制导翻译技术实现对表达式的分析和翻译。 (1)写出满足要求的语法制导定义或翻译方案。 (2)编写分析程序,实现对表达式的类型进行检查和求值,并输出: ? 分析过程中所有产生式。 ? 识别出的表达式的类型。 ? 识别出的表达式的值。 (3)实验方法:利用YACC自动生成工具。 编译环境:YACC 翻译方案: E ::= T{E'.i:=T.nptr} T' {T.nptr:=T'.s} E' {E.nptr:=E'.s} .i:=mknode(?*?,T'.i,F.nptr)} T'::=*F{T'1 T' {T'.s:=T1.s} E'::=+T{E'.i:=mknode(?+?,E'.i,T.nptr)} 11 E'T'::=/F{T' {E'.s:=E.s} .i:=mknode(?/?,T'.i,F.nptr)} 111 E'::=-T{E'.i:=mknode(?-?,E'.i,T.nptr)} T' {T'.s:=T.s} 111 E' {E'.s:=E.s} T'::=ε{T'.s:= T'.i} 11 E'::=ε{E'.s:= E'.i} F ::=(E){F.nptr:=E.nptr} T ::= F{T'.i:=F.nptr} F ::= num{F.nptr:=mkleaf(num,num.val)} YACC程序: %{ printf(“id\n”); #include #include #include typedef struct x{int i;int c;} type; { %union{ if($1.c==0&&($3.c==0)) int num; { char* id; $$.i=$1.i+$3.i; type c; $$.c=0; } printf(“E->E+T E.type:num\n”); } %token %type { } if($1.i>=0) } printf(“%d num\n”,$1,i); |expr?-?term else { if($1.c==0&&($3.c==0)) else { { $$.i=$1.i-$3.i; $$.c=1; $$.c=0; $$.i=-1; printf(“E->E-T E.type:num\n”); printf(“T->T/F T.type:id\n”); } } } else { |factor $$.c=1; { $$.i=-1; $$.c=$1.c; printf(“E->E-T E.type:id\n”); $$.i=$1.i; } } if($$.c==0) printf(“T->F T.type:num\n”); |term else { printf(“T->F T.type:id\n”); $$.i=$1.i; } $$.c=$1.c; ; if($$.c==0) factor:ID printf(“E->T E.type:num\n”); { else $$.c=1; printf(“E->T E.type:id\n”); $$.i=-1; } } ; |?(?expr?)? term:term?*?factor { { $$.c=$2.c; if($1.c==0&&($3.c==0)) $$.i=$2.i; { if($$.c==0) $$.i=$1.i*$3.i; printf(“F->(E) F.type:num\n”); $$.c=0; else printf(“T->T*F T.type:num\n”); printf(“F->(E) F.type:id\n”); } } else { |NUM $$.c=1; { $$.i=-1; $$.i=$1; printf(“T->T*F T.type:id\n”); $$.c==0; } } } ; %% |term?/?factor main() { { if($1.c==0&&($3.c==0)) return yyparse(); { } $$.i=$1.i/$3.i; $$.c=0; int yylex(void) printf(“T->T/F T.type:num\n”); { } static int done=0; int c; if(done) return 0; while((c=getchar())==? ?); if(isdigit(c)) { ungetc(c,stdin); yylval.num=c-?0?; scanf(“%d”,&yylval); printf(“\nnum\n”); printf(“F->num F.type:num\n”); return(NUM); } else if(c<=?z?&&c>=?a?||c<=?z?&&c>=?A?) { yylval.id=ID; printf(“\nid\n”); printf(“F->id F.type:id\n”); return{ID}; } else if(c==?\n?) done=1; return c; } void yyerror(char* s) { printf(“%s\n”,s); } 转载请注明出处范文大全网 » 注册会计师在实施分析程序时常范文四:SPC统计分析程序
范文五:语义分析程序