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

Storlek: px
Starta visningen från sidan:

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

Transkript

1 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å det men inom programmering så blir det ofta mer påtagligt. Det finns informell logik som är logiskt resonemang uttryck med naturligt språk. Det är detta vi använder till vardags när vi argumenterar eller resonerar om vardagliga frågor. Här hamnar även det vi kallar pseudokod även om detta är en mer strikt form av naturligt språk. Sedan har vi formell logik där formen för det korrekta resonemanget är fångat i ett formellt språk som exempelvis satslogik som vi kommer att titta på. De formella språken är begränsade av att man måste följa språkets regler och man kan inte uttrycka lika mycket med ett formellt språk som med naturligt språk. Java och andra programmeringsspråk kan ses som formella språk. DA129A Programmering 1 1

2 Pesudokod Vi börjar med pseudokod som kommer att bli ett oundvikligt redskap när du gör lite mer komplexa program. Pseudokod är egentligen bara naturligt språk strukturerat lite kortare och liknande det sätt man strukturerar källkod på. Du använder dig av satser och indrag men en sats kan vara betydligt större i sitt omfång än vad som är vanligt i det formella programmeringsspråket. Indragen blir mycket viktiga i pseudokod då dessa visar vilka satser som är underordnade andra satser. I pseudokod använder man sig sällan av något tecken för att starta eller sluta ett block. Pseudokod används för att bryta ner ett problem i mindre delar innan man sätter sig och skriver källkod. Detta gör man för att upptäcka hur man lämpligt kan dela in koden i metoder och kontrollstrukturer samt för att identifiera nödvändig indata. Pseudokod kan också användas för att testa en algoritm innan man kodar denna. Genom att kontrollera att pseudokoden löser problemet så sparar man tid innan man kodar och slipper risken att en massa kod är gjord förgäves och ändå måste slängas. Antag att vi har följande problem: Du är på biblioteket och vill låna boken Populärmusik från Vittula av Mikael Niemi. Tyvärr så sker det underhåll på deras elektroniska katalog så du kan inte via denna ta reda på om boken finns eller ej utan måste använda dig av en lite ålderdomligare metod att helt enkelt se om boken finns i hyllan eller inte. Finns boken i hyllan så tar du den och går till disken för att låna denna annars så går du till disken för att reservera boken. Då det är en skönlitterär bok så vet vi att den finns på hylla Hc. Om vi nu skall skriva pseudokod för hur vi löser problemet ovan så ställs vi inför några frågor: Vilka delar kan vi bryta ner det här problemet i? Hur mycket detaljer skall vi visa? Hur vi vet att boken finns är ganska lätt men hur vet vi om boken inte finns? De två första frågorna hör ihop. Ju fler detaljer vi vill visa desto fler delar måste vi bryta ner problemet i. Vi vill inte göra en för abstrakt pseudokod: gå till hyllan där boken borde finnas OM boken finns Ta boken och låna den ANNARS Reservera boken Detta hjälper ju inte oss särskilt mycket. Det är för generellt. Mer detaljer då: TILLS vi kommer till första hyllan Lyft fot 1 Placera fot 1 framför fot 2 Lyft fot 2 Placera framför fot 1 Det blir lite väl mycket detaljer. Konsten är alltså att hitta en nivå där man får med nödvändiga detaljer men kan utelämna sådant som är självklart. Vilka är våra viktiga delar då: vi måste hitta rätt hylla, vi måste hitta rätt författare och vi måste hitta rätt titel. Ordningen på ett bibliotek hjälper oss då vi kan utgå DA129A Programmering 1 2

3 från att hyllorna är sorterade efter det vanliga bibliotekssystemet och att författare är sorterade i bokstavsordning efter efternamn och böckerna för varje författare efter titel. Om vi under vårt letande kommer till en författare som finns efter Niemi i bokstavsordning eller en bok av Niemi som finns efter den vi söker så fanns inte boken Populärmusik från Vittula. Så om vi utgår från stegen ovan: 1 gå till närmsta hylla 2 TILLS hylltypen är Hc //vi förutsätter att det finns en hylla Hc 3 Gå till nästa hylla 4 //vi har nu hittat hylla Hc 5 FÖR VARJE författare på Hc 6 OM namn är Mikael Niemi 7 FÖR VARJE bok av Mikael Niemi 8 OM titel är Populärmusik från Vittula 9 ta boken 10 AVBRYT för varje bok av Mikael Niemi 11 AVBRYT för varje författare på Hc 12 ANNARS 13 OM författare kommer efter Niemi i bokstavsordning 14 AVBRYT för varje författare på Hc 15 //vi har nu hittat boken eller konstaterat att den inte fanns 16 gå till lånedisken 17 OM vi har boken med oss 18 låna boken 19 ANNARS 20 reservera boken Radnumreringen är inte nödvändig utan gör det bara lättare att referera till delar av psudokoden nu i denna text. Så låt oss nu analysera denna pseudokod och se vilka slutsatser vi kan dra från vår algoritm för att låna eller reservera en viss bok. I den första loopen (2) så gör vi ett antagande att det finns minst en hylla av typen Hc. Om det inte skulle finnas någon hylla av typen Hc så har vi en oändlig loop. Men då vi vet att det är ett vanligt bibliotek så kan detta vara ett rimligt antagande. Vi gör också ett antagande att det finns något sätt att ordna hyllorna i en ordning eller hålla reda på vilka vi tittat på eller inte. Vi har inte nästlat in senare händelser i denna loop utan när raden efter loopen startar (5) så kan vi utgå från att vi står vid första hyllan av typen Hc. I nästa loop (5) så tittar vi på alla författare som finns på Hc. Villkoret är här inte tills vi hittar Niemi utan vi måste använda en break-sats för att avbryta loopen när vi hittat Niemi eller vet att Niemi inte finns (11) respektive (14). Det händer egentligen ingenting avgörande om vi skulle fortsätta att titta på alla författare efter att vi hittat boken eller vet att den inte finns men det är ganska onödigt. Om vi i denna loop hittar Niemi så startas en ny loop där vi tittar på titlar(7). DA129A Programmering 1 3

