Oppslagstabeller og teksthåndtering

Størrelse: px
Begynne med side:

Download "Oppslagstabeller og teksthåndtering"

Transkript

1 Oppslagstabeller og teksthåndtering Ole Christian Lingjærde, Dept of Informatics, UiO 4. oktober 2018

2 Dagens agenda Oppslagstabeller: verktøy for å lagre par av verdier Lese filer inn i oppslagstabeller En liten quiz Teksthåndtering

3 Hvordan implementere en matematisk funksjon i Python En matematisk funksjon f er et sett av regler som tilordner en entydig verdi f (x) til hver x. Vi kan implementere dette i Python med funksjoner eller med oppslagstabeller. Eksempel: Vi har reglene f (5) = 10 og f (11) = 15. Implementasjon med funksjon def f(x): if x == 5: return 10 elif x==11: return 15 print(f(5)) # Resultat: skriver ut 10 Implementasjon med oppslagstabell d = {5: 10, 11: 15} print(d[5]) # Resultat: skriver ut 10

4 Et eksempel til Oppgave: Implementer følgende regler i Python: 'Norway' --> 'Oslo' 'Sweden' --> 'Stockholm' 'France' --> 'Paris' Implementasjon med funksjon def f(x): if x == 'Norway': return 'Oslo' elif x == 'Sweden': return 'Stockholm' elif x == 'France': return 'Paris' Implementasjon med oppslagstabell d = {'Norway': 'Oslo', 'Sweden': 'Stockholm', 'France': 'Paris'}

5 Legge til flere regler Anta at vi ønsker å utvide funksjonen med en regel til: 'Norway' --> 'Oslo' 'Sweden' --> 'Stockholm' 'France' --> 'Paris' 'Nepal' --> 'Kathmandu' # NY REGEL Implementasjon med funksjon Vi må skrive en helt ny funksjon, denne gangen med fire regler. Implementasjon med oppslagstabell # Vi kan enkelt utvide oppslagstabellen vi allerede har laget: d['nepal'] = 'Kathmandu'

6 Lister vs. oppslagstabeller Lister Vi kan tenke på en liste i Python som en samling par: a = [6, 3, 7] # Parene (0,6), (1,3), (2,7) print(a[1]) # Skriv ut siste halvdel av paret (1,3) Indeksen er implisitt når vi definerer listen, men vi kan bruke den siden for å få tilgang til verdier i listen (slik som ovenfor). Oppslagstabeller En oppslagstabell er også en samling med par: d = {0:6, 1:3, 2:7} # Parene (0,6), (1,3), (2,7) print(d[1]) # Skriv ut siste halvdel av paret (1,3) Indeksen (= nøkkelen) gis eksplisitt når vi definerer oppslagstabellen, og kan også brukes siden for å få tilgang til verdier i oppslagstabellen.

7 Oppslagstabeller gir indeksfrihet! For en liste må indeksene alltid være 0, 1,..., N-1 (hvor N er lengden på listen). For en oppslagstabell kan indeksene (= nøklene) være hva som helst. Eksempler: # Parene (-2,6), (6,3), (3,7) d = {-2:6, 6:3, 3:7} # Parene ('Hamar','Norway'), ('Uppsala','Sweden') d = {'Hamar':'Norway', 'Uppsala':'Sweden'} # Parene ('pi', 3.14), ('e', 2.718), ('g', 9.81) d = {'pi':3.14, 'e':2.718, 'g':9.81} # Parene ((0,0), 'lowerleft') and ((1,1), 'upperright') d = {(0,0):'lowerleft', (1,1):'upperright'} Det er noen restriksjoner på nøklene: de må være entydige og være av en immutable data type (int, float, complex, string, tuple,...).

8 Nøkler må være immutable objekter Noen dataobjekter i Python kan endres etter at de er laget - slike objekter kalles mutable. Andre dataobjekter kan ikke endres og kalles immutable. Eksempler: Et listeobjekt kan endres. Vi kan f.eks. endre ite verdien med (a[i] = new_value) uten å lage en helt ny liste. Et tuppelobjekt kan ikke endres. Forsøk på å endre ite verdien gir feilmelding. Hvis vi må gjøre endringer, er vi nødt til å lage et helt nytt tuppel. Eksempler: d = {1: 34, 2: 67, 3: 0} # Nøkkelen er int d = {1:6424, 'X':64345} # Nøkkelen er int eller string d = {(0,0): 4, (1,-1): 5} # Nøkkelen er et tuppel d = {[0,0]: 4, [-1,1]: 5} # FEIL: nøkkelen kan ikke være liste

9 En oppslagstabell er en uordnet samling nøkkel/verdi par Nøkler og verdier Vi har sett at en oppslagstabell er en samling av par (a,b). Første element i hvert par kalles en nøkkel og andre element en verdi. I oppslagstabellen d = {'Oslo': 3} er Oslo nøkkel og 3 tilhørende verdi. To par kan ikke ha samme nøkkel, men de kan ha samme verdi. Oppslagstabeller er uordnete En oppslagstabell lagrer ikke parene i en bestemt rekkefølge. Man kan heller se for seg oppslagstabellen som en sekk med par (a,b) uten noen bestemt ordning.

10 Å lage oppslagstabeller For å lage en oppslagstabell initialiserer vi den og legger inn nye par etter behov. En typisk anvendelse er å lagre data som vi leser fra fil og hvor én kolonne er en entydig identifikator. Initialise en ny oppslagstabell # Lag en tom tabell: d = {} # Lag en tabell med to par: d = {'Oslo': 13, 'London': 15.4} # Lag en tabell med to par (alternativ metode): d = dict(oslo=13, London=15.4) Utvide en oppslagstabell # Anta at d er en oppslagstabell # Legg et nytt par til d: d['madrid'] = 26.0 # Legg en hel oppslagstabell d2 til d: d.update(d2)

11 Å fjerne par fra oppslagstabeller Vi kan fjerne et par (a,b) fra en oppslagstabell med del d[a]. Eksempler: In [1]: d = {'pi':3.14, 'e':2.718, 'g':9.81} In [2]: del d['e'] # Fjern paret ('e', 2.718) In [3]: del d['pi'] # Fjern paret ('pi', 3.14) In [4]: d = dict(yes=1, No=0) In [5]: del d['maybe'] KeyError Traceback (most recent call <ipython-input d96d71ff6> in <module>() ----> 1 del d['maybe'] KeyError: 'Maybe'

12 Er en bestemt nøkkel tilstede i tabellen? Vi kan teste om en nøkkel er tilstede med key in d. Vi kan hente ut verdien med d.get(key) Eksempel: d = {'Bergen': 'Norway', 'Cambridge': 'UK'} if 'Oxford' in d: print('oxford is a key in the dictionary') else: print('oxford is not a key in the dictionary') value = d.get('bergen', '') value = d.get('oxford', '') # Now value == 'Norway' # Now value = ''

13 Å løpe gjennom elementene i en oppslagstabell Løpe over elementene i vilkårlig rekkefølge: d = {-2:6, 6:3, 3:7} for key in d: print('key = %g and value = %g' % (key, d[key])) Løpe over elementene i sortert nøkkelrekkefølge: d = {-2:6, 6:3, 3:7} for key in sorted(d): print('key = %g and value = %g' % (key, d[key]))

14 Lage en liste over alle nøkler/verdier Anta at vi har definert tabellen d = {'Paris': 17.5, 'London': 15.4, 'Madrid': 26.0} >>> d.keys() <listiterator at 0x111b2a4d0> >>> list(d.keys()) ['Paris', 'London', 'Madrid'] >>> d.values() <listiterator at 0x111b2a710> >>> list(d.values()) [17.5, 15.4, 26.0]

15 Eksempel: lagre polynom med oppslagstabell Polynomet p(x) = 1 + x 2 + 3x 7 kan representeres som oppslagstabell med potenser som nøkler (int) og koeffisienter som verdier (float): p = {0: -1, 2: 1, 7: 3.5} Evaluér polynomet i I c ix i for gitt x: def f(p,x): val = 0.0 for power in p: val += p[power] * x ** power return val Kortversjon: def f2(p,x): return sum(p[power] * x ** power for power in p)

16 Polynomer kan også representeres med lister Listeindeksen svarer her til potensen. F.eks. kan polynomet 1 + x 2 + 3x 7 lagres som p = [-1, 0, 1, 0, 0, 0, 0, 3] Det generelle polynomet N i=0 c ix i lagres som: [c0, c1, c2,..., cn]. Evaluér polynomet N i=0 c ix i for gitt x: def f3(p, x): val = 0 for power in range(len(p)): val += p[power] * x ** power return val

17 Hva er best for polynomer: liste eller oppslagstabell? Oppslagstabellen lagrer bare koeffisienter ulik null. Sammenlikn tabell og liste for polynomet 1 x 200 : p = {0: 1, 200: -1} # len(p) er 2 p = [1, 0, 0, 0,..., 200] # len(p) er 201 Oppslagstabeller kan enkelt håndtere negative potenser, f.eks. 1 2 x 3 + 2x 4 p = {-3: 0.5, 4: 2} print f(p, x=4)

18 Eksempel: lese en fil med to kolonner Mange datafiler består av kolonner med data, slik som denne hvor første kolonne er en entydig pasient-id og andre kolonne er et mål på DNA-skade: MB MB MB MB MB Vi kan lese filen over inn i en oppslagstabell slik: damage = {} infile = open('dnadamage.txt', 'r') for line in infile: words = line.split() damage[words[0]] = float(words[1]) infile.close() # For å skrive ut DNA-skade for pasient MB.0005: print(damage['mb.0005']) #

19 Eksempel: lese en fil med tre kolonner Datafil: Oslo 21.8 'Norway' Bergen 17.6 'Norway' London 18.1 'UK' Berlin 19 'Germany' Paris 23 'France' Rome 26 'Italy' Helsinki 17.8 'Finland' Program: infile = open('cityinfo.txt', 'r') data = {} for line in infile: words = line.split() data[words[0]] = [float(words[1]), words[2]] infile.close() # For å skrive ut informasjonen om Paris: print(data['paris']) # [23.0, "'France'"] print(data['paris'][0]) # 23.0 print(data['paris'][1]) # 'France'

20 En tabulær fil kan leses inn i en nestet oppslagstabell Datafilen table.dat: A B C D no no no Vi lager først en tom oppslagstabell rows For hver rad Vi kan lage en oppslagstabell data[p][i] (dict of dict) for å holde måling no. i (1, 2, etc.) for egenskap p ('A', 'B', etc.)

21 Quiz 1 Hva skrives ut? Spørsmål A d = {-2:-1, -1:0, 0:1, 1:2, 2:-2} print(d[0]) Spørsmål B d = {-2:-1, -1:0, 0:1, 1:2, 2:-2} print(d[d[0]]) Spørsmål C d = {-2:-1, -1:0, 0:1, 1:2, 2:-2} print(d[-2]*d[2])

22 Svar på Quiz 1 Hva skrives ut? Spørsmål A d = {-2:-1, -1:0, 0:1, 1:2, 2:-2} print(d[0]) # 1 Spørsmål B d = {-2:-1, -1:0, 0:1, 1:2, 2:-2} print(d[d[0]]) # 2 Spørsmål C d = {-2:-1, -1:0, 0:1, 1:2, 2:-2} print(d[-2]*d[2]) # 2

23 Quiz 2 Hva skrives ut? Spørsmål A table = {'age':[35,20], 'name':['anna','peter']} for key in table: print('%s: %s' % (key,table[key])) Spørsmål B table = {'age':[35,20], 'name':['anna','peter']} vals = list(table.values()) print(vals) print(vals[0]) print(vals[0][0]) Spørsmål C table = {'age':[35,20], 'name':['anna','peter']} print(table['name'][1], table['age'][1])

