郁闷啊~!有没有会BASIC和JAVA的!帮帮忙呀!
最近挺郁闷!!刚找到工作!经理让我一段BASIC代码改写成JAVA程序,我没学过BASIC!麻烦高手们帮忙把下面的程序改成JAVA程序!不用什么窗体界面,只要在DOS下运行和这程序一样的效果就可以!!
QQ:262993424
MSN:huangshuo_lw@hotmail.com
10 CLS
20 '******************************************************
30 '
40 ' 单一肥料施用效应方程计算程序
50 ' CREG1
60 '******************************************************
70 PRINT " 单一肥料施用效应方程计算程序"
80 PRINT " CREG1 "
90 PRINT :PRINT
100 DIM X(40,2),A(2,2),L(2),B(2),AB(2),AC(2),C(2),FMAX(2),FMIN(2),A$(12),E(40,6),D$(30),F(6),COST(3)
110 INPUT " 用哪种模型计算 ? 用多项式请输入 Q 用平方根请输入 R ";MODEL$
120 INPUT " 试验结果是否同时打印 (Y/N) ";PR$
130 INPUT " 是否继续算最佳施肥量 (Y/N) ";PO$
140 IF LEFT$(PO$,1)="N" OR LEFT$(PO$,1)="n" THEN 190
150 INPUT " 请键入输出文件名 : ";OTF$
160 OPEN "O",#2,OTF$
170 INPUT " 请键入谷物价格 (元/公斤) ";VALU
180 INPUT " 请键入肥料价格 (元/公斤) ";COST(1)
190 INPUT " 输入文件名 ( K 表示键盘输入)? "; IPF$
200 DEFDBL A : NU=1
210 IF LEFT$(IPF$,1)="K" OR LEFT$(IPF$,1)="k" THEN 290
220 OPEN"I",1,IPF$
230 ON ERROR GOTO 980 : GOSUB 1000
240 N=N-1 : PRINT " 计 算 第 ";NU;" 个 试 验 结 果"
250 FOR I=0 TO N
260 PRINT X(I,0),X(I,1):X(I,2)=X(I,1)
270 X(I,1)=X(I,0)*X(I,0)
280 NEXT I : GOTO 420
290 INPUT " 试验地点 : ";SITE$
300 INPUT " 试验编号 : ";NUMB$
310 T1$= "施N量" :T2$="产 量"
320 INPUT " 因素 1 是否是 N 素 ? 是,请按 Y 不是,请输入 :";TN$
330 IF LEFT$(TN$,1)="Y" OR LEFT$(TN$,1)="y" THEN 340 ELSE T1$=TN$
340 INPUT " 试验结果是否是产量 ? 是,请按 Y 不是,请输入 :";TK$
350 IF LEFT$(TK$,1)="Y" OR LEFT$(TK$,1)="y" THEN 360 ELSE T2$=TK$
360 INPUT " 试验的处理数 :";N:N=N-1
370 FOR I=0 TO N
380 PRINT " 处 理 (";I+1;") ";T1$;:INPUT X(I,0)
390 PRINT " 处 理 (";I+1;") ";T2$;:INPUT X(I,2)
400 X(I,1)=X(I,0)*X(I,0)
410 NEXT I
420 FMAX(1)=0 : FMIN(1)=100 : FOR I=0 TO N
430 IF X(I,0)>FMAX(1) THEN FMAX(1)=X(I,0)
440 IF X(I,0)
450 NEXT I
460 IF MODEL$="Q" OR MODEL$="q" GOTO 480
470 FOR I=0 TO N : FOR J=0 TO 1 : X(I,J)=SQR(X(I,J)) : NEXT J : NEXT I
480 FOR I=0 TO 2 : L(I)=0 : FOR J=0 TO 2 : A(I,J)=0 :NEXT J : NEXT I
490 FOR K=0 TO N : FOR I=0 TO 2 : L(I)=L(I)+X(K,I)
500 FOR J=0 TO I : A(J,I)=A(J,I)+X(K,I)*X(K,J) : NEXT J : NEXT I : NEXT K
510 FOR I=0 TO 2 : L(I)=L(I)/(N+1) :NEXT I
520 FOR I=1 TO 2 : FOR J=0 TO I-1 : A(I,J)=A(J,I) : NEXT J : NEXT I
530 FOR I=0 TO 2 : FOR J=0 TO 2
540 A(I,J)=(A(I,J)-(N+1)*L(I)*L(J))/N : NEXT J : NEXT I
550 FOR I=0 TO 2 : C(I)=A(I,I) : NEXT I
560 FOR I=0 TO 2 : FOR J=0 TO 2 : A(I,J)=A(I,J)/SQR(C(I)*C(J)) : NEXT J : NEXT I
570 FOR I=0 TO 1 : AC(I)=0
580 FOR J=0 TO 1 : AC(I)=AC(I)+A(I,J) : NEXT J
590 A(I,I)=A(I,I)-1 : NEXT I
600 FOR K=0 TO 1 : FOR J=0 TO 1 : AB(J)=A(K,J) : A(K,J)=0 : NEXT J
610 A(K,K)=1 : W=AB(K)+1
620 IF ABS(W)<.000001 then end>
630 FOR I=0 TO 1 : Y=A(I,K)/W : FOR J=0 TO 1
640 A(I,J)=A(I,J)-AB(J)*Y :NEXT J : NEXT I : NEXT K
650 FOR J=0 TO 1 : C=0 : FOR I=0 TO 1 : C=C+A(I,J)*A(I,2)
660 NEXT I : B(J+1)=C*SQR(C(2)/C(J)) : NEXT J
670 C=0 : FOR I=0 TO 1 : C=C+B(I+1)*L(I) : NEXT I
680 B(0)=L(2)-C : LPRINT " " : LPRINT " "
690 LPRINT "试验地点 :";SITE$;" 试验编号 :";NUMB$
700 IF LEFT$(PR$,1)="N" OR LEFT$(PR$,1)="n" THEN 750
710 LPRINT "处理编号 ";T1$;" ";T2$
720 IF MODEL$="R" OR MODEL$="r" GOTO 740
730 FOR I=0 TO N :LPRINT USING "########";I+1;:LPRINT USING "######.##";X(I,0);X(I,2):NEXT I :GOTO 750
740 FOR I=0 TO N :LPRINT USING "########";I+1;:LPRINT USING "######.##";X(I,0)^2;X(I,2):NEXT I :GOTO 750
750 IF LEFT$(PR$,1)="N" OR LEFT$(PR$,1)="n" THEN 770
760 LPRINT "施肥效应方程 Y=B0+B1*X1+B2*X1*X1" :GOTO 780
770 LPRINT "施肥效应方程 Y=B0+B1*SQR(X1)+B2*X1 "
780 LPRINT "回 归 系 数 :"
790 FOR I=0 TO 2 : LPRINT " B("+STR$(I)+")="; : LPRINT USING "#####.########";B(I),: NEXT I : LPRINT
800 S=C(2)*N : C=0
810 C=0 : FOR I=0 TO 1
820 C=C+B(I+1)*A(I,2)*N*SQR (C(2)*C(I))
830 NEXT I : Q=S-C
840 R=SQR(C/S) : ZR=SQR(Q/(N-2)) : F=(C/2)/(Q/(N-2))
850 D1=2 :D2=N-2 : VR=F : GOSUB 1100
860 IF PR<.5 then f else if pr>
870 LPRINT " " : LPRINT " 多元回归方差分析表"
880 LPRINT "来源 自由度 平方和 方差 F检验值 "
890 LPRINT "回归 ";:LPRINT USING"####";2;:LPRINT " ";:LPRINT USING "########.##";C;C/2;F;:LPRINT F$
900 LPRINT "剩余 ";:LPRINT USING"####";N-2;:LPRINT " ";:LPRINT USING "########.##";Q;Q/(N-2)
910 LPRINT "总计 ";:LPRINT USING"####";N;:LPRINT " ";:LPRINT USING "########.##";S
920 LPRINT " *置信度90%显著 **置信度95%显著"
930 LPRINT "复相关系数 R= ";R;" 回归值标准差 = ";ZR
940 IF LEFT$(PO$,1)="N" OR LEFT$(PO$,1)="n" THEN 970
950 WRITE #2,SITE$,NUMB$,VALU,T1$,COST(1),FMAX(1),FMIN(1)
960 FOR I=0 TO 2 : PRINT #2,B(I) : NEXT I
970 NU=NU+1 : GOTO 230
980 CLOSE
990 END
1000 INPUT #1,SITE$,NUMB$,TY
1010 FOR I=1 TO 6 :INPUT #1,F(I) :NEXT I
1020 FOR I=7 TO 12 :INPUT #1,A$(I) :NEXT I
1030 FOR I=0 TO F(5)-1 :FOR J=0 TO F(3) :INPUT #1,X(I,J) :NEXT J:NEXT I
1040 N=F(5) : T1$=A$(8) : T2$=A$(12)
1090 CLOSE #1 : RETURN
1100 PR=1
1110 IF (D1*D2*VR)<0 THEN PRINT "ERROR":STOP
1120 IF VR-1<0 GOTO 1140
1130 A=D1 :B=D2 :F=VR :GOTO 1150
1140 A=D2:B=D1:F=1/VR
1150 AA=2/(9*A) :BB=2/(9*B)
1160 Z=ABS (((1-BB)*F^.333333-1+AA)/SQR (BB*F^.666667+AA))
1170 IF B>=4 GOTO 1190
1180 Z=Z*(1+.08*Z^4/B^3)
1190 PR=.5/(1+Z*(.196854+Z*(.115194+Z*(.000344+Z*.019527))))^4
1200 IF (VR-1)>=0 GOTO 1220
1210 PR=1-PR
1220 SG=PR
1230 RETURN
PR=.5/(1+Z*(.196854+Z*(.115194+Z*(.000344+Z*.019527))))^4
1200 IF (VR-1)>=0 GOTO 1220
1210----------------解决方案--------------------------------------------------------
楼上既然会JAVA了,那么花上半个小时看看BASIC的基本语法应该就可以看懂这些BASIC代码了。
看一段代码只要对语法基本了解就可以搞定了,何况是BASIC~
----------------解决方案--------------------------------------------------------
虽然不会basic
但感觉应该挺简单的吧 用java来写这些真是不合适哦 用c也许效率更高些
----------------解决方案--------------------------------------------------------
应该是一些基本的if,for加上写文件的操作。。
如果你会VB应该很简单的了~
----------------解决方案--------------------------------------------------------