Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / School & Studie / Huiswerkvragen: Exacte vakken
Reageren
 
Topictools Zoek in deze topic
Oud 13-10-2008, 10:15
Lothar1
Iemand een idee hoe ik een string een x aantal keer kan laten voorkomen?
de string is geen getal maar een symbool.
code is vb.NET

-Lothar
Met citaat reageren
Advertentie
Oud 13-10-2008, 17:20
somebody01
somebody01 is offline
Wat bedoel je precies met x aantal keren laten voorkomen...

Op basis van een voorwaarde, op basis van een lus, of gewoon in verschillende labels, textboxen of message boxen...


Voorwaarde de if elsjes, lusjes door lusjes, en in het derde geval de labels, textboxen of message boxen een waarde geven...

Als je exacter bent ivm methode kan je mss geholpen worden.

Vergeet ook je variabel niet te declareren (ik ken de juiste term niet, declareren is voor classes zeker. dus Dim ..... )
Met citaat reageren
Oud 13-10-2008, 17:32
ILUsion
Avatar van ILUsion
ILUsion is offline
In VB-pseudocode (roestige kennis van VB):

Code:
s = 'Dit is mijn string'
t = ''
aantalKeer = 5
for x = 1 to aantalKeer do
  t = t & s
end for
Als je het wilt opzoeken in het Engelse: 'concatenate strings' (wat zo veel wilt zeggen als strings aan elkaar hangen). Ik weet dat VB indertijd het gewoon met string1 & string 2 kon doen, maar misschien ziet er ook een method concatenate, concat, cat, ... in die hetzelfde doet (of misschien werkt het wel door ze gewoon op te tellen, dat is wat sommige andere talen gebruiken).
__________________
vaknar staden långsamt och jag är full igen (Kent - Columbus)
Met citaat reageren
Oud 13-10-2008, 17:51
lothar1
een teller beslist het aantal keer

dus ik typte dan intTeller * strWoord

maar hij wil gaan rekenen dan met de string maar ik wil gewoon Teller aantal keer strWoord tonen
Met citaat reageren
Oud 13-10-2008, 17:59
Lothar01
als de teller gelijk is aan 4 moet ik dus strWoord strWoord strWoord strWoord krijgen bijvoorbeeld.
Met citaat reageren
Oud 14-10-2008, 16:08
Lothar1
dit is de opgave voor de duidelijkheid:



en dit is mn code tot nu toe:

Dim strSymbool As String
Dim intStartwaarde As Integer
Dim intEindwaarde As Integer
Dim intTeller As Integer
Dim strConclusie As String

strSymbool = txtSymbool.ToString
intStartwaarde = CInt(txtstartwaarde.text)
intEindwaarde = CInt(txtEindwaarde.Text)

For intTeller = intStartwaarde To intEindwaarde

strConclusie = intTeller * strSymbool & vbCrLf
lblResultaat.Text = strConclusie

Next


en Hij geeft een fout bij het intTeller * strSymbool omdat hij dat wiskundig bekijkt en niet weet dat hij de string evenveel keer moet tonen als de teller zegt.
Met citaat reageren
Oud 14-10-2008, 16:10
Lothar1
correctie code:

Dim strSymbool As String
Dim intStartwaarde As Integer
Dim intEindwaarde As Integer
Dim intTeller As Integer
Dim strConclusie As String

strSymbool = txtSymbool.ToString
intStartwaarde = CInt(txtstartwaarde.text)
intEindwaarde = CInt(txtEindwaarde.Text)

For intTeller = intStartwaarde To intEindwaarde

strConclusie = strConclusie & intTeller * strSymbool & vbCrLf
lblResultaat.Text = strConclusie

Next
Met citaat reageren
Oud 14-10-2008, 19:04
ILUsion
Avatar van ILUsion
ILUsion is offline
Lees misschien ook eens gewoon mijn reply, want daarmee zou je het moeten kunnen vinden. Programmeren is niet anderen je werk laten doen, maar zelf eens proberen nadenken...
__________________
vaknar staden långsamt och jag är full igen (Kent - Columbus)
Met citaat reageren
Oud 14-10-2008, 20:34
Lothar1
Citaat:
Lees misschien ook eens gewoon mijn reply, want daarmee zou je het moeten kunnen vinden. Programmeren is niet anderen je werk laten doen, maar zelf eens proberen nadenken...
nee die code werkt niet. Ik keer er wel naar..