4 Loopen som tittar på titlar (7) avbryts om vi hittar rätt bok(10) men om boken vi söker inte finns så kommer vi at titta på alla böcker av Niemi även om vi gått förbi den sökta boken i bokstavsordning. Vi får här avgöra om det är nödvändigt att lägga in detta avbrott eller inte. Är det värt en extra selektion för varje titel jämfört med någon iteration för mycket? När rad (16) inleds så har loopen som letar bland författare och titlar på Hc avslutats på något sätt och vi går till lånedisken då vi oavsett resultatet i looparna ovan skall dit. Väl framme vid lånedisken så avgör vi vad vi ska göra utifall vi har boken med oss eller inte. Detta kallas att man sätter en flagga och är vanligt när man har loopar som letar efter något. Alternativet hade varit att flytta upp denna kod till loopen på följande sätt: 8 OM titel är Populärmusik från Vittula 9 ta boken 9.1 gå till lånedisken och låna boken 10 AVBRYT för varje bok av Mikael Niemi samt 13 OM författare kommer efter Niemi i bokstavsordning 13.1 gå till lånedisken och reservera boken 14 AVBRYT för varje författare på Hc 15 //vi har nu hittat boken eller konstaterat att den inte fanns Här har vi ganska korta följder beroende på om vi hittar boken eller inte och det blir fortfarande läsbar kod. Men om det hade inneburit längre kodavsnitt så hade metoden med en flagga varit bättre. Lägg märke till hur viktigt det är att indragen ovan stämmer i pseudokoden för att avgöra vad som ingår i en viss loop. Om indragen inte stämmer blir pseudokoden fullständigt meningslös. Motsvarigheter till reserverade ord skrivs ofta med versaler i pseodukod för att öka läsbarheten då dessa ord lätt försvinner i mängden vanliga ord annars. Ett mer tillämpbart exempel: från menyn till testprogrammet till inlämningsuppgift 1. skapa instans av klassen Prog1 skriv ut menyn läs in val från menyn SÅ LÄNGE val inte är 0 anropa vald testmetod med den skapade instansen som argument läs in nytt val Den översta raden anger initieringen av en variabel. Det är inte alltid man anges dessa då de ofta är triviala och mest ger extra rader över något som är självklart. Här har den tagits med då den är viktig för utan denna variabel så kan vi inte korrekt anropa testmetoderna. Det blir också synligt att vi inte skapar en ny instans för varje anrop utan att vi skapar en instans som används upprepade gånger. Det har däremot utelämnats ovan vilken kontrollstruktur som används för att avgöra vilket val som gjorts ovan. Om man vill specificera något av detta så kan man skriva utförligare pseudokod: DA129A Programmering 1 4

5 skapa instans av klassen Prog1 skriv ut menyn läs in val från menyn SÅ LÄNGE val inte är 0 SWITCH val val är 1 Anropa testmetod A val är 2 Anropa testmetod B val är 3 Anropa testmetod C val är 4 Anropa testmetod D val är 5 Anropa testmetod E val är 6 Anropa testmetod F val är 7 Anropa testmetod G läs in nytt val Detta blev dock långt och gav oss inte så mycket mer information. Break-satsen i en switchsats har ansetts som underförstådd för att spara rader. Hur vi implementerar valet är ju en programmeringsteknisk detalj. Pseudokoden i det första alternativet visar bättre på styrkan hus denna, att kort kunna ange det viktigaste. I det här fallet att vi väljer olika metoder beroende på indata. Så som påpekat tidigare så är svårigheten att hitta den grad av detaljer som behövs. Det är bättre att börja med lite för lite detaljer för att se vad man behöver förtydliga när man skriver pseudokod än att börja med att grotta ner sig i en pseudkod som i princip är källkod direkt och ta onödigt lång tid på sig. Det gäller att komma ihåg att pseudokoden skall vara en förenklig av källkoden. DA129A Programmering 1 5

