IN uke 1. Komme i gang med programmering

Like dokumenter
IN uke 1. Komme i gang med programmering

Et lite oppdrag i bakgrunnen

Input og beslutninger

INF uke 2. Inputt, beslutninger, kontrollflyt og prosedyrer

Oppgaver uke 1: Løsningsforslag

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen.

IN uke 2. Presis forståelse av programmering

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

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

Håndtere mange verdier

IN uke 2. Presis forståelse av programmering

Hvordan løse problemer med programmering?

Løkker og lister. Løse problemer med programmering. INF1001, uke3 Geir Kjetil Sandve

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

Innhold. IN1000 Høst Hva skal evalueres? Fra kurssidene. Uke 12: Pensumgjennomgang og eksamenstips

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å.

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

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

Løse reelle problemer

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

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

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

Løkker og arrayer. Løse problemer med programmering. INF1000, uke3 Geir Kjetil Sandve

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

INF109 - Uke 1a

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

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

Hangman. Level. Introduksjon

Øvingsforelesning i Python (TDT4110)

Først må vi få datamaskinen til å velge et tilfeldig ord, så la oss begynne. Lagre programmet ditt og kjør det. Hvilket ord skrives ut?

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp

Løse reelle problemer

Hangman. Steg 1: Velg et ord. Steg 2: Gjett en bokstav. Sjekkliste. Sjekkliste. Introduksjon

Læringsmål og pensum. v=nkiu9yen5nc

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

Øvingsforelesning 1 Python (TDT4110)

Oppsummering fra sist

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

INF109 - Uke 1b

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

Feilmeldinger, brukerinput og kontrollflyt

Øvingsforelesning i Python (TDT4110)

TDT4110 IT Grunnkurs Høst 2016

Repetisjon Novice Videregående Python PDF

Øvingsforelesning i Python (TDT4110)

Mattespill Nybegynner Python PDF

Metoder med parametre, løkker og arrayer

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

MAT1030 Plenumsregning 1

TDT4110 IT Grunnkurs Høst 2016

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

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

Øvingsforelesning 5 Python (TDT4110)

MAT1030 Diskret Matematikk

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.

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

Øvingsforelesning 5 Python (TDT4110)

INF Ekstrainnlevering

Eksempel 1: Bestemmer om tallet som skrives inn er et partall eller et oddetall side 12

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

Innhold. Hva skal evalueres? Fra kurssidene. Kapittel 1: Introduction

Eksamensoppgaver 2014

Forelesning inf Java 1

Norsk informatikkolympiade runde

Excited. Hvordan komme i gang med tekstbasert programmering? Centre for Excellent IT Education. Guttorm Sindre

MAT1030 Diskret Matematikk

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

TDT4110 IT Grunnkurs Høst 2015

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

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.

Løsningsforslag ukeoppg. 2: 31. aug - 6. sep (INF Høst 2011)

Forbrytelse og straff

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

1. Rullende navn, s 3 2. Smilefjes, s 5 3. Skritteller, s 7 4. Orakel, s 9 5. Stein, saks og papir, s Kompass, s 14

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

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

Forelesning inf Java 1

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

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering

MAT1030 Diskret Matematikk

INF1000 Eksamen 2014 (modifisert)

MAT1030 Diskret matematikk

Løse reelle problemer

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

Hash-funksjoner. Introduksjon. Steg 1: Strekkoder. Eksempel. Skrevet av: Martin Strand

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Informasjon Eksamen i IN1000 høsten 2017

Hendelser. Introduksjon. Steg 1: Skattejakt. Skrevet av: Geir Arne Hjelle

Norsk informatikkolympiade runde

MAT-INF 1100: Obligatorisk oppgave 1

Øvingsforelesning i Matlab (TDT4105)

Transkript:

IN1000 - uke 1 Komme i gang med programmering

Plan for forelesingen Hva er programmering? Skrive og kjøre våre første program Variabler Feilmeldinger Innlesing fra tastatur Beslutninger (if)

Plan for forelesingen Hva er programmering? Skrive og kjøre våre første program Variabler Feilmeldinger Innlesing fra tastatur Beslutninger (if)

Hva er en Computer? "The idea behind digital computers may be explained by saying that these machines are intended to carry out any operations which could be done by a human computer" (Alan Turing, 1950) Tradisjonell definisjon av computer : En ansatt som gjør utregninger ved å blindt følge en liste instruksjoner med penn og papir, så lenge som det trengs, uten at det krever noen form for innsikt (fra 1600-tallet) Poeng for oss: Dette faget handler ikke om å få en printer til å virke (puh), men om å sette sammen presise oppskrifter!

Hva er programmering? "Software development happens in your head, not in an editor. Programming is all about problem solving. It requires creativity, ingenuity, and invention" (Andy Hunt) Programmering er utfordrende, men ikke minst kreativt og gøy! "Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter" (Eric Raymond) Forelesningene kan hjelpe dere i gang, men det er gjennom mange timer med egen programming dere virkelig lærer det

Plan for forelesingen Hva er programmering? Skrive og kjøre våre første program Variabler Feilmeldinger Innlesing fra tastatur Beslutninger (if)

Et første Python-program Be datamaskinen om å: Skrive "Hei IN1000" på skjermen

Flere Python-program Be datamaskinen om å: Skrive 9+9 på skjermen Skrive hva 9+9 blir på skjermen Skrive hva 1+2+3+4 blir på skjermen Skrive på skjermen om det stemmer at 5 er større enn 4 Skrive på skjermen om det stemmer at 4 er større enn 5

Ett Python-program som går over flere linjer Skriv på skjermen: --- Alle linjer kommer samtidig! --- (flere_linjer.py)

Kommentarer

Plan for forelesingen Hva er programmering? Skrive og kjøre våre første program Variabler Feilmeldinger Innlesing fra tastatur Beslutninger (if)

Variabler Variabler er noe av det mest fundamentale i programmering! En variabel er et bestemt navn som representerer en verdi tall = 13 Med en variabel kan man holde på en verdi og bruke den igjen senere i et program tall = 13 print("her kommer det:") print(tall)

Variabler: eksempel på å holde mellomverdier [areal.py]

Variabler: eksempel på å bruke flere ganger [Epler.py]

Tre måter å tenke på variable på (ulike metaforer)

Tre måter å tenke på variable på (ulike metaforer) En navngitt lokasjon i datamaskinens minne hvor en verdi kan lagres Mest korrekt, men minst nyttig..

Tre måter å tenke på variable på (ulike metaforer) En navngitt lokasjon i datamaskinens minne hvor en verdi kan lagres En navngitt parkeringsplass hvor en verdi kan parkeres Mest korrekt, men minst nyttig.. Nyttig metafor, brukt i lærebok

Tre måter å tenke på variable på (ulike metaforer) En navngitt lokasjon i datamaskinens minne hvor en verdi kan lagres En navngitt parkeringsplass hvor en verdi kan parkeres En navnelapp som er satt på en verdi Mest korrekt, men minst nyttig.. Nyttig metafor, brukt i lærebok Nyttig metafor, populær for Python

Tre måter å tenke på variable på (ulike metaforer) Felles for alle tre metaforer: En variabel er et navn som representerer en verdi En variabel kan bare holde én verdi av gangen Man kan underveis i et program endre hvilken verdi * en variabel representerer * verdien kan være et sammensatt objekt

Plan for forelesingen Hva er programmering? Skrive og kjøre våre første program Variabler Feilmeldinger Innlesing fra tastatur Beslutninger (if)

Feilmeldinger Når noe går galt i et program får man en feilmelding Vi kommer mer tilbake til dette i uke 2.. Et lite eksempel: Man kjører et Python-program som består av en linje: Print("hei") Dette vil gi en feilmelding bestående av hvor feilen lå (fil og linjenummer), hvilken type feil det var, og akkurat hva som var problemet

Feilmeldinger Hvilken type problem/feilmelding Selve problemet Hvor problemet er (linje 1)

Plan for forelesingen Hva er programmering? Skrive og kjøre våre første program Variabler Feilmeldinger Innlesing fra tastatur Beslutninger (if)

Slipp brukeren til! De fleste program tar en eller annen jevnlig inputt fra brukeren Dette gir også mye mer dynamikk i programmene enn det vi har sett på til nå Kommunisere med brukeren av et program: print gir output til bruker input henter inputt fra bruker [innlesing.py]

Gi brukeren beskjed om å skrive inn et svar Brukeren må vite at han/hun skal skrive noe: print("hva heter du? ") navn = input() input kan skrive beskjed før den venter på svar: navn = input("hva heter du? ")

Plan for forelesingen Hva er programmering? Skrive og kjøre våre første program Variabler Feilmeldinger Innlesing fra tastatur Beslutninger (if)

Ikke bare følge strømmen For det vi har sett på til nå, har programmet alltid fulgt én bestemt sekvens av instruksjoner Vi kan lese ulike startverdier fra tastatur og dermed få ulike resultat, men alltid basert på de samme operasjonene Vi trenger mer variasjon! Det blir mye artigere å programmere dersom hvilke operasjoner som utføres også kan avhenge av verdier man regner ut

Et konkret problem som krever beslutninger Problemstilling: Vi ønsker å lage et program som kan fortelle hovedstaden til et valgfritt land i nordre Skandinavia (brukeren ber om Norge eller Sverige) Vi trenger altså to ulike print Vi må imidlertid sørge for at kun én print blir kjørt, hvor hvilken som blir kjørt avhenger av innlest land

En uferdig løsning (mangler beslutning) land = input("velg land i nordre Skandinavia: ") print("oslo") print("stockholm")

Beslutninger i et program: if Syntaksen (skrivemåten) er veldig enkel: if land=="norge": print "Oslo" Merk dobbelt likhetstegn Merk innrykk {hovedstad1.py}

Mange linjer kan styres av samme beslutning (if) if land=="norge" print "Oslo" print("kjent som byen ved fjorden") Merk felles innrykk for alle programlinjer som skal styres sammen (kalles en blokk) {hovedstad2.py}

En mer nasjonalistisk variant Lage et program som kun ønsker å fortelle hovedstaden til Norge {hovedstad3.py}

En praktisk kortform: if-else En veldig begrenset utviding av syntaks: if land == "Norge": print("oslo") else: print("kunne ikke brydd meg mindre!") {hovedstad4.py}

Kombinere ellers med ny if: elif Kan kombinere if, elif og else: if land == "Norge": print("oslo") elif land == "Sverige": print("stockholm") elif land == "Danmark": print("kobenhavn") else: print("ukjent land") elif og else kjøres kun dersom ingenting før slår til {hovedstad5.py}

Man kan nøste sammen flere if if alder<6: print("velkommen til bhg") if alder<3: print("du er smaabarn") else: print("du er storbarn")

Man kan nøste sammen flere if if alder<6: Alt dette kun dersom alder<6 print("velkommen til bhg") if alder<3: print("du er smaabarn") else: print("du er storbarn")

Man kan nøste sammen flere if if alder<6: Alt dette kun dersom alder<6 print("velkommen til bhg") if alder<3: print("du er smaabarn") else: print("du er storbarn") Dersom alder>=3

Man kan nøste sammen flere if Alt dette kun dersom alder<6 if alder<6: print("velkommen til bhg") if alder<3: else: print("du er smaabarn") print("du er storbarn") (men alder<6 for å komme her..) Dersom alder>=3

Et liten oppgave Lag en nøstet beslutning hvor voksne som ikke er gravide får beskjed om å kjøre karusell voksen = input("er du voksen? (ja/nei)") gravid = input("er du gravid? (ja/nei)") #Nøstet beslutning med utskrift.. Hvordan vil du skrive koden? Prøv selv med blyant og papir! (3 minutt) Etterpå diskuter med nabo (3 minutt)

En mulig løsning voksen = input("er du voksen? (ja/nei)") gravid = input("er du gravid? (ja/nei)") if voksen=="ja": print "Du er stor nok," if gravid=="ja": print "men har dessverre ikke lov" else: print "velkommen ombord!"

Og AND

Eller OR

Alternativ løsning voksen = input("er du voksen? (ja/nei)") gravid = input("er du gravid? (ja/nei)") if voksen=="ja" and gravid=="nei": print "velkommen ombord!"

Konklusjon Programmering er en form for kreativ problemløsning Variabler lar oss ta vare på verdier gjennom et program Beslutninger (if) lar programmene utføre ulike operasjoner avhengig av verdien til en variabel