pp题库破解版百度云:lingo程序

来源:百度文库 编辑:高校问答 时间:2024/04/28 03:04:55
MODEL:
SETS:
QUARTERS/1,2,3,4/:DEM,RP,INV;
ENDSETS
MIN=@SUM(QUARTERS:0.8*RP(1)+11.1*RP(2)+11.0*RP(3)+11.3*RP(4)+0.15*INV);
@FOR(QUARTERS:RP(1)<25 RP(2)<35 RP(3)<30 RP(4)<10);
@FOR(QUARTERS(I)|I#GT#1:
INV(I)=INV(I-1)+RP(I)-DEM(I););
INV(1)=RP(1)-DEM(1);
DATA:
DEM=10,15,25,20;
ENDDATA
END
大虾帮忙看看怎么改啊,它有错误,我不知道怎么改啊!

您好

DXR是Macromedia Director受保护(不可编辑)电影文件

Director文件的保护与还原
donlee

作为广受多媒体开发人员钟情的开发平台,Director可以根据开发人员的需要输出多种格式的文件,其中最常用的格式当属dir文件以及加以保护的dxr文件,后两种格式的文件是用于播放的,不可再用Director编辑,一般最终作品都做成这样的格式。但在我们在实际开发过程中,往往由于备份文件损坏或出于学习观摩的目的等种种原因,有必要打开这类文件作为参考或继续编辑。本文从技术的角度出发,完全依靠Director自身提供的工具,对dxr文件的保护与还原手段作一探讨,所有讨论基于Director 8.0。

一、保护

Director在其IDE环境可通过逐级选择菜单"Xtras"->"Update Movie...",来把文件改为dxr格式,或通过publish输入为dcr格式的文件,不允许再被Director打开或编辑,以此来保护作品不被篡改。这是Director所提供的最基本的保护手段。

二、还原

不知出于何种考虑,Director所内嵌的lingo语言中有savemovie、save castlib两个保存movie和cast的命令,而且这两个命令对于dxr和dcr也有效!正是这两个命令,为还原被保护的文件大开方便之门。由于我们不能在Director下直接打开这两种文件,于是我们想到了MIAW,把它们通过MIAW打开,Director允许使用tell命令向miaw发送消息,因而我们尝试用这种途径来遥控dxr保存成可以再编辑的dir文件。作法如下:
新建一个movie,编写一个movie script,内容为:
on outputdir input output
miaw=window(input)
tell miaw to savemovie output
forget(miaw)
end

假设我们要打开的文件是“D:Locked.dxr”,希望解除保护并另存为“D:unlocked.dir”,则执行此movie,在message窗口中输入outputdir "D:Locked.dxr" "D:unlocked.dir",然后我们察看D盘根目录,将会在那里发现unlocked.dir文件,这个文件可以用Director打开,所有的score、member安排与原文件毫无二致,但其中所有的script内容均为空白。
正如把李白的诗翻译成英文,再由英文译成的中文已完全见不到诗仙的影子。由于转换成dxr格式时,movie内的script都经过编译,转换成由计算机执行的代码。所以用savemovie也不可能得到原来文本格式script,下面谈到的所有还原手段对此都无能为力。
目前在Director各论坛上大受青睐的还原工具dirOpener实际上完全基于以上思路来完成的,这个小工具也的确是用Director来制作的。但dirOpener具有一个很好用的界面并补充了一些关于光标和不规则窗口的“秘技”,这为Director初学者提供了一些方便,但对于有一定lingo编程基础的人来说,它的能力实在有限,不如自己做一个更强的opener,至于理由,请看“再保护”。

三、再保护

通常开发人员希望全面保护自己的作品,即使是score也不愿被他人窥视,怎样防止别人用savemovie之类的手段来还原呢?还是用lingo!我们可以写一个处理程序,当movie接收到savemovie命令时不保存movie,而是执行我们所定义的代码,对于save castlib也做同样处理。下面的例子是方法之一:
on savemovie
quit
end
on save castlib
quit
end

