Logik och kontrollstrukturer

Storlek: px
Starta visningen från sidan:

Download "Logik och kontrollstrukturer"

Transkript

1 Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch och?-operatorn som är kompakta former av if else och for-satsen som är en kompakt form av while. Samtliga kontrollstrukturer bygger på att skapa logiska uttryck. Programmering och logik är därför nära kopplade. Veckans övning går ut på att träna i logik. Logiska utsagor och uttryck En utsaga kan vara sann eller falsk, t.ex. Sara kör en bil, värdet på variabeln x är 4. Inom logiken anges en utsaga vanligen med någon av bokstäverna p, q eller r. Utsagorna kan i sin tur kombineras med logiska operatorer för att bilda logiska uttryck som även det kan vara sant eller falskt. De tre vanligaste logiska operatorerna är och (konjunktion), eller (disjunktion) och icke (negation). Ett exempel på ett uttryck är Sara kör en bil och Sara svänger höger Utsagorna är Sara kör en bil (låt oss kalla utsagan för p) och Sara svänger höger (q). Den logiska operatorn är och. Frågan är nu om uttrycket är sant eller falskt. Givetvis beror det dels på om de två utsagorna i sig är sanna eller falska och vad som händer i kombination med operatorn. I detta exempel har vi fyra fall vi måste betrakta. Om Sara kör en bil så är utsagan sann, annars falsk. Samma med Sara svänger höger. Det blir fyra fall då det finns fyra möjliga kombinationer. För att uttrycket ska vara sant krävs att båda utsagorna är sanna, annars blir utsagan falsk och detta beror på operatorn och. Blir det alltid så? Ja faktiskt. Vad händer om vi ändrar operatorn till eller? Vi reder strax ut detta. Operator och betecknas i logiken med och inom programmering i C med &&. Eller betecknas med respektive och icke med ~(eller respektive!. Låt oss nu ta några exempel på uttryck och hur de representeras. uttryck Sara kör en bil och Sara svänger höger Sara svänger inte höger Sara svänger höger men kör inte bil logik p q q q p För att avgöra om uttrycken blir sanna eller falska behöver vi först reda ut hur operatorerna fungerar. Vi bygger en sanningstabell. Vi skriver T för true (sann) och F för false (falskt). p q ~p (icke p) p q (p och q) p q (p eller q) T T F T T T F F (q är irrelevant) F T F T T F T F F T (q är irrelevant) F F

2 Av tabellen ovan ser vi svaret på frågan vi ställde tidigare. Uttrycket Sara kör bil eller Sara svänger höger blir sant om minst en av utsagorna är sann. Enda gången det är falskt är om båda utsagorna är falska. Sara kanske inte svänger alls och hon sitter på en cykel. Däremot blir det sant om Sara sitter på en cykel och svänger höger. Av exemplen ovan har vi rett ut de två första, men vad händer i sista exemplet. Sara svänger höger men kör inte bil. Återigen tar vi en sanningstabell. p q p q p T T F F T F F F F T T T F F T F Föga förvånande så ser vi av tabellen att enda gången uttrycket är sant är när p är falskt (Sara kör inte bil) och när q är sant, dvs att Sara svänger höger. Prioritetsordning Prioritet är viktigt inom såväl matematik som programmering. Vad blir uttrycket ? 14 eller 13? Vad görs först, addition eller multiplikation? Från matematiken vet vi att vi alltid ska utföra multiplikation före addition. Uttrycket blir alltså 13. Inom programmering kallas detta för prioritetsordning för operatorer. Även i C utförs alltså multiplikation före addition. Hur är det då i logiken? ~ före och före Behövs en annan prioritet behöver vi använda parenteser (1+6) 2 (p q) r Uppgift 1 Bestäm två utsagor som du kan använda i samtliga fall nedan. Formulera sedan logiska uttryck för de sju fallen. Skriv en sanningstabell för 3 och Det brinner inte. 2. Det brinner och ryker. 3. Det ryker, men brinner inte. 4. Det varken ryker eller brinner. 5. Det brinner inte och det ryker inte heller. 6. Det brinner inte fast det ryker. 7. Det brinner!

3 Uppgift 2 Två variabler p och q är deklarerade som heltal men lagrar ett logiskt värde (1 eller 0) där variabeln antas vara sann om värdet är 1 och falsk om värdet är 0. Variabeln p ska ha värdet 1 om det brinner, annars värdet 0. Variabeln q ska ha värdet 1 om det ryker annars värdet 0. Skriv de satser i C som krävs så att variablerna har ett korrekt värde om tillstånden i de sju meningarna ovan råder. Implikation En logisk sats som är intressant är implikation, som på begriplig svenska kan uttryckas som om-så. Inom logiken uttrycks det med operatorn. Om vi har uttrycket p q, så betyder det att om p är sant så ska q vara sant. Ett exempel. Om det regnar så blir det blött. Kolla in sanningstabellen för detta uttryck och se om du håller med. p q p q T T T T F F F T T F F T Observera att uttrycket blir sant i båda fallen där p är falskt. I vårt fall innebär det att uttrycket om det regnar så blir det blött blir sant i de fall det inte regnar, vilket först kan verka konstigt, men det är rätt logiskt. Det kan faktiskt både vara torrt och blött om det inte regnar, men av andra orsaker. Om det regnar kan uttrycket däremot bara bli sant om det också blir blött. På engelska blir översättningen av om-så (alltså implikation), if-else. Tada! Uppgift 3 Formulera logiska uttryck för de fem fallen nedan. Skriv en sanningstabell för 8 och Om det ryker, så brinner det. 9. Det brinner om det ryker. 10. Det ryker inte, om det inte brinner. 11. Det brinner endast om det ryker (svår fundera på sanningstabell). 12. Om det brinner brinner det. Uppgift 4 Fortsätt nu från uppgift 2 och skriv de satser i C som krävs så att variablerna har ett korrekt värde om tillstånden i de fem meningarna ovan råder. Observera alltså att du kan använda if-else. Uppgift 5 Låt oss ha följande utsagor p = "Solen skiner", q = "Det regnar" och r = "Det är rötmånad". Nu har vi representerat dem som tre logiska uttryck i C. Översätt dem till svenska så gott det går och försök formulera det så som vi skulle göra i vardagligt tal. 1. (q && p) r 2. p q && r

4 3. p &&!q r Uppgift 6 Appropå prioritetsordning, avskaffa så många parentespar som det går i följande uttryck. 1. ((p (!q)) && r) 2. ((!((p && q) && (p)) (!(p)) && r)) 3.!(p ((q && p) ((p) (p q)))) Ekvivalens Det är enkelt. Om två uttryck ger samma sanningstabell, så är de ekvivalenta. Det innebär att de är utbytbara. Att finna enklare men logiskt ekvivalenta uttryck är mycket viktigt i programmering. Många fel i mjukvara uppstår pga av logiska misstag av den som programmerar. Det beror ofta på att man har alltför komplicerade uttryck. Att förenkla logiska uttryck underlättar därför både programmering och felsökning av program. Tre vanliga ekvivalenta uttryck som ofta används vid förenkling är följande p q) ~p q p q) ~p q p q p ~q Uppgift 7 Detta är en mer avancerad uppgift. Förenkla följande satser och verifiera ditt svar med en sanningstabell. 1. p p && q 2. (p q) (p && q) 3. ((p q) (r!r)) Uppgift 8 Vad skrivs ut? int i = i + 1; for (i=0; i<5; i=i+1)

