Vejledning til QCmath

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.