Dit is wat ik dan krijg:

Met citaat reageren
Oud 14-10-2008, 21:45
ILUsion
Avatar van ILUsion
ILUsion is offline
Citaat:
nee die code werkt niet. Ik keer er wel naar..

Dit is wat ik dan krijg:

[afbeelding]
Zoals je zelf al aantoont, doet die code exact wat je hem vraagt: je krijgt een bepaalde string N aantal keer. Dat je uitkomst niet is wat je zou willen hebben, dat ligt er maar aan dat je iets verkeerds in de oorspronkelijke string gestoken hebt. Herlees die code die je daar post nog eens door, en denk eens na wat er mis zou kunnen gegaan zijn.

De fout zit namelijk in 'strSymbool = txtSymbool.ToString'. Maar ik laat aan jou over om te zien wat er daar niet aan klopt. Aan je andere code valt te zien dat je wel weet hoe het moet, maar hier gewoon wat verward zal geweest zijn.

Ik hoop dat je er zo uitgeraakt, werk dus verder van de code die je daar post, er zit nog 1 fout in je code (in 1 regel). Eens die eruit is, heb je perfect werkende code.
__________________
vaknar staden långsamt och jag är full igen (Kent - Columbus)
Met citaat reageren
Oud 21-10-2008, 19:56
lothar1
ik was een week op reis met school. Ben nu terug.

ik heb strsymbool verander door chrSymbool (char) en nu zet hij het juist maar de 'piramide' klopt nog niet

ik heb geen idee hoe ik nu verder moet.
Met citaat reageren
Oud 21-10-2008, 20:12
ILUsion
Avatar van ILUsion
ILUsion is offline
Dat was de fout niet, het lijkt me dus raar als je daar goedlijkende output uit krijgt. Bovendien, voor zover ik weet, forceert Basic niet dat een string/char moeten beginnen met str/chr (dat was in mijn Basic-dagen, toch niet zo, voor zover ik me dat kan herinneren). Anyhow: je lost een probleem niet op door iets een andere naam te geven (al denkt men daar in de bedrijfswereld en in de politiek soms anders over).

Oribeer anders eens te verwoorden wat hij doet op de lijn die ik aangegeven heb. Om je wat sneller vooruit te laten gaan, in de spoiler staat wat hij werkelijk doet.

Spoiler


Geraak je er met die vage uitleg nog niet uit:

Spoiler
__________________
vaknar staden långsamt och jag är full igen (Kent - Columbus)
Met citaat reageren
Oud 22-10-2008, 11:04
lothar1
code nu;

Dim intTeller As Integer
Dim chrSymbool As Char
Dim intBeginwaarde, intEindwaarde As Integer
Dim strResultaat, strConclusie As String

intBeginwaarde = CInt(txtBeginwaarde.Text)
intEindwaarde = CInt(txtEindwaarde.Text)
chrSymbool = CChar(txtSymbool.Text)
lblResultaat.Text = ""

For intTeller = intBeginwaarde To intEindwaarde
strResultaat = strResultaat & chrSymbool
strConclusie = strConclusie & strResultaat & vbCrLf
Next
lblResultaat.Text = strConclusie

dit werkt maar als mijn beginwaarde bijvoorbeeld 5 is begint het niet met 5 keer het symbool..
Met citaat reageren
Oud 22-10-2008, 17:41
ILUsion
Avatar van ILUsion
ILUsion is offline
Dat komt omdat de lus ook niet genoeg doorlopen wordt daarvoor. Weeral: bedenk eens goed wat je code nu doet. Wat hij momenteel doet is:
je begint met een lege string, je komt in die lus en je stelt intTeller = intBeginWaarde bij de eerste iteratie (een iteratie is een keer die lus doorlopen). Wat je doet, is bij je strResultaat (die tot dan toe leeg is), je symbool bijtellen. En hem aan je conclusie vastmaken.

Je moet eerst beginnen met die (bv. 5), en die string klaarmaken. Hoe ik dat zou doen, in dit geval toch, is gewoon van 1 tot eindwaarde laten lopen, maar dan wel kijken of de strResultaat die je gemaakt hebt, wel toegevoegd moet worden (bedenkt voor jezelf met wat voor commando je dat doet en welke voorwaarde je nodig hebt).

