Just nu i M3-nätverket
Gå till innehåll

Basic-kod som inte vill kompilera


Username

Rekommendera Poster

Behöver hjälp med den här koden, den vill inte köras, eftersom jag inget kan om Basic tänkte jag fråga här.

Kod nedan:

Clothing, clo CLO
Metabolic rate, met MET
External work, met WME
Air temperature, °C TA
Mean radiant temperature, °C TR
Relative air velocity, m/s VEL
Relative humidity, % RH
Partial water vapour pressure, Pa PA
10 Computer program (BASIC) for calculation of
20 Predicted Mean Vote (PMV) and Predicted Percentage of Dissatisfied (PPD)
30 in accordance with International Standard, ISO 7730
40 CLS: PRINT "DATA ENTRY" data entry
50 INPUT " Clothing (clo) "; CLO
60 INPUT " Metabolic rate (met) " MET
70 INPUT " External work, normally around 0 (met) " WME
80 INPUT " Air temperature (°C) " TA
90 INPUT " Mean radiant temperature (°C) " TR
100 INPUT " Relative air velocity (m/s) " VEL
110 INPUT " ENTER EITHER RH OR WATER VAPOUR PRESSURE BUT NOT BOTH"
120 INPUT " Relative humidity (%) " RH
130 INPUT " Water vapour pressure (Pa) " PA
140 DEF FNPS (T) = EXP (16.6536-4030.183/T+235)) : saturated vapour pressure, kPa
150 IF PA = 0 THEN PA = RH * 10 * FNPS (TA) : water vapour pressure, Pa
160 ICL = .155 * CLO : thermal insulation of the clothing in m2K/W
170 M = MET * 58.15 : metabolic rate in W/m2
180 W = WME * 58.15 : external work in W/m2
190 MW = M – W : internal heat production in the human body
200 IF ICL u .078 THEN FCL = 1 + 1.29 * ICL
ELSE FCL = 1.05 + 0.645 * ICL : clothing area factor
210 HCF = 12.1 * SQR (VEL) : heat transf. coeff. by forced convection
220 TAA = TA + 273 : air temperature in Kelvin
230 TRA = TR + 273 : mean radiant temperature in Kelvin
240 -----CALCULATE SURFACE TEMPERATURE OF CLOTHING BY ITERATION ---
250 TCLA = TAA + (35.5-TA) / (3.5 * ICL + .1) : first guess for surface temperature
of clothing
260 P1 = ICL * FCL : calculation term
270 P2 = P1 * 3.96 : calculation term
280 P3 = P1 * 100 : calculation term
290 P4 = P1 * TAA : calculation term
300 P5 = 308.7 - .028 * MW + P2 * (TRA/100) * 4
310 XN = TLCA / 100
320 XF = XN
330 N = 0 : N: number of iterations
340 EPS = .00015 : stop criteria in iteration
350 XF = (XF + XN)/2
360 HCN =2.38 * ABS (100 * XF – TAA) ^ .25: heat transf. coeff. by natural convection
370 IF HCF>HCN THEN HC = HCF ELSE HC = HCN
380 XN = (P5 + P4 * HC – P2 * XF ^ 4) / (100 + P3 * HC)
390 N = N + 1
400 IF N > 150 THEN GOTO 550
410 IF ABS (XN – XF) > EPS GOTO 350
420 TCL = 100 * XN - 273 : surface temperature of the clothing
430 --------------------------------HEAT LOSS COMPONENTS -----------------------------------
440 HL1 = 3.05 * .001 (5733-6.99 * MW-PA) : heat loss diff. through skin
450 IF MW > 58.15 THEN HL2 = .42 * (MW – 58.15)
ELSE HL2 = 0! : heat loss by sweating (comfort)
460 HL3 = 1.7 * .00001 * m * (5867-PA) : latent respiration heat loss
470 HL4 = .0014 * m * (34 - TA) : dry respiration heat loss
480 HL5 = 3.96 * FCL * (XN^4 – (TRA/100^4) : heat loss by radiation
500 --------------------------------CALCULATE PMV AND PPD -----------------------------------
510 TS = .303 * EXP (- .036 * m) + .028 : thermal sensation trans coeff
520 PMV = TS * (MW – HL1 – HL2 – HL3 – HL4 – HL5 –HL6) : predicted mean vote
530 PPD = 100 – 95 * EXP (- .03353 * PMV ^ 4 - .2179 * PMV^ 2) : predicted percentage dissat.
540 GOTO 570
550 PMV = 999999!
560 PPD = 100
570 PRINT:PRINT "OUTPUT" : output
580 PRINT " Predicted Mean Vote (PMV): "
:PRINT USING "# # . #": PMV
590 PRINT " Predicted Percent of Dissatisfied (PPD): "
:PRINT USING "# # # . #": PPD
600 PRINT: INPUT "NEXT RUN (Y/N)"; RS
610 IF (RS = "Y" OR RS = "y") THEN RUN
620 END


Det är inte Visual Basic, bara Basic.

Länk till kommentar
Dela på andra webbplatser

Vilken kompilator använder du? Vilket fel säger kompilatorn att det är?

 

Och dom första åtta raderna ser ut som det borde vara kommentarer, men dom verkar inte vara kommentarsmarkerade så prova att ta bort dom och se om det hjälper.

Länk till kommentar
Dela på andra webbplatser

Så länge sedan man höll på med Basic, glömt ganska mycket, men rad 580 och 590 är brutna rader, sätt ihop dom igen, och se sedan om det kan hjälpa att göra skillnad, när du hittat rätt kompilator, har minne av att det ibland inte gick köra en kod när man fick brutna rader.

Länk till kommentar
Dela på andra webbplatser

Är det inte bara brutna rader i inlägget här på eforum?

 

Kanske ser bättre ut om man använder "kod-knappen"?

(Använd fullständig editor)

Länk till kommentar
Dela på andra webbplatser

Rensat tråden. ta diskussionen om kompilatorer i annan tråd.

Och undvik personpåhopp!

 

Misstycker ni mitt/vårt agerande här ta upp det i Diskutera Eforum.

 

/en av Eforums moderatorer

Länk till kommentar
Dela på andra webbplatser

Gäst George M

Moderatorer: Sluta sabotera mina inlägg i TS:s (MariaE) tråd!

Mitt tips till TS är helt relevant; hennes basic-kompilator

fungerar ej och jag ger tips om en som heter Bascom. Vilken

planet kommer NI ifrån?

Länk till kommentar
Dela på andra webbplatser

Moderatorer: Sluta sabotera mina inlägg i TS:s (MariaE) tråd!

Mitt tips till TS är helt relevant; hennes basic-kompilator

fungerar ej och jag ger tips om en som heter Bascom. Vilken

planet kommer NI ifrån?

Trådskaparen har signaturen "Username". Om du vill diskutera något med MariaE får du starta en ny tråd.

Länk till kommentar
Dela på andra webbplatser

Moderatorer: Sluta sabotera mina inlägg i TS:s (MariaE) tråd!

Mitt tips till TS är helt relevant; hennes basic-kompilator

fungerar ej och jag ger tips om en som heter Bascom. Vilken

planet kommer NI ifrån?

Som sagt, ta upp diskussion om moderatorer agerande i kanalen Diskutera Eforum. Inte här.

Frågor/svar icke rörande TS fråga kommer ta bort utan pardon!

Länk till kommentar
Dela på andra webbplatser

Felmeddelanden för rad,

 

RAD: 40 CLS: PRINT "DATA ENTRY" entry
FEL: Statement DATA must be on the left side (the first keyword of the line)

 

RAD: 140 DEF FNPS (T) = EXP (16.6536-4030.183/T+235)) : saturated vapour pressure, kPa

