Programmer som løser andregradslikninger
1.7.25
Den generelle andregradslikningen kan skrives på formen
Det er to måter å løse andregradslikninger på manuelt. Vi kan
- faktorisere andregradsuttrykket ved for eksempel å lage et fullstendig kvadrat
- ved å bruke abc-formelen (andregradsformelen)
a) Spørsmål
Hvilken av disse to metodene tror du vil være enklest å bruke når du skal lage et program som skal løse andregradslikninger?
Svar
Dette blir egentlig det samme når vi skal programmere løsningen. Hvorfor er det slik?
b) Vurdering
Vi tar utgangspunkt i abc-formelen for løsningen. Når vi deler opp formelen i to deler, kan den skrives som
Hvordan kan brukeren av programmet skrive inn andregradslikningen som skal løses?
Løsningsforslag
Vi må gå ut i fra at brukeren har en andregradslikning på formen som ovenfor. Da trenger vi bare konstantene og fra brukeren.
c) Algoritme
Skriv algoritmen til et program som løser andregradslikninger for oss. Programmet skal ta imot den informasjonen som trengs om likningen fra brukeren av programmet. Løsningene kan presenteres med utskriften "x1 = ... , x2 = ...". Husk å få med forklarende tekster i starten av programmet slik at brukeren av programmet vet hva som skal gjøres.
Løsningsforslag
- Skriv til skjermen "Dette programmet løser andregradslikningen ax^2 + bx + c = 0.".
- Skriv til skjermen "Skriv inn konstanten a:".
- Ta imot tallet fra brukeren, konverter det til et ekte tall, og sett det lik variabelen
a
. - Skriv til skjermen "Skriv inn konstanten b:".
- Ta imot tallet fra brukeren, konverter det til et ekte tall, og sett det lik variabelen
b
. - Skriv til skjermen "Skriv inn konstanten c:".
- Ta imot tallet fra brukeren, konverter det til et ekte tall, og sett det lik variabelen
c
. - Regn ut med formelen ovenfor, og sett resultatet lik variabelen
x1
. - Regn ut med formelen ovenfor, og sett resultatet lik variabelen
x2
. - Skriv til skjermen "Løsningene er x1 =
<x1>
og x2 =<x2>
.".
I siste linje betyr "<x1>
" innholdet av variabelen x1
.
d) Koding
Test programmet med likningen . Gir programmet riktige løsninger?
e) Diskusjon
Fungerer programmet på alle andregradslikninger?
f) Testing
Prøv programmet på likningen . Hvorfor passer ikke utskriften av løsningen så godt til denne likningen?
g) Testing
Prøv deretter programmet på likningen . Hva skjer nå, og hvorfor skjer dette?
h) Algoritme
Endre på algoritmen i oppgaven over slik at programmet gir utskrift tilpasset de ulike tilfellene av andregradslikninger vi kan komme borti.
i) Koding
Lag programmet etter denne algoritmen, og sjekk at det fungerer.