回 帖 发 新 帖 刷新版面

主题:[原创]大家帮帮忙拉,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



回复列表 (共3个回复)

沙发

汗!!!我不擅长有这么多行号!!!

板凳

一看见无条件的goto我就慌了
在c里全得写函数来调中间的内容阿

3 楼

把“FOR J=1 TO M

NEXT J”转为
for(J=1,J<M+1,J++)  ;

IF  THEN   -转为---> if()  ;
就可以了。


可以跟我联系
我的QQ 38336779
hrcgw@hotmail.com
或到http://www.hrcgw.com/bbs留言

我来回复

您尚未登录,请登录后再回复。点此登录或注册