Avatar billede lillehans Nybegynder
20. april 2006 - 22:38 Der er 12 kommentarer og
1 løsning

Undgå negativ differens ved fratrækning af tal

Jeg skal trække værdien af tal2 fra tal1.
Tal2 skal hele tiden være mindre end tal 1 for at undgå en
negativ differens, hvorfor jeg laver et kald til function NytTal()
Tallene vælges som vist i koden nedenfor, men værdien af Nyttal2 bliver hele tiden 0.
Hvad har jeg gjort forkert?

Private Sub Command5_Click()
On Error Resume Next
If Option1.Value = True And (Option7.Value = True) Then
Randomize
tal1 = Int((9 * Rnd) + 1)
tal2 = Int((9 * Rnd) + 1)
Call NytTal
Label11.Caption = tal1
Label12.Caption = NytTal2
End If

Private Function NytTal()
    Randomize
    If tal2 > tal1 Then
    tal2 = Int((9 * Rnd) + 1)

    Else
    tal2 = NytTal2
End If
Do Until tal2 < tal1
  tal2 = NytTal2
  Exit Do
Loop
   
End Function
Avatar billede kabbak Professor
20. april 2006 - 23:34 #1
Private Sub Command5_Click()

If Option1.Value = True And (Option7.Value = True) Then
Randomize
tal1 = Int((9 * Rnd) + 1)
tal2 = Int((9 * Rnd) + 1)
If Tal1 > tal2 then
Label11.Caption = tal1
Label12.Caption = Tal2
else
Label11.Caption = tal2
Label12.Caption = Tal1
end if
End If

hvad med at bytte om på dem sådan
Avatar billede kabbak Professor
20. april 2006 - 23:37 #2
Det du ellers gør forkert er at du skal have værdierne for tal1 og tal2 med ned i functionen
Avatar billede cool_m_f Nybegynder
20. april 2006 - 23:52 #3
If tal1<tal2 Then Call NytTal


private Function NytTal()
    Randomize
Do Until tal2 < tal1
tal2 = Int((9 * Rnd) + 1)
nyttal2  =  tal2
Loop
End Function
Avatar billede kabbak Professor
20. april 2006 - 23:55 #4
du kunne også lave den sådan

Private Sub Command5_Click()
    If Option1.Value = True And (Option7.Value = True) Then
        Randomize
        tal1 = Int((9 * Rnd) + 1)
        Tal2 = Int((tal1 * Rnd) + 1)
        Label11.Caption = tal1
        Label22.Caption = Tal2
    End If
End Sub
Avatar billede kabbak Professor
20. april 2006 - 23:57 #5
Private Sub Command5_Click()
    If Option1.Value = True And (Option7.Value = True) Then
        Randomize
        tal1 = Int((9 * Rnd) + 1)
        Tal2 = Int((tal1 * Rnd) + 1)
        Label11.Caption = tal1
        Label12.Caption = Tal2
    End If
End Sub

rettede lige navnet på en label
Avatar billede lillehans Nybegynder
21. april 2006 - 00:32 #6
>kabbak, jeg skulle også lige have dette til at hænge sammen:
Private Sub Command2_Click()
If Val(Text5.Text) = tal1 - tal2 Then
kaldja
taeller2 = taeller2 + 1
Label5.Caption = "Helt rigtige: " & taeller2
ElseIf Val(Text5.Text) = tal2 - tal1 Then
kaldja
taeller2 = taeller2 + 1
Label5.Caption = "Helt rigtige: " & taeller2
Else
kaldnej
End If

Men nu virker det.
Jeg har ikke set på dine 2 sidste forslag, måske er det bedre, end det jeg har nørklet sammen indtil nu. Men ihvertfald har du hjulpet mig, så lav venligst et svar.
Du får ikke points før i morgen...
>cool m f Jeg ser også på din kode i morgen. Men du skal jo også svare...
Indtil nu foreløbig tak for hjælpen.
Avatar billede cool_m_f Nybegynder
21. april 2006 - 01:01 #7
nope, intet svar fra mig ;-) har ikke fortjent dem
Avatar billede lillehans Nybegynder
21. april 2006 - 09:21 #8
>kabbak - alt er ok! Tak for hjælpen. Svar udbedes så jeg kan lukke og slukke ;-)
tak! cool m f.
Avatar billede kabbak Professor
21. april 2006 - 09:47 #9
et svar ;-))
Avatar billede lillehans Nybegynder
21. april 2006 - 10:51 #10
Og hermed lidt point. Tak for hjælpen.
Avatar billede kabbak Professor
21. april 2006 - 11:12 #11
tak, brugte du ikke den sidste, jeg skrev  23:57:03
Avatar billede lillehans Nybegynder
21. april 2006 - 11:29 #12
>Jeg har endnu ikke prøvet koderne, men den ser spændende ud, så den vil jeg forsøge mig med. Mange tak!
Avatar billede lillehans Nybegynder
21. april 2006 - 11:44 #13
>Kabbak nu har jeg prøvet den. Den fungerer fint. Det er vigtigt, at der bliver returneret et étcifret tal, og det gør der jo stadig. Det er en elegant kode.
Den vil jeg bruge. Mange tak!
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