TDT4110 IT Grunnkurs Høst 2017

Like dokumenter
TDT4110 IT Grunnkurs Høst 2016

TDT4105 IT Grunnkurs Høst 2017

TDT4105 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs Høst 2012

TDT4110 IT Grunnkurs Høst 2016

TDT4105 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2014

TDT4110 IT Grunnkurs Høst 2015

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

Auditorieøving 2 Matlab. Appendix Matlab 1/19

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

Øvingsforelesning i Python (TDT4110)

Repetisjon Novice Videregående Python PDF

Øvingsforelesning 5 Python (TDT4110)

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

Auditorieøving 2. Matlab. TDT4105 Informasjonsteknologi, grunnkurs. Brukernavn. Fullt navn

Øvingsforelesning 7 i Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110)

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

TDT4105 IT Grunnkurs Høst 2014

Eksamensoppgaver 2014

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

INF1000 Eksamen 2014 (modifisert)

Høst Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap

Øvingsforelesning 1 Python (TDT4110)


Informasjon Eksamen i IN1000 høsten 2017

TDT4110 IT Grunnkurs Høst 2012

Informasjon Prøveeksamen i IN1000 høsten 2018

INF1000 Eksamen 2014 (modifisert)

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

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.

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

Steg 1: Rest etter divisjon

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

TDT4110 IT Grunnkurs Høst 2014

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

TDT4102 Prosedyreog objektorientert programmering Vår 2016

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

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

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

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

Hvordan løse problemer med programmering?

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.

Løse reelle problemer

Pensum: Starting out with Python

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

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

MAT1030 Diskret Matematikk

Eksamensoppgave i TDT4110 Informasjonsteknologi grunnkurs, med Python LØSNINGSFORSLAG

Oppgave 1.1 (1 poeng) Oppgave 1.2 (2 poeng) Oppgave 1.3 (2 poeng) 1.1

Oppsummering fra sist

MAT1030 Diskret matematikk

Objektorientert programmering i Python

UNIVERSITETET I OSLO

Høgskoleni østfold EKSAMEN

MAT1030 Diskret matematikk

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

TDT4110 Informasjonsteknologi, grunnkurs

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

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

Mattespill Nybegynner Python PDF

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

UNIVERSITETET I OSLO

TDT4105 IT Grunnkurs Høst 2012

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

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

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; }

IN1000 Obligatorisk innlevering 7

Anta at følgende programsetninger utføres. Hva skrives ut på skjermen? Hva skrives ut her (skriv nøyaktig de karakterene som printes, og bare de)?

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

Oppgaver uke 1: Løsningsforslag

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

TDT4102 Prosedyreog objektorientert programmering Vår 2016

MAT-INF 1100: Obligatorisk oppgave 1

Øvingsforelesning 3 Python (TDT4110)

Noen innebygde funksjoner - Vektorisering

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

Norsk informatikkolympiade runde

Noen innebygde funksjoner - Vektorisering

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

UNIVERSITETET I OSLO

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

MAT1030 Diskret matematikk

UNIVERSITETET I OSLO

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

MAT-INF 1100: Obligatorisk oppgave 1

TDT4105 IT Grunnkurs Høst 2014

Norsk informatikkolympiade runde

MAT1030 Plenumsregning 1

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

TDT4102 Prosedyreog objektorientert programmering Vår 2016

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

På tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad.

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

Transkript:

TDT4110 IT Grunnkurs Høst 2017 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Python Auditorieøving 2 Vennligst fyll ut følgende informasjon i BLOKKBOKSTAVER Navn: Brukernavn: Studieprogramkode: Godkjent av: Side 1 av 9

1 Teori 1. Hvor mange bit består en IPv6-adresse av? a) 32 b) 64 c) 128 d) 256 2. Hva er 171 dec i det heksadesimale tallsystemet? a) 67 hex b) AB hex c) AA hex d) 9F hex 3. Hvem har det overordnede ansvaret for tildelingen av domenenavn på toppnivå? a) Hver enkelt nasjon b) Internettleverandører c) ICANN d) The American Network Association 4. Hva er hensikten med paritetsbit i digitale signaler? a) Gjøre meldingen raskere å overføre b) Kryptere signaler så overføringen av data blir sikrere c) Bidra til å detekere feil i digitale signaler d) Fortelle hvor meldingen skal sendes 5. Hvorfor kan et WiFi-nettverk påvirke en Bluetooth-forbindelse? a) WiFi-nettverk har så sterkt signal b) Ved samtidig bruk av WiFi og Bluetooth dannes et fenomen som kalles "stående bølger" c) Bluetooth og WiFi bruker samme metode for koding d) Bluetooth og WiFi bruker samme frekvensbånd 6. Hva står forkortelsen VPN for? a) Virtual Protocol Node b) Virtual Privacy Node c) Virtual Private Network d) Volatile Performance Network Deloppgave 1 2 3 4 5 6 Svar Side 2 av 9

