Matematik i Delphi

Tags:    delphi
Skrevet af Bruger #394 @ 19.03.2002
Matematik i Delphi

Matematik er et vigtigt grundlag at kende i både Delphi og i det hele taget i programmering. Jeg vil i denne artikel fortælle om hvordan man udregner forskellige matematiske udtryk i Delphi, samt fortælle hvilke variabel typer der kan skrives til og læses fra.

Grundlæggende

Størstedelen af matematik styres fra filen math.pas. Denne fil kan regne med alt fra potens, kvadratroder til sin, cos, tan, log, mm.

Variabel Typer

Man kan vælge at lagre sit resultat i enten et synligt komponent eller en variabel. Vælger man variabler kan de defineres i mange forskellige typer. Bla.:
Integer (heltal)
Float (decimaltal)
Double (decimaltal)
Int64 (decimaltal)
Simple (decimaltal)
Real (decimaltal) ... og der er mange flere. Men på et eller andet tidspunkt skal de vel konverteres fra deres nuværende værdi til en string-værdi, så brugeren kan se resultatet. Alle decimal-værdier kan bruge en fælles koverteringsmetode, fx fungerer de alle sammen med FloatToStr. Men integer-værdien skilder sig ud fordi den altid bruger IntToStr. I mine kode eksempler lagrer jeg mine resultater i en variabel kaldt "Result" som er deklareret i Float og en som hedder "ResultInt" som er deklareret i Integer. Lad os så komme igang!

Typiske Aspekter

Vi kender alle sammen plus, minus, gange og dividere. Med undtagelse af dividere laves de alle sammen på samme måde. Vi tager alligevel og gennemgår hvordan det gøres, da jeg flere gange er blevet spurgt.
Result := 2 + 2; // Plus
Result := 2 - 1; // Minus
Result := 34 * 5 // Gange
Result := 564 / 6 // Dividere i decimaltals typer
ResultInt := 564 div 6 // Dividere i Integer
Jeg vil lige gøre opmærksom på at hvis du arbejder med andet end plus, minus og gange skal du tilføje "math" til "uses", så det ser ud i stil med dette:
uses
System, SysUtils, Forms, Graphics ........... Math;

Kvadratrod & Potens

Hvis du vil regne med kvadratrod og potenser kan du gøre sådan her (husk igen at du skal have "math" under "uses"!)
Result := Sqrt(49); // Kvadratrod
Result := Power(45, 3); // Potens - her er det altså 45 i tredje!
Du kan godt dividere, opløfte potenser, osv. med integer. Men ender resultatet som decimaltal, vil det blive rundet op eller ned.

Arbejde med decimaltal

Hvis man skal arbejde med egne decimaltal (fx hvis du skal bruge pi) skriver man ikke et dansk komma (,) men et punktum (.). Fx3.14159 osv. og IKKE 3,14159 osv.

Arbejde med Parenteser

Delphi fatter lige så godt som en Texas Instruments 34II lommeregner at regne med oarenteser. Til dem der ikke ved det, vil alt hvad der står i parenteser blive udregnet før selve hele stykket. Det kan gøres på fx denne måde
Result := 358 + 49 * 32.67 + (65 * 7 + 0,09 * 2.3) + 43

Procenter

Nu kommer vi så over i den afdeling hvor vi har lært rigeligt til at regne med procenter. I dette eksempel vil jeg finde ud af hvor mange procent 568 er af 2039:
Result := 568 / 2039 * 100;
Du kan selvrfølgelig erstatte disse tal med navne på andre variabler eller konverterede properties fra et komponent.

Udtales [pytaboras]

Pythaporas (tror nok det staves sådan, de grækere er sgu for skøre!) bruges til at finde den skrå side i en retvinklet trekant (en trekant hvori der findes en vinkel som er 90 grader). I eksemplet er siden A 22cm og B 45 cm, vi finder siden C. Det kan gøres sådan:
Result := sqrt(power(22, 2), power(45, 2));

De sidste visdoms ord...

Hvis folk synes om denne artikel vil jeg med 100% granati skrive en 2'er. Den vil dog omhandle nogle lidt mere advanceret emner end dem jeg har gennemgået i denne artikel. Denne her artikel skulle jo kun bruges til at komme igang med matematiken i Delphi.



Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (6)

User
Bruger #3225 @ 14.02.03 13:26
Glimrende. Giver en meget grundig behandling af emnet, så alle også nubegyndere kan følge med: Tak for det.
User
Bruger #3469 @ 18.03.03 12:37
Jeg kunne godt bruge artiklen til udregninger i Delphi... Tak...
User
Bruger #2967 @ 26.07.03 12:01
God artikel, du gennemgår det mest anvendte, i matematik i dag, og du gør det fint og kronologogisk. jeg ser meget gerne en 2ér

Ps. ham grækeren staves Pythagoras
User
Bruger #6474 @ 20.09.04 13:57
Tak for det, denne artikel har reddet min dag
hehe, kan endelig komme videre med mit
program
User
Bruger #7603 @ 10.09.05 16:32
fandt ud af, at jeg skal tage mig sammen i matematik timerne, det harjegsku ellers aldrig gjodt
User
Bruger #9674 @ 12.08.06 20:39
Rigtig god artikkel...

Nem at læse, godt bygget op og så gennemgår den det basale i matematik...

Jeg ser meget gerne en 2'er...
Du skal være logget ind for at skrive en kommentar.
t