6 Satslogik Exempel på satslogik: P1 : Alla människor är dödliga. P2: Sokrates är människa. Slutsats: Sokrates är dödlig Om premisserna, i det här fallet P1 och P2, är sanna så måste slutsatsen vara sann. Då är det en giltig slutledning. Historia Exemplet ovan är från Aristoteles syllogismer skapade för ca: 2000 år sedan. Aristoteles hittade former för korrekta slutledningar. Även om vi ersatte människa med däggdjur och Katt istället för Sokrates i exemplet ovan skulle slutledningen vara riktig. Det är inte innehållet som gör slutledningen giltig utan formen. Logiken utvecklades inte så mycket efter Aristoteles fram till slutet av 1800-talet. Men då tog utvecklingen fart med matematiker som Russell och Frege. Då kom satslogiken och predikatslogiken (standardlogiker). Under 1900-talet har logiken utvecklats mycket. Datorutvecklingen är ett exempel på tillämpad logik. Satslogikens uppbyggnad Satslogiken består av atomära satser som representeras av en symbol, oftast i form av en bokstav (p, q, r, s, t ). Exempelvis p= solen skiner, q= himlen är blå Satserna knyts sedan samman av så kallade konnektiv som beskriver satsernas relation till varandra. Logiska konnektiv: Symbol Tolkning Namn icke Negation & och Konjunktion v eller Disjunktion om...så.. Implikation om och endast om Ekvivalens Andra symboler: (, ) förtydligar prioritetsordningen Du känner igen vissa begrepp här från de logiska operatorerna och det är för dessa som den stora vinsten ligger i att känna till en del om satslogik när man programmerar. Genom att kunna satslogik så kan du lättare kontrollera att dina villkor innebär det som du avser och hur du kan skriva om dina villkor till att bli kortare och mer effektiva. DA129A Programmering 1 6

7 Sanningsvärdestabeller Ett sätt att definiera konnektiven är att rita en sanningsvärdes tabell. Sanningsvärdestabell kan även användas för att visa om en slutledning är logiskt giltig eller inte. Definition av konnektivet : Ex. p= solen skiner p utläses solen skiner inte Om p är sann så är p falsk. Om p är falsk så är p sann. p sann falsk p falsk sann Definition av konnektivet &: Ex. p= solen skiner, q= himlen är blå p&q utläses solen skiner och himlen är blå p & q är bara sann om både p och q är sann. p q p&q sann falsk falsk sann sann sann falsk sann falsk falsk falsk falsk Definition av konnektivet v: Ex. p= solen skiner, q= himlen är blå p v q utläses solen skiner eller himlen är blå p v q är bara falsk om både p och q är falska p q p v q sann falsk sann sann sann sann falsk sann sann falsk falsk falsk Definition av konnektivet : Ex. p= solen skiner, q= himlen är blå p q utläses om solen skiner så är himlen blå p q är bara falsk om både p är sann men q är falsk. p q p q sann falsk falsk sann sann sann falsk sann sann falsk falsk sann DA129A Programmering 1 7

8 Definition av konnektivet : Ex. p= solen skiner, q= himlen är blå p q utläses om och endast om solen skiner är himlen blå p q är sann om både p och q har samma sanningsvärde. p q p q sann falsk falsk sann sann sann falsk sann falsk falsk falsk sann För att kunna se den logiska strukturen i ett resonemang kan det vara bra att översätta resonemanget till satslogik. Exempel: Du hinner i tid om du skyndar dig. Annars hinner du inte. p= du hinner i tid q= du skyndar dig (q p)& ( q p ) kan även skrivas // Tabell A nedan (q p)& (p q ) kan även skrivas // Tabell B nedan q p // Tabell C nedan Kan du se att dessa tre översättningar har samma sanningsvärde för alla möjliga kombinationer av sanningsvärden på p och q? Vi gör sanningsvärdestabeller: Tabell A q p (q p) q p ( q p ) (q p)& ( q p ) s s s f f S s s f f f s S f f s s s f F f f f s s s S s Kolumn 1 och 2 visar alla möjliga sanningsvärden på p och q och hur dessa kan kombineras. Kolumn 3 följer av 1, 2 och definitionen av implikation. Kolumn 4 och 5 följer av 1, 2 och definitionen av negation. Kolumn 6 följer av 4, 5 och definitionen av implikation. Kolumn 7 följer av 3, 6 och definitionen av konjunktion. DA129A Programmering 1 8

9 Tabell B q p (q p) (p q ) (q p)& (p q ) s s s s s s f f s f f s s f f f f s s s Kolumn 1 och 2 visar alla möjliga sanningsvärden på p och q och hur dessa kan kombineras. Kolumn 3 följer av 1, 2 och definitionen av implikation. Kolumn 4 följer av 1, 2 och definitionen av implikation. Kolumn 5 följer av 3, 4 och definitionen av konjunktion. Tabell C q p q p s s s s f f f s f f f s Kolumn 1 och 2 visar alla möjliga sanningsvärden på p och q och hur dessa kan kombineras. Kolumn 3 följer av 1, 2 och definitionen av ekvivalens. Om du nu jämför värdena för de sist kolumnerna i de tre tabellerna ovan så ser du att dessa stämmer överens. Logiska lagar I satslogiken finns det beskrivet några logiska lagar och grundformerna för giltiga slutledningar. Dessa hjälper dig att kunna omforma uttryck. Exempel på logiska lagar är dubbla negationslagen, de Morgans lagar, kommutativa lagen, associativa lagar, omvändningslagen och disjunktiv utbytesregel. Exempel på giltig slutledning är modes ponens, modus tollens, disjunktiv slutlednings regel och reduktion ad absurdum. Vi kommer att gå igenom dessa nedan. Vi börjar med lagarna. Dubbla negationslagen ( p) p Det är inte så att jag är orädd, är det samma som att jag är rädd. I meningen ovan så är där två negationer, först inte och sedan o- som tar ut varandra. DA129A Programmering 1 9

