Nulpunkter og toppunkt i Python

I forløbet skal eleverne forstå, anvende og skrive koden bag et Python-program, som kan beregne nulpunkterne og toppunktet for en andengradsfunktion. I erhvervsfaglige sammenhænge anvendes nulpunkts- og toppunktsberegninger til at finde det afsætningsinterval, som giver overskud, samt til at optimere overskuddet.

Informationer

Fag

Matematik

Omfang

Ca. 1 klokketime

Teknologi og værktøj

Programmering i Python

Virksomhed

Ingen virksomhed er inddraget

Afprøvning

Pilotversion er afprøvet på et EUX matematik B hold

Formål og mål

Formålet med forløbet er, at eleverne:

  • får en erkendelse af, at lommeregnere og mere bredt it-produkter anvender algoritmer (kode) til at udføre matematiske beregninger, udføre handlinger osv.

Læringsmålene er, at eleverne:

  • bliver i stand til at udføre nulpunkts- og toppunktsberegninger i et færdigt Python-program.

  • bliver i stand til forstå, ændre og skrive kode i Python, herunder specielt implementere den matematiske metode bag nulpunkts- og toppunktsberegninger i Python.

Forudsætninger

Forløbet kræver ingen særlige it-færdigheder, men kendskab til grundlæggende programmering fra et informatikfag vil være en fordel. Eleverne skal have kendskab til og kunne anvende formler til beregning af nulpunkter og toppunkter for en andengradsfunktion.

Aktiviteter og arbejdsform

Forløbet anvender en use-modify-create-tilgang, hvor eleven først bruger det færdige Python-program til at beregne nulpunkter og toppunktet, men ikke kigger i koden. Derefter skal eleven kigge i kode, ændre i den og skrive helt ny kode.

Genopfrisk metoden bag nulpunkts- og toppunktsberegning

  • Genopfrisk metoden bag nulpunkts- og toppunktsberegning og udlever/henvis til de matematiske formler for diskriminanten, nulpunkter og toppunktet.

Eksperimenter med det færdige Python program

  • Udlever Python-programfilen og lad eleverne eksperimentere med programmets funktionaliteter ved at regne nogle standardopgaver.

Introducer det valgte programmeringsmiljø

Lad eleverne arbejde trinvist med programstumper

  • Lad eleverne arbejde trinvis med programstumperne under Materiale. Eleverne skal selv skrive den røde kode. Du kan udlevere stumperne løbende, når eleverne er klar til det.

Gør det klart for eleverne, at de skal teste og fejlrette, og følg op

  • Lad eleverne teste og tilrette deres program - både undervejs og til sidst.

  • Italesæt at det vigtigt, at de løbende tester og fejlretter deres program.

  • Følg op på, om eleverne tester og fejlretter. Du kan lade elever teste løsninger op mod GeoGebra-appletten under Materialer. Du kan også inddele eleverne i grupper, som tester hinandens færdige programmer.

Materialer

Programstumper til Python-program

Nedenfor kan du finde en række programstumper, som trinvist bygger programmet op. Eleverne skal selv skrive den røde kode.

Programstump 1 (brugerprompt og input)

import math


print('Hvad er a?')

a = float(input())

print('Hvad er b?')

b = float(input())

print('Hvad er c?')

c = float(input())


d = pow(b,2)-4*a*c


print('Diskriminanten d er:')

print(d)

Programstump 2 (betingelse og beregning af nulpunkter)

import math


print('Hvad er a?')

a = float(input())

print('Hvad er b?')

b = float(input())

print('Hvad er c?')

c = float(input())


d = pow(b,2)-4*a*c


print('Diskriminanten d er:')

print(d)


if d<0:

print('Diskriminanten d er negativ og der er ingen nulpunkter.')


if d==0:

x1=-b/(2*a)

print('Diskriminanten er nul og der er ét nulpunkt:')

print(x1)


if d>0:

x1=(-b-math.sqrt(d))/(2*a)

x2=(-b+math.sqrt(d))/(2*a)

print('Diskriminanten er positiv og der er to nulpunkter:')

print(x1)

print(x2)


Programstump 3 (beregning af toppunkt)

import math


print('Hvad er a?')

a = float(input())

print('Hvad er b?')

b = float(input())

print('Hvad er c?')

c = float(input())


d = pow(b,2)-4*a*c


print('Diskriminanten d er:')

print(d)


if d<0:

print('Diskriminanten d er negativ og der er ingen nulpunkter.')


if d==0:

x1=-b/(2*a)

print('Diskriminanten er nul og der er ét nulpunkt:')

print(x1)


if d>0:

x1=(-b-math.sqrt(d))/(2*a)

x2=(-b+math.sqrt(d))/(2*a)


print('Diskriminanten er positiv og der er to nulpunkter:')

print(x1)

print(x2)


x = -b/(2*a);

y = -d/(4*a);

print('Toppunktet er:')

print(x)

print(y)

Det færdige program

import math


print('Hvad er a?')

a = float(input())

print('Hvad er b?')

b = float(input())

print('Hvad er c?')

c = float(input())


d = pow(b,2)-4*a*c


print('Diskriminanten d er:')

print(d)


if d<0:

print('Diskriminanten d er negativ og der er ingen nulpunkter.')


if d==0:

x1=-b/(2*a)

print('Diskriminanten er nul og der er ét nulpunkt:')

print(x1)


if d>0:

x1=(-b-math.sqrt(d))/(2*a)

x2=(-b+math.sqrt(d))/(2*a)

print('Diskriminanten er positiv og der er to nulpunkter:')

print(x1)

print(x2)


x = -b/(2*a)

y = -d/(4*a)

print('Toppunktet er:')

print(x)

print(y)

Det færdige Python-program til Windows

Du og dine elever kan hente det færdige Python-program som en selvstændig programfil (.exe) og kører den på en Windows-PC.

GeoGebra-applet til test

Nedenfor kan du finde en GeoGebra-applet, som eleverne kan bruge til at teste deres python-program med.

Evaluering

Du kan overveje, om eleverne skal aflevere deres endelig program til vurdering eller om de skal afprøve hinandens programmer, f.eks. gruppevist, give feedback og tilrette.

Erfaringer fra afprøvning

En tidligere pilotversion af forløbet er afprøvet et EUX matematik B hold på Aarhus Business College. Eleverne havde forinden afviklingen af forløbet arbejdet en smule med Python i Informatik.

Undervisningsobservationer viser, at flere elever er i stand til at forstå, anvende og skrive kode i Python. Use-modify-create-tilgangen virker til at støtte eleverne i deres læringsproces.