TEKSTSTRENGER GRUNNLEGGENDE STRENGOPERASJONER. 2 TESTING, SØKING OG MANIPULERING AV TEKSTSTRENGER. 3 FORMATTERING. 5 BETINGEDE KONTROLLSTRUKTURER.

Størrelse: px
Begynne med side:

Download "TEKSTSTRENGER GRUNNLEGGENDE STRENGOPERASJONER. 2 TESTING, SØKING OG MANIPULERING AV TEKSTSTRENGER. 3 FORMATTERING. 5 BETINGEDE KONTROLLSTRUKTURER."

Transkript

1 Strengbehandling og enkle beregninger Claus Schive, Institutt for informatikk og e-læring ved NTNU Lærestoffet er utviklet for faget IFUD1050 Programmering med Python Man har mulighet til å gjøre mange ting med tekststrenger. De viktigste metodene i Python er beskrevet i leksjonen. Programmeringsspråket gir også meget gode muligheter til å formattering av tekst og utskrift og har flere metoder til å operere på lister. Betingede kontrollstrukturer og løkker brukes også i Python for å ta beslutninger for å utføre situasjonsbetingede handlinger og gå igjennom sekvenser av data. Math-modulen i python gir flere avanserte mattefunksjoner(kvadratrot, cosinus, sinus) som ikke er med fra standard. 1. TEKSTSTRENGER GRUNNLEGGENDE STRENGOPERASJONER TESTING, SØKING OG MANIPULERING AV TEKSTSTRENGER FORMATTERING BETINGEDE KONTROLLSTRUKTURER LØKKER LISTEMETODER OG NOEN INNEBYGDE FUNKSJONER MER OM FUNKSJONER BRUK AV MODULENE MATH OG RANDOM NUMPY OG SCIPY... 15

2 Strengbehandling og enkle beregninger side 2 av Tekststrenger grunnleggende strengoperasjoner Man har mulighet til å gjøre mange ting med tekststrenger. De viktigste metodene er beskrevet i her. Tekststrenger er sekvenser, og mange av funksjonene/metodene tilsvarer de for lister og tupler. På samme måte som for lister, kan man få ut deler av strengen ved å bruke indeks og skiving (slice). Strenger i Python er såkalt "immutable", noe som gjør at når den først er opprettet så kan du egentlig ikke endre på den. Men istedenfor må du opprette nye strenger, basert på den originale. Konkatinering av strenger Konkatinering er å sette sammen to strenger til en. Man kan bruke operatoren +. Nedenfor følger noen eksempler på konkatinering: navn = fornavn + etternavn evt. += hvis du har en variabel hvor du samler opp tekst F.eks. setning += nytt_ord Hvis du skal sette et tall inn i en streng kan man bruke str( ) -funksjonen som konverterer tall til tekst F.eks. respons = Du har + str(saldo) + kroner på kontoen Slicing av strenger I Python, er en " slice " en undergruppe av en liste eller en streng variabel som man får ved å definere en start og /eller slutt indeks på variable og returnere verdiene innenfor dette området. Den returnerte undergruppe omfatter start indeksverdien, men ikke sluttverdien. Man kan bruke slice metoden på flere ulike datatyper, tall og lister. For å bruke slice metoden, må du først opprette og initialisere en variabel å skjære. Deretter brukes hakeparenteser for å indikere enten en posisjon til å starte slicing, avslutte slicing, eller begge deler. I eksempelet " testen [ 03:05 ] " for å skjære en variabel kalt " testen ", starter man på den tredje posisjonen og ender på indeksen før den femte posisjon. Man kan også skrive " testen [ 3 : ] " for å skjære i den tredje posisjonen og returnere alt etterpå, eller skrive " testen [ : 5 ] " for å returnere alt opp til femte posisjon. Man kan bruke slice metoden på flere ulike typer data og få forskjellige resultater. For eksempel, hvis du har en streng variabel " alph " som inneholder bokstavene i alfabetet i rekkefølge, skrive " alph [ 01:05 ] " returnerer delstrengen ' BCDE. ' Hvis du har en liste over strenger eller heltall kalt " lst, " skrive " lst [ 01:03 ] "så returnerer den andre og tredje element i listen. Her følger flere eksempler på hva man kan gjøre med tekststrenger: #Strengoperasjoner - noen eksempler tekst = 'Hallo' print tekst # Gir 'Hallo' # Setter sammen to strenger print tekst + 'verden' #Gir Halloverden