10 De Morgans lagar (p &q) p v q (p v q) p & q Det är inte både så att det regnar och solen skiner är det samma som det regnar inte eller solen skiner inte. Det är inte så att det är torsdag eller fredag är det samma som det är inte torsdag och det är inte fredag. Kommutativa lagen p & q q & p p v q q v p p q q p Man kan kasta om ordningen på satserna vid &, v och Associativa lagar (p & q) & r p & (q & r) (p v q) v r p v (q v r) ((p q) r) (p (q r)) Paranteserna spelar ingen roll för &,v och Omvändningslagen p q q p Om solen skiner så är himlen blå. Är det samma som: Om himlen inte är blå så skiner inte solen. Disjunktiv utbytesregel p v q p q Solen skiner inte eller himlen är blå. Är det samma som: Om solen skiner så är himlen blå. Om du tycker någon lag ser knepig ut så skriv up en sanningsvärdestabell för att övertyga dig om att det stämmer. DA129A Programmering 1 10

11 Vi kommer nu till former för slutledningar. Dessa skrivs på en speciell form så som du såg i det allra första exemplet. De ingående premisserna listas ovanför varandra och under strecket skrivs den slutsats vi kan dra av premisserna. Slutsatsen kan dras under förutsättning att alla premisserna är sanna(p1&p2). p=det är fredag idag q=det är lördag imorgon Modus Ponens p q p q Om det är fredag idag så är det lördag imorgon. Det är fredag idag. Slutsats: Det är lördag imorgon. Modus Tollens p q q p Om det är fredag i dag så är det lördag imorgon. Det är inte lördag imorgon. Slutsats: Det är inte fredag idag. Disjunktiv slutledningsregel p v q p q Det är fredag idag eller så är jag pank. Det är inte fredag idag. Slutledning: Jag är pank. Reduktion ad absurdum p q p q p Om en premiss leder fram till en motsägelse så måste premissen vara falsk. Detta är ett så kallat motsägelsebevis. De två premisserna kan inte vara sanna samtidigt om p är sann alltså måste p vara falsk det vill säga p. DA129A Programmering 1 11

12 Exempel: Premiss 1: Vi far till stranden Premiss 2: välj något av alternativen nedan a) Endast om det regnar far vi till stranden. b) Om solen skiner far vi till stranden. c) Vi far inte till stranden om det åskar d) Om det inte är kallt far vi till stranden. e) Vi far till stranden endast om det inte blåser. f) Endast om solen inte skiner far vi inte till stranden. g) Om vi far till stranden skiner solen. Kan vi dra någon giltig slutsats av dessa två premisser (Premiss 1 och Premiss 2a t.ex.)? Jag kan avslöja att utifrån Premiss 1 och Premiss 2a kan vi dra slutsatsen att det regnar. Hur kontrollerar vi detta: p = vi far till stranden q= det regnar P1: Vi far till stranden, p P2a: Endast om det regnar far vi till stranden, p q (Om vi far till stranden så regnar det) p p q q Slutsats enligt modus ponens Vad kan vi säga om P1 och P2b? p = vi far till stranden q = solen skiner P1: Vi far till stranden, p P2: Om solen skiner far vi till stranden. q p p q p ingen slutledning kan göras för vi kan inte säga något om q utifrån att p är sann. Vi vet inte vad vi gör om solen inte skiner, vi kan ju åka till stranden ändå. Vi vet bara att OM solen skiner så åker vi till stranden. Vad kan vi säga om P1 och P2c? p = vi far till stranden q = det åskar P1: Vi far till stranden, p P2: Vi far inte till stranden om det åskar, q p (om det åskar far vi inte till stranden) p q p q enligt modus tollens. Detta då om vi vet att p och q p medför q. Ser du hur det inte måste skrivas på just detta sätt utan att det viktiga är att p:na i det här fallet är motsatta varandra med det ena negerat och det andra inte. DA129A Programmering 1 12

13 Vad kan vi säga om P1 och P2d? p = vi far till stranden q = det är kallt P1: Vi far till stranden, p P2: Om det inte är kallt far vi till stranden q p p q p ingen slutledning kan göras för vi kan inte säga något om q utifrån att p är sann. Vi vet inte vad som sker om det är kallt, vi kan åka till stranden ändå. Vad kan vi säga om P1 och P2e? p = vi far till stranden q = det blåser P1: Vi far till stranden, p P2: Vi far till stranden endast om det inte blåser, p q (om vi far till stranden blåser det inte) p p q q Enligt modus ponens. Vad kan vi säga om P1 och P2f? p = vi far till stranden q = solen skiner P1: Vi far till stranden, p P2: Endast om solen inte skiner far vi inte till stranden, p q (om vi inte far till stranden skiner solen inte) vilket enligt omvändningslagen kan skrivas q p (solen skiner) p q p ingen slutledning kan göras för vi kan inte säga något om q utifrån att p är sann. Vi kan åka till stranden även om solen inte skiner. Vi vet bara att om vi inte åkt till stranden så skiner inte solen. Vad kan vi säga om P1 och P2g? p = vi far till stranden q = solen skiner P1: Vi far till stranden, p P2: Om vi far till stranden skiner solen p q p p q q Enligt modus ponens. DA129A Programmering 1 13

