主题:[原创]大家帮帮忙拉,BASIC转为C语言
大家帮帮忙拉,BASIC转为C语言
是一段(反应系数法)计算程序。书里的是BASIC写的。现在我得要C语言的。 帮我转转吧,谢谢了。跟贴也好,发我邮箱里也好呀。我的邮箱是jxh830117@163.com
BASIC程序如下:
200 DIM A(10),B(10),C(10),D(10)
202 DIM A9(100),B9(100),C9(100),S(100)
204 DIM X(100),Y(100),Z(100)
206 DIM R(10),G1(10),G2(10),G3(10),G4(10)
208 INPUT N
210 FOR I=1 TO N
212 INPUT R(I),G1(I),G2(I),G3(I),G4(I)
214 IF R(I)<>0 THEN 222
216 G2(I)=G1(I)/G3(I)/G2(I)*3.6
218 G3(I)=G4(I)
220 R0=R0+G3(I)/G1(I)
222 R0=R0+R(I)
224 NEXT I
226 K=1/R0
228 PRINT"THERMAL CONDUCTANCE K=";K
230 Z5=SQR(40)
232 G=0.1
234 FOR J=1 TO 40
236 A0=1
238 B0=0
240 C0=0
242 D0=1
244 FOR I=1 TO N
246 IF R(I)<>0 THEN 268
248 Z1=SQR(G1(I)*G1(I)/G2(I))*X(J)
250 Y(I)=SQR(G3(I)*G3(I)/G2(I))*X(J)
252 A(I)=COS(Y(I))
254 IF Y(I)=0 THEN 260
256 B(I)=SIN(Y(I))/Z1
258 GOTO 262
260 B(I)=G3(I)/G1(I)
262 C(I)=-Z1*SIN(Y(I))
264 D(I)=A(I)
266 GOTO 276
268 A(I)=1
270 B(I)=R(I)
272 C(I)=0
274 D(I)=1
276 E1=A0*A(I)+B0*C(I)
278 E2=A0*B(I)+B0*D(I)
280 E3=C0*A(I)+D0*C(I)
282 E4=C0*B(I)+D0*D(I)
284 A0=E1
286 B0=E2
288 C0=E3
290 D0=E4
292 NEXT I
294 W=W+1
296 Z(W)=B0
298 IF ABS(B0)<1E-05 THEN 318
300 IF W>100 THEN 318
302 E0=Z(W-1)-Z(W)
304 H=Z(W)
306 IF ABS(Z(W))-ABS(Z(W-1))<0 THEN H=Z(W-1)
308 IF ABS(E0)<=ABS(H) THEN 312
310 G=-G/3
312 X(J)=X(J)+G
314 IF X(J)>Z5 THEN 444
316 GOTO 236
318 S(J)=X(J)*X(J)
320 G=0.1
322 W=0
324 X(J+1)=X(J)+G
326 FOR I=1 TO N
328 IF R(I)<>0 THEN 358
330 IF S(J)=0 THEN 368
332 Z1=SQR(S(J)/G2(I))
334 Z2=Z1*G3(I)
336 X9=G3(I)*G3(I)*0.5/G2(I)
338 R1=G3(I)/G1(I)
340 C4=SIN(Z2)
342 C5=COS(Z2)
344 S1=C4/Z2
346 S2=(S1-C5)/Z2/Z2
348 A2=X9*S1
350 B2=X9*R1*S2
352 C2=X9*(S1+C5)/R1
354 D2=X9*S1
356 GOTO 378
358 A2=0
360 B2=0
362 C2=0
364 D2=0
366 GOTO 378
368 X9=G3(I)*G3(I)*0.5/G2(I)
370 A2=X9
372 B2=X9*G3(I)/G1(I)/3
374 C2=G1(I)/G3(I)*X9*2
376 D2=X9
378 IF I=1 THEN 414
380 E1=A0*A(I)+B0*C(I)
382 E2=A0*B(I)+B0*D(I)
384 E3=C0*A(I)+D0*C(I)
386 E4=C0*B(I)+D0*D(I)
388 E5=A3*A(I)+A0*A2+B3*C(I)+B0*C2
390 E6=A3*B(I)+A0*B2+B3*D(I)+B0*D2
392 E7=C3*A(I)+C0*A2+D3*C(I)+D0*C2
394 E8=C3*B(I)+C0*B2+D3*D(I)+D0*D2
396 A0=E1
398 B0=E2
400 C0=E3
402 D0=E4
404 A3=E5
406 B3=E6
408 C3=E7
410 D3=E8
412 GOTO 430
414 A0=A(I)
416 B0=B(I)
418 C0=C(I)
420 D0=D(I)
422 A3=A2
424 B3=B2
426 C3=C2
428 D3=D2
430 NEXT I
432 A9(J)=D0/B3
434 B9(J)=1/B3
436 C9(J)=A0/B3
438 S(J)=-S(J)
440 PRINT J,S(J)
442 NEXT J
444 M=J-1
446 PRINT "J X(J) Y(J) Z(J)"
448 I=0
450 IF I=0 GOTO 472
452 X(I)=0
454 Y(I)=0
456 Z(I)=0
458 FOR J=1 TO M
460 A1=-(1-EXP(S(J))*(1-EXP(S(J))*EXP((I-1)*S(J))/S(J)/S(J)
462 X(I)=X(I)-A9(J)*A1
464 Y(I)=Y(I)-B9(J)*A1
466 Z(I)=Z(I)-C9(J)*A1
468 NEXT J
470 GOTO 490
472 X(I)=K
474 Y(I)=K
476 Z(I)=K
478 FOR J=1 TO M
480 A1=(1-EXP(S(J))/(S(J)*S(J))
482 X(I)=X(I)-A9(J)*A1
484 Y(I)=Y(I)-B9(J)*A1
486 Z(I)=Z(I)-C9(J)*A1
488 NEXT J
490 IF I<0.0015 THEN Y(I)=0
492 IF I<2 THEN 502
494 IF Y(I-1)=0 THEN 502
496 C2=Y(I)/Y(I-1)
498 C5=ABS(C2-Y(I-1)/Y(I-2))
500 IF (C5-0.001)<=0 THEN 508
502 PRINT I,X(I),Y(I),Z(I)
504 I=I+1
506 GOTO 452
508 PRINT "C="; C2
510 END
是一段(反应系数法)计算程序。书里的是BASIC写的。现在我得要C语言的。 帮我转转吧,谢谢了。跟贴也好,发我邮箱里也好呀。我的邮箱是jxh830117@163.com
BASIC程序如下:
200 DIM A(10),B(10),C(10),D(10)
202 DIM A9(100),B9(100),C9(100),S(100)
204 DIM X(100),Y(100),Z(100)
206 DIM R(10),G1(10),G2(10),G3(10),G4(10)
208 INPUT N
210 FOR I=1 TO N
212 INPUT R(I),G1(I),G2(I),G3(I),G4(I)
214 IF R(I)<>0 THEN 222
216 G2(I)=G1(I)/G3(I)/G2(I)*3.6
218 G3(I)=G4(I)
220 R0=R0+G3(I)/G1(I)
222 R0=R0+R(I)
224 NEXT I
226 K=1/R0
228 PRINT"THERMAL CONDUCTANCE K=";K
230 Z5=SQR(40)
232 G=0.1
234 FOR J=1 TO 40
236 A0=1
238 B0=0
240 C0=0
242 D0=1
244 FOR I=1 TO N
246 IF R(I)<>0 THEN 268
248 Z1=SQR(G1(I)*G1(I)/G2(I))*X(J)
250 Y(I)=SQR(G3(I)*G3(I)/G2(I))*X(J)
252 A(I)=COS(Y(I))
254 IF Y(I)=0 THEN 260
256 B(I)=SIN(Y(I))/Z1
258 GOTO 262
260 B(I)=G3(I)/G1(I)
262 C(I)=-Z1*SIN(Y(I))
264 D(I)=A(I)
266 GOTO 276
268 A(I)=1
270 B(I)=R(I)
272 C(I)=0
274 D(I)=1
276 E1=A0*A(I)+B0*C(I)
278 E2=A0*B(I)+B0*D(I)
280 E3=C0*A(I)+D0*C(I)
282 E4=C0*B(I)+D0*D(I)
284 A0=E1
286 B0=E2
288 C0=E3
290 D0=E4
292 NEXT I
294 W=W+1
296 Z(W)=B0
298 IF ABS(B0)<1E-05 THEN 318
300 IF W>100 THEN 318
302 E0=Z(W-1)-Z(W)
304 H=Z(W)
306 IF ABS(Z(W))-ABS(Z(W-1))<0 THEN H=Z(W-1)
308 IF ABS(E0)<=ABS(H) THEN 312
310 G=-G/3
312 X(J)=X(J)+G
314 IF X(J)>Z5 THEN 444
316 GOTO 236
318 S(J)=X(J)*X(J)
320 G=0.1
322 W=0
324 X(J+1)=X(J)+G
326 FOR I=1 TO N
328 IF R(I)<>0 THEN 358
330 IF S(J)=0 THEN 368
332 Z1=SQR(S(J)/G2(I))
334 Z2=Z1*G3(I)
336 X9=G3(I)*G3(I)*0.5/G2(I)
338 R1=G3(I)/G1(I)
340 C4=SIN(Z2)
342 C5=COS(Z2)
344 S1=C4/Z2
346 S2=(S1-C5)/Z2/Z2
348 A2=X9*S1
350 B2=X9*R1*S2
352 C2=X9*(S1+C5)/R1
354 D2=X9*S1
356 GOTO 378
358 A2=0
360 B2=0
362 C2=0
364 D2=0
366 GOTO 378
368 X9=G3(I)*G3(I)*0.5/G2(I)
370 A2=X9
372 B2=X9*G3(I)/G1(I)/3
374 C2=G1(I)/G3(I)*X9*2
376 D2=X9
378 IF I=1 THEN 414
380 E1=A0*A(I)+B0*C(I)
382 E2=A0*B(I)+B0*D(I)
384 E3=C0*A(I)+D0*C(I)
386 E4=C0*B(I)+D0*D(I)
388 E5=A3*A(I)+A0*A2+B3*C(I)+B0*C2
390 E6=A3*B(I)+A0*B2+B3*D(I)+B0*D2
392 E7=C3*A(I)+C0*A2+D3*C(I)+D0*C2
394 E8=C3*B(I)+C0*B2+D3*D(I)+D0*D2
396 A0=E1
398 B0=E2
400 C0=E3
402 D0=E4
404 A3=E5
406 B3=E6
408 C3=E7
410 D3=E8
412 GOTO 430
414 A0=A(I)
416 B0=B(I)
418 C0=C(I)
420 D0=D(I)
422 A3=A2
424 B3=B2
426 C3=C2
428 D3=D2
430 NEXT I
432 A9(J)=D0/B3
434 B9(J)=1/B3
436 C9(J)=A0/B3
438 S(J)=-S(J)
440 PRINT J,S(J)
442 NEXT J
444 M=J-1
446 PRINT "J X(J) Y(J) Z(J)"
448 I=0
450 IF I=0 GOTO 472
452 X(I)=0
454 Y(I)=0
456 Z(I)=0
458 FOR J=1 TO M
460 A1=-(1-EXP(S(J))*(1-EXP(S(J))*EXP((I-1)*S(J))/S(J)/S(J)
462 X(I)=X(I)-A9(J)*A1
464 Y(I)=Y(I)-B9(J)*A1
466 Z(I)=Z(I)-C9(J)*A1
468 NEXT J
470 GOTO 490
472 X(I)=K
474 Y(I)=K
476 Z(I)=K
478 FOR J=1 TO M
480 A1=(1-EXP(S(J))/(S(J)*S(J))
482 X(I)=X(I)-A9(J)*A1
484 Y(I)=Y(I)-B9(J)*A1
486 Z(I)=Z(I)-C9(J)*A1
488 NEXT J
490 IF I<0.0015 THEN Y(I)=0
492 IF I<2 THEN 502
494 IF Y(I-1)=0 THEN 502
496 C2=Y(I)/Y(I-1)
498 C5=ABS(C2-Y(I-1)/Y(I-2))
500 IF (C5-0.001)<=0 THEN 508
502 PRINT I,X(I),Y(I),Z(I)
504 I=I+1
506 GOTO 452
508 PRINT "C="; C2
510 END