3 Strengbehandling og enkle beregninger side 3 av 15 # En annen måte å sette sammen to strenger. Kommaet gir et ekstra mellomrom. print tekst, 'verden' #Gir Hallo verden # Når man skal sette sammen en streng og et tall, NB! sett str() rundt tallet. print tekst + str(10) # Hvis du skal sette sammen en streng og et tall, husk å sette str() rundt tallet. # Skriver ut lengden til strengen. print len(tekst) #Gir 5 #På samme måte som for lister, kan man få ut deler av strengen ved å bruke indeks og skiving (slice). tekst= 'Dette er en test' tekst[0] # Gir 'D' tekst[14] # Gir 's' #For å få tilgang til enkelttegn i en streng ved bruk av for løkke month = 'August' month[3] #Gir u for character in month: print (character)#gir August-skrevet ut loddrett med et tegn på hver linje 2. Testing, søking og manipulering av tekststrenger Strenger har mange metoder. Noen av dem er svært nyttig (for eksempel del og join), mens andre blir brukt sjeldnere (for eksempel istitle eller capitalize). Fordi det er så mange metoder, er det bare noen av de mest nyttige som er beskrevet her. For full referanse, se vedlegg B i læreboken eller dokumentasjonen på for flere detaljer. lower Denne metoden returnerer en versjon av strengen i små bokstaver. Dette kan være nyttig hvis man ønsker å skrive kode som er "case-insensitiv" -dvs kode som ignorerer forskjellen mellom store og små bokstaver. For eksempel, hvis man ønsker å sjekke om et brukernavn er funnet i en liste. 'Trondheim Symfoni Orkester'.lower() #Gir 'trondheim symfoni orkester' if 'Ole' in ['anders', 'ole', 'per']: print 'Fant navnet!' #Finner ikke navnet

4 Strengbehandling og enkle beregninger side 4 av 15 En løsning på dette er å konvertere alle navnene til små bokstaver både når du lagrer og søker. Koden vil se omtrent slik ut: name = 'Ole' names = ['anders', 'ole', 'per'] if name.lower() in names: print 'Fant navnet!' #Gir Fant navnet strip Metoden returnerer en streng hvor mellomrom på venstre og høyre (men ikke internt) har blitt strippet (fjernet). Strip kan være nyttig når man sammenligner input med lagrede verdier. Strip kan kun utføres i endene, så de interne tegnene kan ikke fjernes. Nedenfor følger noen eksempler på hvordan metoden kan brukes: names = ['Anders', 'Ole', 'Per'] name = 'Ole' if name.strip() in names: print 'Fant det!' #Gir Fant det Strip kan kun utføres i endene, så her fjernes ikke de interne tegnene: '*** SPAM * for * everyone!!! ***'.strip(' *!') #Gir 'SPAM * for * everyone' replace Denne metoden returnerer en streng hvor alle forekomster av én streng er erstattet av en annen. Metodens styrke ligger i at det kan utføre flere utskiftninger samtidig. 'Der er en test'.replace('er', 'var') #Gir Dvar var en test join Joiner en svært viktig streng metode. Join er det motsatte av split, og brukes til å få med elementene i en sekvens. Som man kan se, må de sekvenselementer som skal settes sammen alle være strenger : sep = '+' seq = ['1', '2', '3', '4', '5'] print sep.join(seq) # Gir dirs = ' ', 'usr', 'bin', 'env' print 'C:' + '\\'.join(dirs) #Gir C:\usr\bin\env Å splitte opp en streng En meget viktig streng metode er split som er det motsatte av join. Den brukes til å dele en streng i en sekvens. Merk at hvis man ikke har noen skilletegn å sende som argument til metoden split, er standard å splitte på alle kjøringer av sammenhengende blanke tegn

5 Strengbehandling og enkle beregninger side 5 av 15 (mellomrom, tabulator, linjeskift, og så videre). Nedenfor følger noen eksempler på hvordan metoden kan brukes: ' '.split('+') #Gir ['1', '2', '3', '4', '5'] '/usr/bin/env'.split('/') #Gir ['', 'usr', 'bin', 'env'] 'Using the default'.split() #Gir ['Using', 'the', 'default'] 3. Formattering I Python brukes % operatør til å formatere tekststrenger. Man kaller format% verdier, der formatet er en streng, og verdier er en eller flere verdier. Tegnet % markerer begynnelsen av konverteringen. Videre har man konverteringsflagg (valgfrie). Disse kan være enten være - (minustegn) som angir venstre justering innen feltet + (plusstegn) som betyr skriv alltid tegn (+ eller ) 0 (null) som betyr fyll med nuller i stedet for mellomrom Feltets bredde er antall tegn som skal brukes, inkludert de som går til å skrive et minustegn ("-"),("."), desimaltegn etc. Etter at feltet er formatert, fylles det ut med mellomrom (" ") eller nuller ("0"). Minimum feltbredde er valgfritt. Den konverterte strengen vil være minst dette bred. Disse to parametere er to heltall hvor bredde er først, deretter presisjon, adskilt med en. (punktum). Begge er valgfritt, men hvis du ønsker å ha bare presisjonen, må du også inkludere. (punktum). Presisjonen er antall sifre etter desimaltegnet, 2 eller (for tekststrengen) maksimalt antall tegn som skal tas fra strengen. Før bredde- og presisjons tall, kan du sette et "flagg", som enten kan være null, pluss, minus, eller blank. Her følger noen eksempler på formatteringer: Figur 1. Eksempler på formattering.

