Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Mitä tämä BASIC-esimerkki tekee?

Sivun loppuun

mrkebab [19.10.2006 09:40:28]

#

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

Metabolix [19.10.2006 09:55:46]

#

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

mrkebab [19.10.2006 10:13:03]

#

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%

temu92 [19.10.2006 12:56:48]

#

Ei tee :P

setä [19.10.2006 13:30:53]

#

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.

Latska [21.10.2006 16:09:59]

#

Kannattaa myös ottaa huomioon, että GOSUB tarvitsee aina tuekseen RETURN-käskyn.

Lumi-ukkeli [24.10.2006 11:09:53]

#

tunnistikohan joku mitä basiccia tuo on?

E.K.Virtanen [24.10.2006 11:35:09]

#

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.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta