Introduktion
Spring videre til næste afsnit, hvis du søger reglerne for
skrivning af en formel som svar på et spørgsmål.
QCmath er et sprog hvis formål er
at gøre det muligt i quizzer at stille
spørgsmål, der skal besvares med simple matematiske formler,
fx (a' + b)*(a' - b) eller a'*a' - b^2.
Disse to svar vil iøvrigt være ækvivalente.
QCmath kan fx benyttes, når en quizserver ikke er tilrigget med
adgang til et mere avanceret matematikprogram for
analyse af formelsvar.
Et pænt stort antal spørgsmål indenfor anvendt
naturvidenskab kan besvares med et udtryk i QCmath.
At sproget er simpelt har iøvrigt den fordel,
at fejlmulighederne er begrænsede.
Regler
Et syntaktisk korrekt udtryk i QCmath er enten et algebraisk udtryk
skrevet i henhold til regler angivet nedenfor,
eller et funktionskald med argumenter, der hvert er et sådant
algebraisk udtryk.
Algebraiske operatorer
QCmaths eneste semantiske regler er knyttet til de algebraiske
operatorer addition '+', subtraktion '-', multiplikation '*'
og division '/'
tillige med potensopløftning '^' med en
fortegnsløs encifret potens samt gruppering med parentes.
Det er disse semantiske regler, der gør svarene
(a' + b)*(a' + b) og b^2 + a'*a' ækvivalente.
Tal
QCmath "forstår" fortegnsløse heltal,
men kommatal er ikke tilladte
(ej heller med komma erstattet med punktum).
Et fortegnsløst tal er en følge af decimale cifre.
Ingen navne kendes
QCmath kender ingen navne
og har således ingen semantiske regler for funktioner.
En specifikation af et korrekt svar i form af et funktionskald
består af navnet for funktionen
efterfulgt af en parentes indeholdende eet algebraisk
udtryk, fx sqrt( (x2 - x1)^2 + (y2 - y1)^2 ).
Et tilsvarende korrekt svar skal have samme form med samme
funktionsnavn og et ækvivalent algebraisk udtryk.
Quizforfatteren må sikre sig, at besvarere kender de
navne på funktioner, variable og konstanter,
som skal anvendes, og også
at der blandt de mulige svar med disse navne
kun findes een gruppe af algebraisk ækvivalente
svar, som er det korrekte svar på et spørgsmål. Operanderne i et algebraisk udtryk
angives ved navne og
fortegnsløse heltal samt algebraiske udtryk i parentes.
Udtryk, der begynder med minus '-', underforstås at have
et foranstående 0.
Syntax for navne
Et navn er enten simpelt eller udvidet.
Et simpelt navn begynder med et latinsk bogstav
hvorefter kan følge bogstaver, cifre og apostroffer
(sidstnævnte angivende en differentiation, for eksempel).
Et udvidet navn har formen f(x,y,..), hvor
f er et simpelt navn og x,y,.. er en liste af simple navne
adskilte af komma, altså samme form som et funktionskald. Intet mellemrum tillades ellem f og (x,y,..)
og hverken tal eller udtryk i listen.
Udvidede navne i QCmath muliggør spørgsmål
der skal besvares med udtryk som (cos(u)*cos(v) - sin(u)*sin(v)).
(Men bemærk at det samme spørgsmål ikke kan besvares med cos(u+v),
da QCmath intet kender til trigonometri).
Klart nok skal quizforfatteren i quizzen angive at svaret
skal gives med cos(u), cos(v), sin(u) og sin(v).
Måske kan banale fejl i svar i mange tilfælde undgås ved at benytte
simple i stedet for udvidede navne, fx cu i stedet for cos(u).
Udeladelser
Multiplikationstegn kan udelades mellem et ciffer og et simpelt navn,
mellem et ciffer og en startparentes, mellem en slutparentes og en
startparentes, samt mellem en slutparentes og et navn,
som fx i 3x, 3(a+b), (a+b)(c-d) og (2+x)d.
Ellers skal der sættes et multiplikationstegn for angivelse af
multiplikation.