6 Strengbehandling og enkle beregninger side 6 av 15 Følgende er de vanligste konverteringer. De forekommer i de fleste programmeringsspråk. Se dokumentasjonen for flere tegn og detaljer. Tegn Argument type; Konvertering d, i Heltall, skrevet i desimal (radix 10) med minustegn (-) for negative tall x, o Heltall, skrevet ut som heksadesimale (radix 16) eller oktale (radix 8) f Float skrevet på form [-] d.ddd. Med mindre annet er oppgitt, er det brukt 6 plasser etter desimaltegnet e g s Float skrevet som [-] d.ddde ± dd, dvs e + 01 for å skrive (dvs ). Float, som f eller e avhengig av hvor mange som er konvertert Streng % %-tegn; ingen argument å konvertere Nedenfor følger (Escape-karaktererer) spesialtegn som kan skrives inn i tekststrenger som gjør spesielle operasjoner: \n Gir linjeskift \t Hopper til neste tabulator \ Skriver ut tegnet \ Skriver ut tegnet \\ Skriver ut tegnet \ I eksempelet nedenfor brukes * width for å formatere en tabell med frukt priser, hvor bruker legger inn den totale bredden på tabellen:

7 Strengbehandling og enkle beregninger side 7 av 15 Figur 2. Eksempel på formattering av en prisliste. 4. Betingede kontrollstrukturer Betingede kontrollstrukturer trenger vi for å ta beslutninger for å utføre situasjonsbetingede handlinger. I Python har man en hvis-setning (if-statement) som utgjør dens betingede kontrollstruktur. Hvis en betingelse er tilfredsstilt, utføres handling (en eller flere kodelinjer) ellers utføres den ikke. if omsetning > 2000: bonus = 100 print("bonus er oppnådd!") Man kan også utføre andre instruksjoner ved å legge dem i en else-blokk. Et if-else uttrykk vil kjøre en blokk av kode hvis betingelsen er sann (True) og en annen blokk av kode hvis betingelsen er usann (False). Et if-else uttrykk brukes for å velge mellom to alternative handlinger / kodeblokker. Ofte kaller man dette for en hvis-så-ellers-struktur: if omsetning > 2000: # Betingelsen er sann else: print("bonus er oppnådd!") # Betingelsen er usann print("bonus er ikke oppnådd!") Om man vil utføre flere tester, kan man bruke elif, en sammentrekning av else og if, som sjekker en ny betingelse om den første ikke ble oppfylt: if (omsetning >= 2000): bonus = 100 elif(omsetning >= 1500): bonus = 75 elif(omsetning >= 1000): bonus = 50 else: bonus = 25

8 Strengbehandling og enkle beregninger side 8 av 15 Kun en av betingelsene vil slå til i eksemplet ovenfor. Man kan også bruke nøsting av if setninger, men det kan fort bli uoversiktlig. Bruk av elif gir bedre oversikt og mer lesbar kode. 5. Løkker I tillegg til betingede kontrollstrukturer har vi to typer løkker. Den ene er en betinget løkke(while-løkker), som likner på if, men utføres flere ganger, og en løkke for å gå gjennom lister og andre sekvensielle data. Det er nyttig å kunne gjenta en del av et program flere ganger, uten å skrive det samme mange ganger. Til dette bruker man løkker while-løkker while-løkker brukes for å gjenta en oppgave mange ganger til en betingelse (ikke lenger) er oppfylt. Det er en fordel å bruke while-løkker ved gjentagelse av kode hvor man ikke helt vet hvor mange ganger koden skal gjentas. Den generelle syntaksen er som følger: while betingelse : <oppgave som gjentas> Koden her deklarerer og instansierer en variabel x med verdi 0. Løkken gjør at x blir skrevet ut etterfulgt av et linjeskift, for deretter å bli økt med 1. Den vil kjøres 10 ganger. while x < 10: print x x = x + 1 Validering av input ved hjelp av løkker Ofte ønsker man å sikre seg at riktig verdier på input fra brukeren før programmet går videre. Det kan man gjøre ved hjelp av while-løkke: alder = int(input("hvor gammel er du? ")) while (alder < 0 or alder > 100): print("feil: Alder må være mellom 0 og 100!") alder = int(input("hvor gammel er du? ")) print("takk for den!!!") for-løkker for-løkke brukes vanligvis for å gjenta en oppgave et kjent antall ganger. Hvis man skal gjenta en kodesnutt et bestemt antall ganger, bruker man en for-løkke. En fordel å bruke hvis man skal gjøre noe med alle elementene i ei liste eller en tabell. Den generelle syntaksen er som følger: for i in liste : <oppgave som gjentas>

