Övningsuppgifter kapitel 8

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

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

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

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Introduktion till programmering SMD180. Föreläsning 8: Listor

TDIU01 - Programmering i C++, grundkurs

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 DD1310. Programmering. Programspråk

Tentamen i Introduktion till programmering

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

729G04 Programmering och diskret matematik. Python 3: Loopar

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

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

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

Metoder. Inledande programmering med C# (1DV402)

TDDE44 Programmering, grundkurs

Föreläsning 3-4 Innehåll

Statistik över heltal

Föreläsning 2 Programmeringsteknik och C DD1316

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

Extramaterial till Matematik Y

Funktioner. Linda Mannila

Övningsuppgift. En array baklänges. Steg 1. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

*Pekarvärden *Pekarvariabler & *

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Inledande programmering med C# (1DV402) Summera med while"-satsen

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

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

Översikt. Varför lära sig detta? Motivering Syntax och semantik Imperativa språkets byggstenar och Python. PL-boken Kap 1 (repetition):

Föreläsning 5: Introduktion av pekare

Problemlösning och funktioner Grundkurs i programmering med Python

Kort om klasser och objekt En introduktion till GUI-programmering i Java

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

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

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

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

Användarhandledning Version 1.2

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Planering Programmering grundkurs HI1024 HT TIDAA

Föreläsning 3 Programmeringsteknik och Matlab DD1315. Importering av moduler. randrange

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

SMD 134 Objektorienterad programmering

Objektorienterad programmering i Java

Planering Programmering grundkurs HI1024 HT data

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

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

Java, klasser, objekt (Skansholm: Kapitel 2)

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

TDDC77 Objektorienterad Programmering

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 7 augusti 2015, kl 08:00-12:00

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

Grundläggande datalogi - Övning 1

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

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

DD1311 Programmeringsteknik för S1 Laborationer läsåret

Föreläsning 13 Testning och strängar

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

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Algoritmer och interaktiv Python

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

Typkonvertering. Java versus C

4.4 Swing ett interaktivt grafiskt gränssnitt

Programmering för språkteknologer I, VT2012. Rum

Programmeringsteknik

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

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

TDDD78 Objektorientering: Lagring och livstid

Laboration 1 Introduktion till Visual Basic 6.0

Föreläsning 6 pekare och pekare tillsammans med arrayer

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

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

MMA132: Laboration 2 Matriser i MATLAB

Uppgift 1 ( Betyg 3 uppgift )

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

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

Planering Programmering grundkurs HI1024 HT 2014

TDDC74 Programmering, abstraktion och modellering DUGGA 2

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

7 GRUNDERNA I PROGRAMMERING

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

OOP Objekt-orienterad programmering

TDDC77 Objektorienterad Programmering

Tommy Färnqvist, IDA, Linköpings universitet

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

Instuderingsfrågor, del D

DD1314 Programmeringsteknik

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Objektorienterad programmering i Java

Erfarenheter från labben

Transkript:

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 skapar en lista? Vad skiljer listor från strängar? Vad kallas datatyper som hanterar ordnade mängder på ett generellt plan? 2. Vilket är det mest rättframma sättet att i Python skapa en lista? Exemplifiera genom att skriva kod i Python där listan med elementen 1, 3 och 6 tilldelas variabeln minforstalista. 3. Vad kallas fenomenet då en lista är ett element i en annan lista? 4. I Python finns funktionen range som skapar listor med konsekutiva heltal. Hur fungerar range om man anropar denna med a) ett argument? b) två argument? c) tre argument? 5. Hur betecknas en lista utan element i Python? Vad kallas den med ett annat namn? 6. Hur får man åtkomst till ett element i en lista i Python? 7. Vi har tidigare sett att i Python är strängar immutable (icke förändringsbara). Vad gäller för listor i detta hänseende? 8. Antag att tilldelningssatsen tal=[4, 7] är exekverad i Python-miljön. Om Du vill ändra andra elementet till 6, hur gör du då? 9. Antag att samma tilldelningssats som i uppgift 8 är exekverad i Pythonmiljön. Vilka av följande liståtkomstoperationer är korrekta (och i så fall, vilket värde har de): a) tal[-1] b) tal[-2] c) tal[-3] 10. Vi har tidigare traverserat strängar på olika sätt i Python. Hur skulle du enklast traversera listan [ hej, på, dig ] och för varje element i listan skriva ut den på en egen rad på skärmen? Använd Pythons whilesats för att åstadkomma traverseringen. 11. Ändra programmet från uppgift 10, så att det klarar att traversera listor av godtycklig längd. Använd även denna gång Pythons while-sats för att åstadkomma list-traverseringen.

