Programmeren, de basis/Variabelen, constanten en hun gegevenstypen
Variabelen
[bewerken]Soms heb je een bepaalde (berekende) waarde (value) doorheen de programmacode meer dan één keer nodig. In dat geval kun je – i.p.v. die waarde steeds opnieuw te berekenen – de waarde opslaan in een variabele en dan gewoon de naam van de variabele gebruiken. Bij een complexe berekening kan je d.m.v. variabelen deze berekening opsplitsen in tussenstappen, waarvan je elk tussenresultaat kan opslaan in een aparte variabele. Een variabele is dus een benoemde geheugenlocatie waar gegevens opgeslagen kunnen worden.
In het voorbeeld van 'Basisbewerkingen met twee getallen' heb je gemerkt dat we schreven som = getal1 + getal2. Het (tussen)resultaat stoppen we a.h.w. in 'som'. We noemen 'som' een variabele. Deze variabele is nodig omdat we ergens een plaats willen in het geheugen om het resultaat van 'getal1 + getal2' in op te slaan. Wij hoeven als programmeur niet te weten waar dat dan precies is, daar wij enkel de naam moeten onthouden. Dit is vaak erg handig voor een progammeur.
Datatypes of gegevenstypes
[bewerken]In een rekenblad (bv. Excel of Calc) of in een databank (bv. Access of MySQL) kan je per cel of veldnaam opgeven om welke soort gegevens het gaat. Zo heb je oa. de mogelijkheid voor getallen, tekst of valuta.
Voor de computer kan het belangrijk zijn van welk type het gegeven 'som' is, een computer is immers dom en weet niet of som datum, tekst of een getal is. En het zou zinloos zijn om een datum op te tellen bij een tekst. Bovendien is er een verschil tussen kleine en tussen grote getallen en tussen gehele en reële getallen. Vandaar eisen heel wat programmeertalen dat je niet alleen de naam van een variabele opgeeft, maar ook zijn gegevenstype. Wanneer de computer werkt met gegevens, dan is het belangrijk dat hij weet met welk soort gegevens hij werkt, tekst is immers niet hetzelfde als een getal, met tekst kan je bijvoorbeeld niet gaan rekenen. Elk gegevenstype neemt een bepaalde plaats in in het geheugen. De vaakst voorkomende gegevenstypen:
Hieronder vind je een overzicht van vaak voorkomende datatypes:
Pseudocode | Excel/Calc | Access | VBA | Java | ||||
---|---|---|---|---|---|---|---|---|
Geheel getal | Getal | Numeriek | Integer | int | ||||
Reëel getal | Getal | Numeriek | Single | float | ||||
Tekst | Tekst | Tekst | String | String | ||||
Datum | Datum | Datum/tijd | Date | Date | ||||
Waar/Vals | Ja/nee | Boolean | boolean |
Bij sommige programmeertalen, zoals PHP en JavaScript, is het niet nodig om expliciet een datatype op te geven. Nochtans heeft het expliciet opgeven van een datatype voordelen: grotere snelheid, besparing van geheugen en het wordt eenvoudiger voor het opsporen van fouten.
Declaratie
[bewerken]Belangrijk bij het declareren van een variabele is het opgeven van een naam en het gegevenstype (alhoewel je niet bij alle programmeertalen een gegevenstype moet opgeven).
Vb. in VBA: Dim sngSom As Single
Vb. in Java: int nummer;
Initialisatie
[bewerken]Een variabele krijgt een waarde (value) door deze te initialiseren. Na het uitvoeren van onderstaande opdracht heeft de variabele een inhoud gekregen bepaald door de uitdrukking rechts. Het is natuurlijk belangrijk dat de uitdrukking aan de rechterkant van hetzelfde gegevenstype is dan wat verwacht wordt aan de linkerkant. Zo kan je geen tekst toekennen aan een variabele die een getal verwacht.
Vb. in VBA: sngSom = 3
Vb. in Java: nummer = 3;
Merk op dat als je tekst wilt voorstellen, dit in de meeste programmeertalen moet omgeven zijn door aanhalingstekens (“”).
Constanten
[bewerken]Bepaalde waarden blijven gedurende gans het programma – onafhankelijk van wanneer of hoe het uitgevoerd wordt – dezelfde. Zo is het getal π een constante, alsook de datum waarop Kerstmis valt. Als je in programmeren gebruikt maakt van een constante, dan kan je de waarde niet meer veranderen. Op die manier worden fouten vermeden en wordt het onderhoud van de programmacode eenvoudiger. Ook hier is vaak een gegevenstype van toepassing, dezelfde als bij variabelen.
Vb. in VBA: Const csngPi As Single = 3.14159265
Vb. in PHP: define ("PI", "3.14159265");
Naamgeving: Leszynski naamconventie (LNC)
[bewerken]Net zoals bij de besturingselementen via een voorvoegsel kan aangeven om welk soort besturingselement het gaat, kan je dat ook met variabelen. Ditmaal kan je via het voorvoegsel afleiden wat het gegevenstype is van die variabele.
Bij een constante wordt het voorvoegsel steeds voorafgegaan door de letter c
.
Gegevenstype | Data Type (en) | Voorvoegsel bij variabele | Voorvoegsel bij constante |
---|---|---|---|
geheel getal | integer | int | cint |
reëel getal | single | sng | csng |
tekst | string | str | cstr |
datum | date | dte | cdte |
waar/vals | boolean | bln | cbln |
Oefeningen
[bewerken]De constanten
[bewerken]Eventueel zou je het maximum te behalen punten (nl. 100) en het aantal vakken (nl. 3) in constanten kunnen stoppen. Deze constanten zou je dan kunnen gebruiken in je formule voor het totaal: totaal = (nl + fr + en) / (nVakken * maxPtn).
De variabelen
[bewerken]LNC | naam | gegevenstype | uitleg |
---|---|---|---|
int | ptnNederlands | geheel getal | |
int | ptnFrans | geheel getal | |
int | ptnEngels | geheel getal | |
sng | ptnTotaal | reëel getal |
In deze oefening zijn er geen constanten of variabelen.
Bij het lezen van de probleemstelling kunnen we al enkele variabelen en constanten afleiden, samen met hun gegevenstypen. Merk op dat niet alle informatie moet verwerkt worden (zo wordt de straatnaam enkel ingevuld, maar gebeurt er verder niets mee).
De constanten
[bewerken]Volgende waarden mogen doorheen het programma zeker niet van waarde wijzigen, hoeveel keer het programma ook wordt uitgevoerd.
LNC | naam | gegevenstype | waarde | uitleg |
---|---|---|---|---|
csng | winst | reëel getal | 0,30 | de gebruikte winst |
csng | uurloon | reëel getal | 42,14 | het loon dat de loodgieter per uur rekent |
cint | drempelOudHuis | geheel getal | 20 | welke leeftijd maakt een huis 'oud' |
csng | btwOudHuis | geheel getal | 0,06 | het BTW-percentage dat van toepassing is op een huis ouder dan 20 jaar |
csng | btwNieuwHuis | reëel getal | 0,21 | het BTW-percentage dat van toepassing is op een huis jonger dan 20 jaar |
cint | maxAantalTermijnen | natuurlijk getal | 12 |
Betreffende de verplaatsingskosten zijn er ook nog enkele constanten:
LNC | naam | gegevenstype | waarde | uitleg |
---|---|---|---|---|
csng | kostNrWVl | reëel getal | 10 | |
csng | kostNrOVl | reëel getal | 0 | |
csng | kostNrAnt | reëel getal | 20 | |
csng | kostNrLi | reëel getal | 30 |
De variabelen
[bewerken]Uit de opgave kunnen we ook nog gegevens halen die afhankelijk zijn van wat er werd ingevoerd en dus dus kunnen variëren. Een lijst van variabelen:
LNC | naam | gegevenstype |
---|---|---|
str | naamKlant | tekst |
str | provincie | tekst |
sng | prijsOnderdelen | reëel getal |
int | ouderdomHuis | geheel getal |
sng | verplaatsingskosten | reëel getal |
sng | bedragExclBTW | reëel getal |
sng | verplaatsingskosten | reëel getal |
sng | BTWbedrag | reëel getal |
sng | totaalBedrag | reëel getal |
sng | termijnBedrag | reëel getal |