Page 1

Räkna med kod

Programmering i matematik

import turtle as t for x in range (60): t.forward(100) t.left(45) t.forward(150) t.left(110) t.forward(120) t.left(83) t.forward(185) t.left(6)

Lärarguide


Räkna med kod

Programmering i matematik I Räkna med kod – programmering i matematik får eleverna lära sig grunderna i programspråket Python 3 samtidigt som de löser matematiska ­problem. Läromedlet består av ett elevhäfte och en lärarguide, som även finns i digitala ­versioner.

Elevhäftet består av 12 lektioner som var och en introducerar ett nytt program­ meringskommando. Till varje lektion finns teori, exempel och uppgifter. ­Uppgifterna har en ­tydlig koppling till matematik och finns på två nivåer.

Lärarguiden följer elevboken uppslag för uppslag med didaktiska kom­ mentarer, idéer och inspiration till din undervisning.

Räkna med kod

Programmering i matematik

import turtle as t for x in range (60): t.forward(100) t.left(45) t.forward(150) t.left(110) t.forward(120) t.left(83) t.forward(185) t.left(6)

Räkna med kod

Programmering i matematik

import turtle as t for x in range (60): t.forward(100) t.left(45) t.forward(150) t.left(110) t.forward(120) t.left(83) t.forward(185) t.left(6)

Lärarguide

Räkna med kod ­Digital (elevlicens) har samma innehåll som det tryckta ­häftet men inne­ håller dessutom instruktionsfilmer och ledtrådar till utvalda uppgifter.

Räkna med kod ­Digital (lärarlicens) innehåller både elevhäftet och lärar­ guiden. Dessutom finns instruktions­ filmer, möjlighet att skicka ut interak­ tiva övningar och en översikt av ­elev­ernas arbete.

Räkna med kod

Programmering i matematik

import turtle as t for x in range (60): t.forward(100) t.left(45) t.forward(150) t.left(110) t.forward(120) t.left(83) t.forward(185) t.left(6)

Räkna med kod

Programmering i matematik

import turtle as t for x in range (60): t.forward(100) t.left(45) t.forward(150) t.left(110) t.forward(120) t.left(83) t.forward(185) t.left(6)

Lärarguide


Innehåll Introduktion till elevhäftet Introduktion till lärarguiden

VI VIII

While — ett sätt att upprepa kod 4

6

8

Enhetsomvandlaren

11

For — att upprepa kod

12

If — att skriva villkor

14

30

32

Lektion 12

Nästlade satser — att skriva en sats i en sats 35

Aktivitet 2 Djurparken

29

Lektion 11

Turtle — att rita med kod

Lektion 5

26

Lektion 10

Random — att slumpa tal

Lektion 4

24

Aktivitet 3

Mönster med mynt

Aktivitet 1

21

Lektion 9

Listor — att spara flera värden

Lektion 3

Input — att mata in text och tal

18

Lektion 8

Räknare — att räkna upprepningar

Lektion 2

Variabler — att spara värden

If, and och or — att kombinera villkor

Lektion 7

Lektion 1

Print — att skriva text och använda de fyra räknesätten

Lektion 6

17

Facit Verktygslådan

38 47


Lärarguiden

Lektion 3

Lektion 3 Input — att mata in text och tal

Räkna med kod — Lärarguide Lärarguiden följer elevboken uppslag för uppslag, med kommentarer till innehållet och tips till din undervisning. Det finns också skrivutrymme för egna kommentarer, så att du kan komplettera med tankar och idéer.

Paulo arbetar som personlig tränare. På hans hemsida kan kunderna mata in hur många timmar de vill träna och få reda på hur mycket det kostar.

Input — att mata in text och tal Med kommandot input() kan man låta använda­ ren mata in tal eller text i ett program. Att få pro­ grammet att interagera med användaren tycker många elever är roligt. Eftersom datorn lagrar tal och text på olika sätt, behöver man definiera vilken datatyp som matas in. Det gör man med kommandona int() och float(). När man inte definierar datatypen tolkar programmet inmat­ ningen som en textsträng.

3

Mata in text

Hej! Vad heter du? Alice Hej Alice! Mata in heltal

Hur många timmar vill du träna? 2 Det kostar 998 kr. Mata in decimaltal

Om kunden vill träna i 1 timme och 20 minuter, så ska hon mata in värdet 1,33. När det inmatade talet kan vara ett decimaltal, använder man kommandot float().

använder kommandona input(), int() och float() för att låta användaren mata in en text, ett heltal eller ett decimaltal i ett program

■■

som innehåller text, kan man använda plus­ tecken i stället för kommatecken.

Därefter får kunden mata in antalet timmar hon vill träna. Med kommandot int() berättar man för programmet att det inmatade värdet är ett heltal.

antal_timmar = int(input("Hur många timmar vill du träna?")) print("Det kostar", 499 * antal_timmar, "kr.")

När eleverna har arbetat med lektionen ska de kunna skriva program som

3

Först får kunden ange sitt namn. När en användare ska mata in en text i ett program använder man kommandot input.

namn = input("Hej! Vad heter du?") print("Hej " + namn + "!") För att undvika mellanslag runt en variabel

antal_timmar = float(input("Hur många timmar vill du träna?")) print("Det kostar", 499 * antal_timmar,"kr.") Hur många timmar vill du träna? 1.33 Det kostar 663.6700000000001 kr. Om du slår beräkningen 1,33 ∙ 499 på en räknare blir resultatet exakt 663,67. Den sista decimalen i resultatet här ovanför är alltså inte korrekt. Det beror på att datorn inte lagrar talen helt exakt.

Start

