Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D.

Storlek: px
Starta visningen från sidan:

Download "Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D."

Transkript

1 Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D. tobias@dsv.su.se

2 Notera att exemplen är i Python 2.5 För att översätta till Python 3.0, gör följande ändringar print(x,y) istället för print x,y input("ett tal: ") istället för raw_input("ett tal: ")

3 # prog 01, "Hello, world" print "Hello, world" # prog 02, "Greet" name = raw_input("what is your name? ") print "Hello," name # prog 03, "Sort names" names = [] i = 0 while i<5: names[i] = raw_input("type in a name: ") i = i + 1 names.sort() for name in names: print name

4 # prog 04, "Simple adder" term1 = raw_input("give me a number: ") term2 = raw_input("give me another number: ") term1 = int(term1) term2 = int(term2) print term1, "+", term2, "=", term1+term2

5 # prog 05, "Area calculator" base = raw_input("base: ") height = raw_input("height: ") base = int(base) height = int(height) area = base * height print "The rectangle", base, "x", height, "has area", area

6 # prog 06, "Simple calculator" term1 = raw_input("give me a number: ") term2 = raw_input("give me another number: ") op = raw_input("give me an operator: ") term1 = int(term1) term2 = int(term2) sum = 0 if op == "+": sum = term1 + term2 elif op == "-": sum = term1 - term2 elif op == "*": sum = term1 * term2 elif op == "/": sum = term1 / term2 print term1, op, term2, "=", sum

7 # prog 08, "Rectangle drawer 1" base = raw_input("base: ") height = raw_input("height: ") base = int(base) height = int(height) for row in range(0,height): for col in range(0,base): print "X", print "" # prog 09, "Rectangle drawer 2" base = raw_input("base: ") height = raw_input("height: ") base = int(base) height = int(height) print ("X " * base + "\n") * height

8 # prog 10, "Rectangle drawer 3" base = raw_input("base: ") height = raw_input("height: ") base = int(base) height = int(height) while height > 0: temp = base while temp > 0: print "X", temp = temp - 1 print "" height = height - 1

9 # prog 10, "Name count" fil = open("names.txt") names = fil.readlines() fil.close() counter = {} for name in names: if name in counter.keys(): counter[name] = counter[name] + 1 else: counter[name] = 1 for name in counter.keys(): print name + ":", counter[name]

10 # prog 11, "Most common name" fil = open("names.txt") names = [] for name in fil.readlines(): names.append(name.strip()) fil.close() counter = {} largest = { "count" : 0, "name" : None } for name in names: if name in counter.keys(): counter[name] = counter[name] + 1 else: counter[name] = 1 if counter[name] > largest["count"]: largest = { "count" : counter[name], "name" : name } print "Most common name was", largest["name"], \ "at", largest["count"]

11 Funktion En funktion är en samling instruktioner under ett namn Ett exempel är funktionen sqrt() som tar roten ur Istället för att upprepa instruktionerna kan man anropa funktionen flera gånger En funktion kan returnera ett resultat En funktion kan ta emot argument från den som anropar, t.ex. sqrt(9) för att dra roten ur 9 och sqrt (123) för att dra roten ur 123

12 # prog 12, "greeter" def greet(message): name = raw_input("skriv ditt namn: ") print message, name greet("hello") greet("hi") greet("oi")

13 En ungefärlig tolkning av föregående program message = "Hello" name = raw_input("skriv ditt namn: ") print message, name message = "Hi" name = raw_input("skriv ditt namn: ") print message, name message = "Oi" name = raw_input("skriv ditt namn: ") print message, name Python ersätter anropet till en funktion med koden för funktionen. Det är inte så det egentligen fungerar, men det är ett sätt att förstå konceptet.

14 # prog 12, "prog 10 refactored with functions" # Library part def read_list(filename): fil = open(filename) names = [] for name in fil.readlines(): names.append(name.strip()) fil.close() return names def frequency_count(set): freq = {} for el in set: if el in freq.keys(): freq[el] = freq[el] + 1 else: freq[el] = 1 return freq # Actual program (in same file for now) names = read_list("names.txt") counter = frequency_count(names) for name in counter.keys(): print name + ":", counter[name]

15 # prog 13, "prog 11 refactored with functions" # Actual program names = read_list("names.txt") counter = frequency_count(names) largest = { "count" : 0, "name" : None } for name in counter.keys(): if counter[name] > largest["count"]: largest = { "count" : counter[name], "name" : name } print "Most common name was", largest["name"], \ "at", largest["count"]

