Hulp nodig met vb programeren

  • Onderwerp starter Onderwerp starter ibl
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

ibl

Gebruiker
Lid geworden
21 apr 2003
Berichten
438
hallo,

ik en een maat van me moeten wat opdrachten maken voor informatica, alleen we komen er niet uit. dit zijn de opdrachten:

1.

Maak een programma waarin een button staat met als opschrift "Geef som"
Daaronder 5 tekstvenstertjes waarin een optelsom verschijnt (zie hoofdstuk 2) met willekeurige getallen tussen 20 en 30 zodra er op de button "Geef som" wordt geklikt. Daaronder een button met "klaar !" en daar onder een label met het opschrift "Tijd:" en een tekstvenster. Als er op de button "klaar" wordt geklikt (dat moet gebeuren direkt nadat iemand het antwoord van de som heeft ingevoerd) dan moet er in het laatste tekstvenster de tijd die het maken van het sommetje geduurd heeft, verschijnen.

Aanwijzing :

Als je de volgende opdracht geeft:
t = timer dan bevat de variabele t het aantal seconden vanaf middernacht. Dus als het precies 8 uur 's morgens is dan heeft t de waarde 8 x 3600 = 28800

Denk er om dat t van het type single moet zijn omdat het een kommagetal is.
Je moet de tijd twee keer opnemen : vlak voor er met de som wordt begonnen (dus als er op "Geef som" wordt geklikt, en vlak nadat de som af is (dus als er op "Klaar" wordt geklikt). Het verschil is de tijd die er over gedaan is.

Denk om het gebruik van globale variabelen !


en dit is de volgende opdracht:

2.

Dit programma moet 10 sommetjes genereren. De getallen voor de bewerkingen liggen tussen 1 en 10. Ook de bewerkingen zijn willekeurig. Gebruik hiervoor telkens de RND-functie.

Na het drukken op de controletoets, wordt het resultaat weergegeven en de foute oplossingen krijgen een rode kleur.

sommen.gif


Aanwijzing :


Je kunt de labels en de tekstvelden met behulp van arrays maken.
Lees in hoofdstuk 6 na hoe dat moet.


meschien niet echt moeilijk voor jullie, maar wij met z'n 2e komen er egt niet uit. wie kan ons helpen? alvast heel erg bedankt!

vr . gr.
 
Dat weten we, maar omdat we geen idee hebben om verder te gaan, vroegen we juist om hulp...
 
Wat heb je? Of: hoever ben je. Wat snap je niet?
Met meer info behalve de opdracht kunnen we beter en gerichter helpen.
Als je het dobbelsteen probleem in dit forum leest heb je een beginnetje. Hier staat omschreven hoe je label arrays kunt maken.

Weest gegroet,
Guus
 
Laatst bewerkt:
we hebben de formulier van de beiden al. ook hebben we gedeelte van de eerste opdracht zodat de random getallen al in de eerste 2 text vakken krijgt ...

van de 2e lukt het helemaal niet ...
 
Ik kan al je huiswerk wel gaan maken maar lijkt me niet zinnig. Heb ik ook geen zin in.
Dus wat is je vraag?

Weest gegroet,
Guus:thumb:
 
Laatst bewerkt:
of iemand een tip of aanwijzing kan geven zodat we wat verder komen ...
 
maak een array labels (of text boxen) voor de eerste waarde,
de bewerking, de tweede waarde en de uitkomst.
Dus lblEerste(0) tot lblEerste(5), lblBewerking(0) tot ... enz.

Maak een array met bewerkingen waaruit gekozen kan worden.

Het is zaak een for next lus te maken waarmee je de labels kan doorlopen en vullen.

omdat de eerste label index horizontaal hetzelfde is kan je eenvoudig je bewerking uitvoeren

Doe je best ik hoor het wel.

Weest gegroet,
Guus

De voorgestelde oplossing is maar een voorbeeld er zijn natuurlijk meerdere oplossingen mogelijk!
 
Ik begin alvast met opdracht 1 en pas morgen/overmorgem begin ik met opdracht 2, omdat ik op dit moment andere prioriteiten heb, dus sorry.

Het woord visual in Visual Basic wilt eigenlijk ook zeggen dat je wordt ontlast met het programmeren v.h. gebruikersinterface, dat was vroeger heel anders, moeilijker. Ik zie dat je zo'n gebruikersinterface zelf kunt maken, je hebt er één in dit topic geplaatst. Daarom laat ik hier alleen de code voor de knoppen 'Geef som' en 'Klaar!' zien. Het is een betrekkelijk korte code.
(mocht ik iets niet goed hebben begrepen, dan verneem ik dat graag)

code voor de knop 'Geef som'

Code:
Private Sub btnGeefSom_Click()
   Randomize
   txtLinkerTerm.Text = Int((30 - 20 + 1) * Rnd) + 20
   LinkerTerm = Val(txtLinkerTerm.Text)
   txtRechterTerm.Text = Int((30 - 20 + 1) * Rnd) + 20
   RechterTerm = Val(txtRechterTerm.Text)
   Start = timer
End Sub

code voor de knop 'Klaar!'

Code:
Private Sub btnKlaar_Click()
   Einde = timer
   TotaalSeconden = Einde - Start
   txtTotaalSeconden.Text = TotaalSeconden
End Sub

En voor wat betreft de globale variabelen: Deze declareer je in de General Declarations.

Dim Start As Single
Dim Einde As Single
Dim TotaalSeconden As Single
Dim LinkerTerm As Integer
Dim RechterTerm As Integer

Opmerking: Hierboven heb ik bijvoorbeeld niet de variabele Som gebruikt, omdat de opdracht er meer vanuit gaat in hoeveel seconden iemand over een bepaalde optelsom doet. Ik heb verder de naamgeving txtSom(text-box voor de som) niet hoeven te gebruiken. Maar dit heb je ook al door.

Dennis.
 
Beloof mij om de code eerst te begrijpen alvorens je de opdracht inlevert. Ik heb mijn verzoek in de code nog eens in het Engels vermeld.
Verder hoop ik dat je het programmainterface zelf kunt maken(dit is de allermakkelijkste). Je liet dit in dit topic ook zien, maar dat kan een screenshot zijn v.h. gecompileerde programma zijn. Dit moet haast wel, want anders weet je hoe de code er uitziet.

Code:
Private Sub cmdControleOpnieuw_Click()
   'Programmer: Dennis90
   'Create date & time: 23-4-2005/19:45:03
   'You may remove my name and the rest of the text,
   'but please promise me to
   'understand the code, before you deliver
   'this to your teacher. I've been tested this
   'tiny program and it works to your needs. 

   Select Case cmdControleOpnieuw.Caption
      Case "Opnieuw"
         cmdControleOpnieuw.Caption = "Controle"
         Randomize
         For Teller = 0 To 9
            txtSVPQ(Teller).BackColor = vbWhite
            txtSVPQ(Teller) = ""
            txtL_tfdtl(Teller).Text = Int(Rnd * 10) + 1
            txtR_tfdlr(Teller).Text = Int(Rnd * 10) + 1
            BewTekens = (Rnd * 4) + 1
            Select Case BewTekens
               Case 1
                  lblBewTekens(Teller).Caption = "+"
                  Uitkomsten(Teller) = Val(txtL_tfdtl(Teller)) + _
                  Val(txtR_tfdlr(Teller))
               Case 2
                  lblBewTekens(Teller).Caption = "-"
                  Uitkomsten(Teller) = Val(txtL_tfdtl(Teller)) - _
                  Val(txtR_tfdlr(Teller))
               Case 3
                  lblBewTekens(Teller).Caption = "X"
                  Uitkomsten(Teller) = Val(txtL_tfdtl(Teller)) * _
                  Val(txtR_tfdlr(Teller))
               Case 4
                  lblBewTekens(Teller).Caption = ":"
                  Uitkomsten(Teller) = Val(txtL_tfdtl(Teller)) / _
                  Val(txtR_tfdlr(Teller))
            End Select
         Next Teller
      Case Else
         cmdControleOpnieuw.Caption = "Opnieuw"
         Uitslag = 0
         For Teller = 0 To 9
            If Uitkomsten(Teller) = Val(txtSVPQ(Teller)) Then
               Uitslag = Uitslag + 1
               Else
               txtSVPQ(Teller).BackColor = vbRed
            End If
         Next Teller
         txtUitslag.Text = Uitslag & " goed v.d. 10."
   End Select
End Sub

En verder:

1) Declareer onderstaande variabelen in de General_Declarations.