Kommentar till lektionen

8

Låt eleverna skriva ett program där användaren

Lektion 3

a) skriver sitt namn och programmet hälsar

Kommentarer till uppgifterna

b) skriver sin ålder och programmet anger åldern om fem år

Varje avsnitt inleds med en beskrivning av lektion­ ens syfte och innehåll samt en presentation av tydliga lärandemål.

3

c) anger sin längd i meter och programmet anger längden i centimeter Eleverna kan kontrollera om programmen funge­ rar genom att köra varandras program. Diskutera när man ska använda kommandona int() och float().

Ett felmeddelande i denna uppgift kan bero på att eleven glömt att specificera att inmatningen är ett heltal. Programmet kan inte utföra beräkningen 220 − ålder om den tolkar variabeln ålder som en textsträng.

4 c) I den här uppgiften vill vi att eleverna ska upp-

märksamma att decimaltecknet skrivs med punkt och inte med ett kommatecken.

Svar:

6

a) namn = input("Skriv ditt namn:")

Vidareutveckla gärna uppgiften genom att vända på den: Användaren matar in rektangelns area och bredd och får reda på dess längd.

print("Hej", namn) b) ålder = int(input("Skriv din ålder:"))

print("Om fem år är du", ålder + 5, "år.")

Avlusning

c) längd = float(input("Skriv din längd i

Start

meter:"))

Om eleverna får felmeddelanden kan det bero på att de

print("Du är alltså", längd * 100, "cm.")

Vi ger förslag på en uppgift som kan användas för att inleda lektionen. 8

■■

inte sparar det inmatade värdet i en variabel

■■

inte använder kommandona int() och float() för att ange om det inmatade värdet är ett heltal respektive ett decimaltal

■■

inte använder punkt som decimaltecken

Lektion 3

Kommentarer till uppgifterna Kommentarer till uppgifterna

Till varje lektion finns kommentarer till uppgifterna. Där beskriver vi uppgiftens syfte och ger förslag på ledtrådar till elever som har svårt att komma igång. Här finns också förslag på hur uppgiften kan varieras och utvidgas samt hur den kan användas i klassrum­ met.

8

9

Den här uppgiften är bra att ta upp i helklass. Den uppmärksammar eleverna på att de måste använda kommandot int() eller float() om programmet ska använda det inmatade värdet i en beräkning.

10

33

Avlusning

Programmering och matematik Tänk på ett tal är en populär uppgiftstyp i algebra. Här är en variant av uppgiften som utnyttjar pro­ grammering.

I rutan Avslusning beskriver vi vanliga orsaker till fel­ meddelanden.

Tänk på ett tal Kör programmet här nedanför.

print("Du tänkte på", resultat - 3) a) Hur gör programmet för att ta reda på vilket tal du tänkte på? b) Skriv ett eget liknande program till en kompis.

volym volym

a) a) i liter i liter ochoch fårfår svaret svaret i milliliter i milliliter b) b) i milliliter i milliliter ochoch fårfår svaret svaret i liter i liter

13 13Anita Anita villvill göra göra enen restaurangapp. restaurangapp. Skriv Skriv ettett program program därdär kunden kunden kankan mata mata in in

1 1beloppet beloppet på på notan notan 2 2hurhur många många procent procent man man villvill ge ge i dricks i dricks ochoch som som skriver skriver ut ut

a) a) dricksen dricksen i kronor i kronor b) b) detdet totala totala priset priset inklusive inklusive dricks dricks

14 14DetDet är rea är rea i affären i affären därdär Ruslan Ruslan arbetar. arbetar. Skriv Skriv ettett program program därdär han han kankan mata mata in in

nedanför nedanför villvill hon hon beräkna beräkna hurhur lång lång sträcka sträcka hon hon harhar gått. gått.

1 1detdet ursprungliga ursprungliga priset priset

steg steg = input("Ange = input("Ange antal antal steg:") steg:")

ochoch få reda få reda på på vadvad kunden kunden skaska betala. betala.

NIVÅ NIVÅ 2 2

2 2rean rean i procent i procent 15 15PåPå ettett café café kankan man man köpa köpa chokladbitar chokladbitar i eni en ask. ask.

Chokladbitar, Chokladbitar, 12 kr 12styck kr styck

10 10Skriv Skriv ettett program program som som frågar frågar användaren användaren efter efter lämpliga lämpliga värden värden ochoch sedan sedan beräknar beräknar a) a) enen cirkels cirkels omkrets omkrets b) b) enen cirkels cirkels area area

TomTom ask ask 20 kr 20 kr

Omkrets: Omkrets: O =Oπ=∙π d∙d Area: Area: A =Aπ=∙π r ∙∙ rr ∙ r π ≈π3,14 ≈ 3,14

d r

d r

11 11Fungerar Fungerar dittditt program program i uppgiften i uppgiften härhär ovanför ovanför

omom man man matar matar in tal in tal med med decimaler? decimaler? Motivera Motivera dittditt svar. svar.

Skriv Skriv ettett program program som som frågar frågar hurhur mycket mycket man man villvill betala, betala, ochoch som som räknar räknar ut ut hurhur många många choklad­ choklad­ bitar bitar detdet räcker räcker till.till.

16 16Skriv Skriv ettett program program som som frågar frågar efter efter a) a) sträckan sträckan ochoch tiden tiden ochoch beräknar beräknar hastigheten hastigheten b) b) sträckan sträckan ochoch hastigheten hastigheten ochoch beräknar beräknar tiden tiden c) c) hastigheten hastigheten ochoch tiden tiden ochoch beräknar beräknar sträckan sträckan