9 Strengbehandling og enkle beregninger side 9 av 15 'liste' kan her for eksempel erstattes med range(10), som vil generere en liste fra 0 til 9. Her gjøres akkurat det samme som i while-løkken i eksempelet ovenfor. Tellevariabelen er innlemmet i løkken. for i in range(10) : print 1 En for-løkke kan også kjøres på en variabel som inneholder en liste av verdier. Følgende eksempel skriver ut navnene til skjerm i rekkefølge: navneliste=[ Ole, Per, Oline, Anna, Frida ] for navn in navneliste: print (navn) En for-løkke kan iterere (gå igjennom) ei liste av alle typer verdier (strenger, heltall, flyttall, sannhetsverdier osv. En løkke inne i en annen løkke kalles nøstede løkker. Noen fenomener er av en slik art at man trenger en hierarkisk gjennomkjøring av løkke. Tid er et godt eksempel der man teller først 60 sekunder, før man øker minutt med 1 osv. Utskrift av tid som nøstede løkker: for t in range(24): for m in range(60): for s in range(60): print(t,":",m,":",s) 6. Listemetoder og noen innebygde funksjoner Man kan også gå igjennom en liste element for element (iterere) ved å bruke ei for-løkke på følgende format: for element in liste: print(element) # Eller gjør noe annet med element liste er navnet på variabelen som inneholder en liste og element er en variabel som får verdien av hvert element i lista. Indeksering Indeks er et tall som spesifiserer et elements posisjon i en liste. Det gir tilgang til de enkelte elementer i en listen. Indeksen til det første elementet er 0, det andre 1, og det n-te elementet er n-1 Negative indekser identifiserer posisjoner relativt til listens slutt. Indeksen -1 identifiser det siste elementet, -2 det nest siste osv. Funksjonen len Funksjonen len returnerer lengden til en sekvens, som for eksempel lengden av en liste size = len(my_list) returnerer antallet elementer i listen, slik at det siste elementet er len(list)-1 ettersom indeks starter på 0 og ikke 1. Man kan bruke dette til å hindre en IndexError-exception når man itererer gjennom en liste i en løkke.

10 Strengbehandling og enkle beregninger side 10 av 15 Konkatinere lister Å konkatinere, dvs. å føye to ting sammen kan gjøres ved å bruke operatoren +. De to listene lsta =[1,2,3,4,5] og lstb=[2,4,6,8,10] kan konkatineres slik at lstc=lsta+lstb # gir [1,2,3,4,5,2,4,6,8,10] Den utvidede operatoren += kan også brukes til å konkatinere lister (legge til element(er) til lista). lsta=[1,2,3] lsta+=[4] # Gir lsta=[1,2,3,4] dvs. det samme som lsta = lsta +[4]. Man kan endre på innhold på deler av lister ved hjelp av slice på følgene format: liste[start:slutt:inkrement] = [ ]. Hvis start ikke er spesifisert, brukes 0 som startindeks og hvis slutten ikke spesifiseres brukes len(list) som sluttindeks. Slicing-uttrykk kan inneholde stegverdier og negative indekser, som er relative til listens slutt. Se eksempler under: Figur 3. Eksempler på operasjoner på lister. Noen nyttige metoder og innebygde funksjoner En metode er en funksjon som er tett koplet til et eller annet objekt, det være seg en liste, et tall, en streng, eller hva som helst. Generelt kaller man en metode slik: object.method (argumenter) Som man kan se, ser en metode ut som et funksjonskall, bortsett fra at objektet er satt før metodenavnet, med en prikk som skiller dem. Lister har flere metoder som lar deg undersøke eller endre innholdet. Se eksempler under:

11 Strengbehandling og enkle beregninger side 11 av 15 Figur 4. Eksempler på metoder som kan brukes på lister 7. Mer om funksjoner Når vi ønsker å utføre samme operasjon flere ganger er det nyttig å definere en funksjon. Funksjonen kan ta et antall parametre som input og returnere en resultatverdi. Parametre er variabler som blir sendt til en funksjon når funksjonen blir kalt opp. Når man definerer/lager en funksjon bruker man det reserverte ordet def. All koden i funksjonen (kroppen) skrives i innrykk. Man avslutter med return (når noe skal returneres) Det er flere fordeler med å dele opp et program i funksjoner: Koden blir enklere å lese og forstå (mer logisk), enklere med gjenbruk av kode og testing og debugging. I tillegg er det raskere å utvikle når man bruker funksjoner da kode som trengs i flere deler av systemet kan brukes flere ganger. En funksjon lages ved å skrive definisjonen av funksjonen: def funksjons_navn (): kode kode etc. Første linje kalles funksjonshode: Markerer starten på funksjon med det reserverte ordet def, fulgt av navnet på funksjonen, parenteser og et kolon. Resten av koden kalles ei kodeblokk som hører til funksjonen. Kodeblokken må skrives med innrykk. Funksjoner kjøres helt uavhengig av hovedprogrammet. En funksjon er som en miniatyr program som noen parametere er gitt til - det da driver seg selv, og deretter returnerer en verdi. Hovedprogrammet ser bare den returnerte verdien. Her følger et eksempel på en funksjon som summerer to gitte tall: # summerer to gitte tall

12 Strengbehandling og enkle beregninger side 12 av 15 # definerer funksjonen def add(x, y): """Denne funksjonen summerer to tall""" return x + y tall1 = input('enter first number: ') tall2 = input('enter second number: ') print(tall1,"+",tall2,"=", add(tall1,tall2)) I Python kan en funksjon returnere flere verdier, spesifisert etter return-uttrykket, atskilt av kommaer på følgende format: return uttrykk1, uttrykk2, etc. Ved kall trenger du en variabel på venstresiden av = for hver returnert verdi: def get_name(): first_name=input("first name? ") last_name=input("last name? ") return first_name,last_name Her følger et eksempel med 3 verdier: def setning(ord_1, ord_2, ord_3): print "Setningen blir: " + ord_1 + ord_2 + ord_3 return ord_1 + ord_2 + ord_3 Man kan også ha boolsk funksjon, dvs. funksjoner som returnerer enten True eller False. Typiske bruksområder for slike funksjoner er ved testing av et kriterium for beslutninger (if, while ), forenkle sjekk av inndata for gyldighet, spørre om verdier og bare godta enkelte verdier ved å returnere True hvis inndata er en av disse. Her følger et lite program hvor man har flere funksjoner: # Definisjon av funksjonen lager_oslo def lager_oslo(): antall = 1000 # Variabelen antall kun for lager_oslo() print('lagert i Oslo', antall,'varetyper') # Definisjon av funksjonen lager_narvik def lager_narvik(): antall = 2000 # Variabelen antall kun for lager_narvik() print('lageret i Narvik har',antall,'varetyper') # Kall av funksjonen def main(): main() lager_oslo() lager_narvik()

13 Strengbehandling og enkle beregninger side 13 av Bruk av modulene math og random Python inneholder en rekke moduler og biblioteker som kan importeres til et program noe som gir fleksibilitet i hvordan man kan gjennomføre programmet. For eksempel, for programmer som krever matematikk, kan du importere og bruke en rekke biblioteker innenfor Python. Hovedbiblioteket for matematiske funksjoner i Python er kjent som math. Import og bruk av denne modulen er grei. Ved bruk av modulen: #Import av pakke(modul) import math #Kalle funksjon, for eksempel y=math.sin(x) # Bruke konstant, for eksempel omkr=2*math.pi*r Math-modulen i python gir deg mer avanserte mattefunksjoner(kvadratrot, cosinus, sinus) som ikke er med fra standard og matematiske konstanter som f.eks. pi og e. For en oversikt over funksjonene i math se: I figur 5. følger noen eksempler på bruk av math:

14 Strengbehandling og enkle beregninger side 14 av 15 Figur 5. Eksempler på bruk av modulen math. Buk av modulen random Random-modulen i python er biblioteksfunksjoner for generering av tilfeldige tall. Mulige bruksområder kan være spill og simuleringer og f.eks. statistiske analyser. Her er flere eksempel på hvordan metoden kan brukes from random import * print random() #Gir et vilkårlig tall mellom 0 og 1: print randint(1,100) #tilfeldig heltall [fra,til] L = [7, 3, 8, 5, 6] choice(l) print choice(l) # liste med navn

15 Strengbehandling og enkle beregninger side 15 av 15 liste = ['Pierre', 'Paul', 'Jacques'] print choice(liste) 9. Numpy og Scipy Numpy I tillegg til de tradisjonelle matematiske verktøy tilgjengelig i Python, finnes det en annen modul kalt NumPy som man kan bruke til spesielle beregninger. NumPy er en utvidelse/bibliotek til Python som gir tilgang til matriser og multidimensjonelle tabeller, og støtte for disse samt et stort bibliotek med høy nivå matematiske funksjoner. NumPy er opensource, og har vært i utvikling siden Store deler av NumPy er skrevet i C som gjør at det er raskere en vanlig Python. Vi kommer ikke til å bruke NumPy i dette kurset. Det er vanlig å installere NumPy som en del av en større Scientific Computing pakke. Man vil da installere NumPy som en del av en samling andre relaterte verktøy. SciPy SciPy er et åpent kildekode Python bibliotek som brukes av forskere, analytikere, og ingeniører til vitenskapelig og teknisk databehandling. SciPy inneholder moduler for optimalisering, lineær algebra, integrasjon, interpolering, signal og bildebehandling, ODE løsere og andre oppgaver som er vanlig i vitenskap og engineering. SciPy er også et utviklingsmiljø, som inneholder blant annet SciPy og NumPy bibliotekene, i tillegg til ipython, matplotlib, pandas med mer. SciPy bruker de multidimensjonelle tabellene fra NumPy som datastruktur, og implementerer en egen generisk variant av de forskjellige metodene (lineær algebra, fourier transjormasjoner og generering av pseudorandom tall) som man også har i NumPy. I tillegg er det mange metoder i SciPy som ikke finnes i NumPy. Fagområder som kan ha nytte av å bruke SciPy er: lineær algebra, signalprosessering, datainnsamling og beregeningsorientert geometri. Vi kommer ikke til å bruke SciPy i dette kurset, men hvis man er interessert kan man finne mer informasjon om SciPy her: Hvis man ønsker å teste ut NumPy eller SciPy anbefales det at man installerer hele samlingen av programmer og verktøy via en distribusjon. De fleste distribusjoner er "last ned og kjør installer, og så er man igang. Her følger link til tre varianter som har installasjonsfiler for Mac, Linux og Windows plattformen. Anaconda: Entought: Algorete Loopy:

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

Oppsummering fra sist

Oppsummering fra sist 1 av 34 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Terje Rydland - IDI/NTNU 2 av 34 Oppsummering fra sist Betingelser i Python: ,

Detaljer

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

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Løkker 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 i programmet Fra tastatur:

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

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

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker. - 3rd edition: Kapittel 4. Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker - 3rd edition: Kapittel 4 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av

Detaljer

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æ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. 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker - 3rd edition: Kapittel 4 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av

Detaljer

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.

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. 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5 Terje Rydland - IDI/NTNU 2 Læringsmål og pensum Mål Lære om begrepet løkker

Detaljer

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

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen. Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] Webprogrammering høsten 2015 //funksjonskall printhallo(); //enda en gang printhallo();

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

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

