Avatar billede x4all_dk Nybegynder
15. februar 2004 - 17:56 Der er 21 kommentarer og
1 løsning

Hjælp til tydning af gammel basic-kode.

Jeg sidder og læser et stykke gammelt "basic" lignende kode, som er skrevet i 80' erne, og forsøger at omskrive programmet til år 2004.

Kodeeksempel:
10 REAL X(6,100), Y(5), z, a, b, x
20 z=25
30 y=0.23
40 a=4 @ b=8
50 FOR x=1 TO a
60  X(0,x)=b
70 NEXT x

Hvad betyder i linie
10 : Y(5)   
10 : X(6,100)
40 : @
60 : X(0,x)=b

Håber der er nogle gamle gutter som kan hjælpe mig :-)
- Jeg kan godt 'gætte' mig lidt til hvad der sker, men jeg vil gerne have en 100% sikkert svar.

Mine gæt er:
Y(5) : array [0..5]
X(6,100) : array [0..5][0..99]
@ : flere kommadoer på samme linie
X(0,x)=b : array X[0,x]=b

Hvem kan verificerer ?
Avatar billede kabbak Professor
15. februar 2004 - 18:03 #1
10 REAL X(6,100), Y(5), z, a, b, x
det samme som dim idag

real =  reelt , måske integer

@ har jej ikke set før, eller jeg har glemt det

ellers ser dine gøt rigtige ud
Avatar billede kabbak Professor
15. februar 2004 - 18:04 #2
jeg tror der er noget galt, med tastaturet ;-))
Avatar billede kabbak Professor
15. februar 2004 - 18:05 #3
Flere kommandoer på samme linie plejer at være :
Avatar billede x4all_dk Nybegynder
15. februar 2004 - 18:06 #4
dim ?  Jeg kender ikke til microsoft VB erklæringer,
så jeg skal have lidt mere forklaring :-)
Avatar billede roenving Novice
15. februar 2004 - 18:09 #5
Bortset fra @-tegnet, som jeg aldrig er stødt ind i, kan jeg kun bekræfte dine mistanker ...

-- dog een afvigelse:

Afhængig af base kunne Y(5) betyde array [0..5] eller array [1..5]
Avatar billede roenving Novice
15. februar 2004 - 18:10 #6
Dim svarer til var i javascript og også nogle af dens forældre og søskende (c, c++ og java)
Avatar billede x4all_dk Nybegynder
15. februar 2004 - 18:13 #7
roenving -->  Hvis Y(5) er array på størrelse ca. 5 :-) ..  Hvad ialverden betyder så:
10 Y(5)
20 Y=0.23

??  initialiseres alle indgange til 0.23 ?
Avatar billede kabbak Professor
15. februar 2004 - 18:14 #8
10 20 30 er linie numre
Avatar billede kabbak Professor
15. februar 2004 - 18:15 #9
hvilket år er det ca. fra
Avatar billede x4all_dk Nybegynder
15. februar 2004 - 18:21 #10
Kabbak:
Koden er fra perioden 1985-1988. Og vist skrevet til en HP-maskine med udskrift til en plotter... så det er sku gammel kode.
10 20 30 er linie numre :-)  jeps!  Det havde jeg regnet ud! - har da kodet C64-basic engang i 1985 ;-) 

Jeg skal bare have verificeret 100% hvad overståede kode betyder, da jeg skal omskrive ca. 1000 liniers kode til Java.  Jeg kan ikke eksekverer det gamle kode, eller kører en debugger på det... så jeg aner ikke hvad koden gør ;-)
Avatar billede roenving Novice
15. februar 2004 - 18:23 #11
Så vil jeg da anbefale, at du lægger en smule mere, så kan det være, at vi kan hjælpe dig med at forstå koden, for en oversættelse uden forståelse blivar da noget snot !-)
Avatar billede kabbak Professor
15. februar 2004 - 18:26 #12
på denne side er der nogle zip filer, med forskellige turbobasic bas filer, måske står der noget i benærkningerne.

http://www.bookcase.com/library/software/msdos.devel.apps.turbo-basic.html
Avatar billede x4all_dk Nybegynder
15. februar 2004 - 18:27 #13
Koden indeholder faktisk kun de kommandoer jeg har præsenteret her som jeg ikke helt forstår og linierne er autentiske nok.

