Dokumentation af programmering i Python 2.75



Relaterede dokumenter
DM536. Rapport og debug

Lineære modeller. Taxakørsel: Et taxa selskab tager 15 kr. pr. km man kører i deres taxa. Hvis vi kører 2 km i taxaen koster turen altså

Automatisering Af Hverdagen

Du skal skrive en fortælling med titlen:

6. Regression. Hayati Balo,AAMS. 1. Nils Victor-Jensen, Matematik for adgangskursus, B-niveau 1

Michael Jokil

Programmering C RTG

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.

Rygtespredning: Et logistisk eksperiment

IFC Egenskaber. Mohammad Hussain Parsianfar s BYG DTU

Kort om Eksponentielle Sammenhænge

ZBC Vordingborg Marcus Rasmussen, Oliver Meldola, Mikkel Nielsen 17/ The Board Game

Allan C. Malmberg. Terningkast

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX

Ugebrev 4 Indskolingen 2016

Informations Teknologi Indholdsfortegnelse

1. Indledning. 2. Laswell s fem spørgsmål. Hvem (afsender) Siger hvad (budskab)

Matematik B Klasse 1.4 Hjemmeopaver

Sammenlign og byt. Et eksempel på dokumentering af et program

Samlet antal besvarelser: 15s, 21x, 16i. 52 elever i alt. Det svarer til 77% af 68 1g ere.

Værkstedsarbejde i matematik i 5. klasse

Afsluttende - Projekt

Matematik interne delprøve 09 Tesselering

Årsplan for matematik 4.kl udarbejdet af Anne-Marie Kristiansen (RK)

Rapport Bjælken. Derefter lavede vi en oversigt, som viste alle løsningerne og forklarede, hvad der gør, at de er forskellige/ens.

Formelsamling Matematik C

Egenskaber ved Krydsproduktet

Årsplan/aktivitetsplan for matematik i 6.c

1-1 Usability evaluering af den simple udgave

Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6

Matematik og magi. eller Næste stop Las Vegas. 14 Anvendt matematik. Rasmus Sylvester Bryder

HTX, RTG. Rumlige Figurer. Matematik og programmering

Klasse 1.4 Michael Jokil

Kommentarer til matematik B-projektet 2015

Klasse Situation Observation 3. klasse Før spillet. Der bliver spurgt ind til hvad børnene

Formler, ligninger, funktioner og grafer

Newtons afkølingslov

Ugur Kitir HTX - Roskilde 01/

Kom i gang-opgaver til differentialregning

Søren Christiansen

Vi gik derefter over til Scratch, eftersom at der ikke er så mange bugs i forhold til den lineære måde at lave spillet på.

Børnehave i Changzhou, Kina

Transienter og RC-kredsløb

i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0

Faglig læsning i matematik

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys!

Python 3 kursus lektion 1:

Bachelorprojekt Bilag 4 fil nr. 3 Tysk Karin Rostgaard Henrichsen Studienummer:

Opgave Opgave 2 Andengradsligningen løses, idet. Opgave er en løsning til ligningen, da:

Den bedste vagt er den, der bor ved siden af

1-2-3 klasse Præsentationsporteføjle

Forældreperspektiv på Folkeskolereformen

for matematik på C-niveau i stx og hf

Evalueringsrapport. Fleksible åbningstider i dagplejen

Portfolie Redesign. Forord. Det tekniske. Tema ide. Css. opløsning.

At lave dit eget spørgeskema

Stx matematik B december Delprøven med hjælpemidler

Brøk Laboratorium. Varenummer

qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje.

Jeg ville udfordre eleverne med en opgave, som ikke umiddelbar var målbar; Hvor høj er skolens flagstang?.

Københavns åbne Gymnasium Elevudsagn fra spørgeskemaundersøgelsen i 2q

Tjek. lønnen. Et værktøj til at undersøge ligeløn på arbejdspladser inden for det grønne område og transportsektoren udgave Varenr.

TIPS TIL SAMARBEJDET OM SAMTALEGUIDEN

Afsluttende opgave Webdesign Den 24. maj 2007 Klasse 1.2

11.s.e.trin. I 2015, Bejsnap 9.00, Ølgod /

Ligninger... 1 Funktioner & modeller... 3 Regression... 6 Sjove opgaver... 7