Utførelse av programmer, metoder og synlighet av variabler i JSP Utførelse av programmer, metoder og synlighet av variabler i JSP Av Alf Inge Wang 1. Utførelse av programmer Et dataprogram består oftest av en rekke programlinjer som gir instruksjoner til datamaskinen

Detaljer

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

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Intro til funksjoner TDT4110 IT Grunnkurs Professor Guttorm Sindre Snart referansegruppemøte Viktig mulighet for å gi tilbakemelding på emnet Pensumbøker Forelesninger Øvingsforelesninger Veiledning

Detaljer

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler Utgave 3: Kap 1 av 44 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler Utgave 3: Kap. 5.7-5.10 Terje Rydland - IDI/NTNU 2 av 44 Læringsmål og pensum Mål Beherske

Detaljer

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

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Valg og betingelser TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Kunne forstå og bruke if-setninger sammenlikning av strenger nøstede beslutningsstrukturer betingelser

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

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

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

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

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Løkker TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Forstå hvorfor vi trenger løkker i programmering Ha kjennskap to ulike typer løkker (while-løkke, for-løkke) Og vite

Detaljer

INF109 - Uke 1b 20.01.2016

INF109 - Uke 1b 20.01.2016 INF109 - Uke 1b 20.01.2016 1 Variabler Et program er ikke til stor hjelp hvis det er statisk. Statisk betyr at programmet bare bearbeider faste data som er lagt inn i programkoden. For å gjøre programmer