Att fundera på: Hur skulle man kunna använda Pythons for-sats för att åstadkomma traverseringen? 12. in-operatorn är en boolesk operator som testar om ett element ingår i en sekvens. Antag att tilldelningssatsen list=[ hej, på, dig! ] är exekverad i Python-miljön. Vad skulle följande satser i Python ge för värden: hej in list dig in list på in list 13. Pythons for-sats är lämplig att använda tillsammans med listor. Skapa en lista med de första 30 naturliga talen genom att använda Pythons rangefunktion. Skriv sedan ett program i Python som i en for-sats traverserar listan och skriver ut de heltal som är jämnt delbara med tre. Ledning: Använd Pythons modulo-operator för att testa om ett tal är delbart med tre. 14. +- och *-operatorerna fungerar för listor som för strängar i Python. Vad ger följande satser för värden i Python: a=[1,2,3] b=[4,5,6] c=a+b d=a*3 15. []-operatorn fungerar i Python på listor som för strängar. Antag att tilldelningssatserna i uppgift 14 är exekverade. Vilka värden har följande uttryck: a[1:3] b[:4] c[3:] d[:] 16. Listor i Python är mutable, dvs. det är möjligt att ändra element i en befintlig lista. Vad ger följande satser i Python för utskrift: frukt=[ banan, äpple, apelsin, ananas, kiwi ] frukt[1]= citron frukt[2:3]=[ persika, rabarber ] frukt[1:3]=[] frukt[1:1]=[ mango, vindruvor, ] 2

17. del tar bort element från en lista i Python. Vad ger följande satser i Python för utskrift: a=[ ett, två, tre, fyra ] del a[1] a[1:3]=[ två, två och en halv ] del a[1:3] 18. Rita ett tillståndsdiagram för följande tilldelningssatser: a= banan b= banan c=[1,2,3] d=[1,2,3] Hur kommer det sig att tillståndsdiagrammet för a och b resp. c och d skiljer sig åt? 19. Antag att följande tilldelningssatser i Python är exekverade: a=[1,2,3] b=a b[0]=4 Vad kommer print-satsen längst ned ge för resultat? Varför blir det så? Vad kallas det när ett och samma objekt i Python har två eller flera namn? 20. När man vill kopiera innehållet i en lista och skapa en ny instans, vad gör man då enligt kursboken? Hur åstadkommer man det för en lista i Python enklast? Skriv kod för tilldelning av värdet [1,2,3] till listan a. Tilldela listan b samma innehåll som a utan att skapa ett alias. Kopiera i stället innehållet i listan a till b. 21. Rita ett tillståndsdiagram för följande programkörning i Python: lista1=[ hej, på, dig! ] lista2=lista1[:] lista2[0]= hejdå 22. Skriv en funktion i Python, tabortsista, som tar ett argument av typen lista och tar bort sista elementet i listan som refereras i argumentet. Vad händer när man anropar funktionen så här: tabortsista([1,2,3,4,5,6,7,8,9,10]) Besvara frågan genom att rita ett tillståndsdiagram. 23. Skriv om funktionen från uppgift 22 så att den i stället för att förändra den lista som skickas med som parameter i stället returnerar en lista där sista 3

elementet är borttaget. Rita ett tillståndsdiagram för anropet tabortsista([1,2,3]) tillhörande den nya versionen av funktionen. 24. Antag att tilldelningssatsen lista=[ hej, [ på, dig! ]] är exekverad i Python-miljön. Om du vill extrahera ordet på, hur gör du då? 25. Matriser brukar representeras som nästlade listor i Python. Hur skulle man i Python representera matrisen 10 20 30 40 50 60? 70 80 90 Om man vill extrahera andra raden från matrisen, hur gör man då? Om man vill extrahera elementet 60, hur gör man då? 26. I Python finns två användbara funktioner i modulen string för att dela upp resp. slå samman strängar: split resp. join. Vad ger följande Python-kod för utskrifter: text= Hej på dej din lakej! deladtext=string.split(text) print deladtext deladtext2=string.split(text, ej ) print delattext2 print string.join(deladtext2, ej ) 27. Fundera ut när värdena av uttrycken text resp. string.join(string.split(text)) skiljer sig åt i Python om text är en variabel med ett värde av typen sträng. Datorövningar kapitel 8 28. Prova att i IDLE-miljön köra tilldelningssatsen i uppgift 2 enligt ovan. Se om resultatet 29. Prova att i IDLE-miljön implementera programmet från uppgift 8 enligt 30. Prova att i IDLE-miljön köra exemplen från uppgift 9 enligt ovan. Se om resultaten 31. Prova att i IDLE-miljön implementera programmen från uppgift 10 och 11 enligt ovan. Se om resultaten 32. Provkör satserna från uppgift 12 i IDLE-miljön. Se om resultaten 4

33. Prova att i IDLE-miljön implementera programmet från uppgift 13 enligt 34. Provkör satserna från uppgifterna 14-17 i IDLE-miljön. Se om resultaten 35. Provkör satserna från uppgift 18 i IDLE-miljön. Använd Pythons idfunktion för att se respektive objekts identitet. Se om resultatet 36. Provkör satserna från uppgift 19 i IDLE-miljön. Se om resultatet 37. Prova att i IDLE-miljön implementera programmet från uppgift 20 enligt 38. Provkör satserna från uppgift 21 i IDLE-miljön. Använd Pythons idfunktion för att se respektive objekts identitet. Se om resultatet 39. Implementera funktionen tabortsista i IDLE-miljön enligt uppgift 22-23 ovan. Se om resultaten 40. Provkör satserna från uppgift 24 i IDLE-miljön. Se om resultatet 41. Implementera matrisen och extraktionerna från uppgift 25 enligt ovan i IDLE-miljön. Se om resultaten 42. Provkör satserna från uppgift 26 i IDLE-miljön. Se om resultaten 5