Grundläggande datalogi - Övning 1

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

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 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Datalogi för E Övning 3

Funktioner. Linda Mannila

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

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

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

DD1314 Programmeringsteknik

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

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

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

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

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

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

Tentamen i Introduktion till programmering

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

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.

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

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

Föreläsning 6: Introduktion av listor

TDP002 - Imperativ programmering

Grundläggande datalogi - Övning 2

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

Planering av ett större program, del 2 - for och listor. Linda Mannila

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

Användarhandledning Version 1.2

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

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

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

Erfarenheter från labben

Använda Python Laboration 1 GruDat, DD1344

Uppgifter teknik HT17 (uppdaterad v. 40)

v. 42 Python HT17 En introduktion Oscar Bergqvist

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

Strängar. TDDD64 Programmering i Python Föreläsning 4. Peter Dalenius Institutionen för datavetenskap

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

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

Hur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Grundläggande datalogi - Övning 4

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

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

v. 43 Python HT17 En introduktion Oscar Bergqvist

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

Övning 6. Ali Tofigh 24 Oktober, 2006

Laboration: Whitebox- och blackboxtesting

Introduktion till programmering SMD180. Föreläsning 3: Funktioner

Introduktion C-programmering

Föreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Repetition C-programmering

Datalogi, grundkurs 1

Att skriva till och läsa från terminalfönstret

729G04 Programmering och diskret matematik

Selektion och iteration

729G04 Programmering och diskret matematik. Python 3: Loopar

Övningsuppgifter kapitel 8

Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 15

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Introduktion till programmering D0009E. Föreläsning 9: Tupler och dictionaries

Läsöversikt. Föreläsningar 2-6. Genomförande av laborationer

Pythons standardbibliotek

Programmeringsteknik med C och Matlab

Grundläggande datalogi - Övning 3

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

MicroPython Ett textbaserad programmeringsspråk för Micro:bit

Introduktion till Haskell

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

Sätt att skriva ut binärträd

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Mer till P-uppgiften: Dokumentation. Nyheter. Algoritm för sökning. Mer hjälp. DD1311 Programmeringsteknik med PBL

Objektorienterad Programmering (TDDC77)

Listor. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 7. Peter Dalenius Institutionen för datavetenskap

Namn Stil Dokumentation Objekt-orienterad programmering OBS OBS OBS OBS OBS OBS OBS OBS

Tenta i Grundläggande programmering DD klockan

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Mer grafik. Jan Erik Moström

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 18

Ordlistor, filhantering och ut på webben. Linda Mannila

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

Tentamen OOP

TDIU01 - Programmering i C++, grundkurs

Visual Basic, en snabbgenomgång

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

Föreläsning 3-4 Innehåll

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

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

TDP002 Imperativ programmering

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Transkript:

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 =", b a = 15 b = 15 >>> b=b+1 >>> print "a =", a, "b =", b a = 15 b = 16 >>> ^D Bra för enkla beräkningar Bra för att testa vad olika kommandon gör Dåligt för att skriva långa program

Man kan även skriva sitt program i en fil exempel1.py och köra hela programmet med kommandot python exempel1.py # This program converts SEK to EURO kr = 2008 kurs = 9.84 euro = kr/kurs print kr, "kronor =", euro, "euro" tcs-ray:~/grudat08>python exempel1.py 2008 kronor = 204.06504065 euro Det hör till god programmeringstil att kommentera sina program. En kommentar i python börjar med # och fortsätter till slutet på raden.

Variabler och datatyper Strängar och listor Villkor och loopar Funktioner Variabler behöver inte deklareras i python En variabel är en egentligen en referens till data En variabler kan referera till vilken datatyp som helst Listor kan vara heterogena dvs. innehålla element av olika typ. >>> a=15 >>> a 15 >>> a='hej' >>> a 'Hej'

Variabler och datatyper Strängar och listor Villkor och loopar Funktioner Variabler måste tilldelas ett värde innan de kan användas >>> a=15 15 >>> a=c Traceback (most recent call last): File "<stdin>", line 1, in? NameError: name 'c' is not defined Flyttal och heltal är olika typer och kan ge olika resultat t.ex. vid division >>> 15/10 1 >>> 15.0/10 1.5