Detaljer

TDT4102 Prosedyreog objektorientert programmering Vår 2016

TDT4102 Prosedyreog objektorientert programmering Vår 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 2 Frist: 2016-01-29 Mål for denne øvingen:

Detaljer

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 4 1 Tre måter å lese fra terminal Først:

Detaljer

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

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu. 1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.no 2 Frist for øving 1: Fredag 11. Sept. Noen oppstartsproblemer

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

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

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Av Jo Skjermo (basert på Alf Inge Wang sin versjon om JSP). 1. Utførelse av kode i kommando/kalkulatormodus Et dataprogram består oftest

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 1 Frist: 2014-01-24 Mål for denne øvinga:

Detaljer

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

Læringsmål og pensum. Intro til returverdifunksjoner: Generering av tilfeldige tall 27/09/16 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler - 3rd edition: Kapittel 5.7-5.10 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Beherske returverdier og returverdifunksjoner

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 1 En oversikt over C-språket Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske

Detaljer

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER .9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,

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

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler. - 3rd edition: Kapittel Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler - 3rd edition: Kapittel 5.7-5.10 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Beherske returverdier og returverdifunksjoner

Detaljer

TDT4102 Prosedyreog objektorientert programmering Vår 2016

TDT4102 Prosedyreog objektorientert programmering Vår 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 4 Frist: 2016-02-12 Mål for denne øvingen:

Detaljer

Kanter, kanter, mange mangekanter

Kanter, kanter, mange mangekanter Kanter, kanter, mange mangekanter Nybegynner Processing PDF Introduksjon: Her skal vi se på litt mer avansert opptegning og bevegelse. Vi skal ta utgangspunkt i oppgaven om den sprettende ballen, men bytte

Detaljer

Øvingsforelesning i Python (TDT4110)

Øvingsforelesning i Python (TDT4110) Øvingsforelesning i Python (TDT4110) Tema: Øving 1, PyCharm, Print, Input, (funksjoner og globale variabler) Gå til https://www.jetbrains.com/pycharm/ og sett PyCharm på nedlasting NÅ Kristoffer Hagen

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 1 Frist: DD.MM.YYYY Mål for denne øvinga:

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

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

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder: Lese fra fil Filbehandling Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo INF1000 : Forelesning 5 Vi må først importere pakken easyio Vi åpner

Detaljer

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

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Løkker TDT4110 IT Grunnkurs Professor Guttorm Sindre Referansegruppe MTTK: havardmellbye@gmail.com MTMT: Daniel.Vadseth@hotmail.com MTDESIGN 9valinn@gmail.com MTKOM: jonbs@stud.ntnu.no MLREAL:

Detaljer

Løse reelle problemer

Løse reelle problemer Løse reelle problemer Litt mer om løkker, metoder med returverdier og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve Repetisjon fra forrige uke: while Syntaks: while (condition) do1; do2;... Eksempel:

Detaljer

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster 3 emner i dag! INF1000 Uke 5 Litt om objekter, pekere og null Filer og easyio Litt mer om tekster Litt om objekter, filer med easyio, tekst 1 2 Objekter og pekere Vi lager pekere og objekter når vi bruker

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

Oversikt. INF1000 Uke 6. Objekter, pekere og null. Lese og skrive fra/til fil. Litt om objekter, pekere og null Filer og easyio. Litt mer om tekster

Oversikt. INF1000 Uke 6. Objekter, pekere og null. Lese og skrive fra/til fil. Litt om objekter, pekere og null Filer og easyio. Litt mer om tekster Oversikt INF1000 Uke 6 Litt om objekter, pekere og null Filer og easyio. Litt mer om tekster Litt om objekter, filer med easyio, tekst Arne Maus 1 2 Objekter, pekere og null Vi lager pekere og objekter

Detaljer

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

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum

Detaljer

Mattespill Nybegynner Python PDF

Mattespill Nybegynner Python PDF Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige.

Detaljer

Python: Funksjoner og moduler Kapittel

Python: Funksjoner og moduler Kapittel Python: Funksjoner og moduler Kapittel 5.7-5.10 TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Kunne lage og kalle funksjoner med returverdi Bruke bibliotek i Python, f.eks random

Detaljer

Forelesningsquiz. Forelesning inf1000 - Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.

Forelesningsquiz. Forelesning inf1000 - Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min. Forelesning inf1000 - Java 5 Forelesningsquiz Tema: En liten quiz (se utdelt ark) Filbehandling Tekster Ole Christian Lingjærde, 19. september 2012 Sett dere to (eller tre) sammen og besvar de fire spørsmålene

Detaljer

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

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Variable og beregninger, input og utskrift TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål for denne uka: Vite litt om design av programmer (2.1, 2.2, 2.4) Kunne skrive ut

Detaljer

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 10 Frist: 2014-04-11 Mål for denne øvinga:

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

Hvordan løse problemer med programmering?

Hvordan løse problemer med programmering? Start screencast!! (tidlig..) Ha klar glass med linser Lukk programmer, untatt Atom, Keynote, Terminal Hvordan løse problemer med programmering? Problemløsning, løkker, og funksjoner med parametre IN1000,

Detaljer

Introduksjon til beslutningsstrukturer

Introduksjon til beslutningsstrukturer [Kurssidene] [ ABI - fagsider bibin ] Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 Introduksjon til beslutningsstrukturer Michael Preminger (michaelp@hio.no) 24/01-14 Repitisjon fra

Detaljer

TDT4110 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2016 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

Detaljer

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være

Detaljer

Leksjon 3. Kontrollstrukturer

Leksjon 3. Kontrollstrukturer 6108 Programmering i Java Leksjon 3 Kontrollstrukturer Del 2 Løkker Roy M. Istad 2015 Utførelse av et program Programflyt så langt start setning setning setning setning Sekvensielt Alle setninger utføres,

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

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/09-15. Vi holder orden på verdier med hjelp av variabler

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/09-15. Vi holder orden på verdier med hjelp av variabler [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/09-15 Vi holder orden på verdier med hjelp av variabler Vi lagrer verdier i variabler. Variabelnavn uttrykker verdienes rolle

Detaljer

Ta inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man

Ta inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man Eksempel med to-dimensjonal array Filbehandling Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 6 Vi skal lage et program som illustrerer

Detaljer

Programmering Høst 2017

Programmering Høst 2017 Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør

Detaljer

TDT4110 IT Grunnkurs Høst 2016

TDT4110 IT Grunnkurs Høst 2016 TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Auditorieøving 1 Vennligst fyll ut følgende informasjon i blokkbokstaver

Detaljer

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

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, 1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.no 2 Frist for øving 1: Fredag 16. Sept. Noen oppstartsproblemer

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke [Kurssidene] [ ABI - fagsider bibin ] Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Michael Preminger

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

22.02.2009. Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java

22.02.2009. Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java Spørsmål fra forrige forelesning INF1000 Forelesning 7 Operator-presedens i Java? Hvordan virker metodene inword()/inint()/etc. i In-klassen i easyio når vi skriver inn flere verdier på tastaturet? Litt

Detaljer

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk Side 1 av 20 Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk Bokmål Eksamen i emnet INF100 Grunnkurs i programmering Torsdag 27. november 2014 Tid: 09:00 14:00

Detaljer

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl. 09.00 13.

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl. 09.00 13. BOKMÅL Side 1 av 5 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTERINGSEKSAMEN

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Øving 1 LF LØSNINGSFORSLAG Mål for denne øvinga:

Detaljer

Python: Funksjoner og moduler Kapittel

Python: Funksjoner og moduler Kapittel Python: Funksjoner og moduler Kapittel 5.7-5.10 TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Kunne bruke bibliotek i Python, f.eks random og math Kunne lage og kalle egne funksjoner

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

Norsk informatikkolympiade 2014 2015 1. runde. Sponset av. Uke 46, 2014

Norsk informatikkolympiade 2014 2015 1. runde. Sponset av. Uke 46, 2014 Norsk informatikkolympiade 014 015 1. runde Sponset av Uke 46, 014 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.

Detaljer

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

Høst 2014. Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4105 IT Grunnkurs Høst 2014 Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Øving 5 1 Teori a) Hva er den binære ASCII-verdien av bokstaven E (stor e)?

Detaljer

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

Python: Variable og beregninger, innlesing fra tastatur utskrift til skjerm. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Variable og beregninger, innlesing fra tastatur utskrift til skjerm TDT4110 IT Grunnkurs Professor Guttorm Sindre Python, pensum og ikke Vi trenger å Støttes av Hente data fra bruker Vise data

Detaljer

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger I dag INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Litt repetisjon Mer om uttrykk Lesing og skriving til terminal Forgreninger

Detaljer

Øvingsforelesning i Python (TDT4110)

Øvingsforelesning i Python (TDT4110) Øvingsforelesning i Python (TDT4110) Tema: Øving 2, Betingelser, if/elif/else Kristoffer Hagen Oversikt Praktisk informasjon Gjennomgang av Øving 1 Oppgaver for Øving 2 2 Praktisk Bruke andre studasser

Detaljer

Shellscripting I. Innhold