24 Svar på Quiz 2 Spørsmål A table = {'age':[35,20], 'name':['anna','peter']} for key in table: print('%s: %s' % (key,table[key])) # age: [35, 20] # name: ['Anna', 'Peter'] Spørsmål B table = {'age':[35,20], 'name':['anna','peter']} vals = list(table.values()) print(vals) print(vals[0]) print(vals[0][0]) # [[35, 20], ['Anna', 'Peter']] # [35, 20] # 35 Spørsmål C table = {'age':[35,20], 'name':['anna','peter']} print(table['name'][1], table['age'][1]) # ('Peter', 20)

25 Quiz 3 Hva blir innholdet i oppslagstabellen d? Spørsmål A d = {3:5, 6:7} e = {4:6, 7:8} d.update(e) Spørsmål B d = {3:5, 6:7} e = {4:6, 7:8} d.update(e) d.update(e) Spørsmål C d = {6:100} e = {6:6, 7:8} d.update(e)

26 Svar på Quiz 3 Hva blir innholdet i oppslagstabellen d? Spørsmål A d = {3:5, 6:7} e = {4:6, 7:8} d.update(e) # {3: 5, 4: 6, 6: 7, 7: 8} Spørsmål B d = {3:5, 6:7} e = {4:6, 7:8} d.update(e) d.update(e) # {3: 5, 4: 6, 6: 7, 7: 8} Spørsmål C d = {6:100} e = {6:6, 7:8} d.update(e) # {6: 6, 7: 8}

27 Quiz 4 Filen teledata.txt inneholder info om mobilkunder: Age Income Gender Monthly calls ID k Female 46 A k Male 3 A Male 52 A k Female 18 A Hvordan kan du lagre dataene som fem lister? Hvordan kan du lagre dataene som én liste? Hvordan kan du lagre dataene som en oppslagstabell?

28 Svar på Quiz 4 # Fem lister: # ['Age', 45, 27,...] # ['Income', '720k', '440k',...] # ['Gender', 'Female', 'Male',...] # ['Monthly calls', 46, 3,...] # ['ID', 'A001', 'A002',...] # En liste: # [['Age',45,27,...], ['Income','720k', '440k',...], osv] # En oppslagstabell: # {'Age':[45,27,17,...], 'Income':[720k,440k,0,...], osv}

29 Tekstbehandling Vi har sett at Python er velegnet for matematiske beregninger og visualiseringer. Python er også et effektivt verktøy for å håndtere tekststringer. Mange avanserte anvendelser av tekststreng-behandling (f.eks. nettsøk og DNA-analyser) involverer matematiske og statistiske beregninger.

30 Eksempel: internettsøk Google og andre nettsøkmetoder benytter avansert tekstbehandling. Crawlers går gjennom WWW for å finne filer og analysere innholdet deres.

31 Eksempel: DNA-analyser DNA-sekvenser kan representeres som veldig lange tekststrenger. Algoritmer for å finne og sammenlikne mønstre i slike tekststrenger er svært viktige i moderne biologi og medisin.

32 Tekstbehandling - kjapp repetisjon s = 'This is a string, ok?' # To split a string into individual words: s.split() # ['This', 'is', 'a', 'string,', 'ok?'] # To split a string with another delimiter s.split(',') # ['This is a string', ' ok?'] s.split('a string') # ['This is ', ', ok?'] # To find the location of a substring: s.index('is') # 2 # To check if a string contains a substring: 'This' in s # True 'this' in s # False # To select a particular character in a string: s[0] # 'T' s[1] # 'h' s[2] # 'i' s[3] # 's'

33 Ekstraher delstrenger s = 'This is a string, ok?' # Remove the first character s[1:] # 'his is a string, ok?' # Remove the first and the last character s[1:-1] # 'his is a string, ok' # Remove the two first and two last characters s[2:-2] # 'is is a string, o' # The characters with index 2,3,4 s[2:5] # 'is ' # Select everything starting from a substring s[s.index('is a'):] # 'is a string, ok?' # Remove trailing blanks s = ' A B C ' s.strip() # 'A B C' s.lstrip() # 'A B C ' s.rstrip() # ' A B C'

34 Konkatener (slå sammen) tekststrenger a = ['I', 'am', 'happy'] # Join list elements ''.join(a) # 'Iamhappy' # Join list elements with space between them ' '.join(a) # 'I am happy' # Join list elements with '%%' between them '%%'.join(a) # 'I%%am%%happy'

35 Substituer delstrenger s = 'This is a string, ok?' # Replace every blank by 'X' s.replace(' ', 'X') # 'ThisXisXaXstring,Xok?' # Replace one word by another s.replace('string', 'text') # 'This is a text, ok?' # Replace the text before the comma by 'Fine' s.replace(s[:s.index(',')], 'Fine') # 'Fine, ok?' # Replace the text from the comma by ' dummy' s.replace(s[s.index(','):], ' dummy') # 'This is a string dummy'

36 Lineavbrekk i tekststrenger Linjer separeres av ulike kontrolltegn på ulike plattformer. # Concatenate with Unix/Linux/Mac type line break s1 = '\n'.join(['line A', 'Line B', 'Line C']) # Concatenate with Windows type line break s2 = '\r\n'.join(['line A', 'Line B', 'Line C']) # Platform dependent line splitting: s1.split('\n') # Works: ['Line A', 'Line B', 'Line C'] s1.split('\r\n') # FAILS: ['Line A\nLine B\nLine C'] s2.split('\n') s2.split('\r\n') # FAILS: ['Line A\r', 'Line B\r', 'Line C'] # Works: ['Line A', 'Line B', 'Line C'] # Better line splitting (platform independent): s1.splitlines() # Works: ['Line A', 'Line B', 'Line C'] s2.splitlines() # Works: ['Line A', 'Line B', 'Line C']

37 Noen flere tekstfunksjoner # Check if a string only contains digits s = '314' s.isdigit() # True s = ' 314' s.isdigit() # False s = '3.14' s.isdigit() # False # Change to lower-case or upper-case s = 'ABC def' s.lower() # 'abc def' s.upper() # 'ABC DEF' # Starts with and ends with substring s = 'This is a string' s.startswith('this is') # True s.endswith('this is') # False