14 Observera att satslogiken och vardagligt tal inte alltid ser på innebörden på samma sätt. När vi i vardagligt tal säger att Om solen skiner far vi till stranden och sedan åker till stranden så menas det vanligtvis också att solen skiner. Satslogiken tillåter inte den tolkning vi gör i vardagligt tal. Det gäller alltså att komma ihåg att de inte är innehållet i en sats som gör att vi kan dra några slutsatser utan formen på satserna. Andra formella notationer Det finns ett flertal mer formella notationer utöver satslogik som kommer till nytta inom programmering och som är mer formella än pseudokod. Aktivitetsdiagram Du har redan stött på ett flertal aktivitetsdiagram för att beskriva en algoritms utseende. Aktivitetsdiagram lämpar sig speciellt väl för att beskriva en algoritms olika flöden beroende på indata som påverkar utfallet. Aktivitetsdiagram lämpar sig också väl när man skall beskriva parallella flöden av händelser vilket pseudokod inte är lämpat för. aktivitet Fyrkanten används för att representera en aktivitet. Texten i rutan skall mycket kortfattat beskriva aktiviteten. beslut Romben används för att representera ett beslut. Texten i romben skall mycket kortfattat beskriva valet. true Pilen används för att representera förflyttning till en annan aktivitet eller beslut. Om pilen leder från ett beslut skall det visas vilket beslut som denna pil representerar. En pil utan början representerar startpunkten och en pil utan slut representerar slutet Den tjocka linjen används för att representera en synkronisering mellan aktiviteter. Det kan handla om att vänta in vissa aktiviteter innan nästa på börjas eller att flera olika aktiviteter påbörjas vid ett tillfälle. DA129A Programmering 1 14

15 Exempel på aktivitetsdiagram över att tappa upp ett bad. Gå till badrummet Fyll badkaret Hämta nya handdukar badsalt ja Häll i badsalt nej Kryp ner i badkaret Klassdiagram Aktivitetsdiagram eller pseudokod fungerar inte för att beskriva hur klasser refererar till varandra. För detta behöver man ett klassdiagram. För varje klass i ett klassdiagram listar man namn, attribut och metoder i en fyrkant enligt modellen: klassnamn attribut1:datatyp attribut2 : datatyp Beroende på antalet klasser och attribut och metoder så stryker man ibland attributen och metoderna och visar endast klassnamnet. Vi kommer att återkomma till klassdiagram när vi kommer till den del som handlar om klasser och relationer mellan klasser. metod1 matod2(parameter) DA129A Programmering 1 15

16 UML UML Unified Modeling Language- används för att beskriva olika mjukvara och olika delar av denna i en utvecklingsprocess. Detta är en objektorienterad notation som starkt fokuserar på användarperspektiv och klasser. UML är mycket användbart inom mjukvaruutveckling och används i kurslitteraturen för aktivitetsdiagram med mera. Notationen för dessa skiljer sig från den anklare notationen presenterad ovan. UML innehåller dock mycket mer än aktivitetsdiagram. Att gå in på hur UML fungerar från grunden kräver en förståelse för mjukvaruutveckling som ligger utanför denna kurs. UML är dock ett begrepp som det är bra att känna till. Den intresserade kan hämta mer information från webben, t.ex. från DA129A Programmering 1 16

Malmö högskola 2012/2013 Teknik och samhälle

Malmö högskola 2012/2013 Teknik och samhälle Laboration 6 Till pseudokoduppgifterna och aktivitetsdiagrammen ges inga direkta lösningar då dessa går att göra på så väldigt många olika sätt. Pseudokod Skriv pseudokod för följande problem Åka tåg Du

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

Logik och kontrollstrukturer

Logik och kontrollstrukturer 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

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

Semantik och pragmatik (Serie 3)

Semantik och pragmatik (Serie 3) Semantik och pragmatik (Serie 3) Satser och logik. Mats Dahllöf Institutionen för lingvistik och filologi April 2015 1 / 37 Logik: språk tanke (Saeed kapitel 4.) Satser uttrycker (ofta) tankar. Uttrycksrikedom

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

FTEA12:2 Filosofisk Metod. Grundläggande argumentationsanalys II

FTEA12:2 Filosofisk Metod. Grundläggande argumentationsanalys II TEA12:2 ilosofisk Metod Grundläggande argumentationsanalys II Dagens upplägg 1. Kort repetition. 2. Logisk styrka: några intressanta specialfall. 3. ormalisering: översättning från naturligt språk till

Läs mer

Viktiga frågor att ställa när ett argument ska analyseras och sedan värderas:

Viktiga frågor att ställa när ett argument ska analyseras och sedan värderas: FTEA12:2 Föreläsning 2 Grundläggande argumentationsanalys II Repetition: Vid förra tillfället började vi se närmre på vad som utmärker filosofisk argumentationsanalys. Vi tittade närmre på ett arguments

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

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

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

Logik: sanning, konsekvens, bevis

Logik: sanning, konsekvens, bevis Logik: sanning, konsekvens, bevis ft1100 samt lc1510 HT 2016 Giltiga argument (Premiss 1) (Premiss 2) (Slutsats) Professorn är på kontoret eller i lunchrummet Hon är inte på kontoret Professorn är i lunchrummet

Läs mer

Semantik och pragmatik (Serie 4)

Semantik och pragmatik (Serie 4) Semantik och pragmatik (Serie 4) Satser och logik. Mats Dahllöf Institutionen för lingvistik och filologi April 2015 1 / 30 Så här långt (satslogik) Konjunktion (p q): att två enklare satser båda är uppfyllda.