Lektion 3 3 10 10Lektion

Att tänka på ■■

I programspråket Python är alla kommandon på engelska. Kommandot int() kommer från eng­ elskans integer, som betyder heltal, och kom­ mandot float() är engelska för flyttal. Elever kan ha lättare att komma ihåg kommandona om man förklarar vad de betyder på engelska.

■■

Som vi visar i teoritexten på sidan 8, blir resul­ tatet inte alltid det förväntade när man arbetar med tal med decimaler. Det beror på att datorn lagrar talen som flyttal, vilket innebär att de lag­ ras med begränsad noggrannhet. När man gör beräkningar med flyttal, bör man därför ta de sista decimalerna i svaret med en nypa salt:

input("Multiplicera med 2. Tryck Enter.")

resultat = int(input("Vad blev resultatet?"))

12 12Skriv Skriv ettett program program därdär användaren användaren matar matar in en in en

Men Men närnär hon hon körkör programmet programmet fårfår hon hon ettett felmed­ felmed­ delande. delande. Förklara Förklara förför Gisela Gisela vadvad hon hon harhar gjort gjort förför fel.fel.

input("Addera 4. Tryck Enter.")

input("Subtrahera talet du tänkte på. Tryck Enter.")

3 3 1.765 1.765

print("Du print("Du harhar gått", gått", steg steg * 0.8, * 0.8, "meter.") "meter.")

input("Tänk på ett tal. Tryck Enter.")

input("Subtrahera 5. Tryck Enter.")

2 2 1.76 1.76

C Cprint(round(1.7648, print(round(1.7648, 3))3))

9 Gisela 9 Gisela harhar enen stegräknare. stegräknare. Med Med programmet programmet härhär

kunskaper om procent. Uppgifterna visar vardagliga tillämpningar av programmering. Stötta eventuellt med formeln   sträcka = hastighet ∙ tid

1 1 1.81.8

B Bprint(round(1.7648, print(round(1.7648, 1))1))

Han Han betalar betalar 300 300 kronor kronor i i årsavgift årsavgift tilltill sinsin klubb klubb ochoch 5050 kronor kronor varje varje gång gång han han klättrar. klättrar. Skriv Skriv ettett program program som som frågar frågar Enes Enes hurhur många många gånger gånger han han villvill klättra klättra ochoch som som beräknar beräknar vadvad detdet kostar. kostar.

13, 14 I båda dessa uppgifter får eleverna använda sina

16

A Aprint(round(1.7648, print(round(1.7648, 2))2))

8 8Enes Enes tycker tycker omom attatt klättra. klättra.

För att beräkna en cirkels omkrets och area behöver eleverna använda sig av π. De kan använda sig av  π ≈ 3,14  eller importera modulen math och ange värdet av pi med kommandot math.pi.

import math print(math.pi) 3.141592653589793

3

7 Para 7 Para ihop ihop rätt rätt program program med med rätt rätt resultat. resultat.

Genom att vända på frågeställningen blir uppgiften mer matematiskt utmanande: Låt Enes mata in hur mycket pengar han har och få reda på hur många gånger han kan klättra.

print(7/3) 2.3333333333333335

Svar: a) Vi kallar talet som personen tänker på för x. Då är resultatet: (x + 4) ∙ 2 – 5 – x = 2x + 8 – 5 – x = x + 3 Programmet tar alltså reda på talet x genom att subtrahera det inmatade talet med 3.

10

VIII

introduktion

Lektion 3

Exituppgift När använder man int() och float()? Svar: Kommandona används för att datorn ska tolka ett värde som heltal respektive decimaltal.


Avrunda

print(round(663.6700000000001, 2))

■■

663,67

När man ska be användaren att mata in ett värde, tror en del elever att man kan skriva:

I rutorna Att tänka på diskuterar vi kritiska punkter i lärandet. Vi ger exempel på vanliga fel och missupp­ fattningar samt tips på hur man kan stötta eleverna.

input("Vad heter du?")

Input

Men för att man ska kunna använda det inmat­ ade värdet, måste man spara det i en variabel:

Med kommandot input() låter man användaren mata in en text i programmet.

namn = input("Vad heter du?") När inmatningen är ett tal använder man kommandot int() eller float().

3

ålder = int(input("Hur många år är du?"))

namn = input("Vad heter du?") ■■

Använd int() när inmatningen är ett heltal.

längd = float(input("Hur lång är du?")) Använd float() när inmatningen är ett tal med decimaler.

NIVÅ 1

sida = float(input("Hur lång är kvadratens sida? Svara i cm."))

a) vad man heter och upprepar svaret

b) Förklara med egna ord vad programmet gör.

d) längd och ålder och upprepar svaren

Att resultatet blir 88 när vi matar in talet 8, och inte det förväntade 16, beror på att programmet tolkar inmatningen som en textsträng. Kom­ mandot print(2 * tal) gör att programmet skriver ut den strängen två gånger.

c) När Lovisa matar in talet 2,5 får hon ett fel­ meddelande. Hjälp Lovisa att förstå varför.

2 Skriv ett program som avrundar talet

5 Det är 50 % rabatt på allt

i affären. Skriv ett program som frågar efter varans ursprungliga pris och skriver ut vad du får betala.

b) en decimal

och skriver ut resultatet.

3 För att uppskatta din maxpuls kan du använda formeln

REA 50 %

6 Skriv ett program som frågar efter längden och

maxpuls = 220 – ålder

3

a) Vad blir resultatet om du matar in talet 2.5?

c) hur många syskon man har och upprepar svaret

46,987123 till

Skriv ett heltal: 8 88