16 # Returnera det största av två värden def max(a,b): if a > b: return a else: return b print max(3,5) print max( , ) print max(7,7) # Returnera det största av två värden, alternativ def max(a,b): result = None # läs om None på nästa sida if a > b: result = a else: result = b return result

17 Värdet None None är ett värde (som siffran 1, strängen "Hej", det booleska värdet False och listan [1,3,5,7]) Det används för att representera ingenting, eller avsaknad av ett värde Man kan tilldela en variabel värdet None innan man räknat ut det värde den skall ha, som i fallet med result på föregående bild (För den som programmerat tidigare i språk som har koncept som null eller nil så är det samma sak)

18 Klass En klass är en beskrivning av en typ av objekt, t.ex. beskriver klassen Person vad en person är, klassen list vad en lista är, etc. En klass används för att skapa objekt, objekt kallas även för instanser och att skapa dem för att instantiera en klass (instans betyder ung. förekomst, d.v.s. ett objekt är en faktisk förekomst av någonting en klass beskriver) En klass kan ha 0 eller flera attribut och metoder Attribut är som variabler och metoder är som funktioner Klassbegreppet är viktigt först på senare kurser

19 # prog 14, "A simple class" class Point: def init (self, x, y): self.x = x self.y = y def move_to(self, other_point): self.x = other_point.x self.y = other_point.y def display(self): print "(" + str(self.x) + "," + str(self.y) + ")" origo = Point(0,0) some = Point(5,7) some.display() some.move_to(origo) some.display()

20 # prog 15, "A slightly more complex class" class Person: def init (self, name, age): self.name = name self.age = age self.spouse = None def marry(self, person): self.spouse = person def present(self): last = "." if not self.spouse == None: last = ", and I'm married to " + self.spouse.name + "." return "Hello, my name is " + self.name + ", " + \ "I'm " + str(self.age) + " years old" + last bob = Person("Bob", 17) alice = Person("Alice", 23) print bob.present() alice.marry(bob) print alice.present()

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

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,

Läs mer

Övning 6. Ali Tofigh 24 Oktober, 2006

Övning 6. Ali Tofigh 24 Oktober, 2006 Övning 6 Ali Tofigh 24 Oktober, 2006 1 Sortering Att sortera behöver man göra väldigt ofta i programmering. Python tillhandahåller bland annat en metod i listor för detta ändamål. Det enda metoden behöver

Läs mer

Uppgifter teknik HT17 (uppdaterad v. 40)

Uppgifter teknik HT17 (uppdaterad v. 40) Uppgifter teknik HT17 (uppdaterad v. 40) Uppgifterna bedöms inte, de är bara till för att öva. Samarbeta gärna med andra! Du behöver inte skriva ner svaren, men se till att du förstår lösningarna! 1. Det

Läs mer

Sätt att skriva ut binärträd

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

Läs mer

Mer grafik. Jan Erik Moström

