我想将温度从华氏温度转换为摄氏温度。在运行时它应该询问华氏温度,然后显示摄氏温度的等效温度。
答案 0 :(得分:2)
与其他语言不同,RPG专为商业计划而构建。因此它没有内置的控制台IO,如C或Java。相反,用户交互传统上是通过称为设备文件的对象来模仿数据库IO。但是,有一个操作码可用于访问外部消息队列,并可以发送消息并接收回复。此操作码为DSPLY
。它非常有限,您只能显示52个字符的消息,但可以用于此目的。您希望用户IO的真正解决方案是涉及显示文件。但是要以类似于其他语言的方式得到类似于你所要求的东西,你可以写下以下内容:
ctl-opt Option(*SrcStmt : *NoDebugIo: *NoUnref)
DftActGrp(*No) ActGrp(*New)
Main(temprature);
dcl-proc temprature;
dcl-s degreesC Char(15) Inz('');
dcl-s degreesF Char(15) Inz('');
dsply 'Enter temprature in degrees F' '*EXT' degreesF;
degreesC = %char(
(%dec(degreesF:15:0) - 32) * 5 / 9
);
dsply ('Temprature in degrees C is: ' + degreesC);
return;
end-proc;
第一个dsply
有三个参数,消息,消息队列和回复变量(必须是字符变量)。第二个dsply
只有一个消息,如果括在括号中,它可以是一个表达式。没有回复,默认情况下它会发送到* EXT消息队列以进行交互式作业。
注意: DSPLY
仅对测试和调试非常有用,并且只有有限的实用性。面向用户的程序将使用显示文件或其他方式与用户交互,例如通过使用CGIDEV2
库的浏览器。
答案 1 :(得分:0)
一个好的开始是查看RPG Manual然后开始研究DDS。那里有很多文件。只需搜索" iseries"那么你的主题。