print("Kvadratens area är", sida * sida, "kvadratcentimeter.")

b) var man är född och upprepar svaret

Ett annat vanligt fel är att eleverna inte anger att inmatningen ska tolkas som ett tal. För att uppmärksamma dem på det kan man visa föl­ jande program:

tal = input("Skriv ett heltal:") print(2 * tal)

4 Titta på koden här nedanför.

1 Skriv ett program som frågar

a) två decimaler

Att tänka på

Att tänka på

Om du vill avrunda ett värde kan du använda kommandot round(). Så här avrundar du talet 663.6700000000001 till två decimaler.

■■

bredden av en rektangel och beräknar arean och omkretsen.

Skriv ett program som frågar efter användarens ålder och beräknar maxpulsen.

Lektion 3

9

Programmering och matematik

Här ger vi förslag på hur innehållet i lektionen kan knytas till matematikundervisningen.

I det första programmet i teoritexten använder vi plustecken, i stället för kommatecken, för att skilja text och variabel åt. Då slipper man extra mellanslag kring textsträngar. Det är smidigt om man vill avsluta meningen med en punkt eller med ett frågetecken efter en variabel. Jämför raderna 2 och 3 i programmet:

namn = "Lisa" print("Hej", namn, "!") print("Hej " + namn + "!")

Att arbeta med en så kallad funktionsmaskin är ett vanligt sätt att introducera funktioner och ett tacksamt tillfälle att ta hjälp av programmering. Programmet här nedanför låter användaren mata in ett tal och skriver sedan ut ett tal enligt en spe­ cifik regel.

Hej Lisa ! Hej Lisa!

Fördjupning

tal = float(input("Ange ett tal:")) print("Resultatet är:", 2 * tal)

Fördjupning

Ange ett tal: 4.5 Resultatet är: 9.0

Vi ger förslag på programmeringskommandon som kan fördjupa innehållet i lektionen.

Kommandot int() kan användas för att avskilja heltalsdelen i ett tal med decimaler.

Låt eleverna ge exempel på tal som ska matas in och se vilket tal programmet skriver ut. Kan de komma på programmets regel?

print(int(4.2)) 4

Låt eleverna skriva liknande program till varandra och gissa varandras regler.

Om vi vill att ett heltal ska lagras som en text­ sträng, kan vi använda kommandot str(). Att datorn tolkar ett tal som en sträng, är praktiskt om vi vill plocka ut enskilda siffror ur talet.

tal = str(34) print(tal[0])

#Vi plockar ut tecknet med index 0 i variabeln tal, dvs. siffran 3

Exituppgift

3

9

Lektion 3

Enhetsomvandlaren Enhetsomvandlaren Lukas Lukas villvill göra göra enen hemsida hemsida därdär man man kankan omvandla omvandla mellan mellan svenska svenska ochoch amerikanska amerikanska enheter. enheter. Han Han harhar skrivit skrivit ettett program program som som omvandlar omvandlar enen vikt vikt i i kilogram kilogram (kg) (kg) tilltill motsvarande motsvarande vikt vikt i enheten i enheten pound pound (lb). (lb).

print("Det print("Det härhär programmet programmet omvandlar omvandlar mellan mellan kilogram kilogram ochoch pounds.") pounds.") vikt_kg vikt_kg = float(input("Skriv = float(input("Skriv en en vikt vikt i kilogram:")) i kilogram:")) print(vikt_kg, print(vikt_kg, "kg"kg motsvarar", motsvarar", vikt_kg vikt_kg * 2.20462262, * 2.20462262, "pounds.") "pounds.")

AA 11

1 Kör 1 Kör programmet. programmet. Hur Hur många många pounds pounds motsvarar motsvarar a) a) 6060 kg kg b) b) 500 500 g g c) c) vikten vikten av av ettett äpple äpple

2 Utveckla 2 Utveckla programmet programmet så att så att detdet avrundar avrundar svaret svaret tilltill tvåtvå decimaler. decimaler. 3 Skriv 3 Skriv omom programmet programmet så att så att detdet omvandlar omvandlar enen vikt vikt i pounds i pounds tilltill motsvarande motsvarande vikt vikt i kilogram. i kilogram.

I USA I USA mäter mäter man man ibland ibland volym volym i enheten i enheten gallon. gallon. EnEn gallon gallon motsvarar motsvarar 3,7854 3,7854 liter. liter.

4 Hjälp 4 Hjälp Lukas Lukas attatt skriva skriva ettett program program därdär man man matar matar in en in en volym volym i liter i liter ochoch fårfår reda reda på på motsvarande motsvarande volym volym i enheten i enheten gallon. gallon.

I USA I USA anger anger man man hurhur lång lång man man är iärenheterna i enheterna foot foot ochoch inch. inch. EnEn person person som som är är 174174 cmcm lång lång är till är till exempel exempel 5 feet 5 feet ochoch 8,58,5 inches inches lång. lång.

5 Ta 5 Ta reda reda på på hurhur lång lång enen foot foot ochoch enen inch inch är.är. 6 Hur 6 Hur lång lång är du är du mätt mätt i feet i feet ochoch inches? inches? 7 Skriv 7 Skriv ettett program program därdär man man matar matar in sin in sin längd längd i enheten i enheten meter meter ochoch fårfår reda reda på på sinsin längd längd i feet i feet ochoch inches. inches.

aktivitet aktivitet11

11

Programmering och matematik När eleverna har lärt sig att låta användaren mata in text och tal i ett program, är det tacksamt att arbeta med formler. Låt eleverna skriva program där användaren matar in relevanta värden och programmet beräknar ■■

volymen av ett rätblock

■■

begränsningsarean av en cylinder

■■

skalan om man vet föremålets längd på bilden och i verkligheten

■■

hypotenusan om man vet längden av en rätvinklig triangels kateter

På nätet finns mängder av kalkylatorer där man kan få hjälp att omvandla mellan olika enheter. I den här aktiviteten får eleverna skriva program som kan översätta mellan svenska och amerikan­ ska enheter. Ett sätt att inleda arbetet med aktiviteten är att låta eleverna ge exempel på enheter för längd, area och volym. Känner de till några enheter som man använder i andra länder? Visa en webbsida där man kan omvandla mellan enheter och berätta för eleverna att de ska få skriva program som gör den typen av beräkningar. Låt gärna eleverna arbeta med aktiviteten enligt metoden enskilt – par – alla. Det innebär att elev­ erna först funderar själva, att de därefter disku­ terar i par och att man slutligen samlar elevernas tankar och idéer i en helklassdiskussion. I par­ arbetet kan det vara bra att låta den elev som har minst dator­ eller programmeringsvana vara den som skriver på datorn.

b) Ca 1,1 lb

c) Vi antar att ett äpple väger 0,2 kg. Motsvarande vikt i pounds är ca 0,4 lbs.

2 Ändra sista raden till: print(vikt_kg, "kg motsvarar", round(vikt_kg * 2.20462262, 2) , "pounds.")

Aktivitet A 1

Den sista uppgiften är den matematiskt mest utmanande. I facit ger vi två förslag på hur man lösa den.

Vi beskriver syftet med avsnittets aktivitet, vilken programmering och matematik den behandlar samt uppgifternas progression. Vi ger också förslag på hur du kan jobba med aktiviteten i klassrummet.

3 print("Det här programmet omvandlar mellan pound och kilogram.") vikt_lb = float(input("Skriv en vikt i pound:")) print(vikt_lb, "pounds motsvarar", round(vikt_lb / 2.20462262, 2) , "kg.")

Facit

4 print("Det här programmet omvandlar mellan

liter och gallon.") volym_liter = float(input("Skriv en volym i liter:")) print(volym_liter, "liter motsvarar", round(volym_liter / 3.7854, 2) , "gallon.")

I slutet av lärarguiden finns facit till elevbokens upp­ gifter. Facit till aktiviteterna finns däremot på mot­ svarande uppslag i lärarguiden.

5 En foot är 30,48 cm och en inch är 2,54 cm. 6 Om du är 160 cm lång, så är du 5 feet och 3 inches. 7 T.ex.

F Facit — Aktivitet 1

Exituppgiften kan användas för att avsluta lektionen och ge dig en bild av vad eleverna har lärt sig. Den kan också inleda nästa lektion, för att påminna eleverna om vilka programmeringskommandon som de tidi­ gare har arbetat med.

Aktivitet 1 — Enhetsomvandlaren

Aktivitet Aktivitet1 1

1 a) Ca 132 lbs

Programmering och matematik

längd_cm = float(input("Ange din längd i cm:")) feet = längd_cm // 30.48 inches = (längd_cm / 30.48 - feet) * 30.48 / 2.54 print("Du är", feet, "feet och", round(inches, 1), "inches.") Kommentar: Rad 2 kan också skrivas: feet = int(längd_cm /30.48)

aktivitet

11

introduktion

IX


Lektion 1

Lektion 1

Print — att skriva text och använda de fyra räknesätten

Print — att skriva text och använda de fyra räknesätten

1

I den här lektionen får eleverna lära sig att skriva ut tal och text på skärmen med hjälp av kommandot print. De får också se hur man ­skriver ­program som utför beräkningar med de fyra räkne­sätten. Teoritexten ger möjlighet att lyfta fram hur pro­ grammering är en del av elevernas vardag.

1

15 kr

29 kr

12 kr

12 kr

Skriva tal

skriver ut text på skärmen

■■

utför beräkningar med de fyra räknesätten

■■

kombinerar text och beräkningar på en rad

Vi löser problemet genom att skriva ett program som beräknar summan av 29 kr, 15 kr och 12 kr och skriver ut resultatet. Vi använder kommandot print.

print(29 + 15 + 12) 56 Skriva text

Vi kan lägga till text i programmet. Då använder vi citattecken.

print("Du ska betala:") print(29 + 15 + 12)

När eleverna har arbetat med lektionen ska de kunna skriva program som ■■

På hamburgerrestaurangen beställer Meja i automaten. Hon beställer en hamburgare, en läsk och en påse morötter. Hur mycket ska hon betala?

Du ska betala: 56 Skriva tal och text

Vi kan också skriva text och beräkning på en och samma rad. Då använder vi kommatecken för att skilja mellan text och beräkning.

print("Du ska betala", 29 + 15 + 12, "kr.") Du ska betala 56 kr.

De fyra räknesätten

Start Ett datorprogram är en sekvens av instruktioner, skrivna på ett språk som datorn förstår. Ett sätt att illustrera detta är att skriva upp följande instruk­ tioner på tavlan och låta eleverna utföra dem. ■■

Res dig upp

■■

Vrid dig åt höger

■■

Ta tre steg framåt

■■

Beräkna 12 + 56

■■

Säg resultatet högt

■■

Hoppa tre gånger

Exituppgift Para ihop varje program med rätt resultat.

4

A print(5 * 3)

1

B print("5 * 3")

2 33333

C print(5 * "3")

3 15

Lektion 1

visar summan 6

print(4 - 2)

visar differensen 2

print(4 * 2)

visar produkten 8

print(6/2)

visar kvoten 3

Lektion 1

Kommentarer till uppgifterna