38 Eksempel Anta at vi ønsker å lese par med data (x,y) fra en fil. Eksempelfil: (1.3,0) (-1,2) (3,-1.5) (0,1) (1,0) (1,1) (0,-0.01) (10.5,-1) (2.5,-2.5) Algoritme: 1 Les en linje av gangen 2 For hver linje splittes linjen opp i ord 3 For hvert ord, fjern parenteres og splitte resten på komma

39 Hvordan gjøre det i Python infile = open('pairs.dat', 'r') pairs = [] # Create a list to hold all the pairs for line in infile: words = line.split() for w in words: w = w[1:-1] # Remove parentheses numbers = w.split(',') pair = (float(numbers[0]), float(numbers[1])) pairs.append(pair)

40 Listen av par [(1.3, 0.0), (-1.0, 2.0), (3.0, -1.5), (0.0, 1.0), (1.0, 0.0), (1.0, 1.0), (0.0, -0.01), (10.5, -1.0), (2.5, -2.5)]

41 Nettsider er bare tekstfiler Teksten er en blanding av HTML-kommandoer og teksten som vises i nettleseren: <html> <body bgcolor="orange"> <h1>a Very Simple Web Page</h1> <!-- headline --> Ordinary text is written as ordinary text, but when we need headlines, lists, <ul> <li><em>emphasized words</em>, or <li> <b>boldfaced words</b>, </ul> we need to embed the text inside HTML tags. We can also insert GIF or PNG images, taken from other Internet sites, if desired. <hr> <!-- horizontal line --> <img src=" </body> </html>

42 Programmer kan ekstrahere data fra nettsider Et program kan laste ned en nettside, som en HTML-fil, og ekstrahere data ved å isolere den relevante teksten i filen. Eksempel: climate data from the UK Vi laster ned oxforddata.txt til en lokal fil Oxford.txt: import urllib baseurl = ' filename = 'oxforddata.txt' url = baseurl + '/' + filename urllib.urlretrieve(url, filename='oxford.txt')

43 Strukturen til klimadatafilen Oxford.txt Oxford Location: 4509E 2072N, 63 metres amsl Estimated data is marked with a * after the value. Missing data (more than 2 days missing in month) is marked by ---. Sunshine data taken from an automatic... yyyy mm tmax tmin af rain sun degc degc days mm hours * 14.1* 0* 24.4* 184.4* Provisional Provisional

44 Lese klimadataene Algorithm: 1 Read the place and location in the file header 2 Skip the next 5 (for us uninteresting) lines 3 Read the column data and store in dictionary 4 Test for numbers with special annotation, "provisional" column, etc. Program, del 1: local_file = 'Oxford.txt' infile = open(local_file, 'r') data = {} data['place'] = infile.readline().strip() data['location'] = infile.readline().strip() # Skip the next 5 lines for i in range(5): infile.readline()

45 Lese klimadata - del 2 Program, part 2: data['data'] ={} for line in infile: columns = line.split() year = int(columns[0]) month = int(columns[1]) if columns[-1] == 'Provisional': del columns[-1] for i in range(2, len(columns)): if columns[i] == '---': columns[i] = None elif columns[i][-1] == '*' or columns[i][-1] == '#': # Strip off trailing character columns[i] = float(columns[i][:-1]) else: columns[i] = float(columns[i])

46 Lese klimadataene - del 3 Program, part 3 for line in infile:... tmax, tmin, air_frost, rain, sun = columns[2:] if not year in data['data']: data['data'][year] = {} data['data'][year][month] = {'tmax': tmax, 'tmin': tmin, 'air frost': air_frost, 'sun': sun}

Dictionaries og teksthåndtering

Dictionaries og teksthåndtering Dictionaries og teksthåndtering Ole Christian Lingjærde, Dept of Informatics, UiO 3. oktober 2019 Dagens agenda Første time: dictionaries og stringhåndtering Andre time: oppvarming til midtveiseksamen

Detaljer

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

AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1 AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1 Ole Kristian Pedersen, Høst 2016 Agenda Introduksjon til Python for begynnere Intro til øving 1 Litt om lenkede lister Øvingssystemet

Detaljer

Kap 2: Løkker og lister

Kap 2: Løkker og lister Kap 2: Løkker og lister Ole Christian Lingjærde, Inst for Informatikk, UiO 26-30 August, 2019 (Del 2 av 2) Forrige forelesning på en foil Formatert utskrift: %-operator og f-strings To typer løkker: while-løkker

Detaljer

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

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python. Algoritmer og datastrukturer Kondisjonstest Python-oppgaver Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og programmere

Detaljer

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python I disse oppgavene skal vi introdusere Python, og vise hvordan vi kan jobbe med tekst i Python. Vi skal se på hva et programmeringsspråk

Detaljer

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

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver - LF. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python. Algoritmer og datastrukturer Kondisjonstest Python-oppgaver - LF Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og

Detaljer

INF120: Oblig 3. Yngve Mardal Moe

INF120: Oblig 3. Yngve Mardal Moe Yngve Mardal Moe Mar 28, 2019 Contents 1 Hva trenger dere for denne oppgaven 3 2 Hvordan skal dere arbeide med denne oppgaven 5 3 En søkeindeks 7 4 Å slå opp i en søkeindeks 9 5 Å utvide en søkeindeks

Detaljer

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

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU 2 Læringsmål og pensum Mål Lære å bruke unntak (Exceptions)

Detaljer

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110) Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med

Detaljer

Ch.4: User input and error handling

Ch.4: User input and error handling Ch.4: User input and error handling Ole Christian Lingjærde, Dept of Informatics, UiO 11 September 2018 Dagens agenda En kort quiz Testing av programmer - en innføring Input fra bruker og fra fil Live-programmering

Detaljer

Oppgave 1 (Opprett en database og en tabell)

