Algoritme og kode for punkt på inni eller utenfor sirkel
Lest inn av KI og ikke kontrollert manuelt enda — kan inneholde feil.
En sirkel kan beskrives ved å oppgi sentrum og radius .
Beskriv en algoritme som du kan bruke til å avgjør om et gitt punkt ligger på, inni eller utenfor sirkelen .
Skriv en kode basert på algoritmen fra oppgave a). Input skal være , , , og . 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 fra til sentrum . Hvis : inni. Hvis : på. Hvis : utenfor.
Se løsningsforslag.
LøsningsforslagKI-generert
Et punkt og sirkelens sentrum har avstand
Vi sammenligner denne avstanden med radius :
- Hvis : punktet ligger innenfor sirkelen
- Hvis : punktet ligger på sirkelen
- Hvis : punktet ligger utenfor sirkelen
Algoritme:
- Ta inn verdiene , , , og
- Beregn
- Hvis : skriv ut «Punktet ligger innenfor sirkelen»
- Ellers hvis : skriv ut «Punktet ligger på sirkelen»
- 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 , radius , punkt .
Siden ligger punktet på sirkelen.
Merk: I praksis er det sjelden at et beregnet desimaltall blir nøyaktig lik på grunn av avrundingsfeil. I en mer robust løsning kan man i stedet sammenligne med (unngår kvadratrot) eller bruke en liten toleranse ved sjekk av likhet.