Aktivitet 1b: Regnehistorie

LÆRERVEJLEDNING. Fattigdom og ulighed

Tag bedre billeder af dine. med disse 3 super nemme tricks

Bilag 11 - Transskribering, Kvinde 28 år RESPONDENTEN OM DE SOCIALE MEDIER

Kære borgmester. Jeg håber du vil tænke over om du virkelig fortryder. Kærlig hilsen Ane-Kirstine Uggerhøj-Andersen.

BIT-evaluering efteråret 2013

Cooperative Learning, spørgeskema til VUC kursister. 1 af 16. Hvorfor beder vi dig om at udfylde dette spørgeskema?


I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

Faglige delmål og slutmål i faget Matematik. Trin 1

Om at udregne enkeltstående hexadecimaler i tallet pi

1 Start og afslutning. Help.

Typografi & ombrydning

JavaScript. nedarvning.

SKOLESTART. Nr. 7, 2004 Børnehaveklasseforeningen. Af Kirsten Wangebo

Adgangsgivende eksamen (udeladt kategori: Matematisk student med matematik på niveau A)

Jeg er glad for at gå i skole. Jeg føler mig tryg i klassen

Vi har valgt at analysere vores gruppe ud fra belbins 9 grupperoller, vi har følgende roller

Deskriptiv statistik. Version 2.1. Noterne er et supplement til Vejen til matematik AB1. Henrik S. Hansen, Sct. Knuds Gymnasium

Fysisk aktivitet i den boglige undervisning

Kasteparabler i din idræt øvelse 1

Søndag d.24.jan Septuagesima. Hinge kirke kl.9. Vinderslev kirke kl (skr.10.15).

Differentialregning Infinitesimalregning

Tæt forældresamarbejde gavner undervisning og fritid

Eksempel på logistisk vækst med TI-Nspire CAS

Den mundtlige dimension og Mundtlig eksamen

Programmering for begyndere Lektion 2. Opsamling mm

Transkript:

Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt muligt, at dække alle begreber som jeg er stødt på, men da jeg ikke ville dokumentere de mindste opgaver (Som bare var Skriv dette ind i dit script, og se hvorfor det går helt galt opgaver), kommer jeg altså ikke til at have alle mellem opgaver med. Jeg har valgt at tage de største og mest relevante opgaver og skrive forklaringer til hvad der sker i scriptet. Til sidst i dokumetet vil jeg kort komme ind på vores forløb med pair programmering. 1

Vi ser her et eksempel på syntaks i Python. Vi viser det på sådan en måde således at man kan relatere det til syntaksen i det engelske sprog. Vi ser først et eksempel på en korrekt opstillet sætning, dog ikke med en korrekt syntaks (Vi har store bogstaver midt i sætningen, ikke noget stort bogstav til at starte med), og vores Python syntaks er altså heller ikke korrekt, i det vi ikke har bestemt at vi skal printe en string. Vi definerer her efter vores sætning som en string i Python syntaks, dog fortsætte vi med en sætning der ikke er korrekt i engelsk syntaks. Vi ser her at Python er lige glad med syntaks i andre sprog end Python, og den er i øvrigt også lige glad om der er semi colon i slutningen af hver linje kode. Til sidst ser vi både et print som både er korrekt i engelsk syntaks og Python syntaks, og den printer stadig korrekt. Herefter eksperimenterer vi med Pythons matematiske egenskaber, og finder ud af hvordan de fungerer. Vi kan, så vidt vi har eksperimenteret os frem til, plusse, minusse, gange, sætte i eksponentiel og dividere. 2

Vi ser i den sidste del af koden et eksperiment med string, og hvorvidt den kun virker ved gåseøjne eller om de også virker med apostrof. Vi ser at vi kan meget simpelt skrive en streng kode omringet af apostroffer, og Python vil printe hele linjen ud. Hvis vi derimod skriver det som en print kommando, printer den kun det der står inden for apostrofferne. Her eksperimenterer vi med print kommandoer, og hvad vi kan få lov til at gøre med print kommandoer. Vi prøver i første omgang at definere en variable midt i print kommandoer, og vi får selvfølgelig en fejl, da dette er noget man ikke kan gøre i en print kommando. Derefter forsøger vi os med at bruge matematik i en print kommando, og som vi kan se fungerer dette som vi ville antage: vores print kommando printer resultatet af udregningen. Herefter forsøger vi os med at printe floats, strings og integer på samme tid. I første forsøg får vi en syntaks fejl da vi ikke afslutter vores gåseøjne, men det virker fint i andet forsøg. Vi kan også se at vi ikke får et output hvis vi bare skriver en linje tekst. 3

I dette screenshot forsøger vi først at definere en variable til all, dog glemmer vi at definere all som en string, og som vi kan se fungerede det ikke så godt. På samme tid forsøgte vi også at definere to variabler på samme linje kode, og dette er Python ikke glad for. Vi definere derefter alle de nødvendige variabler for at løse opgaven, og vi finder ud af at man kan addere strings sammen, dog finder vi ud af at dette ikke efterlader mellemrum mellem de individuelle strings. Herefter forsøger vi os med at liste vores variable, skilt med kommaer som vil 4

skabe mellemrum mellem stringsne, og derved få en ordentlig sætning. En anden måde at løse opgaven på er at definere variablerne med mellemrum. Vi ser her outputte fra et kort program, som indeholder en kommentar og en print kommando. Vi ligger mærke til at vi ikke får printet vores kommentar, og vi går videre til at arbejde med input. Vi kan definere en variable ved et input. Dette tillader os at lave mange forskellige ting, som f.eks. at ændre variabler i beregninger, således at vi kan benytte Python som lommeregner. I dette tilfælde eksperimenterer vi også med type kommandoen, som viser os hvilken type data vores variabel er. Herefter eksperimenterer vi med raw_input kommandoen, og vi finder ud af at alt hvad vi indsætter i et raw_input bliver til en string. Vi ser på forskellen mellem input og raw_input de næste par linjer. 5

Princippet i denne opgave var at lave et script der tog imod inputs, og plussede disse inputs sammen til at give et resultat med mening. Jeg gør mig ikke stort i at forstå den grammatiske opbygning af en sætning (Og ville i princippet meget hellere arbejde videre med programmeringen), så jeg besluttede mig for, istedet for at løse opgaven korrekt, at løse princippet i opgaven. Derudover kan man også tilføje den del at man kan definere de forskellige strings i hvilken som helst rækkefølge, og sammensætte dem til et meningsfuldt output. Man kan også, hvis man ønsker det, printe inputtet midt i en linje. F.eks. midt i min forklaring kunne jeg have valgt at printe mit input (som i princippet er en brugerdefineret variable). 6

Vi ser her oven fra resultatet af koden til højre. Vi ser til højre at vi definerer en funktion (newline), som bare skal printe ingenting. Dernæst definerer vi en funktion som skal kalde på newline funktionen 3 gange (Og dermed printe ingen ting 3 gang), og vi bliver ved med at definerer funktioner indtil vi kalder på funktionen clear screen, som vil kalde på alle de andre funktioner. Problemet beskrevet ved opgaven kunne være hvis man glemmer den korrekte syntaks. Hvis man f.eks. definerede clearscreen funktionen inden nogle af de andre vil scriptet ikke fungere, eller hvis man definerede en funktion inde i en funktion, og dernæst kaldte på den funktion i en anden funktion. Dette scenarie vil også skabe problemer. Kigger vi tilbage på det overstående billede, ser vi et simpelt 7

eksemplificering af hvordan en variabel virker, og i hvilken rækkefølge denne skal nævnes i. Vi ser på nogle eksempler af disse problemer dog uden kode siden. Jeg har forsøgt så vidt muligt at forklare problemet i billederne. Vi ser her outputtet af funktionen clearscreen Til højre ses hvad der sker hvis vi kalder på vores clear screen inden den er defineret. 8

Og vi ser igen på et eksempel af samme problem. Vi har rykket vores clearscreen funktion op over de andre, og når vi så kalder på clearscreen funktionen, ser vi at vi får en fejl. Vi har nemlig ikke defineret vores andre funktioner endnu. Vi ser her outputtet af den sidste del af koden vi kiggede på før. Vores cat_n_times funktion, som er en funktion af variablerne s og n, fungerer kun hvis vi kalder på den efter skriptet kører, dog vil vi få samme problemer hvis vi kalder på en funktion i denne funktion som vi ikke endnu har defineret i kodens linjer. Dvs. at denne funktion er en funktion der skal have bruger input for at fungere, eller som kan variere alt efter hvilke parametre man tilsætter den. Denne specifikke funktion vil dog kun have en funktion: den printer s, n gange. I vores tilfælde, så printer vi stringen strings 20 gange, da det er dette vi har defineret at den skal gøre. Vi har her ændret en smule på vores funktion fra før. I stedet for at vores output kommer lige efter hinanden, har vi sørget for at hver instans af s der skal printes, skiftes der altså linje. Dette kan være både godt og skidt. Det gør det nemmere at læse, hvis det er en længere besked, dog hvis s bliver printet for mange gange kan det nemt blive til en stor omgang spam. 9

Pair programmering Vi havde et kort forløb med pair programmering, hvor jeg, sammen med min klasse kammerat Erik, skulle skabe nogle programmer. Vi startede med at lave et simpelt Python script der kunne udregne rødder for andengradsligninger. Lige kort om pair programmering først dog: Det går ud på at man er to programmører om den samme computer, en der skriver (driver) og en der observerer (guiden). Thesen går på at man, ved hjælp af denne metode undgår større bugs i et script, og at man kan få flere inputs til at løse et problem. Vi ser her koden til vores andengradslignings beregner. I første omgang skal vi importerer math modulet til Python, da det ikke har kvadratrødder indbygget i sproget. Dernæst vil vi gerne have nogle inputs fra vores bruger, altså vi vil gerne vide hvordan den her andengradsligning ser ud. Med tilbagesyn til programmet kunne man have gjort denne del endnu mere brugervenligt ved at bede om hvordan funktionen bare ser ud, og ud fra det tage de forskellige dele ud fra funktionen og brugt dem som variabler. Efter vi har modtaget vores variabler, beregner vi den vigtigste faktor i disse beregninger, d værdien. Denne bestemmer om hvorvidt vi kan finde nogle rødder til den givne funktion, og derudover skal den variabel også bruges i de følgende statements. 10

Hvis vi antager at vores d er lig med nul, ved vi fra matematik at denne vil kun have én løsning, og vi benytter os af en formel der kan beregne denne rod. Den vil dernæst printe resultatet med en besked, og vil derefter afslutte programmet. Hvis vi antager at vores d er større end nul, ved vi fra matematik at der vil være to rødder til den angivede funktion, og vi bruger igen en formel vi kender fra matematik til at beregne disse værdier. Bemærk at istedet for at have én beregning med +- i, bliver vi nødt til at dele den op i to, da Python ikke kan forstå den syntaks. Efter beregningen printer den resultatet med en besked og afslutter programmet. Hvis vores d er mindre end nul, printer vores program en besked som oplyser brugeren om at der ikke findes nogle rødder til den givne funktion, og den vil derefter afslutte programmet. Den sidste linje kode benyttede vi til at sørge for at vores program ikke gjorde noget underligt, og den vil altså aldrig nogen sinde komme i brug. Vi ser på nogle eksempler med et billede. Med henblik på fremtiden kunne man tilføje en genstart funktion, eller en funktion der eventuelt kunne tegne og vise skæringspunkterne i et plottet koordinatsystem. 11

Vi lavede også et program der skulle beregne fakulteter, og derudover også beregner hvor mange måder man kan fordele n ud på r. Vi ser her til højre den, relativt, simple kode der beregner disse fakulteter. Vi har defineret vores funktion som trol, og for at vores funktion skal kunne fungere, skal vi definere to variabler: n og r. Vores funktion vil ikke fungere ordentligt hvis vi ikke indsætter integere (tal) eller floats. Hvis vi indsætter strings i vores variabler, fungerer skriptet ikke. Hvis vi antager at vores input er tal, vil vores funktion, kort sagt, gange tallene med sig selv indtil de bliver mindre end nul, derefter vil den printe resultatet af beregningerne, og til sidst vil den finde ud af hvor mange måder vores n kan fordeles ud på r. Vores skript laver altså to fakultetsberegninger, og til sidst dividere resultaterne med hinanden, som tilsidst printer vores resultat. Vi ser her til sidst et par eksperimenter med forskellige inputs. Med tilbage blik, burde der være flere forklaringer til hvad de forskellige inputs gør og hvilke forskellige resultater der bliver printet. 12