I have written a few very basic programs in Python but have not done much program translation.
My friend asked me to translate his heating program from Basic to Python.
Is there an easy way to do this? I haven't tried anything yet?
Tha Basic code is below:
1:PRINT"HLOSS85.1":PRINT"":GOTO 3 3:"N"INPUT"INPUT NOTES> ";B$(0):PRINT B$(0):GOTO 3 4:PRINT "":IF L>0 END 5:GOSUB 9:GOTO 104 9:PRINT"------------------------":RETURN 10:"=" PRINT=LPRINT:PRINT"":END 20"L"PRINT=PRINT:PAUSE "PO":END 50:"S" CLEAR:USING 60:DIM B$(0)*24 70:DIM S(6),W(6),G(6),V(0),Z(0),P(0),Q(0),O(0),K(0),N(0):N=1:A(27)=25:R=25:T=600 80:M=21:J=-4:U=5.6:A(30)=55:A(32)=3:GOSUB 9:GOTO 1 104:INPUT"INPUT OUTSIDE TEMP C ";J 105:PRINT"OUTSIDE TEMP ";J;" C 106:INPUT"INPUT ROOM TEMP C ";M 107:C=M-J 108:PRINT"PRINT TEMP ";M;" C":PRINT"TD = ";C;" C 114: GOSUB 9 115:"C"B$(0)="":INPUT"INPUT ROOM NAME ";B$(0) 116:IF B$(0)="" GOTO 115 117:IF B$(0)="*" GOTO 320 120:PRINT B$(0) 125:Y$="N":INPUT"SAME AS LAST ROOM? ";Y$;:IF Y$="Y" GOTO 252 130:S(5)=0:P=0:Q=0:B=0:O=0:K=0k:V=0:O(0)=0:K(0)=0:A=0:G(5)=0:W=0 140:USING:L=0:W=0:H=0:INPUT"INPUT ROOM LENGTH M ";L,"INPUT WIDTH M ";W,"INPUT HEIGHT M ";H 165:Z=LW:V=ZH:IF V=0 GOTO 140 175:PRINT"L=";L;"M W=";W;"M H=";H;"M 176:PRINT"AREA ";Z;" M2 177:PRINT"VOLUME ";V; M3 180:S=1 190:S(S)=LH:GOSUB 500 200:S(S)=WH:GOSUB 500 210:S(S)=S(1):GOSUB 500 220:S(S)=S(2):GOSUB 500 230:S(S)=LW:GOSUB 500 240:S(S)=S(5):GOSUB 500 245:USING:D=M-J:INPUT"INPUT AC/HR ";N;"INPUT TD C ";D 246:PRINT N;" A/C @ ";D;" C TD":B=.33VND 247:INPUT"INPUT SAFETY % ";A(33) 248:IF A(33)>100 GOTO 247 249:A(36)=INT B+INT P+INT Q 250:A(34)=INT((A(33)/100)*A(36)) 251:PRINT"SAFETY ";A(33);"% ";INT A(34);"W 252:K=INT A(34)+INT A(36) 253:Y$="":INPUT"IS INFO CORRECT ? ";Y$ 254:IF Y$="N" GOTO 115 255:IF Y$<>"Y" GOTO 253 256:Z(0)=S(5)+Z(0):P(0)=INT P+P(0):Q(0)=INT Q+Q(0):V(0)=INT B+V(0);O(0)=O+O(0) 257:N(0)=V+N(0):K(0)+K+K(0):A(35)=A(34)+A(35) 258:PRINT"- ROOM HEAT LOSS - 260:PRINT"FABRIC ";INT Q;"W":PRINT"WINDOW ";INT P;"W":PRINT" VENT ";INT B;"W 261:PRINT"SAFETY ";INT A(34);"W 262:PRINT"TOTAL ROOM LOSS ";K;"W 263:IF V=0 GOTO 265 264:PRINT INT ((K/V)+.5);" W/M3 265:GOSUB 9 266:"H"USING:INPUT"INPUT RADIATOR HT MM ";T 267:PRINT"RAD HEIGHT ";T;"MM 268:PRINT"SINGLE ";INT(544K/T);"MM LENGTH 269:PRINT"DOUBLE ";INT(362/T);"MM 270:GOSUB 9 310:GOTO 115 320:PRINT" 330:"G"USING:PRINT:PRINT"-------- TOTALS -------- 350:PRINT"FLOOR AREA ";Z(0);" M2 355:PRINT"VOLUME ";N(0);" M3 410:PRINT"FABRIC LOSS ";INT Q(0);"W 420:PRINT"WINDOW LOSS ";INT P(0);"W 430:PRINT"VENT LOSS ";INT V(0);"W 440:PRINT"SAFETY LOSS ";INT A(35);"W 457:GOSUB 9 460;K=INT Q(0)+INT P(0)+INT V(0)+ INT A(35):PRINT "TOTAL LOSS ";INT K;"W 465:PRINT"AV.HEAT LOSS ";INT((K/M-J))+.5);"W/C 467:IF N(0)=0 GOTO 480 468:PRINT" ";INT((K/N(0)))+.5);"W/M3 470:PRINT USING"###.##";"G VALUE ";(K/(M-J))/N(0);" W/M3/C 480:USING:GOSUB 9 484:GOTO 900 489:A(31)=K+A(29)*1E3 490:INPUT"INPUT BOILER MARGIN % ";A(27) 491:A(28)=A(31)*A(27)/1E2 492:PRINT"BOILER MARGIN":PRINT A(27);"% = ";INT A(28);"W 493:GOSUB 9 494:PRINT" BOILER SIZE 495:PRINT USING"#######.#";" ";(A(31)+A(28))/1E3;"KW 496:USING:GOSUB 9 497:PRINT "":PRINT" 498:END 500:IF S<5 PRINT"WALL ";S 502:IF S=5 PRINT"CEILING/ROOF 504:IF S=6 PRINT"FLOOR 505:X=0:G(S)=0:C=M-J 507:INPUT"INPUT FABRIC U VALUE ";X:GOTO 509 508:GOTO 515 509:INPUT"INPUT TD C";C 510:GOSUB 700 512:IF X>0 GOTO 530 515:PRINT"NO LOSS 530:S=S+1:RETURN 700:IF S<6 INPUT"INPUT GLASS AREA M2 ";G(S) 702:IF G(S)>S(S) GOTO 700 705:W(S)=S(S)-G(S):IF W(S)=S(S) GOTO 710 707:IF S<5 LET A=A+S(S) 710:F=W(S)CX:PRINT W(S);"X";X;"X";C;"=";F;"W 712:Q=Q+F 715:IF S(S)=W(S) RETURN 717:INPUT"INPUT GLASS U VALUE ";U 800:IF S=5 PRINT"ROOFLIGHT":GOTO 805 802:PRINT"WINDOW ";S 805:G=G(S)UC 810:PRINT G(S);"X";U;"X";C;"=";G;"W 815:P=P+G:O=O+G(S) 820:K(0)=G(5) 830:RETURN 900:"D"USING:PRINT"D.H.WATER":INPUT"INPUT NO.OF PEOPLE ";I 905:IF I>0 PRINT 920 910:A(29)=0:PRINT"NONE":GOTO 489 920:INPUT"INPUT LITRE/PERSON ";R 930:PRINT I;"PEOPLE X ";R;"LITRE 940:INPUT"INPUT WARMUP - HRS ";A(32) 942:INPUT"INPUT WATER TD C ";A(30) 945:A(29)=4.2A(A30)IR/3600A(32) 950:PRINT A(32);"HR WARMUP @ ";A(30);"C TD 955:PRINT USING"#####.#";HOT WATER CYL";A(29);"KW 970:USING:GOTO 489 975:"X"USING:INPUT"INPUT FLOOR AREA M2";Z(0):PRINT Z(0) 976:INPUT"INPUT VOLUME M3 ";N(0):PRINT N(0) 977:INPUT"INPUT FABRIC W ";Q(0):PRINT Q(0) 978:INPUT"INPUT WINDOW W ";P(0):PRINT P(0) 979:INPUT"INPUT VENT W "V(0):PRINT V(0) 980:INPUT"INPUT SAFETY W ";A(35):PRINT A(35) 995:GOTO "G" 997:"Z"INPUT"INPUT W";K:PRINT K;"W 998:GOTO "H"