Mer grafik. Jan Erik Moström Mer grafik from Tkinter import * root = Tk() mf = Frame(root) mf.pack() cv = Canvas(mf) o1 = cv.create_oval(100,100,80,80,outline="red",fill="blue", width=2) o2 = cv.create_oval(10,10,80,80,outline="red",fill="green",

Läs mer

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

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

Läs mer

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass Övningstillfälle 4 Klasser och objekt (s. 221 ff.) Syfte 1: En naturlig fortsättning på koncepten abstraktion och inkapsling! Funktion (återanvändning av skyddad, säker och testad kod) Modul (återanvändning

Läs mer

Tentamen i Introduktion till programmering

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:

Läs mer

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 DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Datalogi, grundkurs 1

Datalogi, grundkurs 1 Datalogi, grundkurs 1 Fiktiv Tentamen Lösningsförslag och kommentarer 1. Lösningsförslaget nedan förutsätter ingenting om filens innehåll och är alltså mer generell än nödvändigt: alfa= ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ

Läs mer

Grundläggande datalogi - Övning 1

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

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316

Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C Datatyp Aritmetiska operatorer Omvandling av typer Reserverade ord Mikael Djurfeldt Logiska operatorer

Läs mer

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo, 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Kursinfo: återkoppling Muddy Cards och kompletteringar Diskret matematik Python: Programmering

Läs mer

Funktioner. Linda Mannila

Funktioner. Linda Mannila Funktioner Linda Mannila 13.11.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering Intro till funktioner och moduler Villkorssatsen

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

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 mer

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for Inför provet Provet skrivs för hand och är uppdelad i två delar. Den första delen är på E-nivå och den andra delen är på C- och A-nivå. För att det ska bli enklare för er att träna inför provet så har

Läs mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

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 mer

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:

Läs mer

729G04 Programmering och diskret matematik. Python 3: Loopar

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

Läs mer

Inom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två

Inom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två Binära träd Inom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två gånger, talar man om binära träd. Sådana

Läs mer

Skillnader mellan Python och Java

Skillnader mellan Python och Java Java Utvecklat på SUN Microsystems mitten 1990-talet Ursprungligen för Webprogram Nu mycket spritt Massor med läroböcker Vi använder Lewis&Loftus http://javasuncom/javase/6/docs/api/ Skillnader mellan

Läs mer

Programmering och algoritmiskt tänkande. Tema 3, föreläsning 1 Jody Foo

Programmering och algoritmiskt tänkande. Tema 3, föreläsning 1 Jody Foo Programmering och algoritmiskt tänkande Tema 3, föreläsning 1 Jody Foo Tema 3: Översikt Objektorienterad programmering: fortsättning Tema 1 och 2: Exempel på att använda och skapa algoritmer Tema 3: strukturera

Läs mer

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul Föreläsning 8 Programmeringsteknik och Matlab DD1312 er, Self Metoderna:, av metoder, Det är en metod som tillhör klassen och inte objektet. class Skylt(object): antal=0 def init (,r):.reklam=r def antal():

Läs mer

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

Läs mer

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

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

Läs mer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

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

Läs mer

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

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

Läs mer

Övningsuppgifter kapitel 8

Ö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

Läs mer

729G04 Programmering och diskret matematik. Föreläsning 7

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

Läs mer

Språket Python - Del 2 Grundkurs i programmering med Python

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

Läs mer

Övning 1 - Abstrakta datatyper

Övning 1 - Abstrakta datatyper /home/lindahlm/activity-phd/teaching/12dd1320/exercise1/exercise1.py September 3, 20121 0 # coding : latin Övning 1 - Abstrakta datatyper 18 Summering Vi gick igenom betydelsen av abstrakta datatyper/datastrukturer.

Läs mer

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

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)

Läs mer

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

Läs mer

PYTHON SNABBREPETITION MEN FÖRST LITE ALLMÄNT OM PROGRAMMERING 729G04 PYTHON 2. Dagens Python

PYTHON SNABBREPETITION MEN FÖRST LITE ALLMÄNT OM PROGRAMMERING 729G04 PYTHON 2. Dagens Python Dagens Python 729G04 PYTHON 2 Mer om funktioner Villkorssatser JODY FOO Department of Computer and Information Science (IDA) Linköping University, Sweden Linköpings universitet 1 2 MEN FÖRST LITE ALLMÄNT

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1 Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Diagnostiskt prov Python-intro: print variabler reserverade ord input kommentarer beräkningar

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

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

Läs mer

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer 729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser

Läs mer

Omprov 11/11. på förmiddagen.

Omprov 11/11. på förmiddagen. Omprov 11/11 på förmiddagen Vad kommer sedan? Översättning Du har ätit upp Vill du ha godis nu? Nej, tack Jag är mätt Nej, tack Jag är full Översättning Du har ätit upp Vill du ha godis nu? Nej, tack Jag

Läs mer

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1 Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Python-intro: print variabler reserverade ord input kommentarer beräkningar datatyper if-satser

Läs mer

Erfarenheter från labben

Erfarenheter från labben Erfarenheter från labben Bra Jobbat! Lite ont om plats... Parprogrammering? Skillnad mellan program och funktion! Skillnad mellan uttryck och kommando! Välj bra variabelnamn! Vad göra om det blir fel?

Läs mer

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

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

Läs mer

Objektsamlingar i Java

Objektsamlingar i Java 1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och

Läs mer

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else Förkunskaper från tidigare föreläsningar: Objektorienterad Programmering (TDDC77) Föreläsning IX: Klasser och Objekt, Instantiering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 I STONE I Variabler,

Läs mer

Grundläggande datalogi - Övning 3

Grundläggande datalogi - Övning 3 Grundläggande datalogi - Övning 3 Björn Terelius November 14, 2008 Utskrift av stackar Tornen i Hanoi Principerna för rekursion: Hitta ett enkelt basfall (som har en känd lösning). Reducera varje annat

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

Föreläsning 13 och 14: Binära träd

Föreläsning 13 och 14: Binära träd Föreläsning 13 och 14: Binära träd o Binärträd och allmänna träd o Rekursiva tankar för binärträd o Binära sökträd Binärträd och allmänna träd Stack och kö är två viktiga datastrukturer man kan bygga av

Läs mer

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

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

Läs mer

Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner

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

Läs mer

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

Läs mer

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 TDDE11, 725G90 Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Introduktion OOP Instanser, instansvariabler, instansmetoder

Läs mer

Grundläggande datalogi - Övning 2

Grundläggande datalogi - Övning 2 Grundläggande datalogi - Övning 2 Björn Terelius November 7, 2008 Klasser skapas med nyckelordet class Klasser Konstruktorer och destruktorer Undantagshantering class MyClass: Docstring and doctests for

Läs mer

Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,

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,

Läs mer

Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg

Exempel: Exempel: Exempel: Exempel: $djur=array(ko,katt,älg); foreach ($djur as $d) { echo $d.  ; } Resultat. ko katt älg Loopar och upprepning Vill man upprepa kod flera gånger så istället för att skriva en massa rader så kan man lägga koden i ett kodblock som man sedan loopar. Det finns ett par olika typer av loopar, FORloop,

Läs mer

Problemlösning och funktioner Grundkurs i programmering med Python

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

Läs mer

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander F4 Klasser och Metoder ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Klasser och objekt Klasser definierar (utgör idén) Objekt instantierar (utgör förekomsten) En klassdefinition Många

Läs mer

Klasser och objekt, referenser Grundkurs i programmering med Python

Klasser och objekt, referenser Grundkurs i programmering med Python Hösten 2009 Dagens lektion Klasser och objekt Referenser 2 Klasser och objekt 3 KLASSER OCH OBJEKT Relaterat data Information om en fyrkant Bredd Höjd Färg 4 KLASSER OCH OBJEKT Egna datatyper Skapa en

Läs mer

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

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,

Läs mer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är

Läs mer

TDP002 - Imperativ programmering

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

Läs mer

Grundläggande Datalogi

Grundläggande Datalogi s delar Grundläggande Datalogi s delar s delar s delar Dataabstraktion Rekursion Algoritmanalys s delar Sortering Trädstrukturer Grafalgoritmer Optimering Stavning Strängmatchning Datakompression Versionshantering

Läs mer

Övning 0. Python för den som kan MATLAB. Lättare att läsa färdig kod än att skriva själv Det krävs övning för att automatiskt få detaljerna rätt:

Övning 0. Python för den som kan MATLAB. Lättare att läsa färdig kod än att skriva själv Det krävs övning för att automatiskt få detaljerna rätt: Per Sedholm DD1320 (tilda11) 2011-08-31 Övning 0 Python för den som kan MATLAB Lättare att läsa färdig kod än att skriva själv Det krävs övning för att automatiskt få detaljerna rätt: print "a", "b", "c"

Läs mer

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av

Läs mer

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? Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? jonas.kvarnstrom@liu.se 2015 2014 jonas.kvarnstrom@liu.se

Läs mer

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera först talet 37 med 2. Använd heltalsdivision. Det ger kvoten

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1. Föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

TDP002 - Imperativ programmering

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

Läs mer

Tentamen Grundläggande programmering

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:

Läs mer

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

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 I 2016-03-17 Skrivtid: 1400 1900 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

Läs mer

PROMETHEUS. Ett typat, objektorienterat programmeringsspråk av Tim Andersson.

PROMETHEUS. Ett typat, objektorienterat programmeringsspråk av Tim Andersson. PROMETHEUS Ett typat, objektorienterat programmeringsspråk av Tim Andersson. Linköpings universitet TDP019 Projekt: Datorspråk Examinator: Anders Haraldsson, IDA Tim Andersson timan976@student.liu.se Utskriftsdatum:

Läs mer

Karlstads Universitet, Datavetenskap 1

Karlstads Universitet, Datavetenskap 1 DAV B04 - Databasteknik KaU - Datavetenskap - DAV B04 - MGö 229 PHP Hypertext Preprocessor Scriptspråk på serversidan Innebär att webbservern översätter php-scripten innan sidan skickas till webbläsaren,

Läs mer

Tentamen ges för: Tentamensdatum: Tid:

Tentamen ges för: Tentamensdatum: Tid: Programmering E 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Tentamen TE081B El2 Tentamensdatum: 2012-04-13 Tid: 900 1300 Hjälpmedel: Kursbok Kelley, Pohl: A Book on C, Fourth Edition Tillåtet

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

Pythons standardbibliotek

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

Läs mer

Python. Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program.

Python. Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program. Moduler Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program. Vi har också ofta behov av att skapa överblick i våra program. Som ett

Läs mer

Introduktion till programmering SMD180. Föreläsning 12: Klasser och objekt

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.

Läs mer

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

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 I 2016-03-17 Skrivtid: 1400 1900 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

Läs mer

TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode

TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode TDP002 Imperativ programmering Laborationsmaterial emacs python-mode Höstterminen 2008 Innehållsförteckning Introduktion...3 Redovisning av laborationer...3 Laboration 1 emacs python-mode...4 Uppgift 1

Läs mer

Deklarationer/definitioner/specifikationer

Deklarationer/definitioner/specifikationer Deklarationer/definitioner/specifikationer Konstantdefinitioner innebär att ett namn binds och sätts att referera till ett värde som beräknas vid kompileringen/interpreteringen och som under programmets

Läs mer

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 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)