Oppgave 1 (Opprett en database og en tabell) Oppgave 1 (Opprett en database og en tabell) 1) I «Object Explorer» (i «SQL Server Management Studio»), høyreklikk over Databases : 1 2 2) Skriv så databasenavnet og klikk OK: 3) Plasser så kursoren på

Detaljer

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110) Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med

Detaljer

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3 Relational Algebra 1 Unit 3.3 Unit 3.3 - Relational Algebra 1 1 Relational Algebra Relational Algebra is : the formal description of how a relational database operates the mathematics which underpin SQL

Detaljer

Øvingsforelesning 1 Python (TDT4110)

Øvingsforelesning 1 Python (TDT4110) Øvingsforelesning 1 Python (TDT4110) Introduksjon, Kalkulasjoner Ole-Magnus Pedersen Oversikt Praktisk Info Repetisjon fra sist Oppgaver for øving 2 2 Praktisk Info Last opp øvinger på Blackboard før godkjenning

Detaljer

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og mengder (sets) - Kapittel 9. Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og mengder (sets) - Kapittel 9 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære å forstå og kunne bruke sets Lære å forstå og kunne

Detaljer

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs Side 1 av 7 Institutt for datateknikk og informasjonsvitenskap Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs Eksamensdato: 2017-08-XX Oppgave 1: Flervalgsoppgave (25%)

Detaljer

MENGDER (SETS) Læringsmål og pensum. Kapittel 9.2

MENGDER (SETS) Læringsmål og pensum. Kapittel 9.2 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og mengder (sets) - Kapittel 9 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære å forstå og kunne bruke sets Lære å forstå og kunne

Detaljer

Forside. 1 Hva skrives ut?

Forside. 1 Hva skrives ut? Forside UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøve-eksamen i: IN900, INF00, IN-KJM900 Vedlegg: Ingen. Tillatte hjelpemidler: Ingen. Les gjennom hele oppgavesettet før du begynner

Detaljer

IN2010: Algoritmer og Datastrukturer Series 2