2 Kodeforståelse a) Hvilke verdier har a og b når vi har utført setningen: a, b = secret(11,3) Forklar med en setning hva funksjonen i Kodesnutt 1 gjør. Kodesnutt 1 def secret(a, b): r = 0 while a >= b: a = a - b r = r + 1 s = a return r, s a = b = Forklaring: b) Hva blir verdien til answer etter at Kodesnutt 2 er utført? Forklar med en setning hva funksjonen gjør (eller prøver på). Kodesnutt 2 def enigma(mange_ord): nye_ord = [] for ord in mange_ord: if 'bra' == ord: nye_ord.append('bedre') elif 'stor' == ord: nye_ord.append('større') elif 'liten' == ord: nye_ord.append('mindre') else: nye_ord.append(ord+'ere') return nye_ord flere_ord= ['hard','bra','rask','sterk'] answer = enigma(flere_ord) Side 3 av 9

answer = Forklaring: c) Hva blir skrevet ut til skjerm når du kjører koden som vist under? Kodesnutt 3 def mystery (x, y): z = '' for i in range(0, len(x)): if (i%2==1): z+=x[i] else: z+=y[i] return z A = 'SUNEAILSUN' B = 'JALTNCSAES' D = mystery(a,b) print (D) Side 4 av 9

3 Lister og matriser a) Lag en funksjon listmaker(n) som tar inn et heltall n, og returnerer en liste av lengde n, der hvert element er 0. >>> print(listmaker(3)) [0,0,0] b) Lag en funksjon boardmaker(n) som tar inn et heltall n, og returnerer en n n-matrise med 0-er. Her er det viktig at elementene er uavhengige av hverandre med hensyn på fremtidige endringer i brettet. Med andre ord vil ikke return [[0]*n]*n være en tilfredsstillende løsning. >>> print(boardmaker(3)) [[0, 0, 0], [0, 0, 0], [0, 0, 0]] c) Lag en funksjon printboard(board) som tar inn en matrise board, og skriver ut matrisen på en fin måte (som vist nedenfor). Denne funksjonen skal ikke returnere noe. >>> printboard([[0, 0, 0], [0, 0, 0], [0, 0, 0]]) [0, 0, 0] [0, 0, 0] [0, 0, 0] Side 5 av 9

d) Lag en funksjon fillboard(board) som tar inn en matrise board, og fyller matrisen slik at annethvert element er 0, og annethvert element er X (sjakkmønstret). Deretter returneres matrisen. Du kan anta at matrisen du får inn som parameter er en n n-matrise der hvert element er 0. Eksepmler på kjøring: >>> print(fillboard([[0, 0, 0], [0, 0, 0], [0, 0, 0]])) [0, X, 0] [X, 0, X] [0, X, 0] Side 6 av 9

e) Nå må du lese nøye og holde tungen rett i munn. Lag en funksjon validdirections(board), som tar inn en matrise, og returnerer en liste. Matrisen du får inn er på formen n*m, og inneholder én (og bare én) stjerne. Resten av matrisen er vilkårlige karakterer eller tall. Listen som returneres, skal inneholde hvilke retninger stjernen kan flyttes ( N, S, E, W ). Et flytt for stjernen er ikke gyldig dersom det går utenfor matrisen. >>> print(validdirections([1, 's', 2, 4], [6, 0, 'b', 2], ['*', 5, 5, 5])) ['N', 'E'] >>> print(validdirections([1, 'x', 2, 4], [6, 'a', '*', 2], [8, 5, 5, 5])) ['N', 'S', 'E', 'W'] >>> print(validdirections([1, 0, 2, '*'], [6, 0, 0, 2], [8, 5, 'f', 5])) ['S', 'W'] Side 7 av 9

4 Strenger a) Lag en funksjon checkprefix(...) som tar inn et prefiks (streng) og en ordliste (liste med strenger). Funksjonen skal returnere en liste med alle ord i ordliste som starter på prefiks. >>> checkprefix('en', ['en', 'enhjoerning', 'kan', 'neppe', 'bli', 'entrepenoer', 'i', 'denne', 'ensidige', 'verden']) ['en', 'enhjoerning', 'entrepenoer', 'ensidige'] b) Lag en funksjon checksuffix(...) som tar inn et suffiks (streng) og en ordliste (liste med strenger). Funksjonen skal returnere en liste med de tre siste ordene i ordliste som slutter på suffikset. >>> checksuffix('som', ['en', 'morsom', 'gutt', 'ser', 'paa', 'en', 'ensom', 'og', 'arbeidsom', 'jente', 'som', 'gjoer', 'auditorieoeving']) ['ensom', 'arbeidsom', 'som'] Side 8 av 9

c) Politiet arbeider mye basert på vitneobservasjoner. I dette tilfellet har en selvkjørt bil stukket av fra en ulykke, men vitnene sliter litt med å huske nøyaktig registreringsnummer. I en vitneobservasjon vil derfor et felt med «?» bety at vitnet var usikker på det aktuelle sifferet/tegnet i registreringsnummeret. Skriv en funksjon som tar inn to strenger, et vitneobservert registreringsnummer og et faktisk registreringsnummer. Funksjonen skal sjekke om det vitneobserverte registreringsnummeret kan stemme overens med det faktiske registreringsnummeret. Funksjonen skal returnere True dersom det er full overensstemmelse eller hvis avvik kun gjelder «?». Hvis det derimot finnes avvik utover «?» i vitneobservasjonen, skal funksjonen returnere False. Eksempler på kjøring: >>> match('vf12345','vf12355') False >>> match('v?1234?','vf12355') False >>> match('vf???55','vf12355') True >>> match('???????','vf12355') True Side 9 av 9