Daarnaast, heb ik nog een kleine verbetering voor je code, die een beetje op de details ingaat. Het is niet dat jouw code verkeerd is, maar het lijkt me iets mooier. In plaats van
Code:
strConclusie = strConclusie & strResultaat & vbCrLf
zou ik het volgende gebruiken:
Code:
strConclusie = strConclusie & vbCrLf & strResultaat
Dat zorgt er namelijk voor dat je na je laatste lijn met sterretjes niet met een nieuwe (lege) lijn begint, maar ook echt aan die sterretjes stopt. Afhankelijk van wat je er verder mee gaat doen, is dat lichtjes properder (maar, zeker niet de essentie van jouw opdracht).
__________________
vaknar staden långsamt och jag är full igen (Kent - Columbus)
Met citaat reageren
Oud 23-10-2008, 08:38
Lothar1
nu werkt het perfect =)

ik heb een tweede teller gebruikt voor de eerste waarde

Dim intTeller, intTeller2 As Integer
Dim chrSymbool As Char
Dim intBeginwaarde, intEindwaarde As Integer
Dim strResultaat, strConclusie As String

intBeginwaarde = CInt(txtBeginwaarde.Text)
intEindwaarde = CInt(txtEindwaarde.Text)
chrSymbool = CChar(txtSymbool.Text)
lblResultaat.Text = ""

For intTeller2 = 2 To intBeginwaarde
strResultaat = strResultaat & chrSymbool
Next

For intTeller = intBeginwaarde To intEindwaarde
strResultaat = strResultaat & chrSymbool
strConclusie = strConclusie & vbCrLf & chrSymbool
Next
lblResultaat.Text = strConclusie

bedankt voor al je hulp!

-Lothar
Met citaat reageren
Oud 23-10-2008, 08:39
lothar1
Citaat:
nu werkt het perfect =)

ik heb een tweede teller gebruikt voor de eerste waarde

Dim intTeller, intTeller2 As Integer
Dim chrSymbool As Char
Dim intBeginwaarde, intEindwaarde As Integer
Dim strResultaat, strConclusie As String

intBeginwaarde = CInt(txtBeginwaarde.Text)
intEindwaarde = CInt(txtEindwaarde.Text)
chrSymbool = CChar(txtSymbool.Text)
lblResultaat.Text = ""

For intTeller2 = 2 To intBeginwaarde
strResultaat = strResultaat & chrSymbool
Next

For intTeller = intBeginwaarde To intEindwaarde
strResultaat = strResultaat & chrSymbool
strConclusie = strConclusie & vbCrLf & chrSymbool
Next
lblResultaat.Text = strConclusie

bedankt voor al je hulp!

-Lothar
Dim intTeller, intTeller2 As Integer
Dim chrSymbool As Char
Dim intBeginwaarde, intEindwaarde As Integer
Dim strResultaat, strConclusie As String

intBeginwaarde = CInt(txtBeginwaarde.Text)
intEindwaarde = CInt(txtEindwaarde.Text)
chrSymbool = CChar(txtSymbool.Text)
lblResultaat.Text = ""

For intTeller2 = 2 To intBeginwaarde
strResultaat = strResultaat & chrSymbool
Next

For intTeller = intBeginwaarde To intEindwaarde
strResultaat = strResultaat & chrSymbool
strConclusie = strConclusie & strResultaat & vbCrLf
Next
lblResultaat.Text = strConclusie

(foutje)
Met citaat reageren
Oud 23-10-2008, 17:51
ILUsion
Avatar van ILUsion
ILUsion is offline
Ik ben blij dat je eruit geraakt bent :-) Stiekem is programmeren eigenlijk voor 80% debuggen, zoals je hier al wel gemerkt zal hebben
__________________
vaknar staden långsamt och jag är full igen (Kent - Columbus)
Met citaat reageren
Oud 26-10-2008, 10:07
lothar1
ja inderdaad.
Eerst ergerde ik me aan je vage tips maar uiteindelijk heb ik er nu wel iets mee geleerd. Mocht je gewoon verteld hebben wat fout was zou ik er niks aan gehad hebben.

bedankt

-Lothar
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 13:33.