IN2010: Algoritmer og Datastrukturer Series 2 Universitetet i Oslo Institutt for Informatikk S.M. Storleer, S. Kittilsen IN2010: Algoritmer og Datastrukturer Series 2 Tema: Grafteori 1 Publisert: 02. 09. 2019 Utvalgte løsningsforslag Oppgave 1 (Fra

Detaljer

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og sets (mengder) Utgave 3: Kap. 9. Terje Rydland - IDI/NTNU

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og sets (mengder) Utgave 3: Kap. 9. Terje Rydland - IDI/NTNU 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og sets (mengder) Utgave 3: Kap. 9 Terje Rydland - IDI/NTNU 2 Læringsmål og pensum Mål Lære å forstå og kunne

Detaljer

Databases 1. Extended Relational Algebra

Databases 1. Extended Relational Algebra Databases 1 Extended Relational Algebra Relational Algebra What is an Algebra? Mathematical system consisting of: Operands --- variables or values from which new values can be constructed. Operators ---

Detaljer

Slope-Intercept Formula

Slope-Intercept Formula LESSON 7 Slope Intercept Formula LESSON 7 Slope-Intercept Formula Here are two new words that describe lines slope and intercept. The slope is given by m (a mountain has slope and starts with m), and intercept

Detaljer

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger. - 3rd edition: Kapittel 8. Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger - 3rd edition: Kapittel 8 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære om Pensum Grunnleggende operasjoner på strenger Å skive/slice

Detaljer

Øvingsforelesning 9 i Python (TDT4110)

Øvingsforelesning 9 i Python (TDT4110) Øvingsforelesning 9 i Python (TDT4110) Dictionaries, Exception, Filhåndtering Vegard Hellem Oversikt Praktisk Info Gjennomgang av Øving 7 Programmering til øving 9 2 Praktisk info Auditorieøving 2 Må ikke

Detaljer

Python: Oppslagslister (dictionaries) og mengder 3. utgave: Kapittel 9

Python: Oppslagslister (dictionaries) og mengder 3. utgave: Kapittel 9 Python: Oppslagslister (dictionaries) og mengder 3. utgave: Kapittel 9 TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Forstå prinsippene for, og kunne bruke i praksis Mengder (sets)

Detaljer

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE Eksamen i: Inf-1049, Introduksjon til beregningsorientert programmering Dato: 15. desember 017 Klokkeslett: 09.00 13.00 Sted /

Detaljer

AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner kvitteringsliste L00202 levert i CSV fil

AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner kvitteringsliste L00202 levert i CSV fil AvtaleGiro beskrivelse av feilmeldinger for oppdrag og transaksjoner kvitteringsliste L00202 levert i CSV fil Kvitteringsliste L00202 for avviste oppdrag, transaksjoner og informasjonsmeldinger CSV Format:

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger Utgave 3: Kap. 8

TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger Utgave 3: Kap. 8 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger Utgave 3: Kap. 8 Terje Rydland - IDI/NTNU 2 Læringsmål og pensum Mål Lære om Slicing av lister 2-dimensjonale

Detaljer

Objektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål

Objektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål Innhold uke 9 Mer komplekse strukturer Objektorientert programmering i Python IN1000 Høst 2018 uke 9 Siri Moe Jensen Referanser versus objekter (repetisjon) "Dot-notasjon" Spesielle metoder i egendefinerte

Detaljer

Python: Strenger 3. utgave: Kapittel 8

Python: Strenger 3. utgave: Kapittel 8 Python: Strenger 3. utgave: Kapittel 8 TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Forstå Hva strenger er Grunnleggende operasjoner på strenger Indeksering av tegn i strenger,

Detaljer

Dictionary er et objekt som lagrer en samling av data. Minner litt om lister men har klare forskjeller:

Dictionary er et objekt som lagrer en samling av data. Minner litt om lister men har klare forskjeller: 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis Terje Rydland - IDI/NTNU 2 Datastruktur: Dictionaries Kap 9.1 Dictionary er et objekt som lagrer en samling

Detaljer

Løse reelle problemer

Løse reelle problemer Løse reelle problemer Litt mer om løkker, prosedyrer, funksjoner, tekst og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve 1 Tilbakeblikk Dere bør nå beherske det sentrale fra uke 1 og 2: Uttrykk, typer,

Detaljer

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet. TDT445 Øving 4 Oppgave a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet. Nøkkel: Supernøkkel: Funksjonell avhengighet: Data i en database som kan unikt identifisere (et sett

Detaljer

Del 3: Evaluere uttrykk

Del 3: Evaluere uttrykk Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret

Detaljer

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14. Forkurs INF1010 Dag 2 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Gard Inge Rosvold (gardir@ifi.uio.no) Institutt for Informatikk, 14. januar 2016 Forkurs INF1010 - dag 2 Feilmeldinger 2 Forkurs INF1010

Detaljer

Dynamic Programming Longest Common Subsequence. Class 27

Dynamic Programming Longest Common Subsequence. Class 27 Dynamic Programming Longest Common Subsequence Class 27 Protein a protein is a complex molecule composed of long single-strand chains of amino acid molecules there are 20 amino acids that make up proteins

Detaljer

Løse reelle problemer

Løse reelle problemer Løse reelle problemer Løse problemer med data fra fil, samt litt mer om funksjoner IN1000, uke6 Geir Kjetil Sandve Mål for uken Få enda mer trening i hvordan bruke løkker, samlinger og beslutninger for

Detaljer

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs Høst 2015 TDT4110 IT Grunnkurs Høst 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforlag Auditorieøving 1 1 Teori Løsning er skrevet med uthevet tekst

Detaljer

Ch.7: Innføring i klasser

Ch.7: Innføring i klasser Ch.7: Innføring i klasser Ole Christian Lingjærde, Institutt for Informatikk, UiO 16. oktober 2018 Dagens agenda Hva er klasser? En liten quiz Å gruppere ting i enheter Alle store organisasjoner er delt

Detaljer

Ch.7: Innføring i klasser (del 2)

Ch.7: Innføring i klasser (del 2) Ch.7: Innføring i klasser (del 2) Ole Christian Lingjærde, Institutt for Informatikk, UiO 18. oktober 2018 Dagens agenda Lekseprøve om klasser Gjennomgang av prøven m/oppsummering av klasser Oppgave 5.16,

Detaljer

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad. EKSAMEN Emnekode: Emne: ITM20606 Webprogrammering med PHP Dato: Eksamenstid: 11/12-2007 09.00-13.00 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne) Faglærer: Tom

Detaljer

Bruke SQL fra Python. Med Psycopg2

Bruke SQL fra Python. Med Psycopg2 Bruke SQL fra Python Med Psycopg2 0 1 (1/3) 1 (2/3) 1 (3/3) 2 Pakken psycopg2 3 Pakken psycopg2 De viktigste klassene vi trenger i psycopg2: connection Håndterer forbindelsen fra Python til PostgreSQL

Detaljer

TDT4120 Øvingsforelesning 1 Introduksjon til Python

TDT4120 Øvingsforelesning 1 Introduksjon til Python TDT4120 Øvingsforelesning 1 Introduksjon til Python Basert på foiler av Åsmund Eldhuset Presentert av Martin Gammelsæter Python! A C program is like a fast dance on a newly waxed dance floor by people

Detaljer

Innholdsfortegnelse... 1 Endringslogg UD BETALINGSTERMINAL NETS NEW DRIVERS FULL SUPPORT WINDOWS

Innholdsfortegnelse... 1 Endringslogg UD BETALINGSTERMINAL NETS NEW DRIVERS FULL SUPPORT WINDOWS ENDRINGSLOGG INNHOLDSFORTEGNELSE Innholdsfortegnelse... 1 Endringslogg 2017.151.1... 3 UD-17.136 BETALINGSTERMINAL NETS NEW DRIVERS FULL SUPPORT WINDOWS 10... 3 UD-17.137 UTESTÅENDE NOT SHOWIN CROSSED

Detaljer

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

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

REMOVE CONTENTS FROM BOX. VERIFY ALL PARTS ARE PRESENT READ INSTRUCTIONS CAREFULLY BEFORE STARTING INSTALLATION

REMOVE CONTENTS FROM BOX. VERIFY ALL PARTS ARE PRESENT READ INSTRUCTIONS CAREFULLY BEFORE STARTING INSTALLATION 2011-2014 FORD EXPLORER PARTS LIST Qty Part Description Qty Part Description 1 Bull Bar 2 12mm x 35mm Bolt Plates 1 Passenger/Right Mounting Bracket 2 12mm Nut Plate 1 Driver/Left Mounting Bracket 2 12mm

Detaljer

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

Repetisjon, del 2. TDT 4110 IT Grunnkurs Professor Guttorm Sindre Repetisjon, del 2 TDT 4110 IT Grunnkurs Professor Guttorm Sindre Premieutdeling Kahoot Vinnere av enkeltrunder: Datamaskinens historie: mr.oyster (7311) Variable, aritmetiske op., etc.: Sha-ra (6155) if-setn.,

Detaljer

Innhold uke 9. Objektorientert programmering i Python. Om ukens pensum. Referanser og objekter Tema: Mer komplekse strukturer

Innhold uke 9. Objektorientert programmering i Python. Om ukens pensum. Referanser og objekter Tema: Mer komplekse strukturer Objektorientert programmering i Python IN1000 Høst 2017 uke 9 Siri Moe Jensen Innhold uke 9 Tema: Mer komplekse strukturer Referanser versus objekter Referanser mellom objekter Lister av objekter inkl

Detaljer

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python I disse oppgavene skal vi introdusere Python, og vise hvordan vi kan jobbe med tekst i Python. Vi skal se på hva et programmeringsspråk

Detaljer

Steg 1: Regneoperasjoner på en klokke

Steg 1: Regneoperasjoner på en klokke Diffie-Hellman nøkkelutveksling Skrevet av: Martin Strand Kurs: Python Tema: Tekstbasert, Kryptografi Fag: Matematikk, Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Du har tidligere

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen

Detaljer

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Lister og tupler. - 3rd edition: Kapittel 7. Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Lister og tupler - 3rd edition: Kapittel 7 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære om Sekvenser Lister List Slicing Finne elementer i lister

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program

Detaljer

Repetisjon: Normalformer og SQL

Repetisjon: Normalformer og SQL IN2090 databaser og datamodellering Repetisjon: Normalformer og SQL Mathias Stang og Stein Michael Storleer 21. november 2018 1 Agenda Normalformer Funksjonelle avhengigheter Nøkler Finne hvilke normalformer

Detaljer

Bildebehandling med Python og EzGraphics

Bildebehandling med Python og EzGraphics Bildebehandling med Python og EzGraphics I denne oppgaven skal dere jobbe med bildebehandling. På samme måte som vi jobbet med lyd tidligere, skal vi nå se på bilder. Vi kan bruke EzGraphics til alt vi

Detaljer

Høgskoleni østfold EKSAMEN

Høgskoleni østfold EKSAMEN Høgskoleni østfold EKSAMEN 7 Emnekode:Emne: ITF10212Innføring i programmering Dato:Eksamenstid: 4. desember 2012 kl 09.00 til kl 13.00 Hjelpemidler: Faglærer: To A4-ark (4 sider) med egenproduserte notater

Detaljer

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

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14. IN1000-INF1001-2018 Informasjon Eksamen i IN1000 og IN1001 høsten 2018 Tid 30. november kl. 14.30 (4 timer) Faglærere vil besøke lokalet ca kl 15-16. Oppgavene Oppgave 1a-f er kortsvarsoppgaver som rettes

Detaljer

TMA4329 Intro til vitensk. beregn. V2017

TMA4329 Intro til vitensk. beregn. V2017 Norges teknisk naturvitenskapelige universitet Institutt for Matematiske Fag TMA439 Intro til vitensk. beregn. V17 ving 4 [S]T. Sauer, Numerical Analysis, Second International Edition, Pearson, 14 Teorioppgaver

Detaljer

SmartPass Mini User Manual BBNORGE.NO

SmartPass Mini User Manual BBNORGE.NO SmartPass Mini User Manual BBNORGE.NO Intro Welcome to the usermanual for your SmartPass Mini system. The first time you start the SmartPass you have to request a License. This is to regiser your license

Detaljer

Python: Lister og tupler Gaddis: Kapittel 7

Python: Lister og tupler Gaddis: Kapittel 7 Python: Lister og tupler Gaddis: Kapittel 7 TDT4110 IT Grunnkurs Professor Guttorm Sindre Denne uka Vi trenger å Støttes av Hente data fra bruker Vise data til bruker Lagre data i minnet for bruk videre

Detaljer

INF1000 Eksamen 2014 (modifisert)

INF1000 Eksamen 2014 (modifisert) INF1000 Eksamen 2014 (modifisert) Oppgave 1 (4 poeng) a) Hva er verdien til tall etter at følgende kode er utført? tall = (5+3)*2 tall = tall+2 18. b) Anta at følgende programsetninger utføres. Hva skrives

