Øvelse 1: Andengradsligningen
Til programmet, som kan udregne en andengradsligning, har jeg valgt at lave en hjemmeside dertil, da enhver ved at konsollen er meget grimmere end en hjemmeside. Til dette har jeg brugt librariet Flask. Jeg valgte Flask i stedet for Django til at lave hjemmesider, da det kan løse opgaven med mindre linjer kode. Jeg har dog desværre ikke fundet ud af hvordan man gør hjemmesiden er på internettet, da måden jeg normalt gør det på primært virker med JavaScript og Typescript hjemmesider. Men hvis du selv ville se hjemmesiden, kan du bare køre ”python app.py” i terminalen og så gå ind på ”localhost:5001”.
Jeg har taget inspiration til hvordan jeg håndtere input fra HTML i Flask fra en artikel på Medium.
Forklaring af kode
Som tidligere nævnt bruger jeg Flask til at oprette en hjemmeside, men da det kun er fordi terminalen ser grim ud og ikke kan styles, som en hjemmeside kan, ville jeg bruge det meste af tiden på at forklare backend.
Når man går ind på /resultater ville funktionen andengradsligningoevelse blive kaldt med variablerne a, b og c som kommer fra formene på hjemmesiden vist på figur 1.
Dog da a, b og c når de kommer fra formen er en string konverter jeg først til float da det gør resten af processen nemmere og jeg har også valgt ikke at lave det om til en integer da brugeren gerne må indtaste komma tal.
Efter dette har jeg valgt at lave to seperate funktioner for toppunktet og diskriminanten, da det gør koden mere overskuelig. Så derfor sætter jeg variablet d lig med diskriminanten til a, b og c og variablet t lig med toppunktet til a, b og c. Derefter tjekker jeg for diskriminantens værdi, for at se om det er nødvendigt at bruge computer resourcer på at udregne x’erne. Hvis diskriminanten er negativ ville brugeren få at vide der er ingen løsninger, hvis den er nul ville den udregne x og med brug af format ville brugeren få x at vide, hvis diskriminanten er positiv ville den finde de to løsninger x1 og x2 og derefter sige dem til brugeren. I alle disse ville brugeren få toppunktet at vide. Men hvis ingen af disse passer ville brugeren i stedet få at vide der er sket en fejl.
Test
Jeg har testet om den giver rigtige løsninger med hjælp fra GeoGebra. Eksempel udregning af en andengradsligning ses på figur 2 og 3. GeoGebras resultater med samme værdier ses på figur 4.
Programmet virker perfekt.
Billede af kode
Flowchart
Jeg har lavet en flowchart med brug af librariet graphviz. Koden til flowcharten ligger også i zip filen. En lille note er dog at jeg kun har valgt at forklare filen app.py, da HTML og CSS primært er visuelt og js er så CSS frameworket TailwindCSS virker, som jeg bruger til at hurtigere skrive CSS. Du kan se flowcharten på næste side.
Ekstra øvelse: Kochs snefnug
Jeg valgte denne øvelse da det var den jeg synes var sværest af dem alle, så det er den jeg er mest stolt af. Den viser også at jeg kan lave en rekursiv funktion, men valgte den også fordi jeg startede med at lave den med rigtigt mange if statements.
Koden
Forklaring af kode
Jeg starter med at importere librariet turtle, derefter initialisere turtle, spørg om dybden og sætter dybde lig med det og til sidst kalder funktionen kochssnefnug. Den gentager så funktionen kochssnefnugtegner tre gange for hver trekant side. I den funktion ville der indtil dybden er nul blive tegnet videre på snefnugget ved at den kalder sig selv og minusser dybden med 1 hver gang. Når dybden er 0 som tidligere sagt ville rekursionen stoppe og der ville bare blive tegnet længden.
Test
Jeg har testet koden med dybden 6, som kan ses på figur 6.