如果movie script含有以上内容时,则当movie接收到savemovie命令时,不会执行保存,而是退出集成环境或projector,如果企图用dirOpener还原这样的dxr文件,结果将是没有任何dir或cst文件输出,并且dirOpener自身也被退出,这是由quit命令的特点决定的,既然dirOpener是用Director制作的,自然难以逃此噩运,有此软件的朋友一试便知。

四、再还原

为了解除用上述savemovie方法施加的保护,我们再次仔细研究一下lingo,发现可以用lingo在runtime动态地增加或删除member,或修改现有的member的内容。于是我们有了这样的想法,先检查一下movie中所有的member,如果是script,则删除它,自然savemovie之类的保护手段也不存在了。前面已经讨论过,还原出来的dir总是丢失所有script内容,所以在这里删去它们也不会带来更多的遗憾。解除所有script作用的代码(包括保存新的movie部分)如下:
FileToBeOut=the file name to be output --modify it in your scripts
miaw=window(FileToBeOut)
tell miaw
repeat with i=1 to the number of castlibs
repeat with j=1 to the number of members of castlib i
if member(j,i).type=#script then
if member(j,i).scripttype=#movie then
member(j,i).scripttext="" --script内容成为空白,但member名称会保留
--或者 member(j,i).erase() --整个member被删除
end if
end if
end repeat
end repeat
--上面的两层循环查找所有cast中的所有member,并解除所有movie script的作用
savemovie "输出文件名" --为输出的文件命名
end tell
forget(miaw)

至此,基于lingo的保护完全失效。我想在Director的下一个版本中,Macromedia应该不会保留这种双手互搏之术了。

如果朋友们有兴趣,可以在此基础上包装一个好界面,自己做一个新的dirOpener。如果希望方便使用,可以用fileio xtra的displayopen和displaysave函数,来选择要输入、输出文件的位置及文件名。至今我还是不能理解为什么作为免费软件的dirOpener要捆绑大而贵的三个net相关的xtras和directOs。

这种方法并不是万能的,尤其对于dcr文件,上面的手段往往无所施其技。

谢谢

这样改:
MODEL:
SETS:
QUARTERS/1,2,3,4/:DEM,RP,INV;
ENDSETS
MIN=@SUM(QUARTERS:0.8*RP(1)+11.1*RP(2)+11.0*RP(3)+11.3*RP(4)+0.15*INV);
RP(1)<25;
RP(2)<35;
RP(3)<30;
RP(4)<10;
@FOR(QUARTERS(I)|I#GT#1:
INV(I)=INV(I-1)+RP(I)-DEM(I));
INV(1)=RP(1)-DEM(1);
DATA:
DEM=10,15,25,20;
ENDDATA
END
结果是:
Global optimal solution found at iteration: 0
Objective value: 2073.500

Variable Value Reduced Cost
DEM( 1) 10.00000 0.000000
DEM( 2) 15.00000 0.000000
DEM( 3) 25.00000 0.000000
DEM( 4) 20.00000 0.000000
RP( 1) 25.00000 0.000000
RP( 2) 15.00000 0.000000
RP( 3) 30.00000 0.000000
RP( 4) 0.000000 0.5000000
INV( 1) 15.00000 0.000000
INV( 2) 15.00000 0.000000
INV( 3) 20.00000 0.000000
INV( 4) 0.000000 44.85000

Row Slack or Surplus Dual Price
1 2073.500 -1.000000
2 0.000000 41.05000
3 20.00000 0.000000
4 0.000000 0.5500000
5 10.00000 0.000000
6 0.000000 44.40000
7 0.000000 44.55000
8 0.000000 44.70000
9 0.000000 44.25000

赞成以上观点!!回答的很有水平吗.你是不是参加数学建模的啊