Detaljer

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs Side 1 av 7 Institutt for datateknikk og informasjonsvitenskap Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs Eksamensdato: 2017-08-18 Oppgave 1: Flervalgsoppgave (25%)

Detaljer

Repetisjon Novice Videregående Python PDF

Repetisjon Novice Videregående Python PDF Repetisjon Novice Videregående Python PDF Introduksjon I denne oppgaven skal vi repetere litt Python-syntaks. Hele dette kurset er for de som har programmert Python før. Dersom ikke har mye erfaring med

Detaljer

Datastrukturer. Kevin Thon. 25 april 2017

Datastrukturer. Kevin Thon. 25 april 2017 Datastrukturer Kevin Thon 25 april 2017 Innledning De fleste som er involvert med registerdata på et eller annet plan vil et et tidspunkt måtte forholde seg til hvordan dataen er strukturert. Dette gjelder

Detaljer

Start MATLAB. Start NUnet Applications Statistical and Computational packages MATLAB Release 13 MATLAB 6.5

Start MATLAB. Start NUnet Applications Statistical and Computational packages MATLAB Release 13 MATLAB 6.5 Start MATLAB Start NUnet Applications Statistical and Computational packages MATLAB Release 13 MATLAB 6.5 Prompt >> will appear in the command window Today: MATLAB overview In-class HW: Chapter 1, Problems

Detaljer

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4 Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I

Detaljer

Forelesning inf Java 4

Forelesning inf Java 4 Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette

Detaljer

Trigonometric Substitution

Trigonometric Substitution Trigonometric Substitution Alvin Lin Calculus II: August 06 - December 06 Trigonometric Substitution sin 4 (x) cos (x) dx When you have a product of sin and cos of different powers, you have three different

Detaljer

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

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 2 Læringsmål Mål Introduksjon til filer (som inndata og utdata) Å bruke

Detaljer

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007. Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører

Detaljer

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser.

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser. TUSEN TAKK! Det at du velger å bruke mitt materiell for å spare tid og ha det kjekt sammen med elevene betyr mye for meg! Min lidenskap er å hjelpe flotte lærere i en travel hverdag, og å motivere elevene

Detaljer

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

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

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.

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. Trading-algoritme 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. Vi skal gjøre dette ved å lage et Python-program (med noen for-løkker)

Detaljer

GLOBALCOMSERVER HP 9100C DIGITAL SENDER GATEWAY ADMINISTRATOR S GUIDE 1998 AVM INFORMATIQUE (UPDATED: AUGUST 22, 2006)

GLOBALCOMSERVER HP 9100C DIGITAL SENDER GATEWAY ADMINISTRATOR S GUIDE 1998 AVM INFORMATIQUE (UPDATED: AUGUST 22, 2006) PAGE 1 / 13 GLOBALCOMSERVER HP 9100C DIGITAL SENDER GATEWAY ADMINISTRATOR S GUIDE 1998 AVM INFORMATIQUE (UPDATED: AUGUST 22, 2006) PAGE 2 / 13 LICENSE LICENSE Information in this document is subject to

