marbek Skrevet 3. mars 2010 Del Skrevet 3. mars 2010 Heisann, jeg skal ha et program som lar en bruker skrive inn en tall verdi i to forskjellige inputboxer. Derretter skal programmet skrive ned de tallene som er imellom og så skrive de ut i en lang label. Jeg laget meg selv tre varibaler: Input1 (For inputbox1) input2 (For inputbox2) tallet (som en hjelpe variabel, denne er satt lik "input1") Ser for meg at det er en "Do while" løkke eller kanskje en "for" løkke. Legger til koden min så langt til dere: Public Class Form1 Dim input1 As Integer Dim input2 As Integer Dim tallet As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click input1 = InputBox(" skriv inn det første tallet") input2 = InputBox("skriv inn det andre tallet") tallet = input1 Do While tallet < input2 Label1.Text = tallet & " " tallet = tallet + 1 Loop End Sub End Class Det som da skjer her er at programmet legger til det siste tallet i en label, altså dersom jeg skrev 10 i en inputbox og 20 i den andre ville mitt program kun skrevet ut 19 når jeg egentlig vil 11,12,13,14,15,16,17,18,19,20 Er det noen som kan hjelpe meg med denne her? Håper dere skjønner hva jeg mener, på forhånd, Takk Hilsen Marius Lenke til kommentar
GeirGrusom Skrevet 3. mars 2010 Del Skrevet 3. mars 2010 Public Function GetDifference(ByVal a As Integer, ByVal b As Integer) As String Dim op As Func(Of Integer, Integer) Dim res As New System.Text.StringBuilder() Dim i As Integer If a > b Then op = Function(inp) inp - 1 Else op = Function(inp) inp + 1 For i = a To b - op(0) Step op(0) res.Append(i & ", ") Next res.Append(i) Return res.ToString() End Function Lenke til kommentar
backup Skrevet 3. mars 2010 Del Skrevet 3. mars 2010 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim input1 As Integer, input2 As Integer, tallet As Integer On Error GoTo feil input1 = InputBox(" skriv inn det første tallet") input2 = InputBox("skriv inn det andre tallet") tallet = input1 Label1.Text = "" Do While tallet <= input2 Label1.Text = Label1.Text & tallet & " ," tallet = tallet + 1 Loop Label1.Text = Mid(Label1.Text, 1, Microsoft.VisualBasic.Len(Label1.Text) - 1) Exit Sub feil: MsgBox("Feil i input.") End Sub Lenke til kommentar
GeirGrusom Skrevet 3. mars 2010 Del Skrevet 3. mars 2010 Koden din tar ikke høyde for at brukeren kan finne på å bytte rekkefølge... Tenkte forresten ut en versjon som kanskje er enklere å forstå som ikke bruker lambdauttrykk: Public Function GetDifference(ByVal a As Integer, ByVal b As Integer) As String Dim op As Integer = Math.Sign(b - a) Dim res As New System.Text.StringBuilder() Dim i As Integer For i = a To b - op Step op res.Append(i & ", ") Next res.Append(i) Return res.ToString() End Function Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå