Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: ka tiedostosta

Star3 [21.05.2004 11:24:27]

#

Ongelmana on saada laskettua tiedoston keskiarvo. Saan laskettu rivien määrän. Kuinka saan laskettua rivien arvon ja näitä tietoja käyttäen keskiarvon? Vähän merkintä vaikeuksia.

jcd3nton [21.05.2004 12:30:49]

#

Tarkoitatko että riveillä on lukuja ja niiden keskiarvo pitää laskea? Rivejä luettaessa laitat muuttujaan rivien määrän (aina kun luet rivin, kasvatat muuttujaa yhdellä). Samalla lasket kaikkien rivien summan yhteen ja lopuksi jaat summan rivien määrällä.

Star3 [21.05.2004 12:41:35]

#

Suurinpiirteinen tarkoitin tuota. On yksi sarake missä on 50 riviä numeroita. Yhdellä rivillä on yksi numero. Ongelmana on nimetä muuttujat saada laskemaan summa. Tuon periaatteen tiedän.

Gaxx [21.05.2004 12:53:28]

#

Eikös tuo hoidu kolmella muuttujalla? Lue rivi kerrallaan m1:een lisäät m2:een yhden ja sitten m3:een lisäät m1:en arvon. sitten vaan m3/m2.

jcd3nton [21.05.2004 12:56:17]

#

Star3 kirjoitti:

Ongelmana on nimetä muuttujat saada laskemaan summa

Hmm, en ihan käsittänyt mitä tuolla tarkoitit. Siis itse ajattelin sen näin (jos silmukassa luetaan rivit)

'Alkuun
Dim rivi As String
Dim rivit As Long
Dim ka As Long
Dim luku As Long

'Silmukkaan...
'rivi:in on luettu rivin sisältö...
  luku = luku + Val(rivi)
  rivit = rivit + 1

'Silmukan jälkeen
ka = luku / rivit

Tarvitseeko kaikkien rivien luku olla myöskin erikseen tiedossa keskiarvon lisäksi?

'Alkuun
Dim rivi As String
Dim rivit As Long
Dim ka As Long
Dim luvut() As Long

'Silmukkaan
  rivit = rivit + 1
  ReDim Preserve luvut(1 To rivit)
  luvut(rivit) = Val(rivi)

'Silmukan jälkeen
'Toinen silmukka joka laskee keskiarvon
For I = 1 To rivit
  ka = ka + luvut(I)
Next I

ka = ka / rivit

En tiedä onko tässä juuri sitä mitä hait, kysymys jäi hiukan epäselväksi...

~jc

Antti Laaksonen [21.05.2004 13:03:18]

#

Tätä monimutkaisempi koodi tuskin on tarpeen moisen toteuttamiseksi:

Dim luku As Integer, maara As Integer, summa As Integer
Open "c:\luvut.txt" For Input As #1
Do Until EOF(1)
    Input #1, luku
    maara = maara + 1
    summa = summa + luku
Loop
Close #1
MsgBox "Keskiarvo: " & summa / maara

Star3 [21.05.2004 13:07:22]

#

Homma toimii taas. Kiitoksia paljon avusta! Ongelmanani on näköjään liian monimutkaisesti ajattelu.

Vastaus

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

Tietoa sivustosta