Algoritme og kode for rettvinklet trekant R1 V22

Algoritme og kode for rettvinklet trekant R1 V22

Lest inn av KI og ikke kontrollert manuelt enda — kan inneholde feil.

Gitt tre punkter A(a,b)A(a,b), B(c,d)B(c,d) og C(e,f)C(e,f).

Beskriv en algoritme som du kan bruke til å avgjøre om ABC\triangle ABC er en rettvinklet trekant.

Skriv en kode basert på algoritmen du beskrev i oppgave a). Input skal være koordinatene aa, bb, cc, dd, ee og ff. 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) cc tilfredsstiller c2=a2+b2c^2 = a^2 + b^2, der aa og bb er de to katetene.

Algoritme:

  1. Beregn kvadratet av de tre sidelengdene:
AB2=(ca)2+(db)2|AB|^2 = (c-a)^2 + (d-b)^2 BC2=(ec)2+(fd)2|BC|^2 = (e-c)^2 + (f-d)^2 CA2=(ae)2+(bf)2|CA|^2 = (a-e)^2 + (b-f)^2
  1. Sorter de tre verdiene fra minst til størst: kall dem s1s2s3s_1 \leq s_2 \leq s_3.
  2. Sjekk om s3=s1+s2s_3 = s_1 + s_2.
    • 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 AB2|AB|^2, BC2|BC|^2 og CA2|CA|^2 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 (sider[2]\texttt{sider[2]}) er lik summen av de to andre (sider[0] + sider[1]\texttt{sider[0] + sider[1]}), er trekanten rettvinklet.
  • Linje 13–18: Leser inn koordinatene fra brukeren med input() og konverterer til desimaltall med float().
  • Linje 20: Kaller funksjonen med de innleste koordinatene.

EksempelA(0,0)A(0, 0), B(3,0)B(3, 0), C(0,4)C(0, 4) (3-4-5-trekanten):

AB2=9,BC2=25,CA2=16|AB|^2 = 9, \quad |BC|^2 = 25, \quad |CA|^2 = 16

Sortert: [9,16,25][9, 16, 25]. Sjekk: 25=9+1625 = 9 + 16 ✓ → «Punktene danner en rettvinklet trekant.»

Tastatursnarveier

Navigasjon

⌘K / Ctrl+K
Åpne søk
G F
Gå til Fag
G E
Gå til Eksamener
G T
Gå til Temaer
G K
Gå til Kompetansemål
G H
Hjem
?
Vis snarveier

I oppgave

←/→ · J/K
Forrige / neste oppgave
0
Marker som ikke prøvd
1
Marker som prøvd
2
Marker som trenger hjelp
3
Marker som klart
S
Vis / skjul løsningsforslag
A
Legg til i liste
Esc
Tilbake / avslutt