729g74 it och programmering, grundkurs729g74/kursmaterial/t2-f2-h17.pdf · 729g74 it och...

43
729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, [email protected]

Upload: others

Post on 06-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

729G74 IT och programmering, grundkursTema 2, Föreläsning 2

Jody Foo, [email protected]

Page 2: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 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 som informationsbearbetning

Ändra programbeteende baserat på information (villkor och jämförelser)

Bearbetning av sekventiell information (loopar och data i listor)

Page 3: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Återkoppling Muddy Cards (sammanfattning)⁃ Överlag lagom tidsåtgång (med variationer både upp och

ner mellan svar)

⁃ Givande/roligt/bra moment

⁃ Tröskel som nybörjare

⁃ Exempel till diskret matematik

⁃ Vägledning till resurser

⁃ "Jag lär mig", förståelse

⁃ Viss otydlighet/förvirrande upplägg

Page 4: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Programmering som informationsbearbetning

Page 5: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Repetition av datatyper i Python⁃ heltal (integer), int

exempel: 5

⁃ flyttal (floating point numbers), floatexempel: 5.0

⁃ text (string), strexempel: "hejsan"

⁃ lista (list), list exempel: [1, "1", []]

Page 6: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Repetition av funktioner i Python⁃ Definiera funktion med hjälp av nyckelordet def

⁃ En definierad funktion måste ha ett namn

⁃ En funktion kan ta emot noll eller fler namngivna argument

⁃ En funktion returnerar alltid ett värde, om inget returneras explicit, returneras värdet None

Page 7: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Exempel som block

Page 8: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Exempel som python-koddefconcatenate_strings(s1,s2):returns1+s2

Page 9: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Ändra programflöde baserat på information

Page 10: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Nya begrepp från exemplet⁃ Jämförelse: "Är är X lika med Y?"

⁃ Svar på jämförelse: ja/nej – sant/falskt

Page 11: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Nya begrepp från exemplet⁃ Villkor: om ... gör det här

⁃ Villkor: om ... gör det här, men om ... gör det där istället

⁃ Villkor: om ... gör det här, men om ... gör det där istället, om inget stämmer, gör något annat.

Page 12: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Jämförelser⁃ Lika med

⁃ Inte lika med

⁃ Större än

⁃ Mindre än

⁃ Större eller lika med

⁃ Mindre eller lika med

⁃ Svaret på en jämförelse är "ja" eller "nej".

⁃ Mer formellt säger vi att jämförelsen är sann eller falsk

Page 13: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Jämförelser i Python⁃ Lika med: ==

⁃ Inte lika med: !=

⁃ Större än: >

⁃ Mindre än: <

⁃ Större eller lika med: >=

⁃ Mindre eller lika med: <=

⁃ sant: True

⁃ falskt: False

Page 14: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Ny datatyp: sanningsvärdeboolskt värde, (eng. boolean)

Page 15: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Villkor i naturligt språk⁃ Om det är blött på marken, ta med dig ett paraply.

⁃ Om det är blött på marken, ta med dig ett paraply. Om det är soligt ute, ta inte med dig ett paraply.

⁃ Om Stor-affären har öppet, köp en mugg, om Lill-affären har öppet, köp en penna. Annars, köp en pärlplatta.

⁃ Vad finns det för problem med dessa uttalanden?

Page 16: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Köp 12 ägg från affären, om de har bananer, köp 3.Hur många ägg köpte Pikachu?

Page 17: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 1:

X, Y, Z är sanningsvärden och P, Q, R är instruktioner.

"Om X är sant, utför P".

Om X gör P

Om Y gör Q

Om Z gör R

Här kan utfallet bli att inga, någon eller alla av P, Q, R utförs.

Page 18: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 1

Om X gör P

Om Y gör Q

Om Z gör R

if x:

p

if y:

q

if z:

r

Page 19: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 1 som pythonexempel

if6<3:print("Iamolderthanyou!")

if"hej"=="hej":print("Hello,hello")

ifTrue:print("TheTruthisoutthere")

Page 20: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 2:

X, Y, Z är sanningsvärden och P, Q, R är instruktioner.

"Om X är sant, utför P, annars (dvs om inte X är sant), utför Q".

Om X gör P, annars, gör Q

Här kan utfallet bli att antingen P eller Q utförs.

Page 21: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 2

Om X gör P, annars, gör Q

if x:

p

else:

q

