# Ungerade Zahlen von Geraden unterscheiden!



## keNshi (4. Februar 2005)

Hallo Leute,

 Wie is der Befehl um ungerade Zahlen von geraden zu unterscheiden...

 wäre sehr sehr wichtig danke

 :>

 MfG Domi


----------



## MCIglo (4. Februar 2005)

Habe schon lange nichts mehr in VB gemacht, aber Syntax sollte in etwa so sein:


```
IF mod(i/2)=0 then
 Text1.Text="gerade"
ELSE
 Text1.Text = "ungerade"
END IF
```


----------



## keNshi (4. Februar 2005)

Ich probiere es THX

 MfG


----------



## keNshi (4. Februar 2005)

mh...


```
iF mod(i/2)=0 then
```

Hier bringt er mir immer die Meldung "erwartet ausdruck" und zwar bei "mod"


thx im vorraus


----------



## keNshi (4. Februar 2005)

Also hier nochmal der ganze code...


```
Dim T(6) As Double
     Dim i As Integer
     Dim n As Integer
     Dim erwährumg As Double
     Dim abkühlung As Double
     
     erwährmung = 1.2
     abkühlung = 0.5
  'For - Next Schleife
     
  For i = 0 To 1000 Step 1
     
     
     For n = 0 To 6 Step 1
  	
     
  	If mod(0/2) = abkühlung Then
  	 Label10.Caption = T(2)
  	Else
  	 Label9.Caption = T(1)
  	End If
  	  
  	  T(1) = T(1) + erwährmung
  	  T(2) = T(2) - abkühlung
  	  T(3) = T(3) + erwährmung
  	  T(4) = T(4) - abkühlung
  	  T(5) = T(5) + erwährmung
  	  T(6) = T(6) - abkühlung
  
  'Select Case definierung
  		
  	  Select Case n
  	  Case 1
  	  Label9.Caption = T(1)
  'Label3 =
  	  Case 2
  	  Label10.Caption = T(2)
  'Label4 =
  	  Case 3
  	  Label11.Caption = T(3)
  'Label5 =
  	  Case 4
  	  Label12.Caption = T(4)
  'Label6 =
  	  Case 5
  	  Label13.Caption = T(5)
  'Label7 =
  	  Case 6
  	  Label14.Caption = T(6)
  'Label8 =
  	
  	  End Select
  		
     Next n
     
  Next i
  
  
  
  End Sub
```
 

  1. Ich möchte die T(1) = T(1) + blababla alle nur in 5 sätzen schreiben und nich in 6! 

 2. Möchte ich mit der anweisung "If mod ...." bewirken das das programm die ungeraden zahlen von den geraden unterscheidet ! ( bei abkühlung sind die zahlen gerade bei erwährmung ungerade)

  Bitte Helft mir es ist von großer Wichtigkeit thx...


  MfG Domi


----------



## Filone (4. Februar 2005)

Der Modulo-Operator ist aber der richtige, vielleicht übergibst Du kein 'i' ? Auf jeden Fall stimmt was McIglo gepostet hat.


----------



## keNshi (4. Februar 2005)

wie übergebe ich das "i"kannst du mir vielleicht ein beispiel machen`?

das wäre echt super

mfg


----------



## NRFi (4. Februar 2005)

```
If i mod 2 =0 then

End If
```


...


----------



## keNshi (4. Februar 2005)

es kommt immer Fehlermeldung  " Erwartung: Ausdruck"


----------



## NRFi (4. Februar 2005)

vielleicht liegt es an was anderem?
so läufts garantiert:


```
Private Sub Command1_Click()
    Dim i As Integer
    i = 4
    
    If i Mod 2 = 0 Then
        MsgBox "gerade"
    Else
        MsgBox "ungerade"
    End If
End Sub
```


----------



## Filone (4. Februar 2005)

Ich glaube da liegt ein Denkfehler vor.

Der Modulo-Operator errechnet den Divisionsrest, analog zum 'Rechnen mit Rest' aus der Grundschule.

Bsp.: 5 / 2 = 2 Rest 1

D.h. Mod(5/2) ergibt 1, weil 1 der Rest ist. Mod(4/2) ergibt 0, weil '4 / 2 = 2 Rest 0'.

//edit : Bevor es falsch verstanden wird, ich wollte niemanden als "dumm" hinstellen, sonder einfach nur die mathematische Bedeutung anhand eines Beispiels erklären. Beleidigen wollte ich niemanden.


----------



## keNshi (4. Februar 2005)

ja das stimmt.

und genau das überprüft dann ob die zahlen gerade oder ungerade sind!

thx


----------



## NRFi (4. Februar 2005)

genau. wusste aber zb nicht, dass man mod(5/2) verwenden kann. für mich war mod immer nen ausdruck und keine funktion und so hab ichs dann auch genutzt  ;-]


----------



## MCIglo (4. Februar 2005)

Ich glaube, ich habe den Fehler:
in Variablennamen NIEMALS Umlaute verwenden!

```
Dim erwährumg As Double
     Dim abkühlung As Double
```
Ein weiterer Fehler ist das:

```
If mod(0/2) = abkühlung Then
  	 Label10.Caption = T(2)
  	Else
  	 Label9.Caption = T(1)
  	End If
```
Ich glaube, du meinst eher

```
If mod(abkuehlung/2) = 0 Then
  	 Label10.Caption = T(2)
  	Else
  	 Label9.Caption = T(1)
  	End If
```


----------

