Algoritme og kode for punkt på inni eller utenfor sirkel

Algoritme og kode for punkt på inni eller utenfor sirkel

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

En sirkel CC kan beskrives ved å oppgi sentrum S(a,b)S(a, b) og radius rr.

Beskriv en algoritme som du kan bruke til å avgjør om et gitt punkt P(s,t)P(s, t) ligger på, inni eller utenfor sirkelen CC.

Skriv en kode basert på algoritmen fra oppgave a). Input skal være aa, bb, rr, ss og tt. Output skal være en av følgende tekster:

  • Punktet ligger innenfor sirkelen
  • Punktet ligger på sirkelen
  • Punktet ligger utenfor sirkelen
Fasit

Algoritme: Beregn avstanden d=(sa)2+(tb)2d = \sqrt{(s-a)^2 + (t-b)^2} fra P(s,t)P(s,t) til sentrum S(a,b)S(a,b). Hvis d<rd < r: inni. Hvis d=rd = r: på. Hvis d>rd > r: utenfor.

Se løsningsforslag.

LøsningsforslagKI-generert

Et punkt P(s,t)P(s, t) og sirkelens sentrum S(a,b)S(a, b) har avstand

d=(sa)2+(tb)2d = \sqrt{(s-a)^2 + (t-b)^2}

Vi sammenligner denne avstanden med radius rr:

  • Hvis d<rd < r: punktet ligger innenfor sirkelen
  • Hvis d=rd = r: punktet ligger sirkelen
  • Hvis d>rd > r: punktet ligger utenfor sirkelen

Algoritme:

  1. Ta inn verdiene aa, bb, rr, ss og tt
  2. Beregn d=(sa)2+(tb)2d = \sqrt{(s-a)^2 + (t-b)^2}
  3. Hvis d<rd < r: skriv ut «Punktet ligger innenfor sirkelen»
  4. Ellers hvis d=rd = r: skriv ut «Punktet ligger på sirkelen»
  5. Ellers: skriv ut «Punktet ligger utenfor sirkelen»
import math

a = float(input("Sentrum x-koordinat a: "))
b = float(input("Sentrum y-koordinat b: "))
r = float(input("Radius r: "))
s = float(input("Punkt x-koordinat s: "))
t = float(input("Punkt y-koordinat t: "))

avstand = math.sqrt((s - a)**2 + (t - b)**2)

if avstand < r:
    print("Punktet ligger innenfor sirkelen")
elif avstand == r:
    print("Punktet ligger på sirkelen")
else:
    print("Punktet ligger utenfor sirkelen")

Eksempel: Sentrum S(0,0)S(0, 0), radius r=5r = 5, punkt P(3,4)P(3, 4).

d=(30)2+(40)2=9+16=25=5d = \sqrt{(3-0)^2 + (4-0)^2} = \sqrt{9 + 16} = \sqrt{25} = 5

Siden d=r=5d = r = 5 ligger punktet sirkelen.

Merk: I praksis er det sjelden at et beregnet desimaltall blir nøyaktig lik rr på grunn av avrundingsfeil. I en mer robust løsning kan man i stedet sammenligne d2d^2 med r2r^2 (unngår kvadratrot) eller bruke en liten toleranse ved sjekk av likhet.

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