5

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section Föreläsning 1 Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section 1.1-1.3 i kursboken Definition En utsaga (proposition) är ett

Läs mer

MATEMATIKENS SPRÅK. Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt,

MATEMATIKENS SPRÅK. Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt, Explorativ övning 1 MATEMATIKENS SPRÅK Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt, lära oss förstå språket. Vi skall försöka utveckla vårt matematiska språk,

Läs mer

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden. MATEMATISK LOGIK Matematisk logik formaliserar korrekta resonemang och definierar formellt bindeord (konnektiv) mellan påståenden (utsagor, satser) I matematisk logik betraktar vi påståenden som antingen

Läs mer

MATEMATIKENS SPRÅK. Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt, lära oss

MATEMATIKENS SPRÅK. Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt, lära oss Explorativ övning 1 LMA100 vt 2003 MATEMATIKENS SPRÅK Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt, lära oss förstå språket. Vi skall försöka utveckla vårt

Läs mer

MATEMATIKENS SPRÅK. Avsnitt 1

MATEMATIKENS SPRÅK. Avsnitt 1 Avsnitt 1 MATEMATIKENS SPRÅK Varje vetenskap, liksom varje yrke, har sitt eget språk som ofta är en blandning av vardagliga ord och speciella termer. En instruktionshandbok för ett kylskåp eller för en