Läs mer

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet Žƒ ƒ Ž Ž ˆ ƒ ƒ ƒ Žƒ ƒ Ž ˆ Œ ŽŽ ƒ Backcode Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet Innehållsförteckning 12-05-29 Inledning... 3 Användarhandledningen... 4 Klasser... 4 Metoder...

Läs mer

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 TDDE11, 725G90/1 Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Introduktion OOP Instanser, instansvariabler, instansmetoder

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

729G28. Webbprogrammering och databaser. Introduktion till webbutveckling med PHP. Jakob Pogulis Institutionen för Datavetenskap (IDA)

729G28. Webbprogrammering och databaser. Introduktion till webbutveckling med PHP. Jakob Pogulis Institutionen för Datavetenskap (IDA) 729G28 Webbprogrammering och databaser Introduktion till webbutveckling med PHP Jakob Pogulis Institutionen för Datavetenskap (IDA) 729G28 Webbprogrammering och databaser Introduktion till webbutveckling

Läs mer

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

Idag: Centrerad utskrift. Granskning. DD1311 Programmeringsteknik med PBL. Granskning Felhantering GUI. Föreläsning 15.

Idag: Centrerad utskrift. Granskning. DD1311 Programmeringsteknik med PBL. Granskning Felhantering GUI. Föreläsning 15. Skolan för Datavetenskap och kommunikation Idag: DD1311 Programmeringsteknik med PBL Granskning Felhantering GUI Föreläsning 15 På torsdag: Mer om GUI På grupptimmen: genomgång av granskningsprotokollet