Dim L_tfdtl, R_tfdlr, Uitslag As Integer
Dim BewTekens As Integer
Dim Uitkomsten(9), SVPQ(9) As Single
Dim Teller As Integer

2) Bij Form_Load:

Code:
Private Sub Form_Load()
   For Teller = 0 To 9
      txtL_tfdtl(Teller) = ""
      txtR_tfdlr(Teller) = ""
      txtSVPQ(Teller) = ""
      lblBewTekens(Teller) = ""
      txtUitslag = ""
   Next Teller
End Sub

Enige opmerkingen:

Conventie voor naamgevingen.

txtL_tfdtl:

txt- het betreft een text-box.
L_tfdtl - Lees maar als: L(inks)_t(erm)f(actor) en dtl = deeltal

txtR_tfdlr - Als hierboven, maar R voor Rechts en dlr voor deler

txtSVPQ - S(om)V(erschil)P(roduct) en Q(uotient)

txtUitslag - vanzelfsprekend.

lblBewTekens voor de tekens "+", "-", "X" en "/"

Enz.....(bijvoorbeeld de naam v.d. knop en de text-box voor de uitslag)

Voor al de gebruikte controls hanteer je die namen. En maak natuurlijk gebruik van arrays.

Dennis.

PS. Als er bijvoorbeeld 10 mensen aan je opdracht zou gaan werken, dan hoeft dat niet per sé te betekenen dat de codes gelijk aan elkaar zijn. M.a.w.: Er zijn ook nog andere manieren mogelijk.
 
Hoi Dennis,

Ik weet niet of het zinnig is dat je het huiswerk van ibl maakt. Ikzelf kan uitstekend Cobol lezen maar het programmeren ervan is een stuk moeilijker. Als je begrijpt wat ik bedoel. :rolleyes:

Weest gegroet,
Guus
 
Hallo Guus2005,

Ik twijfelde eerst ook, maar niet voor niets begon ik meteen met mijn smeekbede "Beloof mij......"
Ik had hem/haar ook het programmaatje hier gezipt kunnen aanbieden. Maar dat betekent wel dat de opdracht direct aan de school kan worden ingeleverd, zonder dat hij/zij de (simpele)code eerst had bestudeerd.

Cobol(3e generatie programmeertaal), heb ik jaren geleden gedaan.
Kijken of je het nog weet:
En wat is het mainframe waar het op draait? (en niet even opzoeken via Google o.i.d., zelf raadpleeg ik het Web nooit)

Dennis
 
Mijn hulp is hier niet meer nodig. Sterkte verder

Weest gegroet,
Guus
 
Geplaatst door Guus2005
Mijn hulp is hier niet meer nodig. Sterkte verder

Weest gegroet,
Guus
Beste Guus2005,

Zeg dat a.u.b. niet. Je bent een bekwaam iemand :thumb: (dat kan van mij echt niet gezegd worden) En trouwens weten 3 mensen(jij, Joost en ik) meer dan één.

Groetjes,

Dennis.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan