YouTube-kanal ITGK. Læringsmål og pensum

Like dokumenter
TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner. - 3rd edition: Kapittel Professor Alf Inge Wang

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Læringsmål og pensum. if (be): else (not_to_be):

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker. - 3rd edition: Kapittel 4. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Læringsmål og pensum. Intro løkker. Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av for-løkke Pensum. Kapittel 4.

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Oppsummering fra sist

Læringsmål og pensum. v=nkiu9yen5nc

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

Øvingsforelesning i Python (TDT4110)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Læringsmål og pensum. Intro til returverdifunksjoner: Generering av tilfeldige tall 27/09/16

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler. - 3rd edition: Kapittel Professor Alf Inge Wang

Python: Funksjoner og moduler Kapittel

TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler Utgave 3: Kap

Finne ut om en løsning er helt riktig og korrigere ved behov

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Finne ut om en løsning er helt riktig og korrigere ved behov

Øvingsforelesning i Python (TDT4110)

Python: Funksjoner og moduler Kapittel

Læringsmål og pensum. Designe et program

TDT4110 Informasjonsteknologi, grunnkurs

Løse reelle problemer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger. - 3rd edition: Kapittel 8. Professor Alf Inge Wang

I denne oppgaven skal vi gi en enkel innføring til klasser og objekter (ordene forklares senere i teksten).

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Læringsmål og pensum. Algoritmeeffektivitet

TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis. Professor Alf Inge Wang

Løse reelle problemer

INF109 - Uke 1a

Designe et program. TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Mål.

Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet!

Hvorfor objektorientert programmering?

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000

TDT4110 Informasjonsteknologi grunnkurs: Tema: Filer og unntak ( exceptions ) - 3rd edition: Kapittel 6. Professor Alf Inge Wang

Læringsmål og pensum. Inn- og utoperasjoner 21/10/16

Repetisjon Novice Videregående Python PDF

Python: Strenger 3. utgave: Kapittel 8

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå.

Noen innebygde funksjoner - Vektorisering

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Professor Alf Inge Wang

Lage større programmer (Python, relatert til teoridelen om Software Engineering ) TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop

TDT4110 IT Grunnkurs Høst 2015

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU

TDT4110 Informasjonsteknologi grunnkurs: Programmering: En større case. Professor Alf Inge Wang

Læringsmål og pensum. En større case. Mål Lære å lage større og sammensatte programmer Pensum Kapitlene 1-9 og 12.

TDT4110 IT Grunnkurs Høst 2016

Noen innebygde funksjoner - Vektorisering

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer

Utførelse av programmer, metoder og synlighet av variabler i JSP

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning i Matlab (TDT4105)

Feilmeldinger, brukerinput og kontrollflyt

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Filer og unntak (exceptions) Utgave 3: Kap. 6. Terje Rydland - IDI/NTNU

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

Øvingsforelesning 5 Python (TDT4110)

TDT4110 Informasjonsteknologi grunnkurs: Uke 41: «Matlab programs» (kapittel 6)

Øvingsforelesning i Python (TDT4110)

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Seminaroppgaver IN1010, uke 2

TDT4110 Informasjonsteknologi grunnkurs: Tema: Lister og tupler. - 3rd edition: Kapittel 7. Professor Alf Inge Wang

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

UNIVERSITETET I OSLO

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

I dag skal vi ved hjelp av ganske enkel Python-kode finne ut om det er mulig å tjene penger på å selge og kjøpe en aksje.

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

TDT4110 Informasjonsteknologi grunnkurs: Uke 48 Oppsummering/Spørretime. Professor Alf Inge Wang

TDT4110 IT Grunnkurs Høst 2016

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

Repetisjon, del 1. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Mattespill Nybegynner Python PDF

Øvingsforelesning 1 Python (TDT4110)

Python: Filer og unntak Gaddis: Kapittel 6

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

Øvingsforelesning i Matlab (TDT4105)

TDT4110 IT Grunnkurs Høst 2014

Auditorieøvingstider for alle linjer er postet på forsiden av wikien (under «Siste nytt»). Studenter som ikke kan møte til oppsatt tidspunkt, kan

Denne oppgaven innfører funksjoner, og viser hvordan vi kan skrive og teste funksjoner i Ellie.

Hvordan en prosessor arbeider, del 1

Klasser. Webprogrammering høsten Objekter. Eksempelklasser og -objekter. 2 of :56. 1 of :56

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case. Terje Rydland - IDI/NTNU. Lære å lage større og sammensatte programmer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og mengder (sets) - Kapittel 9. Professor Alf Inge Wang

Repetisjon, del 2. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Transkript:

1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner - 3rd edition: Kapittel 5.1-5.6 Professor Alf Inge Wang 2 YouTube-kanal ITGK Professor Guttorm Sindre (foreleser den andre Python-parallellen har laget en YouTube-kanal der han gjennomgår deler av Python-pensum for ITGK: http://goo.gl/8q0knl 3 Læringsmål og pensum Mål Lære hvordan man kan dele opp programmer vha. funksjoner Lære å definere og kalle funksjoner Lære om lokale variabler Lære om overføre argumenter til funksjoner Lære om globale variabler og konstanter Pensum: Simple Functions Starting out with Python 3rd: Chapter 5.1-5.6 1

4 Introduksjon til funksjoner Kapittel 5.1 5 Introduksjon til funksjoner En funksjon er en gruppe av programlinjer som eksisterer i et program med den hensikt å gjøre en spesifikk oppgave. De fleste programmer er så store at det er fornuftig å del de opp i mindre deloppgaver: funksjoner! Vi ønsker abstraksjon med den hensikt å gjemme detaljer man ikke trenger i programmeringen. I programmering ønsker man å skille mellom hva som skal gjøres og hvordan det skal gjøres. Eks. Vi kan benytte oss av et Python-program som er skrevet av noen andre uten at vi forstår alt programmet gjør. 6 Konsept Programmet uten funksjoner: Programmet delt opp i funksjoner: def function1(): def function2(): def function3(): 2

7 Fordeler med å dele opp et program i funksjoner: Enklere kode: Enklere å lese og forstå (mer logisk) Gjenbruk av kode: Slipper å skrive samme kode flere ganger Bedre testing: Testing og debugging er enklere med funksjoner (kan teste en og en funksjon) Raskere utvikling: Kode som trengs i flere deler av systemet kan brukes flere ganger Bedre støtte for samarbeid: Kan fordele funksjoner på flere programmerere 8 Definere og kall av funksjoner Kapittel 5.2 9 Lage en funksjon En funksjon lages ved å skrive definisjonen av funksjonen: def funksjons_navn(): kode kode etc. Første linje kalles funksjonshode: Markerer starten på funksjon med det reserverte ordet def, fulgt av navnet på funksjonen, parenteser og et kolon. Resten av koden kalles ei kodeblokk som hører til funksjonen NB! Kodeblokken må skrives med innrykk!!! 3

10 Lage og kalle en funksjon Eksempel på en funksjon som skriver tekst til konsoll: def melding(): print( Her er en funksjon ) print( Som skriver til konsollet ) Funksjonsdefinisjon definerer hva funksjonen gjør. For å kjøre en funksjon må man kalle funksjonen: melding() Når en funksjon blir kalt, hopper tolkeren til funksjonen og utfører all koden i kodeblokka til funksjonen Parentesen viser at dette ikke er en variabel 11 Definisjon og kall av funksjoner Disse setninger fører til at funksjonen melding blir opprettet # Definisjon av funksjon def melding(): print( Hei du der ) print( Hva er dette? ) # Kall av funksjonen melding() Denne setningen kaller funksjonen slik at den blir kjørt. 12 Oppgave: Enkel funksjon Skriv koden for funksjonen i_andre: Funksjonen skal spørre brukeren om å skrive inn et tall Funksjonen skal skrive ut til konsollen tallet ganget med seg selv. 4

13 Bruk av flere funksjoner Programmer kan bygges opp ved å definere flere funksjoner. Det er vanlig at et program har en hovedfunksjon som kalles main: main-funksjonen inneholder hovedlogikken i programmet og gjengir overordnet struktur i programmet main-funksjonen kaller de andre funksjonene som er definert 14 Kall av flere funksjoner # Programmet har to funksjoner # Definisjon av funksjonen main def : print( Melding til deg: ) melding() print( Ha det! ) # Definisjon av funksjonen melding def melding(): print( Dum og deilig ) print( Juba, juba! ) # Kall av funksjonen 15 Flytskjema for funksjoner Vis Melding til deg: melding() Vis Ha det! melding() Vis Dum og deilig Vis Juba juba! Return Return 5

16 Designe et program til å bruke funksjoner Kapittel 5.3 17 Top-down design Top-down design er en måte å tenke på når man skal designe programmer: Hovedoppgaven til programmet blir brutt ned i en serie av deloppgaver Hver deloppgave blir analysert for å se om de kan brytes ned eller ikke Når alle deloppgaver er identifisert, blir koden skrevet I top-down design bygger man skjelettet først og deretter fyller inn detaljene 18 Hierarkisk skjema Hierarkisk skjema kan brukes for å lage en grafisk oversikt over et program: hent_input() beregn_bruttlønn() beregn_bruttlønn() beregn_fradrag() lønn() input_timer() input_timelønn() beregn_skatt() beregn_fradrag() 6

19 Pause kjøring til brukeren trykker enter Av og til er det ønskelig at programmet pauser til brukeren ønsker å gå videre, f.eks. slik at brukeren rekker å lese ferdig. Til å gjøre dette kan man bruke funksjonen input: input( Trykk på enter for å gå videre ) 20 Lokale variabler Kapittel 5.4 21 Lokale variabler En lokal variabel blir opprettet inni en funksjon og kan ikke aksesseres (fås tak i) av kode utenom funksjonen. Begrepet lokal variabel indikerer at variabelen kan kun brukes lokalt i funksjonen def hent_navn(): navn = input( Skriv navnet: ) # Lokal variabel! # Variabelen navn kan kun brukes her!!! def : hent_navn() print( Hallo,navn) # gir feilmelding!!! 7

22 Skoping (synlighet) av lokale variabler Skopet til en variabel betegner de deler av programmet som variabelen kan aksesseres (nås). En variabel er synlig bare til kodelinjene innen for skopet til en variabel. En variabel er heller ikke synlig før variabelen er opprettet: def feil_funksjon(): print( Verdien er:,verdi) # gir feilmelding verdi = 99 23 Kall av flere funksjoner # Definisjon av funksjonen nordnorge def nordnorge(): fugl = 120 # Variabelen fugl kun for nordnorge() print( Nord-Norge har,fugl, fugletyper ) # Definisjon av funksjonen vestlandet def vestlandet(): fugl = 147 # Variabelen fugl kun for vestlandet() print( Vest-landet har,fugl, fugletyper ) def : nordnorge() vestlandet() # Kall av funksjonen Variablene fugl i de to funksjonene er to forskjellige variabler og opphører etter funksjonen er ferdig utført sin kode. 24 Oppgave: Flere funksjoner Skriv koden for følgende: En funksjon main som skal kalle (kjøre) funksjonene multi_to og deretter divi_to Funksjonen multi_to skal: Spørre brukeren om å skrive inn et tall Skrive ut verdien av tallet * 2 Funksjonen divi_to skal: Spørre brukeren om å skrive inn et tall Skrive ut verdien av tallet dividert på 2 8

25 Overføring av argumenter til funksjoner Kapittel 5.4 26 Argument og parameter Det er ofte nyttig å sende med data til funksjoner når de kalles. Dette gjøres ved argumenter og parametere. Et argument er data som blir matet en funksjon når en funksjon blir kalt. En parameter er variabelen som mottar et argument som blir matet en funksjon. Parameteren kan brukes om en vanlig variabel, men kun inne i funksjonen, dvs. skopet (synligheten) til parameteren er inne i funksjonen. Man kan gjøre endringer i verdien til en parameter inne i en funksjon på samme måte som man endrer verdi på en variabel. 27 Overføring av verdier til funksjoner def : verdi = 10 vis_dobbelte(verdi) verdi 10 def vis_dobbelte(tall): resultat = tall * 2 print(resultat) tall 9

28 Sende over flere argumenter Funksjoner kan ha fra ingen til mange parametere. Vanlig måte å sende over flere argumenter til en funksjon er å sende inn verdier i riktig rekkefølge: def : vis_sum(12,45) def vis_sum(tall1, tall2): resultat = tall1 + tall2 print(resultat) tall1 tall2 12 45 29 Bruke nøkkelord for argumenter Kan også spesifisere parameternavn som argumenter: def : skriv_tall(tall2=100,tall1=50) def skriv_tall(tall1, tall2): print( Tall 1:,tall1) print( Tall 2:, tall2) tall1 tall2 5o 100 30 Oppgave: Funksjoner med parametere Skriv koden til funksjonen areal_sirkel: Tar parameterene r (radius) og pi Beregner arealet av en sirkel ved: A = πr 2 Radius og arealet skal skrives ut til konsollet. 10

31 Globale variabler og globale konstanter Kapittel 5.6 32 Globale variabler og globale konstanter En global variabel kan aksesseres av alle funksjoner i en programfil (pyton-fila der koden er lagret) En global variabel må opprettes utenom en funksjon # Opprett global variabel verdi = 10 def vis_verdi(): print(verdi) # Fungerer fordi verdi er global vis_verdi() 33 Endre på global variabel i funksjon Global variabel kan endres i funksjon ved å bruke kodeordet global inne i funksjonen tall = 5 # Opprett global variabel def : # Kan endre variabel tall her! global tall # Kan nå endre på variabelen tall tall= eval(input( Skriv et tall: )) vis_tall() def vis_tall(): # Kan ikke endre variabel tall her! print( Tallet er:,tall) 11

34 Bruk av globale variabler og konstanter I store programmer gjør bruk av globale variabler det vanskelig å finne feil (debugge) og bør derfor unngås. Man bør spesielt være forsiktig med å endre på globale variabler inne i funksjoner, som gjør koden svært rotete. Bruksområde for globale variabler er å definere konstanter som ikke skal endres i koden: Konstanter er variabler som ikke endrer verdi Konstanter skrives gjerne kun med store bokstaver: MOMS = 0.25 # Endres sjeldent MAT_MOMS = 0.125 # Endres sjeldent 35 Oppsummering Funksjoner er en måte å dele opp programmer i mindre deler som gir mange fordeler. En funksjon må defineres og består av hode og kodeblokk: def funksjonsnavn(): kode En funksjon kalles (kjøres) med funksjonsnavnet: funksjonsnavn() Funksjoner kan ha lokale variabler som kun kan brukes og lever inne i funksjonen. 36 Oppsummering Funksjoner kan ta imot verdier ved hjelp av parametere. En parameter er en variabel som tar imot en verdi når den blir kalt: funksjon(parameter1, parameter2): # Variabler kode Verdier kan overføres til funksjoner ved hjelp av argumenter: funksjon(argument1, argument2) # Verdier Globale variabler kan defineres utenfor funksjoner som kan brukes og nås av alle funksjoner. 12