Föreläsning 6. pseudokod problemlösning logik algoritmer
|
|
- Lars-Göran Åberg
- för 8 år sedan
- Visningar:
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
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 mer7, 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 merLogik 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 mer7, 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 merSemantik 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 merEn 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 merFTEA12: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 merViktiga 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
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 merD. 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 merTommy 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 merLogik: 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 merSemantik 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 merKRITISKT 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 merSanningsvä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 merp /\ 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 merKap. 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 merDD1350 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 merMATEMATIKENS 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 merSemantik 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 merLogisk 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 merUtsagor (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 merFilosofisk 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 merVarfö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 merVad ä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 merMA2047 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 merFormell 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 merLogik. 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 merDatorlingvistisk 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 merSatslogik 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 merGrundlä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 merKRITISKT 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 merMATEMATIKENS 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 merFormell 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 merGrundlä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 merFormell 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 merTommy 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 merFormell 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 merBakgrund. 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 merMATEMATIKENS 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 merKRITISKT 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 merEn 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 mer729G06 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 merFormell 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 merProgrammering 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 merFormell 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 merObjekt-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 merAvslutning. 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 merLite 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 merTATM79: 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 merFÖ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 merFö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 merOm 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 merF5 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 merMA 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 mer10. 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 merViktiga 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 merANDREAS 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 merGrundlä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 merKlassdeklaration. 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 merLogik 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 merGrundlä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 merFÖ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 merFormell 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 merBakgrund 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 merObjektorienterad 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 merObjektorienterad 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 merGrundlä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 merITK: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 merA 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 mer729G75: 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 merPlanering 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 merAnvä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 merKursplanering 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 merSemantik 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 merPROGRAMMERING. Ä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 merFö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 merTATM79: 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 merVad ä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 merKritiskt 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 merOperatorer 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 merLogik 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 merPROGRAMMERING. Ä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 mer7. 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 merIntroduktion 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 merTentamen 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 merFä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 mer8. 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 merSprå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 merNå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 merTuringmaskiner 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 merImperativ 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 merKompilering 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 merMultipel 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 merSemantik 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 merJavaScript 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 mer2 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 merPROGRAMMERING. Ä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 merSanning 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 merIntroduktion 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