Läs mer

KRITISKT TÄNKANDE I VÄRDEFRÅGOR. 8: Repetition

KRITISKT TÄNKANDE I VÄRDEFRÅGOR. 8: Repetition KRITISKT TÄNKANDE I VÄRDEFRÅGOR 8: Repetition TRE CENTRALA BEGREPP (i) Sanning: en egenskap som tillkommer utsagor, inte slutledningar. (ii) Logisk styrka: en egenskap som tillkommer slutledningar, inte

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

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

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

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

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

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

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

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

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19 Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium IV v. 2.0, den 29/4 2013 III. Metalogik 17-19 Modeller för satslogiken 18.1 Vi har tidigare sagt att en modell är en tolkning av en teori

Läs mer

Varför är logik viktig för datavetare?

Varför är logik viktig för datavetare? Varför är logik viktig för datavetare? 1. Datavetenskap handlar ofta om att automatisera processer som tidigare styrts av människor. Intuition, intelligens och mänskliga resonemang ersätts av beräkningar.

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

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

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

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

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

Satslogik grundläggande definitioner 3. Satslogik. Uppgift 1. Satslogikens syntax (välformade formler) Satslogikens semantik (tolkningar)

Satslogik grundläggande definitioner 3. Satslogik. Uppgift 1. Satslogikens syntax (välformade formler) Satslogikens semantik (tolkningar) Satslogik grundläggande definitioner Satslogikens syntax (välformade formler) Satslogikens semantik (tolkningar) Modeller, logisk konsekvens och ekvivalens Några notationella förenklingar Kompletta mängder

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 4: Konjunktiv och disjunktiv normalform Henrik Björklund Umeå universitet 15. september, 2014 CNF och DNF Konjunktiv normalform (CNF) Omskrivning av en formel

Läs mer

KRITISKT TÄNKANDE I VÄRDEFRÅGOR. 8: Repetition

KRITISKT TÄNKANDE I VÄRDEFRÅGOR. 8: Repetition KRITISKT TÄNKANDE I VÄRDEFRÅGOR 8: Repetition TRE CENTRALA BEGREPP (i) Sanning: en egenskap som tillkommer utsagor, inte slutledningar. (ii) Logisk styrka: en egenskap som tillkommer slutledningar, inte

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

Formell logik Kapitel 5 och 6. Robin Stenwall Lunds universitet

Formell logik Kapitel 5 och 6. Robin Stenwall Lunds universitet Formell logik Kapitel 5 och 6 Robin Stenwall Lunds universitet Kapitel 5 Bevismetoder för boolesk logik Visa att en sats är en tautologisk konsekvens av en mängd premisser! Lösning: sanningstabellmetoden

Läs mer

Grundläggande logik och modellteori (5DV102)

Grundläggande logik och modellteori (5DV102) Tentamen 2013-10-31 Grundläggande logik och modellteori (5DV102) M. Berglund och K. Markström Totalt antal uppgifter 11 Maximalt antal poäng 30 Krav för 3 i betyg 14 poäng Krav för 4 i betyg 19 poäng,

Läs mer

Formell logik Föreläsning 1. Robin Stenwall

Formell logik Föreläsning 1. Robin Stenwall Formell logik Föreläsning 1 Robin Stenwall Betygskriterier Mål Godkänt Väl godkänt Redogöra för grundprinciperna för härledning och översättning i sats- och predikatlogik. Utföra grundläggande översättningar

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer 2 2.1 Domäner... 2 2.2 Tolkningar... 3

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer 2 2.1 Domäner... 2 2.2 Tolkningar... 3 Föreläsning 2 Semantik 729G06 Logikdelen Föreläsningsanteckningar i Programmering och logik 27 januari 2014 Tommy Färnqvist, IDA, Linköpings universitet 2.1 Innehåll Innehåll 1 Lite mer syntax 1 2 Strukturer

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

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

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

KRITISKT TÄNKANDE I VÄRDEFRÅGOR. 5: Deduktion

KRITISKT TÄNKANDE I VÄRDEFRÅGOR. 5: Deduktion KRITISKT TÄNKANDE I VÄRDEFRÅGOR 5: Deduktion Deduktivt resonerande DEL 1 Contrariwise, continued Tweedledee, if it was so, it might be; and if it were so, it would be as it isn t, it ain t. That s logic.

Läs mer

En introduktion till predikatlogik

En introduktion till predikatlogik rasmus.blanck@gu.se FT1200, LC1510 och LGFI52 VT2017 (Premiss 1) (Premiss 2) (Slutsats) Alla människor är dödliga Sokrates är en människa Sokrates är dödlig Detta argument är intuitivt giltigt: Det finns

Läs mer

729G06 Logik FÖRELÄSNING 1 ANDERS MÄRAK LEFFLER IDA/HCS

729G06 Logik FÖRELÄSNING 1 ANDERS MÄRAK LEFFLER IDA/HCS 729G06 Logik FÖRELÄSNING 1 ANDERS MÄRAK LEFFLER IDA/HCS 160127 Vad är logik? Som ämne, område... 2 Läran om korrekta resonemang Följer slutsatserna av ens antaganden? 3 Alla hundar är djur. Alla enhörningar

Läs mer

