[原创]今天看到一RPG处理数据的题目,不知各位将如何解答和解释这几条常见的指令?
2009-03-25 21:25
387 查看
试就以下数据,练习这些指令来解决这四个Question
1.先解以下7行常见容易搞混淆的取数指令的区别和各自用法?
IFEQ XXX ENDIF
IFEQ XXX ELSE XXX ENDIF
SETLL
READ
READE
CHAIN
DOWEQ XXX ENDDO
2.再解Question
1) Find the total amount of all item
2) Find the amount of item A
3) Find the total amount of item which greater than 100
4) Find the total amount of item type FR
Data
Item# Item type Amount
A FR 100
B FR 200
C FG 700
D PA 50
高手的你们快行动起来,说出你的解题思路和意思。
以上指令很易混淆,请用你的理解来说明。。。。
1.先解以下7行常见容易搞混淆的取数指令的区别和各自用法?
IFEQ XXX ENDIF条件判断、满足条件则执行相关语句
IFEQ XXX ELSE XXX ENDIF条件分支判断,满足条件,则执行相关语句,不满足,则执行另外的语句。。。。多一个ELSE会多一个不满足条件,执行另外程序的
SETLL 设置低界,把条件定位到键字相对的记录号,大于或者等于因子1中说明的检索自变量的下一条记录 一般和*LOVAL连用从最初的那行数据开始读起
Leave 操作把控制从DO组转给ENDDO操作后的语句。它是跳出DO循环的意思,会执行DO之后的语句,leave一般是用在用在DO、DOU、DOUxx或者DOWxx循环中,不能在DO组外部使用
READ 读一个记录,无比较.read无比较的意思是其前面无比较因子(变数)
READE 读等于键字的记录,有比较.reade前面会有个做比较的因子(变数,检索自变量)
CHAIN从文件中随机检索,chain与read虽同样是读档案找要检索的数据,但是chain用指标读时只会找一行(指标的进度:从什么地方开始读这 个档案),read可找多行,如Q2的问题只需读一行数据时就可以用chain。如想确认到底是用read读还是用chain的话可先确定指标是从哪一行 开始读,chain只会读一行,read可以读很多行
DOWEQ XXX ENDDO 执行一组满足给定条件的操作(看条件跑多次),和read相比,他可跑多次,read只能读一次
2.再解Question
1) Find the total amount of all item
2) Find the amount of item A
3) Find the total amount of item which greater than 100
4) Find the total amount of item type FR
Data
Item# Item type Amount
A FR 100
B FR 200
C FG 700
D PA 50
解答方法:
1)
Read Itemtypefile 90
*in90 DOWEQ*OFF
AddRamount AmountTotal
Read Itemtypefile 90
Enddo
2)keyItemA ChainiItemtypefile
*in90 IFEQ*OFF
Z-ADDamount @TotalAmt
ENDIF
3)Read itemtypefile 91
*in91 DOWEQ*OFF
IF Amount GE'100'
ADDAmount @TotalAmt
ENDIF
Read itemtypefile 91
ENDDO
这里应用ADD累加,需把所有大于100的amount累加@totalAmt.程序会读多次大于100的amount。而Q2只会有一个ItemA通过 KeyItemA chainXXX筛选检索出来的ItemA的amount,只有一笔数,是不需要累加,故用Z-ADD.
4)
keyFR ReadeItemtypefile 92 /*KeyFR是搜寻查找ItemType这个栏位中的FR 然后按之排序/
*in92 DOWEQ*OFF
ADDamount @TotalAmt /*把上面查找出的ItemTYPe栏位中的FR的amount进行累加*/
KeyFR Reade itemtypefile 92
ENDDO
这里应是ADD,因是用KEY reade读出的keyType中的FR的金额,是需读多次的,是需把读多次读出的FR的金额进行累加 才会有FR 的@TotalAmt。和Q2中用chain筛选检索出的keyItemA的金额不一样(ItemA的金额chain检索出后的ItemA的amount 只有一笔,而这里检索出来的FR的amount有两笔)
1.先解以下7行常见容易搞混淆的取数指令的区别和各自用法?
IFEQ XXX ENDIF
IFEQ XXX ELSE XXX ENDIF
SETLL
READ
READE
CHAIN
DOWEQ XXX ENDDO
2.再解Question
1) Find the total amount of all item
2) Find the amount of item A
3) Find the total amount of item which greater than 100
4) Find the total amount of item type FR
Data
Item# Item type Amount
A FR 100
B FR 200
C FG 700
D PA 50
高手的你们快行动起来,说出你的解题思路和意思。
以上指令很易混淆,请用你的理解来说明。。。。
1.先解以下7行常见容易搞混淆的取数指令的区别和各自用法?
IFEQ XXX ENDIF条件判断、满足条件则执行相关语句
IFEQ XXX ELSE XXX ENDIF条件分支判断,满足条件,则执行相关语句,不满足,则执行另外的语句。。。。多一个ELSE会多一个不满足条件,执行另外程序的
SETLL 设置低界,把条件定位到键字相对的记录号,大于或者等于因子1中说明的检索自变量的下一条记录 一般和*LOVAL连用从最初的那行数据开始读起
Leave 操作把控制从DO组转给ENDDO操作后的语句。它是跳出DO循环的意思,会执行DO之后的语句,leave一般是用在用在DO、DOU、DOUxx或者DOWxx循环中,不能在DO组外部使用
READ 读一个记录,无比较.read无比较的意思是其前面无比较因子(变数)
READE 读等于键字的记录,有比较.reade前面会有个做比较的因子(变数,检索自变量)
CHAIN从文件中随机检索,chain与read虽同样是读档案找要检索的数据,但是chain用指标读时只会找一行(指标的进度:从什么地方开始读这 个档案),read可找多行,如Q2的问题只需读一行数据时就可以用chain。如想确认到底是用read读还是用chain的话可先确定指标是从哪一行 开始读,chain只会读一行,read可以读很多行
DOWEQ XXX ENDDO 执行一组满足给定条件的操作(看条件跑多次),和read相比,他可跑多次,read只能读一次
2.再解Question
1) Find the total amount of all item
2) Find the amount of item A
3) Find the total amount of item which greater than 100
4) Find the total amount of item type FR
Data
Item# Item type Amount
A FR 100
B FR 200
C FG 700
D PA 50
解答方法:
1)
Read Itemtypefile 90
*in90 DOWEQ*OFF
AddRamount AmountTotal
Read Itemtypefile 90
Enddo
2)keyItemA ChainiItemtypefile
*in90 IFEQ*OFF
Z-ADDamount @TotalAmt
ENDIF
3)Read itemtypefile 91
*in91 DOWEQ*OFF
IF Amount GE'100'
ADDAmount @TotalAmt
ENDIF
Read itemtypefile 91
ENDDO
这里应用ADD累加,需把所有大于100的amount累加@totalAmt.程序会读多次大于100的amount。而Q2只会有一个ItemA通过 KeyItemA chainXXX筛选检索出来的ItemA的amount,只有一笔数,是不需要累加,故用Z-ADD.
4)
keyFR ReadeItemtypefile 92 /*KeyFR是搜寻查找ItemType这个栏位中的FR 然后按之排序/
*in92 DOWEQ*OFF
ADDamount @TotalAmt /*把上面查找出的ItemTYPe栏位中的FR的amount进行累加*/
KeyFR Reade itemtypefile 92
ENDDO
这里应是ADD,因是用KEY reade读出的keyType中的FR的金额,是需读多次的,是需把读多次读出的FR的金额进行累加 才会有FR 的@TotalAmt。和Q2中用chain筛选检索出的keyItemA的金额不一样(ItemA的金额chain检索出后的ItemA的amount 只有一笔,而这里检索出来的FR的amount有两笔)
相关文章推荐
- [原创]今天看到一RPG处理数据的题目,不知各位将如何解答和解释这几条常见的指令?
- 能源物联网中如何处理上报的大量数据问题的思路分析(题目有点长,但是我不介意它更长)--后续会继续补充
- 能源物联网中如何处理上报的大量数据问题的思路分析(题目有点长,但是我不介意它更长)--后续会继续补充
- ACM题目中几种常见形式的输入数据的处理(C++版)
- 第十二周 项目二-OJ平台题目中多种输入形式的处理--输入多组数据,知道文件尾(EOF)--分离正整数中的各位数
- ACM题目中输入数据的处理(C++语言版)
- 数据分析 面试题解答:如何从10亿查询词找出出现频率最高的10个?
- 如何使用python处理JSON数据
- 如何处理几十万条并发数据
- [原创]如何利用BI搭建电商数据分析平台
- 【CSDN常见问题解答】Java如何读取XML文件
- 今天遇到一个问题:在程序中加入的定时触发器,当时出现这样一个问题,触发器定时2秒,程序从后台查询数据经过复杂处理后时间超过了2秒,我查阅好些网络上说有可能触发器等待程序执行完毕后,在触发下一次,也有说
- tensorflow之路-如何处理原始文本数据
- 如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案!(zz)
- 关于Installshield里一些常见问题的解答(二)--此篇非原创,只是集成了一些网友的解答
- 如何取得select得到的数据的中间几条???
- 3n+1问题大数据如何处理?
- 指令中directive 如何获取父级中通过$http获取的数据
- ACM题目中输入数据的处理(C++版)
- (原创)关于如何处理EXCEL( CSV)文件 导入数据库的解决方法!!