# Quersumme berechnen



## Shootatme (27. Februar 2004)

Hallo!

Ich muss in der Schule mit visual basic nen programm schreiben wie man die Quersumme ausrechnet. Kann mit dann vielleicht einer diesen Text schreiben oder wenigstens sagen, wie ich anfangen soll usw.?
wäre nett

MFG pio (shootatme alter name voll der ranz ^^)


----------



## Dario Linsky (27. Februar 2004)

Wandel die Zahl in einen String um und geh einfach mit einer Schleife jedes Zeichen (= Ziffer) durch und addier das. Dürfte eigentlich keine grössere Schwierigkeit darstellen. 

Eine andere Möglichkeit wäre es, die Gegebenheiten des Dezimalsystems auszunutzen. Teil einfach immer die Zahl durch 10, runde ab und rechne mit dem Zwischenergebnis. Wenn das Zwischenergebnis irgendwann 0 ist, sind alle Stellen durch.


----------



## Shootatme (27. Februar 2004)

ok aber wie  geht das mit dem String das haben wir glaube ich noch nie gemacht

Also ich denke ma
z.b.



> Dim i
> For i = 1 to len(Text1.text)
> *was soll ich hier reinschreiben*
> Next i



Sollte ich vielleicht für jede Zahl eine extra variable nehmen weil dann bräuchte ich auch nur die einzenen Variablen + nehmen?


----------



## Dario Linsky (27. Februar 2004)

Nein brauchst Du nicht, dazu reicht eine und eine für das Endergebnis:


```
Dim i As Integer
Dim quersumme As Integer
Dim zwischensumme As Integer
Dim eingabe As String

eingabe = Text1.Text
quersumme = 0
For i = 0 To Len(eingabe)
        zwischensumme = CInt(Mid(eingabe, i, 1))
        quersumme = quersumme + zwischensumme
Next i

MsgBox(CStr(quersumme))
```


----------



## yvesgay (28. Februar 2004)

Wenn man gleich beim String bleibt, kann man auch sehr lange Zahlen verarbeiten 

```
Dim eingabe, ausgabe As String

Private Sub main()

eingabe = InputBox("Bitte gib Deine Zahl ein", "My Quersummer")
ausgabe = Str(Quersumme(eingabe))
MsgBox "Die Quersumme von " + eingabe + " ist " + ausgabe + "."

End Sub

Private Function Quersumme(ByVal stringbuffer As String) As Integer

   Dim loopcount As Integer
      
   Quersumme = 0

   For loopcount = 1 To Len(stringbuffer)
        Quersumme = Quersumme + Val(Mid(stringbuffer, loopcount, 1))
   Next loopcount

End Function
```


----------



## Dario Linsky (28. Februar 2004)

Genau das gleiche hab ich doch auch geschrieben.


----------



## Shootatme (28. Februar 2004)

herzlichen danke für eure Hilfe


----------