Om du är medvetet otydlig och bara skriver ”hoppa”, kommer eleverna förmodligen att utföra programmet på lite olika sätt. Några elever hoppar en gång, medan andra elever hoppar utan att sluta. Det ger möjlighet att lyfta fram att man i program­ mering måste vara precis.

Svar: A–3, B–1, C–2

4

print(4 + 2)

5 * 3

4

Den här uppgiften visar skillnaden mellan att skriva något med eller utan citattecken. När man använder citattecken tolkar programmet innehållet som en sträng, dvs. som en följd av tecken efter varandra, och skriver ut den. När man inte använder citattecken, tolkar programmet uttrycket som ett numeriskt uttryck och skriver ut dess värde.

5

I den här uppgiften får eleverna träna på att kombinera en text och en beräkning på en och samma rad. Uppmärksamma att man i programmering skriver decimaltecken med en punkt i stället för med ett kommatecken.

7

Använd denna uppgift för att diskutera skillnaden mellan strängar och numeriska uttryck.

8

Här får eleverna undersöka om programspråket tar hänsyn till prioriteringsreglerna.

9, 10

I dessa två uppgifter får eleverna upptäcka vilka beräkningar operatorerna ** och // utför. Operatorn ** betyder upphöjt till och // beräknar heltalsdelen vid division. Det kan sporra intressanta matematiska diskussioner. Låt gärna eleverna arbeta med uppgifterna i par.


NIVÅ 1

Att tänka på

NIVÅ 2

1 Skriv ett program som visar resultatet av beräk­ ningen

24 b) ___ + 9

a) 12 – 7

3

c) 3 ∙ 43 – 2

2 Skriv ett program som visar texten: Hej! Hur mår du?

beräknar och skriver ut kostnaden för

c) tre läsk, tre hamburgare och tre pommes frites

a) Vad tror du att programmet visar när det körs? b) Kör programmet. Vad visar det?

■■

Berätta gärna för eleverna hur de ska dokumen­ tera sitt arbete. De kan t.ex. ­kopiera och klistra in sina program i en textfil. Om eleverna har lad­ dat ner programvaran på datorn, kan de också spara varje program som en fil. Använder de en onlinetjänst kan de ofta spara sina program online, om de först skapar ett konto.

■■

Första gången eleverna kodar kan de vara ovana vid den noggrannhet som krävs. Ett enda tecken på fel plats, kan göra att programmet inte fung­ erar. Betona betydelsen av att parenteser, citat­ tecken och kommatecken hamnar rätt.

■■

Det är viktigt att göra eleverna vana vid att fel­ söka i sina program och uppmana dem att testa och testa igen. Ett bra tips är att du medvetet gör fel när du programmerar med eleverna och sedan visar hur du gör för att hitta felet.

1

7 Para ihop varje program med rätt resultat. 15 kr

b) två läsk och en hamburgare

print("hej" + "hej") print(3 * "hej")

c) Skriv ett program som skriver ut ordet hej tio gånger.

3 Skriv ett program som

a) två läsk

6 Titta på programmet här nedanför.

12 kr

29 kr

12 kr

4 Adam vill skriva ett program som visar resultatet av beräkningen 219 ∙ 45 + 8. Han gör så här:

print("219 * 45 + 8") 219 * 45 + 8 Hjälp Adam att rätta till koden, så att programmet visar resultatet av beräkningen.

5 Här nedanför ser du ett program. print("Om du kör med hastigheten 70 km/h i 1,5 timmar, så hinner du") print(70 * 1.5) I programmering skriver man decimaltecken med punkt i print("km.") stället för med kommatecken.

a) Vad kommer programmet att visa när det körs? b) Skriv programmet på en rad. Så här ska det se ut när programmet körs.

Om du kör med hastigheten 70 km/h i 1,5 timmar, så hinner du 105.0 km.

1 print("1" + "1")

A

11

2 print(3 * "1")

B

3

3 print(1 + 1)

C

2

4 print(1 * 3)

D

111

8 I rutan ser du två uttryck. a) Utför beräkningarna med huvudräkning. b) Skriv ett program som utför beräk­ ningarna. c) Tar programmet hänsyn till priori­ teringsreglerna?

3 + 2 ∙ 10 5 ∙ (8 – 7)

Prioriteringsregler 1. Parenteser 2. Multiplikation och division 3. Addition och subtraktion

9 I koden här nedanför har vi använt symbolen **. print(2**2) print(3**2) print(4**2)

1

a) Kör programmet. Vad visar det? b) Förklara vad symbolen ** gör.

10 a) Kör följande program och jämför resultaten. print(9/2,"och", 9//2) print(11/6,"och", 11//6) print(21/8,"och", 21//8)

Fördjupning Med operatorn ** kan man beräkna en potens:

b) Förklara vad symbolen // gör.

Lektion 1

5

print(7**2) 49

Avlusning När man hittar felen (buggarna) i ett program säger man att man avlusar det. Om eleverna får ett felmeddelande kan det bero på att de ■■

missar att använda och avsluta parenteser

■■

använder kommatecken i stället för punkt när de skriver decimaltal

■■

missar citattecken runt textsträngar

■■

inte använder kommatecken för att skilja sträng från ­beräkning

Programmering och matematik Eleverna ska nu kunna lösa alla uppgifter som kräver beräkningar med de fyra räknesätten. Särskilt givande är det att arbeta med uppgif­ ter med kontext, eftersom eleverna då tvingas skilja ­mellan att skriva text och att skriva beräk­ ningar i koden. Låt eleverna redovisa några sådana textuppgifter med hjälp av ett program. Det är en bra introduktion till att programmera i matema­ tik.