Jeg håber bare at der findes eksperter som genkender koden stilen, og kan verificerer hvad linierne gør for mig.
Avatar billede kabbak Professor
15. februar 2004 - 18:45 #14
10 REAL X(6,100), Y(5), z, a, b, x  >Fejl X kan ikke dimmes 2 gange
20 z=25
30 y=0.23        > fejl Y er et array kan ikke tildeles den værdi
40 a=4 @ b=8
50 FOR x=1 TO a  > X kan ikke bruges det er et array
60  X(0,x)=b      > hvorfor flytter rækken sig ikke
70 NEXT x
Avatar billede x4all_dk Nybegynder
15. februar 2004 - 20:25 #15
Kabbak :  ehhh ???  Nu har du forvirret mig ganske grundigt, og jeg tror at vi snakker forbi hinanden. Måske skyldes det at jeg ikke har formuleret mit spørgsmål godt nok ?

Det lader til at du har forstået mit spm. som at "koden" er VB?. Det er det ikke. Sådan som koden står her, er _præcist_ hvad der står i de udskrifter jeg har af programmet fra midten af 80'erne. Og jeg skal have det "tolket" af en som kender den form for Basic!!

Lige en kommentar til din tolkning:
10 REAL X(6,100), Y(5), z, a, b, x  >Fejl X kan ikke dimmes 2 gange -- ? Dette er ikke VB!
30 y=0.23        > fejl Y er et array kan ikke tildeles den værdi -- Dette er IKKE en fejl! Og jeg kan heller ikke helt forstå hvad den linie!
50 FOR x=1 TO a  > X kan ikke bruges det er et array -- ? Case sensetive! Forskel på 'X' og 'x'.
60  X(0,x)=b      > hvorfor flytter rækken sig ikke -- ?? i linie 70 kaldes NEXT x!!
70 NEXT x

Håber jeg har forklaret mig bedre, ellers må du (i) sige til!

- takker ihvertfald for interessen!
Avatar billede roenving Novice
15. februar 2004 - 20:35 #16
_Alle_ de tidlige basic-versioner jeg har kodet i, var aldeles ligeglade med case !-)

-- så jeg forstår godt kabbaks undren, for den har jeg selv siddet med, da jeg kiggede på kodestumpen ...

-- en anden sag er så, at de samme basic-varianter var utroligt ufølsomme overfor fejl, så man næsten skulle vælte computeren, for at få den til at gå ned !o]

-- og VB er 'bare' en udvidelse med noget objekt-baseret i forhold til de ældre basic-varianter ...
Avatar billede x4all_dk Nybegynder
15. februar 2004 - 20:59 #17
roenving :

1) Enig.  Jeg har kodet, Basic,Comal, Pascal, Delphi, Java, C, C++, Assembler, Beta og en del script sprog. Men DENNE form for Basic er Case-sensitive.

2) Jeps. Jeg har også selv undret mig _meget_ . Derfor spørger jeg efter hjælp!

3) he.

4) Jeps.

Det eneste jeg ved om sproget er at det er skrevet på en gammel HP-maskine.

Håber det hjalp lidt :-)
Avatar billede roenving Novice
15. februar 2004 - 21:03 #18
-- et eller andet sted har jeg en manual til noget basic, jeg kodede i i sidste halvdel af '80erne (vist GWBasic), men den dækker desværre ikke den variant, du har der ...
Avatar billede kabbak Professor
15. februar 2004 - 21:18 #19
jeg har programmeret Gw og turbo basic,jeg kan ikke finde hoved og hale i de 7 linier.

Har du ikke mere kode, hvor vi kan se nogle af kommandoerne.

ligner din kode dette http://www.tunl.duke.edu/~sneap/programs/extract/beam3d_p.for
Avatar billede x4all_dk Nybegynder
17. februar 2004 - 17:12 #20
Jeg har fundet frem til at programmet er skrevet til "HP-series 80 - Basic",
og afviklet på en HP 86/87! - desuden sidder jeg nu med 2 fede manualer til det,
så mon ikke jeg finder svarene ?

@ = "enable multi-statement lines"  -- så det gæt var godt nok.
Avatar billede x4all_dk Nybegynder
02. marts 2004 - 09:46 #21
Jeg fandt svarene i manualerne - og det var sku rart, for den kode var mystisk!

Kort om de sidste ting som var mig uklare:

10 REAL X(6,100), Y(5), z, a, b, x  (OK - forskel på X og x)
20 z=25
30 y=0.23 <<-- opretter "spontant" en ny variabel y, som IKKE har noget med Y at gøre
40 a=4 @ b=8
50 FOR x=1 TO a
60  X(0,x)=b
70 NEXT x

Takker for hjælpen og snakken anyways!
Avatar billede x4all_dk Nybegynder
12. marts 2004 - 16:36 #22
Vil i have lidt point ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester