element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Experts, Learning and Guidance
  • Technologies
  • More
Experts, Learning and Guidance
Ask an Expert Forum BASIC translation to Python
  • Blog
  • Forum
  • Documents
  • Leaderboard
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Experts, Learning and Guidance to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Locked Locked
  • Replies 48 replies
  • Answers 24 answers
  • Subscribers 293 subscribers
  • Views 10042 views
  • Users 0 members are here
  • translation
  • python
Related
See a helpful answer?

Be sure to click 'more' and select 'suggest as answer'!

If you're the thread creator, be sure to click 'more' then 'Verify as Answer'!

This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

BASIC translation to Python

tommy2k19
tommy2k19 over 6 years ago

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"

  • Cancel

Top Replies

  • jomoenginer
    jomoenginer over 6 years ago in reply to tommy2k19 +4 suggested
    There is no GOTO or GOSUB in Python. It is used in C but discouraged in most cases; it is quite common in BASIC. You can think of a GOTO as in an if-elif-else case or just replace the GOTO from BASIC with…
  • jomoenginer
    jomoenginer over 6 years ago in reply to Jan Cumps +4
    Jan Cumps wrote: If it’s a good friend, show this thread. If it is not a very good friend, show the thread then run away . Or it would completely offend the friend and create a negative view of the folks…
  • jc2048
    jc2048 over 6 years ago in reply to Jan Cumps +4 suggested
    The Sharp 1251 seems to have been sold by Tandy rebadged as the PC-3. There's a user manual here that includes a reference for their version of BASIC. https://ia601707.us.archive.org/13/items/PC-3_Owners_Manual_19xx_Tandy…
Parents
  • tommy2k19
    0 tommy2k19 over 6 years ago

    Just to satisfy myself, I am trying to translate it (and I know what you've all said!). But it doesn't seem correct!:

     

    print "HL0SS85.1":print"":goto(6)
    def goto(5):
        global 6
        line = lineNumber
        lineNumber = 6

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Jan Cumps
    0 Jan Cumps over 6 years ago in reply to tommy2k19

    The software is explained here, a bit:

     

    You don't have permission to edit metadata of this video.
    Edit media
    x
    image
    Upload Preview
    image

     

    There is no talk, but after the code is shown, you can see what the input / output looks like, what it does and what it outputs.

    It also scrolls through the documentation.

    At the beginning, the creator says it was written on a morning train trip.

     

    You can enter room specifics, for multiple rooms (size, what fabric is on the floor, ...).

    It calculates the heat loss, then gives the size of the boiler you'd need to keep the spaces warm.

     

     

    About your code to build a GOTO construct in Python, I think it will be easier to try and find the story back in the code

    - how are all those parameters for each room retrieved, and what are those parameters

    - how are the calculations per room made

    - how is the summary calculation done at the end.

     

    Then abandon the code and implement these 3 functions in Python, using the standard functionality.

    • Cancel
    • Vote Up +3 Vote Down
    • Cancel
  • Jan Cumps
    0 Jan Cumps over 6 years ago in reply to Jan Cumps

    If you are using Python 3, someone seems to have implemented a GOTO:

    https://github.com/cdjc/goto

     

    This one documents it works for 2.6 -> 3.6,

    https://github.com/snoack/python-goto

    • Cancel
    • Vote Up +3 Vote Down
    • Cancel
  • Jan Cumps
    0 Jan Cumps over 6 years ago in reply to Jan Cumps

    How the program presents itself to the user:

     

    MENU:

    image

     

    image

     

    Principles:

    image

     

    image

     

    image

    image

     

    image

    image

    image

    image

     

    image

    image

    image

    image

    image

    image

    image

    .... etc for each room, see video

     

     

    Totals:

    image

    image

    • Cancel
    • Vote Up +2 Vote Down
    • Cancel
  • jc2048
    0 jc2048 over 6 years ago in reply to Jan Cumps

    The Sharp 1251 seems to have been sold by Tandy rebadged as the PC-3. There's a user manual here that includes a reference for their version  of BASIC.

     

    https://ia601707.us.archive.org/13/items/PC-3_Owners_Manual_19xx_Tandy/PC-3_Owners_Manual_19xx_Tandy_text.pdf

    • Cancel
    • Vote Up +4 Vote Down
    • Cancel
Reply
  • jc2048
    0 jc2048 over 6 years ago in reply to Jan Cumps

    The Sharp 1251 seems to have been sold by Tandy rebadged as the PC-3. There's a user manual here that includes a reference for their version  of BASIC.

     

    https://ia601707.us.archive.org/13/items/PC-3_Owners_Manual_19xx_Tandy/PC-3_Owners_Manual_19xx_Tandy_text.pdf

    • Cancel
    • Vote Up +4 Vote Down
    • Cancel
Children
  • tommy2k19
    0 tommy2k19 over 6 years ago in reply to jc2048

    I am seeing my friend today, so I shall discuss with him.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube