Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Gestructureerd programmeren in Visual Basic 6

None
18 antwoorden
  • Nu mijn programma al vrij groot wordt lijkt het me verstandig om routines weg te schrijven in bijvoorbeeld classes. Alleen loop ik tegen een aantal problemen aan. Bijvoorbeeld als ik een Keypress wil controleren neemt hij de Keyascii niet mee naar de class. Moet ik dan al die variabelen apart in bijvoorbeeld een module Public declareren?

    Denk ik nu te moeilijk of is er een makkelijkere manier om structuur in mijn programma te krijgen?
  • Ik begrijp je specifieke probleem niet helemaal (helemaal niet: wie neemt die keypress mee?), maar ik denk dat alleen jij weet hoe je jouw specifieke programma kunt structureren… er is geen algoritme dat je op je code kan los laten waardoor het 'gestructureerd' wordt.
  • je moet wel een class en gewoon een modle op een goede manier gebruiken; voorbeeld: je hebt een paar functies die je vrij regelmatig in je programma gebruikt, nu kan je ze natuurlijk bij elk form in je code zetten.. maarrrr je kan de sub dus ook in een module zetten. uiteindleijk krijg je zoveel functies dat je die ook in aparte modules zet: dan heb je bijv een module: textFunctions.mod (is dus maar voorbeeld..) en general.mod etc.. wordt het allemaal al een stuk overzichtelijker..

    class modules kan je beter anders gebruiken (dus niet gewoon hetelfde als module..) classes zijn handig als je bijv een spel maakt.. je hebt meerdere karakters in dit spel maar je wil natuurlijk dat je ze allemaal apart aan kan roepen.. om nou voor elk ventje een andere module te maken kan je dus ook een class maken en voor ieder ventje die class 'starten'. Ik gebruik classes bijv als ik meerdere bestanden wil openen en hetzelfde met de bestanden wil doen.. als je bijv. database programma hebt kan je voor iedere tabel bijv. een class maken (die tabel is dan dus een bestand op de hardeschijf).. lang verhaall..

    p.s. slim om gestructureerd te werk te gaan.. scheelt uiteindleijk een hoop gezeik..
  • Achteraf structuur in je programma aan willen brengen is als het leggen van fundamenten als het huis al klaar is. Lukt niet meer zonder dat je de hele boel op zijn gat gooit, wat misschien maar beter is ook.
    Beter is vooraf nadenken wat en hoe je dingen wilt doen en het dan pas uitvoeren.
  • Dat is wel waar, maar in de loop der tijd leer je steeds bij en wil je dat dan ook in praktijk brengen.

    Ik heb jaren geleden toen in nog in VB6 programmeerde ook eens een systeem bedacht. Maar ik maak programmaatjes van niets dus dat had weinig zin.

    Maar nu werk ik met vb.net en asp.net en kan ik eigenlijk mijn systeem niet doorzetten, want dan snapt een ander er geen hout meer van.
  • [quote:8f304b816d="diniz"]Nu mijn programma al vrij groot wordt lijkt het me verstandig om routines weg te schrijven in bijvoorbeeld classes. Alleen loop ik tegen een aantal problemen aan. Bijvoorbeeld als ik een Keypress wil controleren neemt hij de Keyascii niet mee naar de class. Moet ik dan al die variabelen apart in bijvoorbeeld een module Public declareren?

    Denk ik nu te moeilijk of is er een makkelijkere manier om structuur in mijn programma te krijgen?[/quote:8f304b816d]Neem de keyascii mee als variabele.[code:1:8f304b816d]Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    ClassFunction KeyCode
    End Sub

    Public Sub ClassFunction (ByVal KeyAscii As Integer)

    End Sub[/code:1:8f304b816d]Zoiets.
  • [quote:f9b4300be5]
    Gestructureerd programmeren in Visual Basic 6
    [/quote:f9b4300be5]

    Onmogelijk! :lol:
  • Ik heb ook wel de nodige programmaatjes in het verleden geschreven waar ik later niet al te trost op was omdat de struktuur niet geheel in orde was. Ik heb ook aan projecten van anderen gewerkt met daarbij een waardeloze programmeeur-struktuur. En dan heb ik het zelfs over Pascal, een taal waarin je bijna geforceerd gestruktureerd moet werken.
    Maar goed, niemand is perfect en met de jaren ben ik alleen maar beter geworden.

    Als je je programma een meer gestruktureerde opzet wilt geven dan zul je toch moeten beginnen met wat iedere programmeer het meeste haat: pen en papier pakken en je project op papier geheel uitwerken. Diagrammetjes maken, documentatie schrijven en puzzelen naar de meest ideale oplossing. Erg tijdrovend en meestal niet zo leuk als code kloppen en testen. Maar goed, naarmate je beter wordt met dit documentatie-gedeelte kun je jezelf aanleren om bepaalde dingen gewoon in je hoofd uit te werken. En dat is wat ik tegenwoordig vaak doe: zitten en in mijn hoofd hele schema's berekenen. Vergt wel wat hersencapaciteit, overigens… :D
    Maar ja, ik kan dan ook redelijk goed blind schaken… (Dus zonder bord en stukken, niet zonder ogen!)

    Vervolgens de keuze van de taal waarin je gestruktureerd programmeert. Helaas moet ik zeggen dat ik VB hiervoor niet de meest geschikte taal vind, mede ook omdat ik bekend ben met de achtergrond achter VB. Maar goed, het is wel mogelijk. Alleen dwingt de taal je niet echt om gestructureerd te werken.
    Je zou Delphi (Pascal) kunnen proberen maar de nieuwste versies hebben wat nieuwe functionaliteit die gestruktureerd werken weer lastiger maken.

    Maar in het algemeen geldt dat als je beter wilt leren programmeren dan zul je beter moeten ontwerpen en beter moeten documenteren…
  • [quote:54e0266030="w.roosenburg"][quote:54e0266030]
    Gestructureerd programmeren in Visual Basic 6
    [/quote:54e0266030]

    Onmogelijk! :lol:[/quote:54e0266030]

    Gestructureerd programmeren heeft niets met de gebruikte taal te maken maar alles met de vaardigheid en discipline van de programmeur. Als het je in de ene taal niet lukt om structuur aan te brengen in je programma lukt het je in de andere ook niet.
  • Klopt, daarom verzinken veel VB programmeurs ook als ze overstappen naar een andere taal.

    Ik ben het volledig met je eens maar onthoud dat programmeurs gebruik maken van handvaten die de taal je aanbiedt. Als standaard bagger-structuur wordt geaccepteerd door de compiler zal bijna iedereen het op deze manier programmeren. Daarom ziet C code er ook altijd gestructureerder uit dan VB code. Doet niks af van het feit dat je ook netjes kunt programmeren in VB en slordig in C. Maar over de balk genomen zullen C programmeurs netter programmeren dan VB programmeurs, puur omdat het in eerste instantie al meer afgedwongen wordt.
  • [quote:6d40380ac8="w.roosenburg"]Klopt, daarom verzinken veel VB programmeurs ook als ze overstappen naar een andere taal.

    Ik ben het volledig met je eens maar onthoud dat programmeurs gebruik maken van handvaten die de taal je aanbiedt. Als standaard bagger-structuur wordt geaccepteerd door de compiler zal bijna iedereen het op deze manier programmeren. Daarom ziet C code er ook altijd gestructureerder uit dan VB code. Doet niks af van het feit dat je ook netjes kunt programmeren in VB en slordig in C. Maar over de balk genomen zullen C programmeurs netter programmeren dan VB programmeurs, puur omdat het in eerste instantie al meer afgedwongen wordt.[/quote:6d40380ac8]

    Maar C programmeurs hebben nog wel eens de neiging om vrij cryptisch te gaan programmeren doordat de taal een heleboel shortcuts toestaat. De meest duidelijke voorbeeld hiervan is het statement "I++;" wat in langere vorm geschreven kan worden als "I=I+1;". Maar zo zijn er nog veel meer van dit soort cryptische zaken die je in C kunt uithalen. En dan ook nog de mogelijkheid om macro's te gebruiken zort ervoor dat een gestructureerd C programma er enorm onleezbaar uit kan zien. Bij VB heb je dit weer niet waardoor VB programma's toch iets leesbaarder zijn als je bekend bent met de syntax.
    C# is overigens wel weer een mooie taal om mee te beginnen. Het ontwerp-team van C# heeft geprobeert om de meest practische elementen van VB, C++ en wat Delphi/Pascal tot een nieuw geheel te vormen met een C++-achtige struktuur.
    En Pascal, deze taal heeft al enkele decennia de eer om altijd ergens tussen Basic en C te bungelen. De taal is goed gestruktureerd en de compiler is vrij streng betreffende fouten. Complexer dan Basic en ook krachtiger, maar eenvoudiger dan C en met een iets lagere performance dan C.
    Iedere taal heeft wel een bepaalde functie. Basic is echt bedoeld voor Beginners (daar staat die B ook voor) en C is meer voor de echte mannen… Pardon, echte programmeurs. :D Pascal is altijd meer een academische taal geweest. Je ziet Basic-achtige talen dan ook vaak gebruikt worden binnen kantoor-applicaties voor het schrijven van simpele macro's en eenvoudig programmeerwerk. C daarentegen is echt specifiek voor belangrijke systeem-software, vooral als performance van belang is. Pascal heeft commercieel echter nooit een enkele doelgroep gehad maar wordt juist voor diverse toepassingen gebruikt die vrij complex zijn maar lang niet de hoge eisen stellen als C software.
    Natuurlijk zijn er nog andere talen zoals COBOL en FORTRAN die op dit moment al vrij antiek aan het worden zijn. Beide talen beginnen echter langzaam te verdwijnen omdat deze talen vooral op mainframe systemen gebruikt worden. De PC markt heeft echter meer dan genoeg alternatieve talen. Om maar niet te spreken over al die honderden andere talen als ADA, Forth, Snobol, Perl en ga zo maar door.
    Maar er zijn maar een paar talen echt favoriet bij het algemeen publiek en dat zijn ook de eersten die men op kan noemen Basic, C en Pascal.

    Overigens is het aan de kracht van de Borland Delphi compiler te danken dat Pascal op dit moment nog steeds erg populair is. Een eenvoudige taal die de performance van de taal C++ benadert is natuurlijk commercieel erg interessant.
  • Het is een feit dat velen die zich programmeur (mogen) noemen die naam niet waard zijn.

    In welke taal je dan ook schrijft.
  • [quote:39f375185e="w.roosenburg"] Daarom ziet C code er ook altijd gestructureerder uit dan VB code. Doet niks af van het feit dat je ook netjes kunt programmeren in VB en slordig in C. Maar over de balk genomen zullen C programmeurs netter programmeren dan VB programmeurs, puur omdat het in eerste instantie al meer afgedwongen wordt.[/quote:39f375185e]

    C is misschien wel het slechts denkbare voorbeeld van een taal die structuur afdwingt. Ik ken geen taal die je een grotere vrijheid biedt dan C. Letter alles zal door de compiler worden toegestaan zolang het syntactisch maar een beetje klopt. Als je ook nog eens het 'warning-level' laag zet "omdat je anders teveel meldingen krijgt" (ja, die vrijheid biedt de C-compiler je ook) en de weg naar totale chaos ligt open. Wel dwingt de taal je tot nadenken vooraf en zal het resultaat mogelijk gestructureerder zijn.

    Zoals WA ook al aangeeft, het veelvuldig gebruikt van macro's en andere "define's" die oh zo handig zijn als je de enige bent die aan een programma moet werken maar die een bron van ergernis worden als je een programma van iemand moet overnemen. Vastleggen van standaards is dan ook van essentiëel belang, maar wordt vaak nogal eens vergeten waardoor iedere programmeur weer zelf het wiel gaat uitvinden.
    Juist bij C wordt een groot beroep gedaan op de zelfdiscipline van de programmeur.

    C is echter niet een van de toegankelijkste talen dus de kans dat je daar echte knoeiers aantreft die zonder plan direct maar aan het kloppen slaan is vele malen kleiner dan bijvoorbeeld bij VB. Ik denk dat jou idee dat C-code er altijd gestructureerder uitziet (wat nog maar de vraag is) voornamelijk het gevolg is van dit laatste en niet opgesloten ligt in de taal zelf.

    [quote:39f375185e="Wiep Corbier"]Het is een feit dat velen die zich programmeur (mogen) noemen die naam niet waard zijn.

    In welke taal je dan ook schrijft.[/quote:39f375185e]

    Yep, 100% waar.
  • Ik ben een beginner en vandaar waarschijnlijk mijn keuze voor Visual Basic. Ik maak af en toe voor mijzelf wat en er ligt nu een kleine opdracht op het werk waar een schil om Access heen gebouwd moet worden. Ik druk het meeste nu in modules. Ik zal me eens verdiepen wat classes precies inhouden en welke extra functionaliteiten dan vrijkomen.
    Daarnaast, als ik iets maak dan wil ik dat ook goed doen, één van mijn eerste programma breidde ik steeds uit waardoor ik door de bomen het spreekwoordelijke bos niet meer zag…
  • [quote:9a964bad84="diniz"]Daarnaast, als ik iets maak dan wil ik dat ook goed doen, één van mijn eerste programma breidde ik steeds uit waardoor ik door de bomen het spreekwoordelijke bos niet meer zag…[/quote:9a964bad84]
    Da's herkenbaar. Als ik nu kijk naar software die ik 2 jaar geleden heb geschreven denk ik ook regelmatig: "Wat een oen was ik toch." :)
    Maar goed, 20 jaar geleden toen ik net begon was het nog een flink stuk erger…

    Goed advies: orienteer je een beetje op een paar andere talen dan Basic. Hoeft geen C, Java, Pascal of COBOL te zijn, maar gewoon iets wat geen VB is. Dan leer je een beetje om wat meer in algemenere algoritmes te denken i.p.v. specifieke VB oplossingen. Een aantal goede boeken wil ook nog wel eens helpen. En ga eventueel op zoek naar een kopietje van FreePascal of koop/leen/steel ergens een Delphi CD. :wink:

    (Delphi/Pascal omdat deze taal eigenlijk het meest specifiek is gemaakt om goed gestructureerd te programmeren.)
  • Praten we hier over gestructureerd programmeren of OO-programmeren? Beide zijn uitstekende manieren om je code onderhoudbaar te houden, maar ze verschillen fundamenteel van elkaar. Je taalkeuze kan hiervan afhankelijk zijn…
  • OO programmeren is gewoon een nieuwe techniek om gestructureerd te programmeren. Immers, je volgt namelijk een bapaalde structuur, in dit gevall Object-georienteerd. Voorheen was procedureel programmeren voer voor gevorderden maar tegenwoordig is dat OO. En wie weet wat de toekomst ons gaat brengen? In ieder geval zal het sterk OO-georienteerd zijn…
    Wel is het duidelijk dat steeds meer programmeer-tools gebaseerd zijn op het bewerken van gegevens. Meestal het omzetten van de ene data container (b.v. een import-tekstbestandje) naar een andere (database) container. Je ziet dan ook dat data en code steeds losser aan elkaar gekoppeld worden maar dat er wel altijd een koppeling blijft. Vroeger had je procedures die werkten met vaste record-structuren. Later kreeg je OO waarbij data intern in het object werd bewaard met gekoppende procedures voor bewerkingen. Tegenwoordig heb je ook nog de interfaces waardoor het je geen reet meer uitmaakt hoe het object de data opslaat, als het object maar aan bepaalde voorwaardes voldoer. Dat laatste zie je redelijk terug in Delphi en erg goed in .NET.

    De meeste programma's zijn gewoon bedoeld om gegevens te verwerken. En de neiging is om code steeds abstracter te schrijven zodat het eenvoudiger wordt om losse componenten aan elkaar te koppelen. (Zoals in .NET gebeurt.)
  • En in Java :wink:

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.