Operatorn // utför en division och skriver ut ­heltalsdelen av resultatet:

print(7//2) 3 Om man vill beräkna kvadratroten av ett tal, kan man utnyttja att det är detsamma som att upphöja talet till 0,5:

print(49**0.5) 7.0 Man kan också beräkna kvadratroten av ett tal genom att importera modulen math:

import math print(math.sqrt(25)) 5.0 Med kommandot Fraction kan man omvandla ett tal i decimalform till bråkform:

from fractions import Fraction print(Fraction(3,4)) print(Fraction(0.75)) 3/4 3/4

Lektion 1

5


Lektion 2

Lektion 2 Variabler — att spara värden

Variabler — att spara värden I teoritexten på sidan 6 i elevboken skriver vi två versioner av ett program som beräknar en rek­ tangels omkrets och area. I den andra versionen ersätter vi siffrorna 3 och 4 med variablerna bredd och längd. I programmering är en variabel en minnesplats där man lagrar ett tal eller en text­ sträng.

2

4 cm

2

Titta på rektangeln här till vänster. Den är 3 cm bred och 4 cm lång. Det här programmet beräknar rektangelns omkrets och area.

print("En rektangel har bredden 3 cm och längden 4 cm.") print("Omkretsen är", 2 * (3 + 4), "centimeter.") print("Arean är", 3 * 4, "kvadratcentimeter.") En rektangel har bredden 3 cm och längden 4 cm. Omkretsen är 14 centimeter. Arean är 12 kvadratcentimeter.

3 cm

Omkretsen är summan av rek­ tangelns sidlängder. Arean beräknas som längden gånger bredden.

Variabler

Vi kan också börja programmet med att spara rektangelns bredd och längd i minnet. Då använder vi två variabler.

bredd = 3 längd = 4

Vi kan namnge variablerna på andra sätt, exempelvis b och l.

Variablernas namn är bredd och längd och deras värden är 3 och 4. I stället för att skriva talen 3 och 4 i programmet, kan vi nu skriva variablernas namn.

bredd = 3 längd = 4 print("En rektangel har bredden", bredd, "cm och längden", längd, "cm.") print("Omkretsen är", 2 * (bredd + längd), "centimeter.") print("Arean är", längd * bredd, "kvadratcentimeter.")

bredd

längd

Ett annat ord för att köra ett program är att exekvera.

Om du kör koden, får du samma resultat som med det första programmet. Men i det andra programmet kan du enkelt beräkna area och omkrets av en annan rektangel, utan att behöva ändra på så många ställen i koden.

Variabler Med hjälp av en variabel kan man spara en text eller värdet av ett tal.

Man kan jämföra en variabel med en låda, som man kan fylla med innehåll. När man vill använda innehållet i lådan, anropar man variabelns namn.

a = 3 namn_1 = "Emelie" En variabels namn kan innehålla bokstäver, siffror och tecknet _, men inga andra tecken eller mellanslag. Tänk på att datorn skiljer på stora och små bokstäver.

En kritisk aspekt i inlärningen är att eleverna för­ står att vi har sparat värdet 3 i variabeln bredd och värdet 4 i variabeln längd och att vi därför kan ersätta dessa värden i programmet med vari­ ablernas namn. En vinst med att införa variab­ ler är att vi snabbt kan beräkna omkretsen och arean av en annan rektangel, utan att ändra på så många ställen i koden. Visa gärna detta för elev­ erna genom att beräkna omkrets och area för flera rektanglar.

A och a är alltså olika variabler.

6

Kommentarer till uppgifterna 1 c)

Elever som får fel svar kan ha glömt att omvandla till samma längdenhet.

3 a)

Om eleverna löser uppgiften genom att ersätta tal_1 och tal_2 med talen 30 och 97 på den tredje raden i koden, tyder det på att de inte ännu förstått syftet med variabler. Det är på rad 1 och 2 som de ska göra ersättningen.

7

I den här uppgiften inför vi variabeln höjd. I programmering undviker man ibland bokstäverna å, ä och ö, eftersom de inte stöds av alla programspråk. Då å, ä och ö stöds av Python 3, och bokstäverna gör programmen mer lättlästa, har vi valt att använda dem.

9

Eleverna får skriva ett program som omvandlar en sträcka i enheten centimeter till motsvarande sträcka i enheten meter. Variera uppgiften genom att låta eleverna skriva program som omvandlar mellan andra enheter.

10

I den här uppgiften ska eleverna skriva ett program som omvandlar mellan två valutor. Det tränar dem i att skriva formler. Valutakursen får eleverna söka efter på nätet.

11

Uppmärksamma eleverna på att Python 3 inte läser osynliga multiplikationstecken. Uttrycket 1,8C måste därför skrivas 1.8 * C.

När eleverna har arbetat med lektionen ska de kunna skriva program som ■■

tilldelar en variabel ett värde och använder ­variabeln i beräkningar

Start Vad gör programmet?

b = 6 h = 10 a = b * h/2 print("Arean är", a, "kvadratcentimeter.") Svar: Programmet beräknar arean av t.ex. en tri­ angel med basen 6 cm och höjden 10 cm.

6

Lektion 2

Lektion 2


NIVÅ 1

Att tänka på

NIVÅ 2

1 Använd programmet längst ner på sidan 6 och

7 Petter har skrivit ett program som ska beräkna

beräkna omkretsen och arean av en rektangel med sidorna a) 5 cm och 8 cm

höjd = 4

b) 92 cm och 230 cm

print("Arean är", Bas * Höjd/2)

c) 1 m och 3 dm