Variabler och datatyper Strängar och listor Villkor och loopar Funktioner Strängar omsluts av (enkla eller dubbla) citationstecken Listor omsluts av hakparenteser [] och elementen separeras med kommatecken Man refererar till element nummer i i en sträng eller lista med l[i]. Man refererar till en delsträng eller dellista med l[i:j] >>> s="abcdef" >>> s[1] 'b' >>> s[1:4] 'bcd' >>> l=[6,5,4,3,2,1] >>> l[2] 4 >>> l[1:4] [5, 4, 3]

Variabler och datatyper Strängar och listor Villkor och loopar Funktioner Tänk på att variabelnamn är referenser. Två variabler kan referera till samma lista Tänk på att l[i:j] är en referens som kan tilldelas, men att det även ändrar i den ursprungliga listan >>> l=[5,4,3,2,1] >>> m=l >>> print "l =", l, "m =", m l = [5, 4, 3, 2, 1] m = [5, 4, 3, 2, 1] >>> m[2]="error" >>> print "l =", l, "m =", m l = [5, 4, 'Error', 2, 1] m = [5, 4, 'Error', 2, 1] >>> l=[5,4,3,2,1] >>> l[1:4] = [7,8,9] >>> l [5, 7, 8, 9, 1]

Variabler och datatyper Strängar och listor Villkor och loopar Funktioner I Python använder man if-elif-else satser för exekvera olika kod beroende på programmets tillstånd. De båda senare delarna elif och else är valfria. if a < b: print a, "is less than", b elif a > b: print a, "is greater than", b else: print a, "is equal to", b

Variabler och datatyper Strängar och listor Villkor och loopar Funktioner Loopar skapas med nyckelordet while på följande sätt i=1 while i<10: print i**2 i=i+1 Ofta vill man iterera över elementen i en lista. Detta är så vanligt att det fått en egen syntax och nyckelordet for l=range(1,10) #l = [1,2,3,4,5,6,7,8,9] for x in l: print x**2

Variabler och datatyper Strängar och listor Villkor och loopar Funktioner Använd funktioner för att få ett renare gränssnitt Skicka data som argument till funktionen. Undvik globala variabler Dokumentera vad funktionen gör samt eventulla antaganden om indata. def convert_to_euro(kr, kurs): "Converts kr to euro" return kr/kurs

Variabler och datatyper Strängar och listor Villkor och loopar Funktioner En funktion som anropar sig själv kallas rekursiv def factorial(n): Computes the factorial n! of an integer n if n<=1: return 1 return n*factorial(n-1) Om den första raden i funktionsdefinitionen är en sträng tolkas den som dokumentation till funktionen. Att använda denna s.k. docstring är att föredra framför en vanlig kommentar (#)

Palindrom Anagram def is_palindrome(s): Returns true if the argument is a palindrome >>> is_palindrome("anna") True >>> is_palindrome("bertil") False l = list(s) lr = list(s) lr.reverse() return (l==lr)

Palindrom Anagram def is_palindrome(s): Returns true if the argument is a palindrome >>> is_palindrome("anna") True >>> is_palindrome("bertil") False for i in range(len(s)/2): if s[i]!= s[len(s)-1-i]: return False return True

Palindrom Anagram def are_anagrams(s, t): Returns true if the arguments are anagrams >>> are_anagrams("bac","cab") True >>> are_anagrams("abc", "abe") False ls=list(s) lt=list(t) if len(ls)==0 and len(lt)==0: return True if len(ls)!=len(lt) or not ls[0] in lt: return False lt.remove(ls[0]) # remove first occurence ls.remove(ls[0]) # alternatively ls.pop(0) return are_anagrams(ls, lt)

Palindrom Anagram def are_anagrams(s, t): Returns true if the arguments are anagrams >>> are_anagrams("bac","cab") True >>> are_anagrams("abc", "abe") False ls = list(s) ls.sort() lt = list(t) lt.sort() return (lt==ls)

Palindrom Anagram def are_anagrams(s, t): Returns true if the arguments are anagrams >>> are_anagrams("bac","cab") True >>> are_anagrams("abc", "abe") False dict_s = {}; dict_t = {} for c in s: if dict_s.has_key(c): dict_s[c]=dict_s[c]+1 else: dict_s[c]=1 for c in t: if dict_t.has_key(c): dict_t[c]=dict_t[c]+1 else: dict_t[c]=1 return dict_s == dict_t