anoniem Geplaatst: 22 januari 2003 Delen Geplaatst: 22 januari 2003 Ik heb een progje gemaakt waarbij je een getal in voert en dan rekent ie uit of het een priem is. Nu heb ik een paar aanpassingen gemaakt zodat ie de getal 1 t/m X automatisch langs loopt (Waarbij X een waarde is die ingevoerd is tot hoe hoog de priemgetallen gezocht worden.) Maar nu als het eerste getal is gevonden, dan zet ie dat neer. Maar dan stopt ie Terwijl hij hoort verder te gaan. Het liefst heb ik dat als er een priemgetal is gevonden je op een command-button klikt en dan weer verder gaat met zoeken tot het volgende priem-getal is gevonden en die vervolgens dan weer print in dezelfde label. Ik weet niet hoe het moet (heb VB6 nu net een dagje). Quote Link naar reactie
anoniem Geplaatst: 22 januari 2003 Auteur Delen Geplaatst: 22 januari 2003 [code:1:f9f50772f1]label1.caption="tekst" [/code:1:f9f50772f1] of [code:1:f9f50772f1]label1.caption=variabele[/code:1:f9f50772f1] Quote Link naar reactie
anoniem Geplaatst: 22 januari 2003 Auteur Delen Geplaatst: 22 januari 2003 Dat wist ik wel, maar label1.caption moet veranderen als er weer een priem getal is gevonden. En dat wou ik doen door op een knop te klikken, maar ik weet niet hoe ik dat moet doen. Quote Link naar reactie
anoniem Geplaatst: 23 januari 2003 Auteur Delen Geplaatst: 23 januari 2003 Dan moet je de code die je nu hebt bij form_load bij command1_click zetten. Als dat tenminste de naam is van die knop. Bij (general) (declerations) moet je dan een variabele declareren die bijhoud bij welk getal hij gebleven is als hij er 1 gevonden heeft. Laat anders de code is zien die je al heb. Groeten, Wouter Quote Link naar reactie
anoniem Geplaatst: 23 januari 2003 Auteur Delen Geplaatst: 23 januari 2003 Ik zal straks de bron code er op zetten, ik was het gister al van plan maar de VB crashte. [quote:2d6bbef1de]form_load bij command1_click [/quote:2d6bbef1de] Waar moet je die dan neerzetten. Bij de command button of de label? Quote Link naar reactie
anoniem Geplaatst: 23 januari 2003 Auteur Delen Geplaatst: 23 januari 2003 in je IDE (VB), design mode, dubbelklikken op de knop command1 and see what happens... Quote Link naar reactie
anoniem Geplaatst: 23 januari 2003 Auteur Delen Geplaatst: 23 januari 2003 [code:1:54dd51abea] Private Sub Command1_Click() X = Text1.Text D = X begin: X = X + 1 D = D + 1 Label1.Caption = X start: D = D - 1 P = X / D If D = 1 Then Label1.Caption = "Het is een priem getal" GoTo [b]begin[/b] End If If P = Int(P) Then Label1.Caption = "het is geen priem getal" GoTo [b]begin[/b] Else GoTo start End If einde: End Sub [/code:1:54dd51abea] Maar nu wil ik dat je bij goto begin op een knop kan drukken waardoor je weer naar het begin gaat, want nu rekent ie in een stuk door zonder de label1.caption te vertonen omdat het te snel gaat, dus daarom wil ik dat het progje even een "pauze" neemt totdat je op een knop drukt om hetvolgende priemgetal te zoeken. Quote Link naar reactie
anoniem Geplaatst: 23 januari 2003 Auteur Delen Geplaatst: 23 januari 2003 les 1 in VB: stap af van het goto-principe. Dit maakt je programma onoverzichtelijk en traag. No more goto's OK ? maak gebruik van de do-while loop. Zet een flag true/false en gebruik deze als statement voor je do-while-loop Quote Link naar reactie
anoniem Geplaatst: 24 januari 2003 Auteur Delen Geplaatst: 24 januari 2003 Les 0: Zet in VB een vinkje in Require variable declaration. Tools -> Options -> Eerste tabblad. Les 2: Gebruik zinnige variabele-namen. En verder: Even getallen zijn nooit priemgetallen met uitzondering van het getal 2. Het heeft dus geen zin om steeds 1 omhoog te gaan want dan zit je voor de helft onzin uit te rekenen. [edit] Zag [url=http://www.dbrouwer.demon.nl/icweb/Website/antw_priem.htm] hier[/url] een aardig voorbeeldje van een simpel priemprogrammaatje in VB, met uitleg en al. Weliswaar voldoen de variabelenamen nog niet aan de gebruikelijke normen en zijn de data-typen wat krap gekozen, maar als voorbeeld voldoet het wel. [/edit] Quote Link naar reactie
anoniem Geplaatst: 24 januari 2003 Auteur Delen Geplaatst: 24 januari 2003 Allemaal wel handig die lessen, maar ik heb nog steeds geen oplossing. Quote Link naar reactie
anoniem Geplaatst: 24 januari 2003 Auteur Delen Geplaatst: 24 januari 2003 We hoeven het toch niet helemaal uit te tekenen? Je hebt het nu al bijna op een presenteerblaadje. Is het trouwens niet geiniger om al die gevonden priemgetallen in een multiline textbox of in een listbox te zetten? Dan zie je de vorige ook nog en hoef je niet te pauzeren. Om een listbox (moet je eerst op je form zetten natuurlijk) te vullen gebruik je simpelweg iets als: listbox1.additem X En dat dan in plaats van die label1.caption = etc. Om een regel aan een multiline textbox toe te voegen doe je iets als tex1 = text1 & vbcrlf & cstr(X) Ook in plaats van die label1.caption Quote Link naar reactie
anoniem Geplaatst: 24 januari 2003 Auteur Delen Geplaatst: 24 januari 2003 Thnx, dat is iets waar ik wat mee kan!! Quote Link naar reactie
anoniem Geplaatst: 24 januari 2003 Auteur Delen Geplaatst: 24 januari 2003 zelf iets proberen is ook leuk ipv anderen code te laten schrijven Quote Link naar reactie
anoniem Geplaatst: 24 januari 2003 Auteur Delen Geplaatst: 24 januari 2003 [quote:c8ad1fa3fa="pkouwer"]zelf iets proberen is ook leuk ipv anderen code te laten schrijven[/quote:c8ad1fa3fa] Ik weet nog wel meer leuke dingen. Als ik iets niet snap en jullie om uitleg vraag schrijf ik zelf de code echt nog wel hoor. Dit stukje voorbeeld code is een onderdeel van een veel groter progje. Maar remember dit is omdat ik VB pas 4 dagen heb gehad en er zo'n 2 uur achter heb gezeten, dus snap de pricipe's nog niet helemaal. Quote Link naar reactie
anoniem Geplaatst: 24 januari 2003 Auteur Delen Geplaatst: 24 januari 2003 Wat betreft het "niet wachten", de hedendaagse processoren rekenen zo snel dat het volgende getal al uitgerekend is voordat het eerdere getal aan de gebruiker getoond kan worden. Om Visual Basic te dwingen eerst het scherm te up-daten en dan door te rekenen, kun je de volgende code gebruiken: [code:1:1a5134267f] Label1.Caption = Getal DoEvents 'dit commando 'yield' de processor totdat het de vorige instructie uitgevoerd heeft [/code:1:1a5134267f] Overigens blijft de oplossing van Laurens natuurlijk mooier. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen