TDT4110 IT Grunnkurs Høst 2016

Like dokumenter
TDT4110 IT Grunnkurs Høst 2016

TDT4105 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs Høst 2014

Øvingsforelesning 1 Python (TDT4110)

Oppgaver uke 1: Løsningsforslag

TDT4110 IT Grunnkurs Høst 2012

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110)

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

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.

TDT4110 IT Grunnkurs Høst 2017

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

TDT4110 IT Grunnkurs Høst 2016

Øvingsforelesning 3 Python (TDT4110)

Læringsmål og pensum. Oversikt

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

Oppsummering fra sist

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

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

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.

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

Programmering Høst 2017

Mattespill Nybegynner Python PDF

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

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september

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

TDT4110 IT Grunnkurs Høst 2015

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

INF uke 2. Inputt, beslutninger, kontrollflyt og prosedyrer

Repetisjon Novice Videregående Python PDF

Hvordan løse problemer med programmering?

Øvingsforelesning i Python (TDT4110)

Kodetime for Nordstrand barneskole

MAT1030 Diskret Matematikk

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

Et lite oppdrag i bakgrunnen

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

Del 1 En oversikt over C-programmering

EKSAMEN I EMNET INF100/INF100-F Grunnkurs i programmering (Programmering 1) Fredag 16. desember 2005 Tid: 09:00 14:00

Visuell Programmering: Kom i gang med Processing

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.

Hangman. Level. Introduksjon

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel

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

Øvingsforelesning i Python (TDT4110)

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

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

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

Programmeringsspråket C

Python: Variable og beregninger, innlesing fra tastatur utskrift til skjerm. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Informasjon Prøveeksamen i IN1000 høsten 2018

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

IN uke 2. Presis forståelse av programmering

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

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

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

MAT1030 Plenumsregning 1

MAT1030 Plenumsregning 3

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

C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Løse reelle problemer

Læringsmål og pensum. Designe et program

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Prøveeksamen IN1000. IN Prøveeksamen. Dato november 2017 Tid 12:30-12:00 Alle trykte og skrevne hjelpemidler er tillatt.

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

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

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?

Informasjon Eksamen i IN1000 høsten 2017

Notat 2, ST Sammensatte uttrykk. 27. januar 2006

AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1

MAT1030 Diskret matematikk

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver - LF. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

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

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Læringsmål og pensum

TDT4105 IT Grunnkurs Høst 2014

Eksamensoppgaver 2014

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Norsk informatikkolympiade runde

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

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4105 Informasjonsteknologi grunnkurs Øvingsforelesning 2. Iver Dihle Skjervum Vit.ass. ITGK

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

Norsk informatikkolympiade runde

Transkript:

TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til Auditorieøving 1 1 Teori 1. Hvilket tall kan IKKE lagres presist i en datamaskin? a) 10 9 b) π c) 1 /2 d) 5 2. Et bilde er lagret med 8-bit pr. pixel. Hvor mange forskjellige farger (eller gråtoner) kan man da velge mellom i hver pixel? a) 64 b) 1024 c) 8 d) 256 3. Hvilken komponent i en stasjonær datamaskin mister data om strømmen forsvinner? a) Harddisk b) RAM c) SSD d) Strømforsyning 4. Hva er det binære tallet 0101 i titallssystemet? 5 5. Hva gjør ALU i hente- og utføre-kretsløpet? a) Henter instruksjonen (IF) b) Dekoder instruksjonen (ID) c) Henter data (DF) d) Utfører instruksjonen (EX) e) Returnerer resultatet (RR) 6. Hva menes med "flyt" i flyttall? a) Det er bare et navn b) Spesielt store tall kan representeres c) Kommaet skifter plass etter størrelsen til eksponenten d) Tall med uendelig mange desimaler kan representeres nøyaktig Side 1 av 9

