Python-program for å finne heltallige nullpunkter

Python-program for å finne heltallige nullpunkter

def f(x):
    return 3 * x - 15      # Definerer funksjonen f gitt ved f(x) = 3x - 15

x = 0

while x <= 10:

    if f(x) == 0:
        print(x)

    x = x + 1

Lars har skrevet programkoden ovenfor.

Hva ønsker han å finne ut? Hva blir resultatet når han kjører programmet?

Hva vil resultatet bli om han endrer funksjonsuttrykket til x26x+8x^2-6x+8?

Lars endrer funksjonsuttrykket til x2144x^2-144 og ser at han må gjøre noe med programmet.

Foreslå endringer Lars kan gjøre.

Fasit

Programmet leter etter heltallige nullpunkter til f(x)=3x15f(x) = 3x - 15 for xx fra 00 til 1010. Det skriver ut 5\underline{\underline{5}}.

Programmet skriver ut 2\underline{\underline{2}} og 4\underline{\underline{4}}.

Programmet skriver ingenting fordi nullpunktene (x=12x = 12 og x=12x = -12) ligger utenfor søkeområdet. Lars må utvide løkken, f.eks. endre while x <= 10 til while x <= 12.

LøsningsforslagKI-generert

Programmet definerer funksjonen f(x)=3x15f(x) = 3x - 15 og går gjennom alle heltall fra x=0x = 0 til x=10x = 10 (med while x <= 10). For hvert heltall sjekker det om f(x)=0f(x) = 0, og skriver i så fall ut xx.

Lars ønsker å finne heltallige nullpunkter til f(x)f(x), altså de heltallsverdiene av xx der f(x)=0f(x) = 0.

Vi regner ut: f(5)=3515=1515=0f(5) = 3 \cdot 5 - 15 = 15 - 15 = 0, så x=5x = 5 er et nullpunkt.

Programmet skriver ut 5\underline{\underline{5}}.

Med f(x)=x26x+8f(x) = x^2 - 6x + 8 sjekker programmet fortsatt alle heltall fra 00 til 1010.

Vi regner ut:

f(2)=2262+8=412+8=0f(2) = 2^2 - 6 \cdot 2 + 8 = 4 - 12 + 8 = 0 f(4)=4264+8=1624+8=0f(4) = 4^2 - 6 \cdot 4 + 8 = 16 - 24 + 8 = 0

Begge nullpunktene x=2x = 2 og x=4x = 4 er heltall og ligger i intervallet [0,10][0, 10].

Programmet skriver ut 2\underline{\underline{2}} og 4\underline{\underline{4}}.

Med f(x)=x2144f(x) = x^2 - 144 er nullpunktene der x2=144x^2 = 144, altså x=12x = 12 og x=12x = -12.

Begge nullpunktene ligger utenfor løkkens søkeområde (00 til 1010), så programmet finner ingenting og skriver ikke ut noe.

Lars må endre programmet slik at søkeområdet dekker x=12x = 12. En mulig løsning:

def f(x):
    return x ** 2 - 144

x = 0

while x <= 12:

    if f(x) == 0:
        print(x)

    x = x + 1

Dette programmet skriver ut x=12x = 12.

Hvis Lars også vil finne det negative nullpunktet x=12x = -12, kan han starte på et negativt tall:

def f(x):
    return x ** 2 - 144

x = -12

while x <= 12:

    if f(x) == 0:
        print(x)

    x = x + 1

Da skriver programmet ut 12-12 og 1212.

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