Formell logik Kapitel 9. Robin Stenwall Lunds universitet

Formell logik Kapitel 9. Robin Stenwall Lunds universitet Formell logik Kapitel 9 Robin Stenwall Lunds universitet Kapitel 9: Introduktion till kvantifiering Vi har hittills betraktat logiska resonemang vars giltighet enbart beror på meningen hos konnektiv som

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

Formell logik Föreläsning 1. Robin Stenwall

Formell logik Föreläsning 1. Robin Stenwall Formell logik Föreläsning 1 Robin Stenwall Vad ingår i kursen? Kapitel 1-14 i kursboken (Barwise och Etchemendy) De avsnitt i kapitel 1-14 som är markerade med optional läses dock kursivt och kommer inte

Läs mer

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur Objekt-orienterad utveckling Saker man vill uppnå: Objektorienterad analys och design Sven-Olof Nyström Uppsala Universitet 16 mars 2005 en systematisk metod för att gå från problembeskrivning till färdigt

Läs mer

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas?

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas? Avslutning Anmärkningar inför tentan Vad ska kunnas? Avslutning 1 Vad? Anmärkningar inför tentan 1 Att ha en bra förståelse för det som behandlades på föreläsningarna och gruppövningarna räcker i princip.

Läs mer

Lite om bevis i matematiken

Lite om bevis i matematiken Matematik, KTH Bengt Ek februari 2013 Material till kursen SF1662, Diskret matematik för CL1: Lite om bevis i matematiken Inledning Bevis är centrala i all matematik Utan (exakta definitioner och) bevis

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

FÖRELÄSNING 8 ANDERS MÄRAK LEFFLER IDA/HCS

FÖRELÄSNING 8 ANDERS MÄRAK LEFFLER IDA/HCS 729G06 Logik FÖRELÄSNING 8 ANDERS MÄRAK LEFFLER IDA/HCS 160309 Idag Sammanfattning*/uppsamling 2 Mer problemöversikt (och lite definitioner) Inte ersättning för andra föreläsningar! 3 Vad är enlogik? Syntax

Läs mer

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Föreläsning 9: Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står

Läs mer

Om semantisk följd och bevis

Om semantisk följd och bevis Matematik, KTH Bengt Ek december 2017 Material till kursen SF1679, Diskret matematik: Om semantisk följd och bevis Logik handlar bla om studiet av korrekta slutledningar, dvs frågan om när det är riktigt

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

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

10. Moralisk fiktionalism och ickedeskriptiv

10. Moralisk fiktionalism och ickedeskriptiv Det finns två olika positioner som båda kan kallas fiktionalism : 1. Hermeneutisk fiktionalism 2. Revolutionär fiktionalism ( revisionistisk fiktionalism ) De kan betraktas som två separata positioner,

Läs mer

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator Viktiga begrepp Den här ordlistan är till för dig som går kursen Om Programmering. Eftersom detta är en grundläggande kurs har vi i vissa fall gjort en del förenklingar. En del begrepp är svåra att förenkla,

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

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 3: Bevissystem, Hilbertsystem Henrik Björklund Umeå universitet 8. september, 2014 Bevissystem och Hilbertsystem Teorier och deduktionsproblemet Axiomscheman

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

Logik och semantik. Mats Dahllöf, Plan. Semantik och pragmatik

