31
OM MARCUS OM KURSEN FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALA BINÄRA MARCUS WEIDERSTÅL Datavetare Teknisk chef och Partner på Reklambyrån A New Dialogue AB Tidigare lärare inom datalogi Fotbollsnörd, schackspelare, och ubåtsfantast Kurt Gödel och Alan Turing KONTAKT [email protected] @weiderstal 073-683 10 41

Matematik För programmerare F1

Embed Size (px)

Citation preview

Page 1: Matematik För programmerare F1

OM MARCUS OM KURSEN FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRA

MARCUS WEIDERSTÅL

• Datavetare

• Teknisk chef och Partner på Reklambyrån A New Dialogue AB

• Tidigare lärare inom datalogi

• Fotbollsnörd, schackspelare, och ubåtsfantast

• Kurt Gödel och Alan Turing

!

!KONTAKT

[email protected]

• @weiderstal

• 073-683 10 41

Page 2: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRA

MATEMATIK FÖR PROGRAMMERARE

Varför?

Diskret matematik

“Bra att kunna”

OM KURSEN

Page 3: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

KURSMÅL

Kursens huvudsakliga innehåll: !Kursen ska ge kursdeltagaren fördjupade kunskaper i matematik md fokus på diskret matematik inom områdena mängdlära, aritmetik, vektorer och matriser, funktionsbegreppet, rekursion, booleska uttryck, statistik, träd och grafer, regulära uttryck och automater. Viss koppling görs till programspråket C#. !Mål som den studerande ska ha uppnått efter avslutad kurs !Den studerande ska kunna: redogöra för och kunna använda de vanligaste begreppen inom diskret matematik ● lösa givna logiska problem inom de områden som kursen behandlar ● arbeta med diskreta objekt som heltal, binära tal, mängder, träd och grafer ● använda och redogöra för vektorer och matriser ● använda och redogöra för de vanligaste statistiska funktionerna !Betygsnivåer Icke godkänt, Godkänt och Väl godkänt

Page 4: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

BETYGSKRITERIER

För att få betyget godkänt krävs att den studerande kan • använder lämpliga matematiska begrepp inom diskret matematik för att lösa problem i ett steg • använder matematiska termer och symboler på ett korrekt sätt !För att få betyget väl godkänt krävs att den studerande har uppnått kunskapskraven för betyget godkänt ● använder lämpliga matematiska begrepp, metoder och modeller inom diskret matematik för att formulera och lösa olika typer av problem ● genomför matematiska resonemang på ett korrekt sätt ● gör matematiska tolkningar av verkliga situationer samt genomför och redovisar sitt logiska resonemang

Page 5: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

KURSINNEHÅLL

Aritmetik!Mängdlära!Binär aritmetik!Booleska uttryck!Grundläggande datatyper!Träd!Grafer!Sökning och sortering!Funktioner och relationer!Statistik!Reguljära uttryck och automater

Page 6: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

PLANERING

Tisdag: Aritmetik, talbaser, datatyper!Onsdag: Mängdlära!Torsdag: Boolesk algebra/utryck

Page 7: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

LITTERATUR

Länkar Häften Presentationer !“inför tentamen”

Page 8: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

EXAMINATION

Tentamen Dugga/or

Page 9: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

FÖRELÄSNING 1

Aritmetik och talsystem

!

“Det finns tre sorters människor: de som kan räkna och de som inte kan det.”

Page 10: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

ARITMETIK

• En gren inom matematiken som behandlar räknandet.

• Grunden till all matematik

• Jämförelse

• Resultat + uträkningar

• Aritmetiska operationer

• Axiom (Räknelagar)

• Naturliga tal

Page 11: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

NATURLIGA TAL

• Naturliga tal är de heltal som är positiva (icke-negativa) Ex: 0,1,2,3,4…(“Alla heltal som har ett värde”)

• Alla naturliga tal kan sammanfattas som N eller N

• Ex: N ={0,1,2…}

• Bevis: Peanos Axiom (0∈N)

• Det naturliga talet 0 Den tomma mängden: 0 = Ø = {}

Page 12: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

NATURLIGA TAL

• Naturliga tal är de heltal som är positiva (icke-negativa) Ex: 0,1,2,3,4…(“Alla heltal som har ett värde”)

• Alla naturliga tal kan sammanfattas som N eller N

• Ex: N ={0,1,2…}

• Bevis: Peanos Axiom (0∈N)

• Det naturliga talet 0 Den tomma mängden: 0 = Ø = {}

Finns det naturliga tal inom programmering?

Page 13: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

NATURLIGA TAL

x + y är summan av termerna x och y !x * y är produkten av faktorerna x och y !4 * 5 = 5 + 5 + 5 + 5 = 20 !5 * 4 = 4 + 4 + 4 + 4 + 4 = 20 !4 * 5 = 5 * 4 !12 + 8 = 8 + 12 !5 * 33 + 5 * 27 = 5 * (33 + 27)

