3.15 Test op numeriek

Bij het invoeren van gegevens op een computer kan er van alles misgaan. Een foutje is snel gemaaakt (zie je wel?). Het is heel gevaarlijk om zonder controle met ingevoerde gegevens te gaan rekenen. En voor de computer is het eerder rekenen dan je denkt. Zelfs een vergelijking als in 'if getal > 30 then' geldt voor de computer al als rekenen. Hij trekt namelijk de twee getallen van elkaar af om te kijken of het een groter is dan het ander. Daarom geldt als vuistregel: altijd eerst de invoer controleren.

COBOL kent voor dit soort controles de test op numeriek.

illustratie: Geert Nijmolen

cartoon

In het volgende stukje programma staat de conditie until leeftijd numeric.

display "Wat is je leeftijd? " with no advancing
accept leeftijd
perform with test before until leeftijd numeric
   display "Geef een getal alsjeblieft."
   accept leeftijd
end-perform
  

onthoud

De test op numeriek (Engels: numeric) heet in COBOL een klasse-voorwaarde (Engels: class condition). Een veld geldt als numeriek als het alleen cijfers bevat. In een veld met een S in de picture moet bovendien een tekenaanduiding aanwezig zijn.

De test op numeriek is een ander soort voorwaarde dan we tot nu toe steeds zagen (de relatie-voorwaarde). Daarbij was er steeds een vergelijkingsteken, zoals > of =. Zo'n teken ontbreekt bij de klasse-voorwaarde.  Het is beslist onjuist om het is-gelijk-teken te gebruiken bij de numeric-test.

Als we willen zien of een veld niet numeriek is, dan mogen we het woordje not toevoegen:

if getal not numeric then
   ...
  

In de voorbeeldprogramma's in dit boek blijft een controle op de invoergegevens soms buiten beschouwing. Dat gebeurt om de aandacht niet af te leiden van het onderwerp waar het in dat voorbeeld om gaat. Houd echter in gedachten dat in een echt toepassingsprogramma altijd controles zullen moeten plaatsvinden.

omslag leerboek

Serie: leerboeken informatica

Titel: Tijd voor COBOL 1

Auteur: Andree Hollander

naamlogo