Logik och semantik. Mats Dahllöf, Plan. Semantik och pragmatik Semantik och pragmatik Logik och semantik Mats Dahllöf, 2005-05-20. Plan Sanning och logik. Logik i lexikala begreppssystem. Logik i satsinnehåll. Aristotelisk logik. (En enkel typ av formalisering. För

Läs mer

Grundläggande logik och modellteori (5DV102)

Grundläggande logik och modellteori (5DV102) Tentamen 2014-01-10 Grundläggande logik och modellteori (5DV102) M. Berglund och K. Markström Totalt antal uppgifter 10 Maximalt antal poäng 30 Krav för 3 i betyg 1 Krav för 4 i betyg 19 poäng, vara minst

Läs mer

FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS

FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS 729G06 Logik FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS 160208 Idag C-regeln, informell (och formell) inledning till predikatlogik (Bevis kommer senare.) 2 3 Vår (Snöfritt Cykla) (Vår Snöfritt) Cykla Lätt

Läs mer

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet Formell logik Kapitel 1 och 2 Robin Stenwall Lunds universitet Kapitel 1: Atomära satser Drömmen om ett perfekt språk fritt från vardagsspråkets mångtydighet och vaghet (jmf Leibniz, Russell, Wittgenstein,

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Objektorienterad analys och design

Objektorienterad analys och design Objektorienterad analys och design Sven-Olof Nyström Uppsala Universitet 16 mars 2005 1 Objekt-orienterad analys och design: Litteratur Skansholm: Kapitel 4 Se även 1. http://www.uml.org/ 2. http://www-306.ibm.com/software/rational/uml/

Läs mer

Objektorienterad programmering Föreläsning 4

Objektorienterad programmering Föreläsning 4 Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 8: Predikatlogik Henrik Björklund Umeå universitet 2. oktober, 2014 Första ordningens predikatlogik Signaturer och termer Första ordningens predikatlogik Formler

Läs mer

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

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

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2 729G75: Programmering och algoritmiskt tänkande Tema 3, föreläsning 2 Översikt Vanliga mönster när man designar en klass Klass-diagram Exempel Arv i Python Egna klasser använd som egna datatyper, men även

Läs mer

Planering Programmering grundkurs HI1024 HT 2014

Planering Programmering grundkurs HI1024 HT 2014 Planering Programmering grundkurs HI1024 HT 2014 Föreläsning V36 Föreläsning 1 Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande- Interpreterande Programmeringsmiljö Hello World! Att

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

Kursplanering för EE3D i kursen Programmering 1, 100p.

Kursplanering för EE3D i kursen Programmering 1, 100p. Kursplanering för EE3D i kursen Programmering 1, 100p. Tidplan Kursstart 2013-08-22 - Kursslut 2014-06-03 Datum/Period Kursinnehåll/Moment Sidhänvisning Vecka 34 Kursintroduktion Vecka 35 Allmänt om Java,

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Föreläsning 5. Deduktion

Föreläsning 5. Deduktion Föreläsning 5 Deduktion Hur ett deduktivt system fungerar Komponenter - Vokabulär Ett deduktivt system använder ett visst slags språk som kan kallas för systemets vokabulär. I mindre formella fall är kanske

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

Vad är semantik? LITE OM SEMANTIK I DATORLINGVISTIKEN. Språkteknologi semantik. Frågesbesvarande

Vad är semantik? LITE OM SEMANTIK I DATORLINGVISTIKEN. Språkteknologi semantik. Frågesbesvarande LITE OM SEMANTIK I DATORLINGVISTIKEN (FORMELL SEMANTIK) Vad är semantik? Form (abstrakt struktur): grammatik Innehåll (betydelse): semantik Användning: pragmatik/diskurs Mats Dahllöf Språkteknologisk motivation

Läs mer

Kritiskt tänkande HTXF04:3 FTEB05. Rekonstruktion av argument

Kritiskt tänkande HTXF04:3 FTEB05. Rekonstruktion av argument Kritiskt tänkande HTXF04:3 FTEB05 Rekonstruktion av argument Utvärdering av definitioner Problem (generella) Cirkularitet (definiendum ingår i definiens) (i) Direkt cirkularitet Exempel: Frihet är rätten

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 och modaliteter

Logik och modaliteter Modallogik Introduktionsföreläsning HT 2015 Formalia http://gul.gu.se/public/courseid/70391/lang-sv/publicpage.do Förkunskaper etc. Logik: vetenskapen som studerar argument med avseende på (formell) giltighet.

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

7. FORMELL SATSLOGIK (SL)

7. FORMELL SATSLOGIK (SL) 7. FORMELL SATSLOGIK (SL) 7.1 VEM BEHÖVER FORMELL LOGIK? Ingen använder formell logik i det dagliga livet. Den logik vi använder, den naturliga eller intuitiva logiken, är, som vi sett, varierande och

Läs mer

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

Tentamen i TDDC75 Diskreta strukturer , lösningsförslag

Tentamen i TDDC75 Diskreta strukturer , lösningsförslag Tentamen i TDDC75 Diskreta strukturer 2018-10-23, lösningsförslag 1 1. (a) Sanningstabell för uttrycken p q r p q p r r q r p q 0 0 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 1

Läs mer

Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Data Data Data Data Data Data Data Data

Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Data Data Data Data Data Data Data Data Datahantering i Excel Grundbegrepp I alla typer av databaser finns alltid en tabell där informationen i databasen fysiskt finns lagrad. Tabellen har samma enkla uppbyggnad som en tabell i ordbehandlingsprogrammet

Läs mer

8. Naturlig härledning och predikatlogik

8. Naturlig härledning och predikatlogik Objektorienterad modellering och diskreta strukturer 8. Naturlig härledning och predikatlogik Sven Gestegård Robertz Datavetenskap, LTH 2013 Outline 1 Inledning 2 Inferensregler 3 Predikatlogik 8. Naturlig

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

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

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn. Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0

Läs mer

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står skrivna: Oändligt

Läs mer

Imperativ programmering. Föreläsning 4

Imperativ programmering. Föreläsning 4 Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

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

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion Introduktion till programmering D0009E Föreläsning 6: Iteration Multipel tilldelning Helt ok att tilldela en variabel flera gånger: bruce = bruce, bruce = 7 bruce Output: 7 Som tillståndsdiagram: bruce

Läs mer

Semantik och pragmatik

Semantik och pragmatik Semantik och pragmatik OH-serie 6 http://stp.lingfil.uu.se/~matsd/uv/uv13/semp/ Mats Dahllöf Institutionen för lingvistik och filologi Februari 2013 Tillämpningar av semantik allmänt Analys av grammatik:

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

2 Matematisk grammatik

2 Matematisk grammatik MATEMATISK GRAMMATIK Matematisk grammatik.1 Skriva matematik Matematisk grammatik, minst lika kul som det låter, och hur man skriver matematik är nästan lika viktigt som vad man skriver. En grammatisk

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Sanning och lögnare. Rasmus Blanck VT2017. FT1200, LC1510 och LGFI52

Sanning och lögnare. Rasmus Blanck VT2017. FT1200, LC1510 och LGFI52 rasmus.blanck@gu.se FT1200, LC1510 och LGFI52 VT2017 Vad är sanning? Vi verkar använda begreppet utan större problem till vardags. Det kanske vore intressant att ha en definition: P är sann om och endast

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