Detaljer

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

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å. Repetisjon Skrevet av: Ole Kristian Pedersen, Kodeklubben Trondheim Kurs: Python Tema: Tekstbasert Fag: Programmering Klassetrinn: 8.-10. klasse Introduksjon I denne oppgaven skal vi repetere litt Python-syntaks,

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 12. desember 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

Opphavsrett: Forfatter og Stiftelsen TISIP

Opphavsrett: Forfatter og Stiftelsen TISIP Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Innstallasjon og komme i gang med python Claus Schive Lærestoffet er utviklet for faget IFUD1050 Programmering med Python Hvilket programmeringsspråk

Detaljer

NKKN typeforslag versjon 2.0.1. Definisjon av grunntypene

NKKN typeforslag versjon 2.0.1. Definisjon av grunntypene NKKN typeforslag versjon 2.0.1 For å lette innsamling av typedata er det laget en importrutine i NKKN som muliggjør automatisering. Foreløpig kan en kun sende forslag via email, en webservice er planlagt

Detaljer

IN1000 Obligatorisk innlevering 7

IN1000 Obligatorisk innlevering 7 IN1000 Obligatorisk innlevering 7 Frist for innlevering: 23.10. kl 12:00 Introduksjon I denne innleveringen skal du lage et program som simulerer cellers liv og død. Dette skal du gjøre ved hjelp av en

Detaljer

Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX)

Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX) Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX) Peter J. Rosendahl Click here if your download doesn"t start automatically Han Ola of Han Per:

Detaljer

Hangman. Level. Introduksjon

Hangman. Level. Introduksjon Level 2 Hangman All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduksjon

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: MAT-INF 1100L Programmering, modellering, og beregninger. Prøveeksamen 1 Eksamensdag: Onsdag 14. November 2014. Tid for eksamen:

Detaljer

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

Læringsmål og pensum. if (be): else (not_to_be): 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk - 3rd edition: Kapittel 3 Professor Alf Inge Wang 2 if (be): else (not_to_be): 3 Læringsmål og pensum Mål Lære å bruke og

Detaljer

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

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser

Detaljer

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE Eksamen i: Inf-1049, Introduksjon til beregningsorientert programmering Dato: 14. desember 2018 Klokkeslett: 09.00 13.00 Sted

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et

Detaljer

Ch.4: User input and error handling

Ch.4: User input and error handling Ch.4: User input and error handling Ole Christian Lingjærde, Dept of Informatics, UiO 13 September 2018 (DEL 2) Dagens agenda En kjapp quiz Mer om lesing fra fil Mer om eval and exec. Skriving til fil

Detaljer

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis) Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis) 1. Gå til print i dokumentet deres (Det anbefales å bruke InDesign til forberedning for print) 2. Velg deretter print

Detaljer

Datastrukturer. Kevin Thon. 25 april 2017

Datastrukturer. Kevin Thon. 25 april 2017 Datastrukturer Kevin Thon 25 april 2017 Innledning De fleste som er involvert med registerdata på et eller annet plan vil et et tidspunkt måtte forholde seg til hvordan dataen er strukturert. Dette gjelder

Detaljer

Løsningsforslag Test 2

Løsningsforslag Test 2 Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.

Detaljer

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM 2 TEMA 1 MULTIPROSESSERING MED DATASTEGET Multiprosessering har lenge vært et tema i SAS Stadig ny funksjonalitet er med på

Detaljer

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser.

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser. TUSEN TAKK! Det at du velger å bruke mitt materiell for å spare tid og ha det kjekt sammen med elevene betyr mye for meg! Min lidenskap er å hjelpe flotte lærere i en travel hverdag, og å motivere elevene

Detaljer

Håndtere mange verdier

Håndtere mange verdier Håndtere mange verdier Lister, mengder og ordbøker. Samt et lite frempek om objekter og tjenester. IN1000, uke3 Geir Kjetil Sandve Hva vi har lært så langt Variabler Hvordan uttrykk evaluerer til verdier

Detaljer

Lynkurs i shellprogrammering under Linux

Lynkurs i shellprogrammering under Linux Lynkurs i shellprogrammering under Linux Interaktiv bruk av shell Shell/skall er en applikasjon som lar bruker taste inn tekstlige kommandoer til Linux en og en linje om gangen (leser linjer fra stdin).

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 4. juni 2010 Tid for eksamen: 9.00 12.00 Oppgavesettet

Detaljer

Eksamensoppgave i TDT4105 Informasjonsteknologi grunnkurs, med Matlab LØSNINGSFORSLAG

Eksamensoppgave i TDT4105 Informasjonsteknologi grunnkurs, med Matlab LØSNINGSFORSLAG Side 1 av 7 Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4105 Informasjonsteknologi grunnkurs, med Matlab LØSNINGSFORSLAG Løsningsforslag for følge oppgaver: Oppgave 1: Flervalgsoppgave

Detaljer

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser.

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser. TUSEN TAKK! Det at du velger å bruke mitt materiell for å spare tid og ha det kjekt sammen med elevene betyr mye for meg! Min lidenskap er å hjelpe flotte lærere i en travel hverdag, og å motivere elevene

Detaljer

Oppgave 1.6 Hva skrives ut? Riktig svar: The total rainfall from June to August was 54.00

Oppgave 1.6 Hva skrives ut? Riktig svar: The total rainfall from June to August was 54.00 Nummereringen på eksamen ble endret, fra seksjonsvis til vanlig sekvensiell nummerering. Oppgavenummer her er de samme som i oppgavesettene som ligger på web, men sannsynligvis annerledes enn i oppgavene

Detaljer

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye) INF234 Er du? Er du? - Annet Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye) Hvor mye praktisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye) Hvor

Detaljer

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk - 3rd edition: Kapittel 3 Professor Alf Inge Wang 2 if (be): else (not_to_be): 3 Læringsmål og pensum Mål Lære å bruke og

Detaljer