Algoritme og kode for rettvinklet trekant R1 V22
Lov på eksamen
- Kalkulator
- CAS
- Graftegner og regneark
- Lærebok, formelsamling og egne notater
Ikke åpent internett, kommunikasjon med andre eller kunstig intelligens.
Kan den løses uten PC?
1 av 2 deloppgaver kan løses uten PC.
Fra 2027 er det bare kalkulator og skriftlige hjelpemidler på del 2. Vurderingen er gjort med KI og kan inneholde feil.
Lest inn av KI og ikke kontrollert manuelt enda — kan inneholde feil.
Gitt tre punkter , og .
Beskriv en algoritme som du kan bruke til å avgjøre om er en rettvinklet trekant.
Skriv en kode basert på algoritmen du beskrev i oppgave a). Input skal være koordinatene , , , , og . Output skal være en av følgende tekster:
- Punktene danner en rettvinklet trekant.
- Punktene danner ikke en rettvinklet trekant.
Fasit
Algoritme: Beregn kvadratet av de tre sidelengdene. Sorter dem. Sjekk om den største er lik summen av de to andre.
Se kode under.
LøsningsforslagKI-generert
En rettvinklet trekant oppfyller Pytagoras’ setning: den lengste siden (hypotenusen) tilfredsstiller , der og er de to katetene.
Algoritme:
- Beregn kvadratet av de tre sidelengdene:
- Sorter de tre verdiene fra minst til størst: kall dem .
- Sjekk om .
- Hvis ja: punktene danner en rettvinklet trekant.
- Hvis nei: punktene danner ikke en rettvinklet trekant.
Vi bruker kvadrerte sidelengder (ikke sidelengder) for å unngå avrundingsfeil ved kvadratrøtter.
def er_rettvinklet(a, b, c, d, e, f):
AB2 = (c - a)**2 + (d - b)**2
BC2 = (e - c)**2 + (f - d)**2
CA2 = (a - e)**2 + (b - f)**2
sider = sorted([AB2, BC2, CA2])
if sider[2] == sider[0] + sider[1]:
print("Punktene danner en rettvinklet trekant.")
else:
print("Punktene danner ikke en rettvinklet trekant.")
a = float(input("a: "))
b = float(input("b: "))
c = float(input("c: "))
d = float(input("d: "))
e = float(input("e: "))
f = float(input("f: "))
er_rettvinklet(a, b, c, d, e, f)
Forklaring steg for steg:
- Linje 2–4: Beregner kvadratet av de tre sidelengdene , og med avstandsformelen.
- Linje 6: Sorterer listen slik at den minste verdien kommer først og den største sist.
- Linje 8–11: Sjekker Pytagoras’ setning på de kvadrerte verdiene. Hvis den største verdien () er lik summen av de to andre (), er trekanten rettvinklet.
- Linje 13–18: Leser inn koordinatene fra brukeren med
input()og konverterer til desimaltall medfloat(). - Linje 20: Kaller funksjonen med de innleste koordinatene.
Eksempel – , , (3-4-5-trekanten):
Sortert: . Sjekk: ✓ → «Punktene danner en rettvinklet trekant.»