Page 14: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

NATURLIGA TAL

x, y och z är naturliga tal !0 + x = x 0 * x = 0 1 * x = x x + y = y + x x * y = y * x (x + y ) + z = x + (y + z) x * (y + z) = x * y + x * z x + y = x + z vilket medför y = z

Page 15: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

TALSYSTEM

!

“There are only 10 kind of people. Those who understand binary and those who don’t"

Page 16: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

TALSYSTEM

• Talsystem är det system vi använder för att representera tal. !

• Det enklaste talsystemet är det unära. Det unära systemet kan bara representera naturliga tal. !• Olika talsystem för olika grejer !

Page 17: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

“DE GAMLA ROMARNA”

• Det romerska talsystemet har sju grundsiffror: I (1), V (5), X (10), L (50), C (100), D (500) och M (1000) !

• Trots bara sju grundsiffror är det ett väldans krångligt system. !

• Pröva att skriva talet 499 i romerska siffror.

Page 18: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

NYA TIDER…

…NYA GREJER

Page 19: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

POSITIONSSYSTEM

• Hur representerar vi ett värde? !• Tal 1-9. Vad händer sen?

Page 20: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

TALBASER

• Talbaser, eller basen, är den faktor som man i ett positionssystem multiplicerar de olika siffrorna för att få fram talets värde !• Vi ska titta på närmare på talbas 10, 2 och 16 !

Page 21: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

DECIMALA TALSYSTEMET

• Talbas 10 !• Ex: 23410

!• “Det vanliga sättet att räkna” !

• Börjar längst till högern med talen/värdena 1-9 !

• Positionen näst längst till höger (101) representerar tiotal med talen 1-9. !

Page 22: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

Page 23: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

BINÄRA TALSYSTEMET

• Binär betyder att något består av två delar. När vi pratar om digital representation, kretsar och dylikt pratar man oftast om av eller på. !

• Talbas 2 !• Ex: 1001 01102

!• “Nördspråket” !• Använder bara 0 eller 1 för att representera tal. !

• Börjar längst till högern med talen 0-1 och som där representerar 0-1 !• Positionen näst längst till höger (21) kan vara 1 eller 0 men representerar värdena 0 eller 2 (Krångligt, jag vet, men vi tittar närmare på det strax). !• Postionen tredje längst till höger (22) kan vara 1 eller 0 men representerar talen 0 eller 4. !• Positionen fjärde längst till höger (23) kan vara 1 eller 0 men representerar talen 0 eller 8. !

Page 24: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

BINÄRA TALSYSTEMET

Ex: 1010 1010 !Övningsuppgift 1: A) Omvandla 1010 till binärt B) Omvandla 11002 till decimalt C) Omvandla 77810 till binärt D) Omvandla 1111 11112 till decimalt

Page 25: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

MEN VARFÖR?

En dator klarar inte av att representera decimala tal. Det är bara att vänja sig med det. !Med binära tal kan vi inte bara representera ett värde. Vi kan även representera en av/på relation.

Page 26: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

BITS & BYTES

1 Bit = 1 ruta/värde 1 Byte = 8 bits 1 ord = 16/32 bits !!Vad är då maxvärden för alla dessa tre?

Page 27: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

HEXADECIMALA TALSYSTEMET

• Talbas 16 !• Även kallad HTML/Lunarstorm-matte !• Men vi har ju bara siffror för 1-9? !• 1-F • FFF

Page 28: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

OMVANDLA MELLAN TALBASER

!

Page 29: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

HELTAL I C#

!• Det finns ett antal datatyper för att representera heltal i C#. Dom olika typerna har olika maxvärden och tar därför upp ett visst antal bits. !• I C# finns det fyra vanliga helttalsdatatyper: • byte (8 bitar) • short (16 bitar) • int (32 bitar) • long (64 bitar) !• Dessa sparar värden i binär form. Maxvärdet för datatypen byte blir alltså 1111 11112 !

Page 30: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

HELTAL I C# - OMVANDLING

!Att omvandla från en mindre datatypen fungerar alltid. Det är värre när vi ska åt andra hållet.Eller när programmet ger en för stor output än datatypen !Ta en titt på följande exempel: !short a = 256; byte b; b = (byte) a; Console.WriteLine(b); !Vad får vi för output och vad händer bakom?

Page 31: Matematik För programmerare F1

OM MARCUS FÖRELÄSNING 1 ARITMETIK TALSYSTEM DECIMALA HEXADECIMALABINÄRAOM KURSEN

HELTAL I C# - OMVANDLING

!a: 00000001 00000000 (16 bitar) b: 00000000 (8 bitar)