Shellscripting I. Innhold Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Shellscripting I Tor Halsan 19.08.2010 Lærestoffet er utviklet for faget LN199D Scripting av Servere Resymé: Leksjonen er første innføring

Detaljer

Tre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang. Sjekkliste. Introduksjon

Tre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang. Sjekkliste. Introduksjon Tre på rad mot datamaskinen Erfaren Python Introduksjon I dag skal vi prøve å skrive kode slik at datamaskinen kan spille tre på rad mot oss. Datamaskinen vil ikke spille så bra i begynnelsen, men etterhvert

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang

Detaljer

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i. Skilpaddeskolen Steg 1: Flere firkanter Nybegynner Python Åpne IDLE-editoren, og åpne en ny fil ved å trykke File > New File, og la oss begynne. Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell'

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

Beskrivelse av programmeringsspråket Simpila INF5110 - Kompilatorteknikk Våren 2012

Beskrivelse av programmeringsspråket Simpila INF5110 - Kompilatorteknikk Våren 2012 Beskrivelse av programmeringsspråket Simpila INF5110 - Kompilatorteknikk Våren 2012 Her beskrives syntaksen og den statiske semantikken (hva som skal sjekkes av kompilatoren) til språket Simpila. Den dynamiske

Detaljer

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

YouTube-kanal ITGK.  Læringsmål og pensum 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner - 3rd edition: Kapittel 5.1-5.6 Professor Alf Inge Wang 2 YouTube-kanal ITGK Professor Guttorm Sindre (foreleser den andre Python-parallellen

Detaljer

TOD063 Datastrukturer og algoritmer

TOD063 Datastrukturer og algoritmer TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage

Detaljer

Objektorientert programmering i Python

Objektorientert programmering i Python Objektorientert programmering i Python IN1000 Høst 2019 uke 8 Siri Moe Jensen Læringsmål uke 8 Repetisjon fra forrige uke Definere en klasse, opprette og arbeide med objekter: How-to

Detaljer

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

TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner. - 3rd edition: Kapittel Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner - 3rd edition: Kapittel 5.1-5.6 Professor Alf Inge Wang 2 YouTube-kanal ITGK Professor Guttorm Sindre (foreleser den andre Python-parallellen

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

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

Detaljer

Øvingsforelesning 3 Python (TDT4110)

Øvingsforelesning 3 Python (TDT4110) Øvingsforelesning 3 Python (TDT4110) For og While-løkker Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av øving 1 Programmering for Øving 3 2 Studasser og Piazza Studasser er der for å hjelpe

Detaljer

Læringsmål og pensum. Oversikt

Læringsmål og pensum. Oversikt 1 2 Læringsmål og pensum TDT4105 Informasjonsteknologi grunnkurs: Uke 39 Betingede løkker og vektorisering Læringsmål Skal kunne forstå og programmere betingede løkker med while Skal kunne utnytte plassallokering

Detaljer

16 Programmere TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

16 Programmere TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5 16 Programmere Skrive et program på TI-86... 248 Kjøre et program... 256 Arbeide med programmer... 258 Laste ned og kjøre et assemblerspråkprogram... 261 Skrive inn og lagre en streng... 263 TI -86 M1

Detaljer

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

Auditorieøvingstider for alle linjer er postet på forsiden av wikien (under «Siste nytt»). Studenter som ikke kan møte til oppsatt tidspunkt, kan 1 av 44 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler Utgave 3: Kap. 5.7-5.10 Terje Rydland - IDI/NTNU 2 av 44 Auditorieøving Auditorieøvingstider

Detaljer

Hemmelige koder. Kodeklubb-koden. Steg 1: Alfabetet. Sjekkliste. Introduksjon

Hemmelige koder. Kodeklubb-koden. Steg 1: Alfabetet. Sjekkliste. Introduksjon Hemmelige koder Nybegynner Python Introduksjon Legg bort skilpaddene dine, i dag skal vi lære hvordan vi kan sende hemmelige beskjeder! Kodeklubb-koden Et chiffer er et system for å gjøre om vanlig tekst

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

Informasjon Prøveeksamen i IN1000 høsten 2018

Informasjon Prøveeksamen i IN1000 høsten 2018 Prøveeksamen IN1000-INF1001-H18 Informasjon Prøveeksamen i IN1000 høsten 2018 Tid Fra tirsdag 6.11 kl. 14:15 til tirsdag 13.11 kl. 12:00 (Normal eksamenstid er 4 timer) Oppgavene Oppgave 2b og 2c er flervalgsoppgaver.

Detaljer

Visuell Programmering: Kom i gang med Processing

Visuell Programmering: Kom i gang med Processing Visuell Programmering: Kom i gang med Processing Et enkelt program: Syntaks introdusert: Kommentarer, print(), println(), size(). + Start opp processing + Skriv en åpningskommentar på toppen av programmet

Detaljer

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

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen Forkurs INF1010 Dag 1 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output

Detaljer

INF 1000 høsten 2011 Uke september

INF 1000 høsten 2011 Uke september INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første

Detaljer

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk

Detaljer

Kompleksitetsanalyse Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

Kompleksitetsanalyse Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder Innhold 1 1 1.1 Hva er en algoritme?............................... 1 1.2

Detaljer