Läs mer

Övningshäfte 1: Logik och matematikens språk

Övningshäfte 1: Logik och matematikens språk GÖTEBORGS UNIVERSITET MATEMATIK 1, MMG200, HT2014 INLEDANDE ALGEBRA Övningshäfte 1: Logik och matematikens språk Övning A Målet är att genom att lösa och diskutera några inledande uppgifter få erfarenheter

Läs mer

JavaScript del 3 If, Operatorer och Confirm

JavaScript del 3 If, Operatorer och Confirm JavaScript del 3 If, Operatorer och Confirm Under förra uppgiften så kollade vi på hur användaren kan ge oss information via promt(), vi använde den informationen både för att skriva ut den och för att

Läs mer

MA2047 Algebra och diskret matematik

MA2047 Algebra och diskret matematik MA2047 Algebra och diskret matematik Något om logik och mängdlära Mikael Hindgren 5 september 2018 Utsagor Utsaga = Påstående som har sanningsvärde Utsagan kan vara sann (S) eller falsk (F) öppen eller

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på

Läs mer

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera Föreläsning 2 Operatorer Tilldelning Kodblock if satsen Logiska uttryck Att programmera En operator tar ett eller två data och producerar ett svar. Typexemplet är +. Den tar t.ex två heltal och producerar

Läs mer

Logik. Dr. Johan Hagelbäck.

Logik. Dr. Johan Hagelbäck. Logik Dr. Johan Hagelbäck johan.hagelback@lnu.se http://aiguy.org Vad är logik? Logik handlar om korrekta och inkorrekta sätt att resonera Logik är ett sätt att skilja mellan korrekt och inkorrekt tankesätt

Läs mer

TATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter

TATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter TATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter Johan Thim 15 augusti 2015 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

Föreläsning 4. Val, boolska värden, läsbarhet, osv