Page 22: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 2 som pythonexempel

if6<3:print("Iamolderthanyou!")else:print("Hello,hello")

Page 23: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 3:

X, Y är sanningsvärden och P, Q är instruktioner.

"Om X är sant, utför P, men om X inte är sant, kolla om Y är sant, i så fall, gör Q".

Om X gör P, annars, om Y gör Q

Här kommer antingen P eller Q, eller ingen av P eller Q att göras. Både P och Q kommer inte att göras.

Page 24: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 3

Om Y gör Q, annars, om Z gör R

if y:

q

elif z:

r

Page 25: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 3 som pythonexempel

if6<3:print("Iamolderthanyou!")elif"hej"=="hej":print("Hello,hello")

Page 26: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 4:

X, Y, Z är sanningsvärden och P, Q, R är instruktioner.

"Om X är sant, utför P, men om X inte är sant, kolla om Y är sant, i så fall, gör Q, men om varken X eller Y är sant, gör R istället".

Om X gör P, annars, om Y gör Q, annars gör R.

Här kommer exakt en av P, Q och R att utföras.

Page 27: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 4

Om X gör P, annars om Y, gör Q, annars, gör R

if x:

p

elif y:

q

else:

r

Page 28: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Behöver formalisera för att göra det tydligare vad vi menar⁃ Formell struktur 4 som pythonexempel

if6<3:print("Iamolderthanyou!")elif"hej"!="hej":print("Hello,hello")else:print("I'llbehereforyou")

Page 29: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Ändra programflöde baserat på information

Page 30: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Ändrat programflöde baserat på informationdefrate_my_name(name):output=0ifname=='Aaa':output=10elifname=='Bbb':output=20else:output=5returnoutput

print(rate_my_name('Jody'))

Page 31: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Exempel på trinket.iohttps://trinket.io/blocks/dbec76430c

Page 32: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Bearbetning av en sekvens av värdenScenario: en robot ska titta på möjliga saker den skulle kunna göra.

Page 33: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Bearbetning av en sekvens av värden

Page 34: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Loop i Python⁃ Börja med nyckelordet while följt av ett sanningsvärde

⁃ Loopen fortsätter så länge som sanningsvärdet är sant

Page 35: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Loop-exempelwhileFalse:print("Kommeraldrigatthända.")

whileTrue:print("Kommeraldrigattsluta.")

counter=0whilecounter<5:print("Hurmångagångerskrivsjagut?")counter=counter+1

Page 36: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Bearbetning av en sekvens av värden

Page 37: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Ändrat programflöde baserat på informationtask_list=['uppgraderaminnesstorlek','kollanyaskalfärger','laddabatterierna','utforskanyarummet','kompånyttnamntillmigsjälv']

counter=1

whilecounter<=len(task_list):task=task_list[int(counter-1)]print(str('Undraromjagska')+str(task))counter=counter+1

Page 38: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Exempel på trinket.iohttps://trinket.io/blocks/4c4c740880

Page 39: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Bearbetning av en sekvens av värdenScenario: En robot som ska bestämma sig för vad den ska göra

Page 40: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Robot som ska bestämma sig för något att göra

Page 41: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Ändrat programflöde baserat på informationtask_list=[['uppgraderaminnesstorlek',4],['kollanyaskal-färger',1],['laddabatterierna',5],['utforskanyarummet',2],['kompånyttnamntillmigsjälv',3]]

defdecide_what_to_do(input_task_list):globalwhat_to_do,counter,todo_item,task_name,todo_prioritywhat_to_do=['rullatummarna',-1]counter=1

whilecounter<=len(input_task_list):todo_item=input_task_list[int(counter-1)]task_name=todo_item[0]todo_priority=todo_item[-1]

iftodo_priority>what_to_do[-1]:what_to_do=todo_itemcounter=counter+1

returnwhat_to_do

print(str('Jagskakommaihågatt')+str((decide_what_to_do(task_list))[0]))

Page 42: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Exempel på trinket.iohttps://trinket.io/blocks/7acb826d5c

Page 43: 729G74 IT och programmering, grundkurs729G74/kursmaterial/t2-f2-h17.pdf · 729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se

Föreläsningssummering:Nya begrepp och termer⁃ Jämförelser: ==, !=, <, >, <=, >=

⁃ Sanningsvärden: True, False

⁃ Villkorssatser: if, if-else, if-elif, if-elif-else

⁃ Villkorlig loop: while