När han kör programmet får han följande fel­ meddelande.

2 Vad kommer programmen att visa när de körs? a) a = 5

b = 10

print(a + b)

c = 2 * a - 3 * b

2

NameError: name 'Bas' is not defined

b) a = 5

b = 10

■■

arean av en triangel.

bas = 3

Hjälp Petter att hitta vad som är fel.

tal = 16

8 Med formeln

print(c)

s=v∙t

3 Det här programmet beräknar produkten av två

kan man beräkna sträckan (s) om man vet hastigheten (v) och tiden (t). Skriv ett program som beräknar sträckan om man kör

tal.

tal_1 = 25 tal_2 = 60 print("Produkten av", tal_1, "och", tal_2, "är", tal_1 * tal_2)

a) 70 km/h i 2 timmar

Ändra programmet så att det i stället beräknar

print(16**2 + 16 * 3) I programmering använder man punkt i stället för komma när man skriver tal med decimaler.

print(tal**2 + tal * 3) Raderna 2 och 3 ger samma resultat när pro­ grammet körs. Men om vi tilldelar variabeln tal ett nytt värde på rad 1, t.ex. 17, så kommer rad 3 att uppdateras, men inte rad 2.

b) 110 km/h i 2,5 timmar

a) produkten av 30 och 97

c) 90 km/h i 75 minuter

b) kvoten av 30 och 97

9 Skriv ett program som omvandlar en sträcka i

4 Skriv ett program som beräknar differensen av

centimeter till motsvarande sträcka i meter.

två variabler.

10 Skriv ett program som omvandlar ett belopp

5 Det här programmet beräknar arean av en kva­

■■

I programmering är likhetstecknet ett tilldel­ ningstecken. Uttrycket  a = 3  betyder att vi tilldelar variabeln a värdet 3, dvs. att värdet 3 sparas i minnet. Använd därför gärna språkbru­ ket ”vi sparar värdet 3 i variabeln a” snarare än ”a är lika med 3” när du skriver kod tillsammans med eleverna.

■■

Python 3 är ett programspråk där ordningen i koden spelar roll, eftersom exekveringen sker i sekvens. Följande kod ger alltså ett felmedde­ lande eftersom vi anropar variabeln innan vi har definierat den:

i amerikanska dollar (USD) till motsvarande belopp i svenska kronor (SEK).

drat med sidan 5 cm. Skriv om programmet, så att längden av kvadratens sida är en variabel.

11 Med formeln

print("En kvadrat med sidan", 5,"centimeter har arean", 5 * 5, "kvadratcentimeter.")

F = 1,8C + 32 kan man omvandla från en temperatur i grader Fahrenheit (F) till en temperatur i grader Celsius (C). Skriv ett program som anger temperaturen i Fahrenheit när temperaturen i Celsius är

6 Skriv ett program som beräknar arean av en tri­ angel med hjälp av variablerna bas och höjd. Så här ska programmet se ut när du kör det:

a) 0 °C

En triangel med basen 5 centimeter och höjden 10 centimeter har arean 25 kvadratcentimeter.

Vår erfarenhet är att många elever har svårt att arbeta med variabler. Det är till exempel vanligt att eleverna skriver variabelns värde, i stället för variabelns namn, när de vill använda värdet i ett program. För att belysa skillnaden kan man dis­ kutera följande program

b) –10 °C

c) 225 °C

d) Skriv ett program som omvandlar en tempe­ ratur i Fahrenheit till motsvarande tempera­ turen i Celsius.

Lektion 2

7

2

print(x)

Avlusning

x = 9

Om eleverna får felmeddelanden, kan det bero på att de ■■

inte använder samma variabelnamn i hela programmet Var uppmärksam på

■■

inte använder punkt som decimaltecken

■■

inte skriver ut multiplikationstecknet mellan koefficient och variabel. Uttrycket 3a måste i Python 3 skrivas 3 * a.

stora och små bokstäver.

Exituppgift

Fördjupning I en variabel kan man spara en text. Då blir det lätt att använda samma textsträng flera gånger.

text_1 = "Fel. Försök igen!" print(text_1) Fel. Försök igen!

Programmering och matematik

Vad kommer programmet att visa när det körs? a) a = 3

print(1000 * a + 100 * a + 10 * a) b) text_1 = "abra"

text_2 = "kad" print(10 * (text_1 + text_2 + text_1)) Svar: a)  3 330 b) Ordet abrakadabra tio

gånger efter varandra.

Innehållet i lektionen kan med fördel knytas till arbetet med algebraiska uttryck och formler. Låt exempelvis eleverna skriva ett program som beräknar begränsningsarean av ett rätblock eller andelen om man vet delen och det hela:

delen = 20 det_hela = 80 print("Andelen är", delen/det_hela)

Lektion 2

7


Räkna med kod

Programmering i matematik

I Räkna med kod – programmering i matematik får eleverna lära sig grunderna i ­programspråket Python samtidigt som de löser matematiska problem. Häftet består av 12 lektioner i programmering och riktar sig till elever på högstadiet och gymnasiet. Häftet kan användas fristående men också som ett komplement till läromedlen Matte Direkt, Prio Matematik och Matematik Origo. Räkna med kod – programmering i matematik består av ett elevhäfte och en lärarguide. Läro­ medlet finns även som digital bok med instruktionsfilmer och ledtrådar till utvalda uppgifter.

ISBN 978-91-523-5572-5

Profile for Smakprov Media AB

9789152355725  

9789152355725  

Profile for smakprov

Recommendations could not be loaded

Recommendations could not be loaded

Recommendations could not be loaded

Recommendations could not be loaded