Introduktion till programmering SMD180. Föreläsning 9: Tupler
|
|
- David Gustafsson
- för 8 år sedan
- Visningar:
Transkript
1 Introduktion till programmering Föreläsning 9: Tupler 1 1
2 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3] Nytt för idag: tupler Sekvenser av vad som helst (likt listor) Icke muterbara (likt strängar) Syntax: (1, 2, 3) 2 2
3 Tupel-operationer Grundidé: samma operationer som för listor >>> ('a', 0) * 3 ('a', 0, 'a', 0, 'a', 0) >>> x = (1, 2, 3) + ('a', 'b') >>> x[:] (1, 2, 3, 'a', 'b') >>> x[1:3] (2, 3) >>> x[0] 1 Men: >>> x[0] = 8 TypeError: object doesn't support item assignment 3 3
4 En lite udda detalj Minns: listan med endast ett element x skrivs [x] ej samma sak som att skriva endast x Tupeln med endast ett element x kan dock inte skrivas (x) detta betyder ju enbart x (med onödiga parenteser) Pythons fix för att lösa problemet: ett extra komma! Alltså: tupeln med endast ett element x skrivs (x,) Varför är detta viktigt? Se exempel: >>> (1, 2, 3) + (4) TypeError: can only concatenate tuple (not "int") to tuple >>> (1, 2, 3) + (4,) (1, 2, 3, 4) 4 4
5 Tupler kontra listor Varför behövs tupler över huvud taget om det enda som skiljer gentemot listor är att man inte kan mutera tupler? Svar 1: Tupler kan av denna anledning användas på sätt som listor inte kan, inte minst fungera som nycklar i dictionaries Svar 2: Det finns en stark tradition (inom många språk) att skilja på homogena strukturer med variabel längd (listor) och heterogena strukturer med fix längd (tupler) Svar 3: Likheten mellan tupler och argumentlistor är elegant...! 5 5
6 Tupler som resultat En funktion som kastar om sina två argument: def swap(x, y): return (y, x) En funktion som hittar en listas extremvärden: def bounds(list): min = max = list[0] for x in list: if x < min: min = x if x > max: max = x return (min, max) 6 6
7 Tupeltilldelning Syntaktisk finess i Python: I stället för temp = a a=b b = temp kan man skriva (a, b) = (b, a) Här (liksom i många andra sammanhang) går det bra att utelämna parenteserna runt en tupel: a, b = b, a Observera: alla uttryck på högersidan evalueras före någon av tilldelningarna får effekt 7 7
8 Kontrollfråga Varför fungerar inte följande variant av swap? def swap2(x, y): x, y = y, x Svar: för att effekten av tilldelningen endast är lokal! Se följande stackdiagram för anropet swap2(a, b) -toplevel- swap2 a b 3 7 x y 8 8
9 Listor och tupler Listor förväntas oftast innehålla samma typ av element i alla positioner, medan längden kan variera: for x in list:... Tupler däremot förutsätts ofta ha en låst längd, men kan ha olika typer av element i olika positioner: (k,v) = tuple: if k == 'SMD': return v+1 Notera: Python tillåter egentligen både heterogena listor och iteration över tupler, men mönstren ovan blir svåra att använda om uppdelningen mellan listor och tupler inte följs 9 9
10 Om slumpen Kan vi med det vi nu vet om programmering skriva en funktion vars resultat är fullständigt slumpmässigt? Svar: Nej! Ett Python-program (och en dator) beter sig alltid på exakt samma sätt, givet samma input Vad vi däremot kan göra är att skapa matematiska talserier som ser slumpmässiga ut (pröva t ex att upprepa a = (a * ) % 32749) ge ett sant slumpmässigt värde som input (t ex nanosekund-decimalerna på datorns klocka vid start) Ofta är en kombination av dessa tekniker den bästa lösningen (startvärde som input, därefter talserier) 10 10
11 Modulen random Innehåller ett flertal funktioner som beräknar pseudoslumpmässiga talserier enligt diverse statistiska fördelningar, med startvärde baserat på ett verkligt slumptal (datorns klocka) Användbar funktion: random.random() returnerar ett nytt pseudoslumptal varje gång den anropas, jämt fördelat i intervallet 0.0 x < 1.0: import random for i in range(10): x = random.random() print x Önskas annat intervall? Multiplicera x med maxvärdet! 11 11
12 Listor med slumptal Skapa först listan med enbart nollor, mutera sedan: def randomlist(n): s = [0.0] * n for i in range(n): s[i] = random.random() return s Körning: >>> randomlist(6) [ , , , , , ] Hur pass jämt fördelar sig dessa tal? 12 12
13 Låt oss räkna Räknande kod som vi redan sett: count = 0 for char in fruit: if char == 'a': count = count + 1 print count Låt oss återanvända, med små förändringar: count = 0 for num in list: if low < num < high: count = count + 1 print count 13 13
14 Räkna slumptal Inkapslat som en funktion: def inbucket(list, low, high): count = 0 for num in list: if low <= num < high: count = count + 1 return count Grov koll om slumptalen är jämt fördelade: x = randomlist(50) lower = inbucket(x, 0.0, 0.5) upper = inbucket(x, 0.5, 1.0) print lower, upper 14 14
15 Räkna slumptal Mer finkorning kontroll: bucket1 = inbucket(x, 0.0, 0.25) bucket2 = inbucket(x, 0.25, 0.5) bucket3 = inbucket(x, 0.5, 0.75) bucket4 = inbucket(x, 0.75, 1.0) Observation: om vi vill dela in intervallet i n delar kommer varje del at ha bredden 1.0/n Vi generaliserar med hjälp av en snurra: bucketwidth = 1.0/numBuckets for i in range(numbuckets): low = i * bucketwidth high = low + bucketwidth
16 Räkna slumptal Efter inkapsling: def histogram(list, numbuckets): buckets = [0] * numbuckets bucketwidth = 1.0 / numbuckets for i in range(numbuckets): low = i * bucketwidth high = low + bucketwidth buckets[i] = inbucket(list, low, high) return buckets Körning: >>> histogram( randomlist(1000), 8 ) [138, 124, 128, 118, 130, 117, 114, 131] 16 16
17 Om effektivitet Om vår lista har N slumptal, och hela listan ska testas gentemot M "hinkar"... det blir N*M*2 jämförelser! Detta är inte vidare effektivt det borde gå att undersöka slumptalens fördelning genom att gå igenom slumptalslistan endast en gång Låt oss i stället för varje slumptal 0 x < 1.0 försöka hitta index för motsvarande hink, givet att vi har numbuckets hinkar Detta index borde vara närmaste heltal mindre eller lika med x*numbuckets dvs int(x*numbuckets)! 17 17
18 En effektivare variant Ny algoritm: def histogram2(list, numbuckets): buckets = [0] * numbuckets for x in list: index = int(x*numbuckets) buckets[index] = buckets[index] + 1 return buckets Skillnaden mellan histogram och histogram2 syns inte i vad som beräknas, endast i hur lång tid beräkningarna tar histogram2: tiden är proportionell mot listans längd histogram: tiden är proportionell mot listans längd gånger antalet hinkar 18 18
19 Komplexitet Vi säger att histogram och histogram2 har olika tidskomplexitet Komplexitet är ett mått på hur väl en lösning kan appliceras på stora datamängder, dvs hur effektiv lösningen är "i allmänhet" Om vi låter både antalet slumptal och antalet hinkar växa mot oändligheten ser vi att histogram har kvadratisk tidskomplexitet, medan histogram2 är linjär Både tidskomplexitet och det nära besläktade begreppet minneskomplexitet kommer att återkomma i högre datatekniska kurser! 19 19
Introduktion till programmering D0009E. Föreläsning 9: Tupler och dictionaries
D 0 0 0 9 E Introduktion till programmering D0009E Föreläsning 9: Tupler och dictionaries 1 D 0 0 0 9 E Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser
Introduktion till programmering SMD180. Föreläsning 8: Listor
Introduktion till programmering Föreläsning 8: Listor 1 1 Listor = generaliserade strängar Strängar = sekvenser av tecken Listor = sekvenser av vad som helst Exempel: [10, 20, 30, 40] # en lista av heltal
Språket Python - Del 1 Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR
Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering
Föreläsning 3 Programmeringsteknik och C DD1316 Innehåll i listor En lista kan innehålla element av olika typer: [ hej, 151, 10.59] uppdateringsoperatorer listor tupler strängar for-slingor importera moduler
Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion
Introduktion till programmering D0009E Föreläsning 6: Iteration Multipel tilldelning Helt ok att tilldela en variabel flera gånger: bruce = bruce, bruce = 7 bruce Output: 7 Som tillståndsdiagram: bruce
Python. Datatyper. Mer om datatyper. Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam!
Python Mer om datatyper Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam! Datatyper Dictionaries - {1: camelot,2: shrubbery } Tupler - (1,2,3,) 1 Lite om strängar Strängar innehåller specialtecken
Introduktion till programmering SMD180. Föreläsning 7: Strängar
Introduktion till programmering Föreläsning 7: Strängar 1 1 En sammansatt datatyp En sträng är ett enhetligt värde, som kan lagras i variabler och fungera som operand eller funktionsargument en datastruktur
Problemlösning och funktioner Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Problemlösningsstrategier Repetition av funktioner Mer om funktioner 2 Problemlösningsstrategier 3 PROBLEMLÖSNINGSSTRATEGIER Strategier Det finns ett flertal olika ansatser till
Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner med
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0
Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion
Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)
729G04 Programmering och diskret matematik. Python 3: Loopar
729G04 Programmering och diskret matematik Python 3: Loopar Översikt Labbar Punktnotation och strängmetoder Loopar Labb 3 Labbar? Punktnotation Punktnotation Ni har stött på punktnotation tidigare - kapitel
Tentamen i Introduktion till programmering
Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:
Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner
Datalogi för E Övning 3
Datalogi för E Övning 3 Mikael Huss hussm@nada.kth.se AlbaNova, Roslagstullsbacken 35 08-790 62 26 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/2d1343/datae06 Dagens program Att skapa egna
Pythons standardbibliotek
Pythons standardbibliotek Python 3 skall, enligt standarddokumenten http://docs.python.org/py3k/library/index.html ha stöd för vissa funktioner, typer och datastrukturer Så länge man håller sig till detta
Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python
Repetition i Python 3 Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde men i Python
Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt
Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling
Sökning och sortering
Sökning och sortering Programmering för språkteknologer 2 Sara Stymne 2013-09-16 Idag Sökning Analys av algoritmer komplexitet Sortering Vad är sökning? Sökning innebär att hitta ett värde i en samling
Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser
Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och
Föreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor
Föreläsning 4 Programmeringsteknik och Matlab DD1312, tupler, strängar och forslingor Villkor kan kombineras med operatorerna and,or,not Exempel: if pris=100: print Telefonfynd! A B A
Sekvensdatatyper, ASCII och chiffer. Linda Mannila
Sekvensdatatyper, ASCII och chiffer Linda Mannila 1.11.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering Intro till funktioner och
Variabler och konstanter
Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!
Programmering I Tobias Wrigstad fredag, 2009 augusti 28
Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,
Planering av ett större program, del 2 - for och listor. Linda Mannila
Planering av ett större program, del 2 - for och listor Linda Mannila 9.10.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Utskrift Indata Felhantering Funktioner och moduler (grunder)
Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat
Cheat sheets Nedan finns referensblad för fyra olika programmeringsspråk, som kan bli aktuella att använda i matematikundervisning. MATLAB är en välkänd programvara för att göra matematiska beräkningar,
729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,
729G74 IT och programmering, grundkurs Tema 3. Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Repetition: syntax-quiz Fler for-loopar (över listor och dictionaries) range() Nästlade strukturer
Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,
Imperativ och Funktionell Programmering i Python #TDDD73 Fredrik Heintz, IDA fredrik.heintz@liu.se @FredrikHeintz Översikt Repetition: Satser och uttryck Variabler, datatyper, synlighet och skuggning Upprepning,
TDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Underprogram - Funktioner Eric Elfving Institutionen för datavetenskap 18 september 2014 Översikt 2/22 Återblick till satsblocken Funktioner - Namngivna satsblock
TDP002 - Imperativ programmering
TDP002 - Imperativ programmering Underprogram Pontus Haglund Institutionen för datavetenskap Anpassatt från material ursprungligen av: Eric Elfving 1 Underprogram Parametrar Returvärden Räckvidd och skuggning
Språket Python - Del 2 Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Funktioner Filhantering Felhantering 2 Funktioner 3 FUNKTIONER Att dela upp program Att dela upp program i mindre delar, funktioner är ett viktigt koncept i programmering. Viktigt
729G04 Programmering och diskret matematik. Föreläsning 7
729G04 Programmering och diskret matematik Föreläsning 7 Föreläsningsöversikt Information Interaktion via text Läsa från fil Skriva till fil Spara och läsa abstrakta datatyper från fil Information Felaktigt
Sätt att skriva ut binärträd
Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer
MMA132: Laboration 2 Matriser i MATLAB
MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen
Introduktion till programmering SMD180. Föreläsning 3: Funktioner
Introduktion till programmering Föreläsning 3: Funktioner 1 1 Mer matematik Vi har sett matematiska uttryck med variabler, värden och operatorer, ex: 17+n pi/2 hours*60+minutes Kan man även skriva uttryck
Hur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap
Hur man programmerar TDDC66 Datorsystem och programmering Föreläsning 3 Peter Dalenius Institutionen för datavetenskap 2014-09-05 Översikt Problemlösning: Hur ska man tänka? Datatyper Listor (forsätter
Datastrukturer. föreläsning 6. Maps 1
Datastrukturer föreläsning 6 Maps 1 Avbildningar och lexika Maps 2 Vad är ett lexikon? Namn Telefonnummer Peter 031-405937 Peter 0736-341482 Paul 031-405937 Paul 0737-305459 Hannah 031-405937 Hannah 0730-732100
Programmering II (ID1019)
ID1019 Johan Montelius Instruktioner Betyg Programmering II (ID1019) 2019-03-08 Svaren skall lämnas på dessa sidor, använd det utrymme som nns under varje uppgift för att skriva ner ditt svar (inte på
Programmering för språkteknologer II, HT2014. Rum
Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Sökalgoritmer
TDP002 - Imperativ programmering
TDP002 - Imperativ programmering Algoritmer Pontus Haglund Institutionen för datavetenskap Anpassatt från material ursprungligen av: Eric Elfving 1 Datatyper Tal UTF-8 2 Procedurell abstraktion Repetition
Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen
Föreläsning 2 Programmeringsteknik och Matlab DD1312 Introduktion till python Variabler,datatyper, omvandling av typer sfunktioner Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande
Programmering II (ID1019) :00-11:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Installera Anaconda Python
Maskininlärning Installera Anaconda Python Nummergisslek Vi ska bygga ett litet program, RIDER, som ska gissa vilket nummer som du tänker på. Reglerna är att du tänker på ett heltal mellan 1 och 100. RIDER
Listor = generaliserade strängar. Introduktion till programmering SMD180. Föreläsning 8: Listor. Fler listor. Listindexering.
1 Introduktion till progrmmering SMD180 Föreläsning 8: Listor 2 Listor = generliserde strängr Strängr = sekvenser v tecken Listor = sekvenser v vd som helst [10, 20, 30, 40] # en list v heltl ["spm", "ungee",
MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...
Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»
Övningsuppgifter kapitel 8
Inst. för Systemteknik Introduktion till programmering (SMD 180), 5 p Övningsuppgifter kapitel 8 1. Listor är en viktig datatyp i Python. Hur definierar kursboken lista? Vad kallas de värden som tillsammans
Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen
Föreläsning 2 Programmeringsteknik och Matlab DD1312 Introduktion till python Variabler, datatyper, omvandling av typer sfunktioner Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande
Strängar. TDDD64 Programmering i Python Föreläsning 4. Peter Dalenius Institutionen för datavetenskap
Strängar TDDD64 Programmering i Python Föreläsning 4 Peter Dalenius Institutionen för datavetenskap 2014-09-12 Översikt Grundläggande operationer på strängar Exempel på funktioner som arbetar med strängar
Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läsöversikt. Föreläsningar 2-6. Genomförande av laborationer
Läsöversikt LP Part I Part IV, kap 18 PL: kap 1, 2 (Sem 1), 3 (Sem 3), 5.1-5.3, 5.8 intro, 6.1-6.3, 7.1-7.3, 8.1-8.3, 9.1-9.2 Wikipedia kan användas som stöd för PL-avsnitten. Föreläsningar 2-6 Genomförande
Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6
Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6? DAGENS AGENDA Komplexitet Ordobegreppet Komplexitetsklasser Loopar Datastrukturer Några nyttiga regler OBS! Idag jobbar
Tentamen Grundläggande programmering
Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4:
Pseudoslumptal / slumptal. Pseudoslumptal... Slumptal exempel. Slumptal exempel
Pseudoslumptal / slumptal Pseudoslumptal... Slump existerar inte i datorns välordnade miljö så slumpartade tal finns naturligtvis inte heller Men man behöver slump i vissa försök och i simuleringar så
Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.
Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis
Introduktion till programmering D0009E. Föreläsning 1: Programmets väg
Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra
Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?
Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? TDDD78, TDDE30, jonas.kvarnstrom@liu.se 729A85 jonas.kvarnstrom@liu.se
Föreläsning 5 Programmeringsteknik DD1310. Modulen doctest. Exempel. Doctest Dictionary Filhantering
Föreläsning 5 Programmeringsteknik DD1310 Doctest Modulen doctest Man kan använda modulen doctest för att testa programmet på ett mer systematiskt sätt. Så här gör man: 1. Skriver programmets funktioner
Den klassiska programmodellen. Introduktion till programmering D0009E. Föreläsning 11: Filer och undantag. Filsystem. Interaktiva program.
Den klassiska programmodellen Introduktion till programmering D0009E indata Hur kan data överleva en programkörning? utdata indata utdata Föreläsning 11: Filer och undantag Program A Program B Filsystem
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Programkonstruktion och Datastrukturer
Programkonstruktion och Datastrukturer VT 2012 Tidskomplexitet Elias Castegren elias.castegren.7381@student.uu.se Problem och algoritmer Ett problem är en uppgift som ska lösas. Beräkna n! givet n>0 Räkna
Föreläsning 3 Programmeringsteknik och Matlab DD1315. Importering av moduler. randrange
Föreläsning 3 Programmeringsteknik och Matlab DD1315 moduler, Styrstrukturer (if, if-elif,if-else) Slingor () Importering av moduler Det finns en hel del funktioner man kan använda genom att era dem från
Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?
Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?
OOP Objekt-orienterad programmering
OOP F4:1 OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder Metoder - subrutiner OOP F4:2 Kod som utför en viss operation. Ligger i olika klasser och anropas via operatorn.
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället
Föreläsningsanteckningar F6
Föreläsningsanteckningar F6 Martin Andersson & Patrik Falkman Kortaste vägen mellan en nod och alla andra noder Detta problem innebär att givet en graf G = (E,V) hitta den kortaste vägen över E från en
public static void mystery(int n) { if (n > 0){ mystery(n-1); System.out.print(n * 4); mystery(n-1); } }
Rekursion 25 7 Rekursion Tema: Rekursiva algoritmer. Litteratur: Avsnitt 5.1 5.5 (7.1 7.5 i gamla upplagan) samt i bilderna från föreläsning 6. U 59. Man kan definiera potensfunktionen x n (n heltal 0)
TDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner
Programmeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga
1 Funktioner och procedurell abstraktion
1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår
Introduktion till programmering SMD180. Föreläsning 12: Klasser och objekt
Introduktion till programmering Föreläsning 12: Klasser och objekt 1 1 Vad är en punkt? Matematikerns definition: en position i ett (tvådimensionellt) plan, karaktäriserad av en x-koordinat och en y-koordinat.
I en matchning ligger varje hörn i högst en kant. I en stig ligger varje hörn i högst två kanter.
26.2-9 Antag att rätt lösning är att dela upp V i V 1 och V 2 (V 1 V 2 =, V 1 V 2 = V ). Antal kanter vi måste skära är då det minsta snittet mellan v 1 och v 2, där v 1 är ett godtyckligt hörn i V 1 och
Fly me to the moon. Laboration om relationer, TDDC75 Diskreta strukturer. Mikael Asplund. 5 september 2017
Fly me to the moon Laboration om relationer, TDDC75 Diskreta strukturer Mikael Asplund 5 september 2017 1 Inledning Denna laboration i diskret matematik a r ta nkt att ge en inblick i hur programmering
Extramaterial till Matematik Y
LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TRE Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta
Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk
Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program
Använda Python Laboration 1 GruDat, DD1344
Använda Python Laboration 1 GruDat, DD1344 Örjan Ekeberg 14 oktober 2008 Målsättning Målet med denna laboration är att du ska prova på att använda Python, framförallt interativt. Du ska också lära dig
Programmering II (ID1019) :00-11:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 10 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 10 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Lägre gräns för sortering Count sort,
FÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION
FÖRELÄSNING 2, TDDC74, VT2018 Begrepp och definitioner (delvis från föreläsning 1) Fallanalys som problemlösningsmetod Rekursivt fallanalys Rekursiva beskrivningar och processer de kan skapa Rekursiva
TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26
TAIU07 Matematiska beräkningar med MATLAB för MI Fredrik Berntsson, Linköpings Universitet 15 januari 2016 Sida 1 / 26 TAIU07 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet i att
Föreläsning 1 Datastrukturer (DAT037)
Föreläsning 1 Datastrukturer (DAT037) Fredrik Lindblad 1 30 oktober 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037
Klassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Programmering för språkteknologer II. OH-serie: Sökning och sortering. Algoritm
Programmering för språkteknologer II OH-serie: Sökning och sortering Mats Dahllöf Sökning och sortering Sökning: lokalisera objekt i samlingar. Finns ett visst värde? I så fall: var? Sortering: placera
TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel
TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.
Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Introduktion till formella metoder Programmeringsmetodik 1. Inledning
Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur
Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer funktioner betyder att instruera en dator Ett program
Programkonstruktion och. Datastrukturer
Programkonstruktion och Datastrukturer Repetitionskurs, sommaren 2011 Datastrukturer (hash-tabeller och heapar) Elias Castegren elias.castegren.7381@student.uu.se Arrayer igen En array är en linjär datastruktur
Grundläggande databehandling ht 2005
Grundläggande databehandling ht 2005 Programmering Filip Salomonsson 1 Idag Program, programmering Pythonintro 2 Programspråk Lågnivåspråk (maskinspråk); instruktioner på datorns
Rekursion och induktion för algoritmkonstruktion
Informationsteknologi Tom Smedsaas, Malin Källén 20 mars 2016 Rekursion och induktion för algoritmkonstruktion Att lösa ett problem rekursivt innebär att man uttrycker lösningen i termer av samma typ av
Tentamen ID1004 Objektorienterad programmering October 29, 2013
Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.
Men först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4
Introduktion till programmering Men först: Några funktioner ur preluden Vad är skillnaden mellan head str och take 1 str? Föreläsning 4 Ett större exempel. head :: [a] -> a take :: Int -> [a] -> [a] tail
Beräkningsvetenskap föreläsning 2
Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa
Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.
Föreläsning 9 Innehåll Mer om rekursion söndra-och-härska-algoritmer dynamisk programmering backtracking Orientering om versionshantering med git Söndra och härska Divide and conquer teknik för att konstruera
DD1314 Programmeringsteknik
Skolan för Datavetenskap och kommunikation DD1314 Programmeringsteknik Föreläsning 1 o print o variabler o reserverade ord o input o kommentarer o beräkningar o datatyper o if-satser Kursinformation Programmering:
729G04 Programmering och diskret matematik. Föreläsning 4
729G04 Programmering och diskret matematik Föreläsning 4 Turtle Graphics LOGO LOGO: programmeringsspråk för användning inom undervisning 1967 av Papert och Feurzeig Språket är släkt med LISP, men som "utenhet"
TDDC74 Lab 04 Muterbara strukturer, omgivningar
TDDC74 Lab 04 Muterbara strukturer, omgivningar 1 Översikt I den här laborationen kommer ni att lära er mer om: Tillstånd, och skillnader mellan ren funktionell programmering och imperativ. Skillnaden
Text och strängindexerade fält Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Text som arbetsredskap Funktioner på text i Python Formatera text Läsa från tangentbordet Strängindexerade fält 2 Text som arbetsredskap 3 TEXT SOM ARBETSREDSKAP Textens roll
Grundläggande datalogi - Övning 1
Grundläggande datalogi - Övning 1 Björn Terelius October 30, 2008 Python är ett tolkat språk som kan köras interaktivt. tcs-ray:~/grudat08>python >>> 11+3*4 23 >>> a = 15 >>> b=a >>> print "a =", a, "b
Programmeringsteknik I
Programmeringsteknik I Föreläsning 2: Grundläggande Java Johan Öfverstedt Java Grundläggande begrepp Datatyper Selektion if Räckvidd (scope) Iteration while Klasser Objekt Metoder Metodhuvudet Kodstandarden