Läs mer

Python. Datatyper. Mer om datatyper. Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam!

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

Läs mer

DD1314 Programmeringsteknik

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:

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

729G04 PYTHON 5 JODY FOO. Department of Computer and Information Science (IDA) Linköping University, Sweden

729G04 PYTHON 5 JODY FOO. Department of Computer and Information Science (IDA) Linköping University, Sweden 729G04 PYTHON 5 JODY FOO Department of Computer and Information Science (IDA) Linköping University, Sweden Föreläsningsöversikt Repetition av listmetoder Scope Defaultvärden Algoritmer & mera rekursion

Läs mer

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]

Läs mer

v. 42 Python HT17 En introduktion Oscar Bergqvist

v. 42 Python HT17 En introduktion Oscar Bergqvist v. 42 HT17 Python En introduktion Oscar Bergqvist oscar.bergqvist@stockholm.se 1 Innehåll 2 IDLE... 3 2.1 Det interaktiva läget... 3 2.2 Standardläget... 3 2.3 Färger i IDLE... 3 3 Variabler... 3 3.1 Namn...

Läs mer

Föreläsning 3: Booleans, if, switch

Föreläsning 3: Booleans, if, switch TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt

Läs mer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

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

Läs mer

Lösningsförslag. 1 Lösningsförslag. Uppgift 1

Lösningsförslag. 1 Lösningsförslag. Uppgift 1 Uppgift 1 Lösningsförslag import java.awt.rectangle; public class ImprovedRectangle extends Rectangle { public ImprovedRectangle(int width, int height) { super(width, height); public ImprovedRectangle(int

Läs mer

Språket Python - Del 1 Grundkurs i programmering med Python

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

Läs mer