FEL: Missing ´(´

 

 

Testat i Microsoft Small Basic samt SmallBASIC 0.11.5

Länk till kommentar
Dela på andra webbplatser

Jag kan tänka mig att koden eventuellt kan fungera i SmallBASIC, men inte Microsoft Small Basic. Dock upplever jag att den ändå innehåller rena fel.

 

Till exempel på rad 50 så står det semikolon efter texten i input statement, men inte på de övriga inputtarna. Kolon ser ut att användas både som kommentars markering och som att separera uttryck på en gång. På rad 260, 270 så ser det ut som det skulle vara en kommentar. Men sedan på 570 så står det PRINT:PRINT, betyder det att han försöker göra två print på samma gång. Och varför står det sedan : output i slutet av raden.

 

Jag tror inte den här koden fungerar. Om man inte hittar exakt den kompilator eller tolk som den en gång skrevs för. Men för att få den att fungera med SmallBASIC så tror jag man måste skriva om den en bit.

 

Fast man kanske skulle skriva om den helt och hållet till något modernare? Den verkar ju inte superkomplicerad direkt.

Länk till kommentar
Dela på andra webbplatser

Har suttit i SmallBasic ett tag och tittat, håller med .M om att det är ett flertal småfel, förutom det .M hittat, rad 40  ska redigeras om.

Så har jag fått remmat flera rader, 240, 430,500 , finns brutna rader, och sedan som du har påpekat själv så fattas det flera "(" också, men jag är lite för rostig för att nu få ihop detta nu.

 

Nej, denna är inte klar än på ett tag, kanske tillbaka till skrivbordet ser det ut som.

Länk till kommentar
Dela på andra webbplatser

Alright, jag labbade lite med det här för jag har ingenting bättre för mig.
 
Kolon verkar vara en kommentarsmarkering. Men SmallBASIC erkänner inte kolon som kommentarsmarkering så jag fick rensa alla dom. När det inte står ett nyckelord i början av raden så utgick jag ifrån att det borde vara en print, till exempel rad 10-30.
 
Sen kommer det knepiga. På vissa platser så används ^ som jag antar är en exponent. Det är inte helt ovanligt att det är det i programmering. Men SmalllBASIC erkänner det inte. Jag tror man ska använda en funktion som heter EXP. Det för att den felaktigt rapporterar en saknad ) som Laso nämner.
 
Sen har jag stött på bekymmer med GOTO också som jag inte riktigt förstår hur det förväntas fungera när man kombinerar det med IF.
 
Sen hittade jag koden på SmallBASICs forum också. Kan det vara så att Username letat hjälp på fler ställen? :)
http://smallbasic.sourceforge.net/?q=node/1250

Länk till kommentar
Dela på andra webbplatser

Ser inte bättre ut, Username blir ju direkt hänvisad att använda SmallBasic, men även i den så är det ju patrull?

 

Jag hoppar detta, måste friska upp kunskaperna först annars, inte så komplicerat, men ändå.

 

Kan bara konstatera en mängd småfel...

Länk till kommentar
Dela på andra webbplatser

  • 4 veckor senare...

Hej, jag har skrivit om samma kod på smallBASIC det är riktigt. Vad jag förstått kan den inte köras i Microsoft Basic utan i en tidigare variant. Som jag skriver där kanske matematiken är fel fast det tror jag inte utan den är skriven till en kompilator jag inte känner till.

 

http://smallbasic.so...et/?q=node/1250

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...