Avatar billede valerius Nybegynder
14. december 2005 - 12:23 Der er 13 kommentarer og
1 løsning

Beregne sum i for-løkke

Private Sub Command1_Click()
Dim taeller As Integer
Dim sumID As Integer


    For taeller = 1 To 3
        sum(taeller) = InputBox("Indtast tal nr. " & taeller)
        tal(taeller) = sum(taeller)
        sumID = sumID + tal(taeller)
       
        Next
       
    For taeller = 1 To 3
        MsgBox "Det " & taeller & " tal var " & tal(taeller)
    Next
   
    For taeller = 1 To 3
        MsgBox "Den " & taeller & " sum var " & sum(taeller) + sum(taeller)
    Next
       
    MsgBox "summen er i alt " & sumID
    MsgBox "gennemsnittet er " & sumID / 3
   
  End Sub
Avatar billede valerius Nybegynder
14. december 2005 - 12:25 #1
Hov, der trykkede jeg for hurtigt. Hvordan får jeg i koden vist den 1. sum, den anden sum og den 3. sum? Mit eget forsøg dur ikke. Det er løkke3 der er problemet.
Avatar billede jih Nybegynder
14. december 2005 - 12:29 #2
er sum() og tal() en funktion som du har lavet, eller et public array ?
Avatar billede valerius Nybegynder
14. december 2005 - 12:39 #3
Jeg glemte også det øverste, der står i general
Option Explicit


Option Base 1 ' variable starter fra 1 istedet for 0
Dim sum(3) As Single
Dim tal(3) As Single
Avatar billede jih Nybegynder
14. december 2005 - 12:41 #4
prøv og lav de singles om til public integers...

Public sum(3) As Integer
Public tal(3) As Integer

---

altså .. jeg ved ikke helt hvad det er du spørger om, men ved at kigge på din kode, ser det ud som om du vil:

- sætte et tal (3 gange) ind i sum(x) arrayet
- sætte det tal ind i tal(x) arrayet
- sætte sumID til sumID + tallet i tal(x) arrayet
- få tre msgboxes frem som siger hvad tal(x) indeholder
- få tre msgboxes frem som siger hvad sum(x)*2 indeholder

så til sidst
- få den totale sum vist
- få gennemsnittet vist

men hvorfor har du til sidst "sum(taeller) + sum(taeller)" som viser summen.. det er jo det samme som at sige "summen er sum*2".. o.O
Avatar billede jih Nybegynder
14. december 2005 - 12:43 #5
du kan fx lave den sidste løkke om til noget lignende, hvis jeg har forstået spørgsmålet rigtigt..

    For taeller = 1 To 3
        sumID = sumID + tal(taeller)
        MsgBox "Den " & taeller & " sum var " & sumID
    Next
Avatar billede valerius Nybegynder
14. december 2005 - 14:37 #6
Nej, den tæller i så fald videre fra summen af 1. løkke.
Avatar billede valerius Nybegynder
14. december 2005 - 15:38 #7
i løkke1 skriver jeg fx 10,20,30 og får summen 60
i løkke2 får jeg beskederne: 1. tal var 10, 2. tal var 20, 3. tal var 30
i løkke 3 vil jeg gerne have at vide at: summen af 1.gang var 10, summen af 2.gang var 30, summen af 3. gang var 60. Det er såmænd det hele. Men jeg har vist ikke forstået det med sumid rigtigt, så det er nok mit problem. Derfor spørger jeg om råd.
Avatar billede jih Nybegynder
14. december 2005 - 16:05 #8
prøv og skriv dette istedet for din tredje løkke..

    For taeller = 1 To 3
        sumID = sumID + tal(taeller)
        MsgBox "Den " & taeller & " sum var " & sumID
    Next
Avatar billede valerius Nybegynder
14. december 2005 - 16:18 #9
så får jeg 70, 90 120
Avatar billede jih Nybegynder
14. december 2005 - 16:28 #10
sorry.. prøv:

    For taeller = 1 To 3
        sumID = 0
        sumID = sumID + tal(taeller)
        MsgBox "Den " & taeller & " sum var " & sumID
    Next
Avatar billede jih Nybegynder
14. december 2005 - 16:29 #11
"sumID = 0" skal være FØR for løkken.. ikke i...

    sumID = 0

    For taeller = 1 To 3       
        sumID = sumID + tal(taeller)
        MsgBox "Den " & taeller & " sum var " & sumID
    Next
Avatar billede valerius Nybegynder
14. december 2005 - 16:50 #12
Jeg tror jeg fandt ud af det med denne kode, men prøver lige din.
Option Base 1 ' variable starter fra 1 istedet for 0
Dim sum(3) As Single
Dim tal(3) As Single
Dim sum1(3) As Single

Private Sub Command1_Click()
Dim taeller As Integer
Dim sumID As Integer
Dim sum1id As Integer
    For taeller = 1 To 3
        sum(taeller) = InputBox("Indtast tal nr. " & taeller)
        tal(taeller) = sum(taeller)
        sumID = sumID + tal(taeller)
   
    Next
   
    For taeller = 1 To 3
        MsgBox "Det " & taeller & " tal var " & tal(taeller)
    Next
   

      For taeller = 1 To 3
     
      sum1id = (sum1id + tal(taeller))
        MsgBox "Den " & taeller & " sum var " & sum1id
    Next
    MsgBox "summen er i alt " & sumID
    MsgBox "gennemsnittet er " & sumID / 3
   
  End Sub
Avatar billede valerius Nybegynder
14. december 2005 - 16:53 #13
webpsycho nu fungerede dit også. Jeg accepterer derfor din løsning og siger mange tak for hjælpen.
Du bedes lige lave et svar.
Avatar billede jih Nybegynder
14. december 2005 - 17:24 #14
velbekomme :)
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