Föreläsning 4. Val, boolska värden, läsbarhet, osv Föreläsning 4 Val, boolska värden, läsbarhet, osv Exempel /* Programmeringsteknik med C och Matlab Programmering i C HT13 Exempel Fil: plus_one.c Författare: Jonny Pettersson Användare: jonny Datum: 7

Läs mer

D. x 2 + y 2 ; E. Stockholm ligger i Sverige; F. Månen är en gul ost; G. 3 2 = 6; H. x 2 + y 2 = r 2.

D. x 2 + y 2 ; E. Stockholm ligger i Sverige; F. Månen är en gul ost; G. 3 2 = 6; H. x 2 + y 2 = r 2. Logik Vid alla matematiskt resonemang måste man vara säker på att man verkligen menar det man skriver ner på sitt papper. Därför måste man besinna hur man egentligen tänker. Den vetenskap, som sysslar

Läs mer

Logik. Boolesk algebra. Logik. Operationer. Boolesk algebra

Logik. Boolesk algebra. Logik. Operationer. Boolesk algebra Logik F4 Logik Boolesk algebra EDAA05 Roger Henriksson Jonas Wisbrant Konsten att, och vetenskapen om, att resonera och dra slutsatser. Vad behövs för att man ska kunna dra en slutsats? Hur kan man dra

Läs mer

7, Diskreta strukturer

7, Diskreta strukturer Objektorienterad modellering och diskreta strukturer 7, Diskreta strukturer Sven Gestegård Robertz Datavetenskap, LTH 2015 Modeller Matematiska modeller Kontinuerliga modeller Kontinuerliga funktioner

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering

Läs mer

Uttryck och villkor. Föreläsning 2

Uttryck och villkor. Föreläsning 2 Uttryck och villkor Föreläsning 2 Dagens kluring Finn fem fel! #include int main(void) printf("resistans hos R1 (ohm) : ") scanf("%d",r1); printf("resistans hos R2 (ohm) : "); scanf("%d",r2);

Läs mer

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1.

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1. UPPSALA UNIVERSITET Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv07/dg1/ Logisk semantik I 1 Lite om satslogik 1.1

Läs mer

Vad är det? Översikt. Innehåll. Vi behöver modeller!!! Kontinuerlig/diskret. Varför modeller??? Exempel. Statiska system

Vad är det? Översikt. Innehåll. Vi behöver modeller!!! Kontinuerlig/diskret. Varför modeller??? Exempel. Statiska system Vad är det? Översikt Discrete structure: A set of discrete elements on which certain operations are defined. Discrete implies non-continuous and therefore discrete sets include finite and countable sets

Läs mer

7, Diskreta strukturer

7, Diskreta strukturer Objektorienterad modellering och diskreta strukturer 7, Diskreta strukturer Sven Gestegård Robertz Datavetenskap, LTH 2013 1 Inledning 2 Satslogik Inledning Satslogiska uttryck Resonemang och härledningar

Läs mer

2.4. Teckensträngar och logiska uttryck

2.4. Teckensträngar och logiska uttryck 2.4. Teckensträngar och logiska uttryck I Fortran sparar man text i variabler av typen CHARACTER. För varje tecken reserveras normalt 1 byte i minnet. För att deklarera en teckenvariabel TEXT och samtidigt

Läs mer

ANDREAS REJBRAND NV3ANV Matematik Matematiskt språk

ANDREAS REJBRAND NV3ANV Matematik   Matematiskt språk ANDREAS REJBRAND NV3ANV 2006-02-14 Matematik http://www.rejbrand.se Matematiskt språk Innehållsförteckning MATEMATISKT SPRÅK... 1 INNEHÅLLSFÖRTECKNING... 2 INLEDNING... 3 MÄNGDER... 4 Att uttrycka en mängd...

Läs mer

Semantik och pragmatik

Semantik och pragmatik Semantik och pragmatik OH-serie 4 http://stp.lingfil.uu.se/~matsd/uv/uv12/semp/ Mats Dahllöf Institutionen för lingvistik och filologi Januari 2012 Om barnet har svårt att andas eller har ont i bröstet

Läs mer

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

System.out.println(Jaså du har + antalhusdjur+  husdjur); if ( antalhusdjur > 5 ) System.out.println(Oj det var många); 1 Villkor och styrsatser I de program vi sett tidigare har programkörning inneburit att sats efter sats utförts i den ordning de skrivits i källkoden. Vi har inte kunna ändra programmets uppförande beroende

Läs mer

Uttryck och villkor. Föreläsning 2

Uttryck och villkor. Föreläsning 2 Uttryck och villkor Föreläsning 2 Dagens kluring Finn fem fel! #include int main(void) printf("resistans hos R1 (ohm) : ") scanf("%d",r1); printf("resistans hos R2 (ohm) : "); scanf("%d",r2);

Läs mer

Föreläsningsanteckningar och övningar till logik mängdlära

Föreläsningsanteckningar och övningar till logik mängdlära Inledande matematisk analys tma970, 010, logik, mängdlära Föreläsningsanteckningar och övningar till logik mängdlära Dessa öreläsningsanteckningar kompletterar mycket kortattat kap 0 och appendix B i Persson/Böiers,

Läs mer

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor Johan Thim 22 augusti 2018 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför Q

Läs mer

Översikt över Visual Basic

Översikt över Visual Basic Översikt över Visual Basic Om denna översikt Denna översikt ger en kort introduktion till de viktigaste delarna i programspråket Visual Basic 6.0. På alla ställen där det beskrivs hur man skriver kod gäller

Läs mer

p /\ q r DD1350 Logik för dataloger Kort repetition Fö 3 Satslogikens semantik

p /\ q r DD1350 Logik för dataloger Kort repetition Fö 3 Satslogikens semantik DD1350 Logik för dataloger Fö 3 Satslogikens semantik 1 Kort repetition Satslogik formellt språk för att uttrycka påståenden med variabler och konnektiv /\, \/,, t.ex. p /\ q r 1 Kort repetition Naturlig

Läs mer

Föreläsning 3: Booleans, if, switch

Föreläsning 3: Booleans, if, switch TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt

Läs mer

Booleska variabler och översättning mellan programuttryck och booleska variabler

Booleska variabler och översättning mellan programuttryck och booleska variabler Vad är Boolesk algebra Lite förenklat kan man säga att Boolesk algebra är räkneregler konstruerade av den engelske matematikern Gerge Boole för att kunna räkna med logiska uttryck. I den booleska algebran

Läs mer

Visual Basic, en snabbgenomgång

Visual Basic, en snabbgenomgång Visual Basic, en snabbgenomgång Variabler och Datatyper En variabel är som en behållare. Olika behållare passar bra till olika saker. I Visual Basic(härefter VB) finns olika typer av behållare för olika

Läs mer

Kap. 7 Logik och boolesk algebra

Kap. 7 Logik och boolesk algebra Ka. 7 Logik och boolesk algebra Satslogik Fem logiska konnektiv: ej, och, eller, om-så, omm Begre: sats, sanningsvärde, sanningsvärdestabell tautologi, kontradiktion Egenskaer: Räkneregler för satslogik

Läs mer

Data, typ, selektion, iteration

Data, typ, selektion, iteration Data, typ, selektion, iteration En programmeringkurs på halvfart IDT, MDH ttp://www.negative-g.com/nolimits/no%20limits%20defunct%20coasters.htm 1 Dagens agenda Talrepresentation Typkonvertering Sekvens

Läs mer

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

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer 729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser

Läs mer

Övning2. Variabler. Data typer

Övning2. Variabler. Data typer Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man

Läs mer

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Formell logik Kapitel 3 och 4. Robin Stenwall Lunds universitet

Formell logik Kapitel 3 och 4. Robin Stenwall Lunds universitet Formell logik Kapitel 3 och 4 Robin Stenwall Lunds universitet Kapitel 3: De Booleska konnektiven Vi sade att predikaten och namnen kan variera mellan olika FOL Vi ska nu titta på några språkliga element

Läs mer

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

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ ETT Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. Ett av dem är Python, som du ska få

Läs mer

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. TAIU07 Föreläsning 3 Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. 27 januari 2016 Sida 1 / 21 Logiska variabler

Läs mer

LMA033/LMA515. Fredrik Lindgren. 4 september 2013

LMA033/LMA515. Fredrik Lindgren. 4 september 2013 LMA033/LMA515 Fredrik Lindgren Matematiska vetenskaper Chalmers tekniska högskola och Göteborgs universitet 4 september 2013 F. Lindgren (Chalmers&GU) Matematik 4 september 2013 1 / 25 Outline 1 Föreläsning

Läs mer

A B A B A B S S S S S F F S F S F S F F F F

A B A B A B S S S S S F F S F S F S F F F F Uppsala Universitet Matematiska institutionen Isac Hedén isac distans@math.uu.se Algebra I, 5 hp Vecka 17. Logik När man utför matematiska resonemang så har man alltid vissa logiska spelregler att förhålla

Läs mer

Beräkningsvetenskap föreläsning 2

Beräkningsvetenskap föreläsning 2 Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa

Läs mer

Semantik och pragmatik

Semantik och pragmatik Semantik och pragmatik OH-serie 5 http://stp.lingfil.uu.se/~matsd/uv/uv12/semp/ Mats Dahllöf Institutionen för lingvistik och filologi Januari 2012 Så här långt Konjunktion (p q): att två enklare satser

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet. 1 Kursadministration 1. 2 Introduktion 2 2.1 Varför logik?... 2 2.2 Satslogik... 2

Tommy Färnqvist, IDA, Linköpings universitet. 1 Kursadministration 1. 2 Introduktion 2 2.1 Varför logik?... 2 2.2 Satslogik... 2 Föreläsning 1 Syntax 729G06 Logikdelen Föreläsningsanteckningar i Programmering och logik 21 januari 2014 Tommy Färnqvist, IDA, Linköpings universitet 1.1 Innehåll Innehåll 1 Kursadministration 1 2 Introduktion

Läs mer

Finns det tillräckligt med information för att bestämma hur många av eleverna som fick 1 poäng? Vad tycker du?

Finns det tillräckligt med information för att bestämma hur många av eleverna som fick 1 poäng? Vad tycker du? Logik och bevis I 1. Introduktion till logik Varför skulle vi vilja studera logik? Det kan vara för att det hjälper oss att förstå ett problem och dra slutsatser. Det hjälper oss att skriva klartext så

Läs mer

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

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program

Läs mer

DD1350 Logik för dataloger. Fö 2 Satslogik och Naturlig deduktion

DD1350 Logik för dataloger. Fö 2 Satslogik och Naturlig deduktion DD1350 Logik för dataloger Fö 2 Satslogik och Naturlig deduktion 1 Satslogik En sats(eller utsaga)är ett påstående som kan vara sant eller falskt. I satslogik(eng. propositionallogic) representeras sådana

Läs mer

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

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»

Läs mer

Övningshäfte 6: 2. Alla formler är inte oberoende av varandra. Försök att härleda ett par av de formler du fann ur några av de övriga.

Övningshäfte 6: 2. Alla formler är inte oberoende av varandra. Försök att härleda ett par av de formler du fann ur några av de övriga. GÖTEBORGS UNIVERSITET MATEMATIK 1, MAM100, HT2005 MATEMATISK BASKURS Övningshäfte 6: Syftet med övningen är att utforska strukturen hos talsystemen under addition respektive multiplikation samt sambandet

Läs mer

En villkorssats är den konstruktion som finns i C++ för att göra en selektion av två alternativa sekvenser. Formen för if satsen är

En villkorssats är den konstruktion som finns i C++ för att göra en selektion av två alternativa sekvenser. Formen för if satsen är 1 Villkor och styrsatser I de program vi sett tidigare har programkörning inneburit att sats efter sats utförts i den ordning de skrivits i källkoden. Vi har inte kunna ändra programmets uppförande beroende

Läs mer

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från

Läs mer

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

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

Variabler och konstanter

Variabler och konstanter Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!

Läs mer

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Modul 2 Byggstenar PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Byggstenar 4 Nyckelord 4 Tecken 4 Syntax 5 Standardbibliotek 5 Vårt första program 5 Variabler 6 Konstanter 9 Operatorer 9 Övningar 9 Mer operatorer

Läs mer

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

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

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

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

Läs mer

Formell logik Kapitel 7 och 8. Robin Stenwall Lunds universitet

Formell logik Kapitel 7 och 8. Robin Stenwall Lunds universitet Formell logik Kapitel 7 och 8 Robin Stenwall Lunds universitet Kapitel 7: Konditionalsatser Kapitlet handlar om konditionalsatser (om-så-satser) och deras logik Idag: bevismetoder för konditionalsatser,

Läs mer

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Är varje påstående som kan formuleras matematiskt*) alltid antingen sant eller falskt? *) Inom Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Exempel: 12 = 13 nej, falskt n! >

Läs mer

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 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 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor.

Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor. Lektion C2 Villkor Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor. Du gör ofta val i livet, och valet du gör får olika konsekvenser och följder.

Läs mer

Parameteröverföring. Exempel. Exempel. Metodkropp

Parameteröverföring. Exempel. Exempel. Metodkropp Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I

Läs mer

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

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer funktioner betyder att instruera en dator Ett program

Läs mer

En introduktion till logik

En introduktion till logik rasmus.blanck@gu.se FT1200, LC1510 och LGFI52 VT2017 Först: Tack till Martin Kaså, som gett mig tillstånd att använda och bearbeta dessa ljusbilder. Vad är logik? Slogan: Logik undersöker vilka argument

Läs mer

Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf

Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf UPPSALA UNIVERSITET Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv07/dg1/ Logisk semantik II 1 Predikatlogik, generella

Läs mer

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

Hur implementera algoritmerna på maskinnivå - datorns byggstenar Hur implementera algoritmerna på maskinnivå - datorns byggstenar Binära tal Boolesk logik grindar och kretsar A A extern representation intern representation minnet i datorn extern representation 1000001

Läs mer

Grunderna i stegkodsprogrammering

Grunderna i stegkodsprogrammering Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer

Läs mer

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

Övningsuppgifter till föreläsning 2 Variabler och uttryck Sid 1 (5) Övningsuppgifter till föreläsning 2 Variabler och uttryck Syfte Syftet med övningsuppgifterna är att träna på: Aritmetik, variabler, tilldelning, scanf och printf Generellt Diskutera gärna uppgifterna

Läs mer

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

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är

Läs mer

MA 11. Hur starkt de binder. 2 Reella tal 3 Slutledning 4 Logik 5 Mängdlära 6-7 Talteori 8 Diofantiska ekvationer 9 Fördjupning och kryptografi

MA 11. Hur starkt de binder. 2 Reella tal 3 Slutledning 4 Logik 5 Mängdlära 6-7 Talteori 8 Diofantiska ekvationer 9 Fördjupning och kryptografi MA 11 Talteori och logik 2 Reella tal 3 Slutledning 4 Logik 5 Mängdlära 6-7 Talteori 8 Diofantiska ekvationer 9 Fördjupning och kryptografi propositionssymboler: bokstäver konnektiv Paranteser konnektiv

Läs mer

Innehållsförteckning

Innehållsförteckning Innehållsförteckning Ämne Sida Program Hur ska man lära sig programmering med Java? 11 Kapitel 1 Introduktion till programmering 13 1.1 Vad är programmering? 14 1.2 Vad är en algoritm? 16 1.3 Olika sätt

Läs mer

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean

Läs mer

LÖSNINGSFÖRSLAG TENTAMEN

LÖSNINGSFÖRSLAG TENTAMEN LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND

Läs mer

Föreläsning 6. pseudokod problemlösning logik algoritmer

Föreläsning 6. pseudokod problemlösning logik algoritmer Föreläsning 6 pseudokod problemlösning logik algoritmer Inledning Logik är läran om korrekt resonemang att kunna dra korrekta slutledningar utifrån det man vet. Vi gör detta ständigt utan att tänka på

Läs mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Introduktion till formella metoder Programmeringsmetodik 1. Inledning Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

Övningar i ekvationer

Övningar i ekvationer i ekvationer Innehåll A. Addition och subtraktion B. Multiplikation och division C. Blandade räknesätt - prioritet D. Enkla förenklingar E. Parenteser F. Tillämpningar Detta häfte är till dig som läser

Läs mer

2.1 Variabler. 2.2 Regler för namngivning i C. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 2

2.1 Variabler. 2.2 Regler för namngivning i C. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 2 Föreläsning 2 2.1 Variabler Vi studerar exempel 1 från boken: int main(void) int a,b,c=7; float antal,pris=3.70,laengd; a=34; b=32767; antal=-123.978; pris=89.00; laengd=56; c=-38; laengd=laengd+1; Sex

Läs mer

Introduktion C-programmering

Introduktion C-programmering Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TVÅ Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta

Läs mer

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor 732G11 Linköpings universitet 2011-02-01 1 2 3 Strukturdiagram Strukturdiagram används för att visa hur ett program fungerar. Man kan se alla val och upprepningar som sker i programmet. Består av tre (!)

Läs mer

Introduktion till logik

Introduktion till logik Introduktion till logik Av Johan Johansson Johan.johansson@guldstadsgymnasiet.se Logik sägs som många andra saker komma från de grekiska filosoferna, och ordet kommer också därifrån. Grekerna kallade det

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

Koda ett mattetest 5 av 5. Lektionen handlar om att göra ett mattetest som fungerar för alla multiplikationstabeller. Koda ett mattetest 5 av 5

Koda ett mattetest 5 av 5. Lektionen handlar om att göra ett mattetest som fungerar för alla multiplikationstabeller. Koda ett mattetest 5 av 5 Lektionen handlar om att göra ett mattetest som fungerar för alla multiplikationstabeller. Lektionsförfattare: Christer Sjöberg Till läraren 1. Att automatisera svaret 2. Slumptal En digital lektion från

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java bild 1 Objektorienterad programmering i Java Föreläsning 1 Kapitel 1-3 i kursboken Java Software Solutions bild 2 Läsanvisningar Kapitel 1 är en repetition av det ni förväntas kunna sedan tidigare. Det

Läs mer

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

Inledande programmering med C# (1DV402) Summera med while-satsen Summera med while"-satsen Upphovsrätt för detta verk Inledande programmering med C# (1DV402) Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får

Läs mer

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

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo, 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

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en

Läs mer

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY Grunderna i C++ ARK 385: Virtuella Verktyg i en Materiell värld AT Arkitektur & Teknik Chalmers Tekniska Högskola 2009 - Kursen skapades (3 förel.) 2010-6 förel. + 2 projekt 2011-8 förel. Helt omarbetade

Läs mer

Repetition av matematik inför kurs i statistik 1-10 p.

Repetition av matematik inför kurs i statistik 1-10 p. Karlstads universitet Leif Ruckman Summasymbolen. Repetition av matematik inför kurs i statistik 1-10 p. I stället för att skriva en lång instruktion att vissa värden skall summeras brukar man använda

Läs mer

Systemutvecklare SU13, Malmö

Systemutvecklare SU13, Malmö Systemutvecklare SU13, Malmö Tentamen, delkurs Programmeringsteknik C#, del 1 (30 YH-poäng) Plats: Plushögskolan Malmö Tid: 3 oktober 2014, kl. 9.00-13.00 Tillåtna hjälpmedel: Papper, penna, suddgummi,

Läs mer

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada Mer källkod Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne Erik Forslin efo@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 1 Styrstrukturer i Java En styrstruktur är något som påverkar

Läs mer

Kort om programmering i Python

Kort om programmering i Python CTH/GU mmgl50-2018 Matematiska vetenskaper Kort om programmering i Python 1 Inledning Redan i första laborationen gjorde ni ett litet program. Ni skrev en script eller skriptfil som beräknade summan 5

Läs mer