2 Variabler, verdier og IO a) Skriv kode for å tilordne strengen "Hei" til en variabel i Python: hilsen = " Hei " b) Hva skrives ut når Kodesnutt 1 kjøres? Kodesnutt 1 a = 1 b = 4 if b < 4* a: print (a+b) print (b) 4 c) Skriv en kodelinje som tar inn input fra brukeren: Eksempel på løsning: name = input (" Hva heter du? ") d) Hvilken variabeltype (string/integer/float/boolean) ville du brukt i tilordning av følgende personlig informasjon: 1. Navn - string 2. Alder - integer 3. Høyde i meter - float 4. Telefonnummer - string/integer 5. Gift (ja/nei) - boolean Side 2 av 9

3 Betingelser og bruk av logiske uttrykk a) Skriv et program som tar inn et fornavn (string) fra bruker. Hvis fornavnet er Kristian, skal programmet printe "Hei, Kristian!". For alle andre navn, skal programmet printe "Hallo!". Løsningsforslag er gitt i Kodesnutt 2 Kodesnutt 2 name = str ( input (" Hva heter du? ")) if name == " Kristian ": # Kan legge inn likegyldighet til s m à / store bokstaver print ("Hei, Kristian!") print (" Hallo!") b) Bjørn skal på shopping. Han har x kroner til disposisjon (x skrives inn fra bruker). La en vilkårlig genser ha prisen y (skrives inn fra bruker). Lag et program som gir Bjørn beskjed om han kan kjøpe genseren eller ikke. Eksempel på kjøring (tall er input fra bruker): Hvor mye penger har du? 300 Hvor mye koster genseren? 279 Du har r à d til genseren. Hvor mye penger har du? 250 Hvor mye koster genseren? 279 Du har ikke r à d til genseren. Kodesnutt 3 penger = float ( input (" Hvor mye penger har du? ")) pris = float ( input (" Hvor mye koster genseren? ")) if penger >= pris : print ("Du har r à d til genseren.") print ("Du har ikke r à d til genseren.") Side 3 av 9

c) Bjørn vil bare kjøpe genseren hvis den har høy hals. Dette er lagret i den boolske variabelen harhoyhals. Lag et nytt program som gir Bjørn beskjed om å kjøpe genseren hvis han har råd, OG genseren har høy hals. Hvis ikke begge kravene er oppfylt, skal Bjørn få beskjed om å lete videre i neste butikk. Eksempel på kjøring (tall er input fra bruker): # harhoyhals = false Hvor mye penger har du? 250 Hvor mye koster genseren? 279 Let videre i neste butikk. # harhoyhals = true Hvor mye penger har du? 250 Hvor mye koster genseren? 199 Kjoep genseren! Kodesnutt 4 penger = float ( input (" Hvor mye penger har du? ")) pris = float ( input (" Hvor mye koster genseren? ")) if penger >= pris and harhoyhals : print (" Kjoep genseren!") print (" Let videre i neste butikk.") d) Hva skrives ut når Kodesnutt 5 kjøres? Kodesnutt 5 a = True b = False if not (( a and not b) or ( a or b)): print (" Tomat ") print (" Potet ") Potet Side 4 av 9

4 Løkker a) Skriv et program som skriver ut alle tall fra 0 til og med 102 som er delelig på 3. Husk at modulo-operasjonen % angir resten ved divisjon, f.eks. er 5%2 = 1. To alternative løsningsmetoder: Kodesnutt 6 for i in range (0, 103, 3): print (i) for i in range (0, 103 ): if (i%3 == 0): print (i) b) Skriv et program som tar inn to heltall x og y fra bruker, og skriver ut antall tall i intervallet [x, y] som er delelig på 3. Eksempel på kjøring (tall etter kolon er input fra bruker): Skriv inn x: 8 Skriv inn y: 27 7 tall i intervallet er delelige p à 3. Kodesnutt 7 x = int ( input (" Skriv inn x: ")) y = int ( input (" Skriv inn y: ")) resultat = 0 for i in range (x, y+1): if i% 3==0: resultat +=1 print ( resultat, " tall i intervallet er delelige p à 3") c) Skriv et program som kontinuerlig tar inn tall fra bruker. Når summen av tallene har oversteget 50, skal programmet avsluttes. Eksempel på kjøring (tall etter kolon er input fra bruker): Skriv et tall : 14 Skriv et tall : 23 Skriv et tall : 32 Summen er over 50. Kodesnutt 8 tall = float ( input (" Skriv et tall : ")) resultat = tall while resultat <= 50: tall = float ( input (" Skriv et tall : ")) resultat += tall print (" Summen er over 50.") Side 5 av 9

d) Utvid programmet i a) slik at det avslutter når det har funnet de 10 første tallene som er delelig på 3, eller summen av tallene er større enn 120. Deretter skrives det ut hva summen ble. Kodesnutt 9 resultat = 0 antall = 0 for i in range (0,103 ): # Alternativ 1: (0,103,3) while antall < 10 and resultat <= 120 : if i% 3 == 0: # Droppes i alternativ 1 antall += 1 resultat break print ( resultat ) += i 5 Koorståelse og funksjoner I alle de påfølgende oppgavene bruker vi følgende variable: A = 10 B = 5 a) Hva printer Kodesnutt 10? Kodesnutt 10 oppgavea (A,B): return A print ( oppgavea (A,B)) 10 b) Hva printer Kodesnutt 11? Kodesnutt 11 oppgaveb (B,A): return B print ( oppgaveb (A,B)) 10 Side 6 av 9

c) Hva printer Kodesnutt 12? Kodesnutt 12 oppgavec (C,D): return D print ( oppgavec (D=A,C=B)) 10 d) Hva printer Kodesnutt 13? Kodesnutt 13 G = 2 oppgaved (): G = 5 oppgaved () print (G) 2 e) Hva printer Kodesnutt 14? Kodesnutt 14 G = 2 oppgavee (): G = 5 return G print ( oppgavee ()) 5 Side 7 av 9

6 Pascals trekant og n! (Vanskelig) I denne oppgaven skal vi printe ut tallmønsteret i Pascals trekant på skjermen. I de første deloppgavene kommer vi til å introdusere noen konsepter og funksjoner til å hjelpe oss på veien. n fakultet, eller n!, er inert som med spesialtilfellet 0! = 1. n! = 1 2... (n 1) n a) Lag funksjonen factorial_loop(n), som bruker en for-løkke til å regne ut n! og returnerer svaret. Kodesnutt 15 factorial_ loop ( n): p = 1 for i in range (2, n + 1): p *= i return p b) "Av n, velg k", ( n k) er inert som n! ( k! (n k)! ) Lag en funksjon nchoosek(n, k) som returnerer (n k) for inputparametrene n og k. Bruk en av funksjonen vi har nevnt over. Du trenger ikke å ha klart oppgave a) for å gjøre denne oppgaven. Kodesnutt 16 nchoosek (n, k): return factorial_loop (n)/( factorial_loop (k)* factorial_loop (n - k)) Side 8 av 9

c) De første radene i Pascals trekant er: 1 1 1 1 2 1 1 3 3 1... Det viser seg at tallene i trekanten er inert ved nchoosek slik: (0 0) (1 0) (1 1) (2 0) (2 1) (2 2)... Lag en funksjon Pascal( n ) som tar inn heltallet n og printer ut de n første radene i Pascals trekant. F. eks. skal Pascal(4) printe ut den første trekanten i denne deloppgaven. Tips: For å printe ut et tall og et mellomrom bak uten å starte en ny linje, kan du bruke print( tall, end= ) Kodesnutt 17 Pascal (n): for i in range (n): for j in range ( i + 1): if print ( ) ( nchoosek (i,j)!=0): print ( nchoosek (i, j), end = ) Side 9 av 9