Getallen afdrukken

Status
Niet open voor verdere reacties.

zettekakkers

Gebruiker
Lid geworden
21 jul 2011
Berichten
134
hoe druk ik volgende getallen af met geneste lus?
1 2 3
2 3 4
3 4 5
4 5 6

ik maak liever een facturatie programma :d:confused:
 
Ik heb een functie gemaakt die zo'n rij getallen genereert (met een geneste lus ;)).

[CPP]Public Function Getallen(ByVal Limiet As Integer)
Dim Resultaat As String = Nothing
Dim AantalRijen As Integer = Limiet - 2
Dim LaatsteGetal As Integer = Nothing

If Not Limiet < 3 Then
For i = 1 To AantalRijen
If LaatsteGetal = Nothing Then
Resultaat &= "1 2 3" + vbNewLine
LaatsteGetal = 3
Else
For i2 = LaatsteGetal - 1 To LaatsteGetal + 1
If Not Limiet < i2 Then
Resultaat &= i2.ToString & " "
If i2 = LaatsteGetal + 1 Then Resultaat &= vbNewLine
End If
Next
LaatsteGetal += 1
End If

Next
Else
If Limiet = 2 Then Resultaat = "1 2" Else Resultaat = "1"
End If

Return Resultaat
End Function[/CPP]


Wil je zo'n rij uitprinten?
 
Laatst bewerkt:
Dat is het getal waar de rij tot gaat. Dus in jouw voorbeeld:

1 2 3
2 3 4
3 4 5
4 5 6

Is het limiet '6'.
 
Maakt het uit of het public function of private sub is?
Ik ben toch op de juiste forum :D
ik gebruik visual basic 2008 express edition
is er geen simpeleren code:$
ga 1ste wat nog verder proberen :d
thx
 
Laatst bewerkt:
@JoZ1: waarom doe je zo moeilijk? Zelf is mijn VB te roestig, maar in een C-achtige taal zou je gewoon iets als het onderstaande schrijven:

[cpp]
for (int i = 1; i <= 4; ++i)
{
for (int j = i; j < i + 3; ++j)
{
// print j
}
}
[/cpp]

(hetzelfde gaat uiteraard op voor VB)
 
@JoZ1: waarom doe je zo moeilijk? Zelf is mijn VB te roestig, maar in een C-achtige taal zou je gewoon iets als het onderstaande schrijven:

[cpp]
for (int i = 1; i <= 4; ++i)
{
for (int j = i; j < i + 3; ++j)
{
// print j
}
}
[/cpp]

(hetzelfde gaat uiteraard op voor VB)

Ziet er wel kort uit maar dit geld toch enkel voor C ofniet?
 
@CoD_NL: Zet dat eens om naar VB dan. :rolleyes:

@zettekakkers:
Je zit op het juiste forum.
Het maakt niet uit of het Private Sub of Public Function is.
 
Laatst bewerkt:
ik heb het wat aan gepast hoe ik het heb geleerd op school :p
Private Sub frm22_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strResultaat As String = Nothing
Dim intLaatsteGetal As Integer = Nothing
Dim intLimiet As Integer = 6
Dim intAantalRijen As Integer = intLimiet - 2


For i = 1 To intAantalRijen
If intLaatsteGetal = Nothing Then
strResultaat &= "1 2 3" + vbNewLine
intLaatsteGetal = 3
Else
For i2 = intLaatsteGetal - 1 To intLaatsteGetal + 1

If Not intLimiet < i2 Then
strResultaat &= i2.ToString & " "

If i2 = intLaatsteGetal + 1 Then
strResultaat &= vbNewLine
End If
End If
Next
intLaatsteGetal += 1
'HIER ZOU IK DAN DE GETALLEN IN EEN LABEL STEKEN OF GWN IN MIJN OUTPUT VENSTER WILLEN LATEN VERSCHIJNEN' OF IPV FORM EEN CONSOLE GEBRUIKEN? ideeen?
End If
Next
 
Ok, goed. Dan is de vraag opgelost toch? :)

(Ik raad je trouwens aan om code-tags te gebruiken, dan is je code wat leesbaarder ;))
 
Ok, goed. Dan is de vraag opgelost toch? :)

(Ik raad je trouwens aan om code-tags te gebruiken, dan is je code wat leesbaarder ;))

geef eens een voorbeeld:p
ik ga het eens proberen of ik iets zie in mij output venster :thumb:
 
@CoD_NL:

Je code werkt niet optimaal: Als ik
Code:
For i = 1 To 8
doe, dan krijg ik t/m 10. :rolleyes:

[edit] Ik zie al wat je bedoeling was: Het aantal rijen opgeven. Maar als je tot bijvoorbeeld 7 wil, kan dat niet.. [/edit]

@zettekakkers: Waar moet ik een voorbeeld van geven? :confused:
 
Laatst bewerkt:
@CoD_NL:

Je code werkt niet optimaal: Als ik
Code:
For i = 1 To 8
doe, dan krijg ik t/m 10. :rolleyes:

Ja, en dus werkt het precies zoals verwacht. Je krijgt bij '1 to 4' immers ook als laatste rij '4 5 6' (wat logisch is, gezien er voor j geldt N + 2 ;))
 
stel dat ik nog een rechts kolom zou willen toevoegen en 1 rij minder is dit dan gwn 4 vernaderen naar 5?
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan