Itselläni ei ole BASIC kokemusta ja tarvitsisin vähän tulkkaus apua.
Tässä on lyhyt koodi, mutta se mitä se tekee on vähän epäselvää. Varsinkin muuttujien määrittely yms..
DIM X[20000] #onko taulu vai muuttuja? DIM H%[999] #onko taulu vai muuttuja? FOR I% = 0 TO 999 #for ok. H%[I%] = 0 #Mitä ihmettä ? NEXT I% GOSUB #aliohjelma joka lataa jotain X%[]:aan FOR I% = 0 TO 20000 BINNUM% = INT (X[I%] * 100) # ? H%[BINNUM%] = H%[BINNUM%] +1 # ? NEXT I% END
En ymmärrä, mikä koodin idea on, mutta nähdäkseni se tekee jokseenkin näin:
DIM X[20000] # Taulukko 0..20000 jotakin määrittelemätöntä DIM H%[999] # Kokonaislukutaulukko 0..999 (% on kai siis kokonaisluku, eikös se QB:ssäkin ole...) FOR I% = 0 TO 999 # I:n arvoille 0..999 H%[I%] = 0 # Taulun H alkio I nollaksi, siis VB:nä H(I) = 0 NEXT I% # Seuraava kierros GOSUB FOR I% = 0 TO 20000 # I:n arvoille 0..20000 BINNUM% = INT (X[I%] * 100) # BINNUM = taulun X alkio I kerrottuna sadalla ja muutettuna kokonaisluvuksi H%[BINNUM%] = H%[BINNUM%] +1 # Taulun H alkiota BINNUM korotetaan yhdellä NEXT I% END
Kiitos "käännöksestä" Metabolix !
EDIT:
Tuota tekeekö tämä muuta, kuin laittaa taulukon H% jokaisen alkion nollaksi ?
FOR I% = 0 TO 999 H%[I%] = 0 NEXT I%
Ei tee :P
Oikeastaan tuo ohjelma ei tee muuta kuin kasvattaa 20001 kertaa muuttujan H%(0) arvoa yhdellä eli se on lopuksi 20001. Muut jäävät edelleen nolliksi koska muuttujan BINNUM% arvo on aina 0. Samassa proseduurissa määritetyn taulukon arvot ovat aina alussa nollia. Paitsi että tuo GOSUB-käsky aiheuttaa ilmeisesti virheilmoituksen kun sen perässä ei ole osoitetta.
Kannattaa myös ottaa huomioon, että GOSUB tarvitsee aina tuekseen RETURN-käskyn.
tunnistikohan joku mitä basiccia tuo on?
Kyllähän tuo esimerkki koodi kääntyy monellakin basic kääntäjällä. Kommentointi on vain kyllä jotain jota en ole vielä basic kielissä nähnyt.
Myös tuo GOSUB kummittelee tuossa koodissa. Eihän sillä ole mitään tekemistä tuon ohjelman kanssa.
Pitääpä vähän tutkia mistä basicista tuollainen kommentointi löytyy. Josko samalla ratkeaisi myös tuon gosubin salaisuus.
[edit]
Niin ja sitten järki käteen. Tuo "#" kommentointi lienee vain ketjun aloittajan oma tapa eikä siis ole mukana alkup. koodissa jonka hän on jostain tuntemattomasta paikasta saanut?
Siinä tapauksessa uskoisin tuon olevan ihan QB sorsaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.