Andra relationella språk

Storlek: px
Starta visningen från sidan:

Download "Andra relationella språk"

Transkript

1 Andra relationella språk Kapitel 5 Andra relationella språk sid Tupelrelationskalkyl 1 Domänrelationskalkyl 6 Query-by-Example (QBE) 8

2 Andra relationella språk, tupelrelationskalkyl 5-1 Tupelrelationskalkyl Tupelrelationskalkyl är ett icke-proceduralt frågespråk (dvs. en fråga beskriver vilken information som önskas).tupelrelationskalkyl (begränsad till säkra uttryck) är lika uttrycksfullt som relationsalgebra. Dvs. för varje relationsalgebraiskt uttryck där endast grundoperatorer ingår finns ett ekvivalent uttryck i tupelrelationskalkyl, och tvärtom. Varje fråga är av formen: { t P (t) } Dvs. mängden av alla tupler t så att predikatet P är sant för t. t är en tupel-variabel, t[a] betecknar värdet för tupel t på attribut A. t r betecknar att tupel t finns i relation r. P är en formel liksom en formel i predikatkalkylen. En predikatkalkylformel uppbyggs av Mängd av attribut och konstanter Mängd av jämförelseoperatorer: <, <, =,, >, > Mängd av konektiver: och, eller, icke Implikation : P 1 P 2 Kvantorer: t r (P(t)) det existerar en tupel t i relation r sådan att predikatet P(t) är sant t r (P(t)) P är sant för alla tupler t i relation r P 1 P 2 ( (P 1 ) (P 2 )) P 1 P 2 (P 1 ) P 2 t r (P(t)) t r ( P(t))

3 Andra relationella språk, tupelrelationskalkyl 5-2 Exempelfrågor Bestäm loan_number, branch_name, och amount för lån större än { t t loan t[amount] > 1200} σ amount >1200 (loan) dvs. alla attribut ingår i svaret Bestäm lånnumret för varje lån större än 1200 (dvs. samma som ovan men bara lånnumret önskas i svaret). Π loan_number (σ amount >1200 (loan)) { t s loan ( t[loan_number] = s[loan_number] s[amount] > 1200 ) } Svaret är en ett-attributig tabell på schemat (loan_number), vilket bara framgår implicit i frågan Bestäm lånnummer och lånebelopp för varje lån större än { t s loan ( t[loan_number] = s[loan_number] t[amount] = s[amount] s[amount] > 1200 ) } Svaret är en två-attributig tabell på schemat (loan_number, amount), eftersom t har värden specificerade för loan_number och amount. Π loan_number, amount (σ amount >1200 (loan)) customer (customer_name, customer_street, customer_city) branch(branch_name, branch_city, assets) account(account_number, branch_name, balance) loan(loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)

4 Andra relationella språk, tupelrelationskalkyl 5-3 Bestäm namnen på alla kunder som har ett lån, ett konto, eller båda i banken. { t s depositor ( t[customer_name] = s[customer_name]) u borrower ( t[customer_name] = u[customer_name]) } Π customer_name (borrower) Π customer_name (depositor) Bestäm namnen på alla kunder som har ett lån och ett konto i banken. { t s depositor ( t[customer_name] = s[customer_name]) u borrower ( t[customer_name] = u[customer_name]) } Bestäm namnen på alla kunder som har ett lån i Perryridge-grenen. { t s borrower ( t[customer_name] = s[customer_name] u loan ( u[loan_number] = s[loan_number] u[branch_name] = Perryridge )) } Π customer_name (σ borrower.loan_number = loan.loan_number (borrower loan)) branch_name = Perryride customer (customer_name, customer_street, customer_city) branch(branch_name, branch_city, assets) account(account_number, branch_name, balance) loan(loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)

5 Andra relationella språk, tupelrelationskalkyl 5-4 Bestäm namnen på alla kunder som har ett konto i banken men som inte har ett lån. alla kontoinnehavare { t s depositor ( t[customer_name] = s[customer_name] u borrower ( t[customer_name] = u[customer_name] )) } alla låntagare Π customer_name (depositor) Π customer_name (borrower) Bestäm namnen på alla kunder som har ett lån från Perryridge-grenen samt deras boningsort. { t s loan (s[branch_name] = Perryridge u borrower (s[loan_number] = u[loan_number] t[customer_name] = u[customer_name] ) v customer (u[customer_name] = v[customer_name] t[customer_city] = v[customer_city] )) } Π customer_name, customer_city (σ borrower.loan_number = loan.loan_number (loan borrower customer)) borrower.customer_name = customer.customer_name loan.branch_name = Perryride customer (customer_name, customer_street, customer_city) branch(branch_name, branch_city, assets) account(account_number, branch_name, balance) loan(loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)

6 Andra relationella språk, tupelrelationskalkyl 5-5 Bestäm namnen på alla kunder som har ett konto i alla grenar belägna i Brooklyn. { t s customer (t[customer_name] = s[customer_name]) ( u branch (u[branch_city] = Brooklyn v depositor (t[customer_name] = v[customer_name] ) w account ( w[account_number] = v[account_number] w[branch_name] = u[branch_name] )))) } Mängden av alla kunder sådana att, för alla tupler u i branch-relationen, med värdet Brooklyn, kunden har ett konto i grenen vars namn är i branch_name attributet i u. Π customer_name, branch_name (depositor account) Π branch_name (σ branch_city = Brooklyn (branch)) Säkerhet av uttryck Det är möjligt att skriva tupelkalkyluttryck som genererar oändliga relationer. Ex.: { t t r } Resulterar i en oändlig relation om domänen för något attribut är oändlig För att skydda mot problemet, inskränker vi mängden av tillåtna uttryck till säkra uttryck: Ett uttryck { t P (t) } i tupelrelationskalkyl är säkert om alla värden i resultatet tillhör dom(p), där domänen dom(p) för P är mängden av alla värden som refereras av P (ingår i P eller i någon relation vars namn ingår i P). Dvs. varje komponent av t måste förekommer i en av de relationer, tupler, eller konstanter som förekommer i P. T.ex.: { t t[a] = 5 true } är ej säkert uttrycket genererar en oändlig mängd av attributvärden som inte förekommer i någon relation eller tupel eller konstant i P.

7 Andra relationella språk, domänrelationskalkyl 5-6 Domänrelationskalkyl Domänrelationskalkyl är ett icke-proceduralt frågespråk ekvivalent i styrka med tupelrelationskalkyl. Varje fråga är ett uttryck av formen: { < x 1, x 2,..., x n > P(x 1, x 2,..., x n ) } där x 1, x 2,..., x n representerar en domän variabler och P representerar en formel liksom en formel i predikatkalkylenl Exempelfrågor Π loan_number (σ amount >1200 (loan))? Bestäm loan_number, branch_name, och amount för lån större än σ amount >1200 (loan) { < l, b, a > < l, b, a > loan a > 1200} { t t loan t[amount] > 1200} Bestäm namnen på alla kunder som har ett lån större än {<c > l, b, a (< c, l > borrower < l, b, a > loan a > 1200)} Bestäm namnet och lånebeloppet för alla kunder som har ett lån från Perryridge-grenen. alt.: {<c, a > l (< c, l > borrower b (< l, b, a > loan b= Perryridge ))} { < c, a > l (< c, l > borrower < l, Perryridge, a > loan )} customer (customer_name, customer_street, customer_city) branch(branch_name, branch_city, assets) account(account_number, branch_name, balance) loan(loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)

8 Andra relationella språk, domänrelationskalkyl 5-7 Bestäm namnen på alla kunder som har ett lån, ett konto, eller båda i Perryridge grenen. { < c > l (< c, l > borrower b, a (< l, b, a > loan b= Perryridge )) a (< c, a > depositor b, n (< a, b, n > account b= Perryridge )) } Bestäm namnen på alla kunder som har ett konto i alla grenar belägna i Brooklyn. { < c > s, n (< c, s, n > customer ) x, y, z (< x, y, z > branch y= Brooklyn ) a,b (< x, y, z > account < c, a > depositor ) } Säkerhet av uttryck Uttrycket { < l, b, a > (< l, b, a > loan ) } är ej säkert Ett uttryck är säkert om alla av följande gäller: { < x 1, x 2,..., x n > P(x 1, x 2,..., x n ) } Alla värden som förekommer i tupler av uttrycket är värden från dom(p) (dvs. värdena förekommer antingen i P eller en tupel av en relation nämnd i P). För varje det existerar delformel av formen x (P 1 (x)), är delformen sann omm det existerar ett värde på x i dom(p 1 ) så att P 1 (x) är sann. För varje för alla delformel av formen x (P 1 (x)), är delformen sann omm P 1 (x) är sann för alla värden x i dom(p 1 ). Dvs. de två sista kraven garanterar att för alla och det existerar kan testas utan att behöva testa oändligt många möjligheter. customer (customer_name, customer_street, customer_city) branch(branch_name, branch_city, assets) account(account_number, branch_name, balance) loan(loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)

9 Andra relationella språk, QBE 5-8 QBE - Query by Example Ett grafiskt språk som är baserat på domänrelationskalkyl. Syntaxen är två-dimensionell - systemet skapar mallar av de relationer som begärs av användare och frågorna uttrycks som exempel. QBE skelettabeller för bankexemplet: customer customer-name customer-street customer-city branch branch-name branch-city assets borrower customer-name loan-number loan loan-number branch-name amount depositor customer-name account-number account account-number branch-name balance

10 Andra relationella språk, QBE 5-9 Frågor på en relation Bestäm alla lånenummer vid Perryridge-grenen: loan loan-number branch-name amount Perryridge _x är en variabel (kan utelämnas i frågan ovan) P. betyder print (display) Duplikat avlägsnas per default, för att behålla duplikat används P.ALL Visa fulla detaljer för alla lån: loan loan-number branch-name amount P._y P._z alt.: förkortad notation loan loan-number branch-name amount P. Bestäm lånenummer för alla lån med ett lånebelopp större än 700: loan loan-number branch-name amount P. > 700

11 Andra relationella språk,qbe 5-10 Bestäm namnen på alla grenar som inte är belägna i Brooklyn: branch branch-name branch-city assets P. Brooklyn Bestäm lånenummer för alla lån givna gemensamt åt Smith och Jones: borrower customer-name loan-number Smith Jones _x Bestäm alla kunder som bor i samma stad som Jones customer customer-name customer-street customer-city Jones _y _y

12 Andra relationella språk,qbe 5-11 Frågor på flera relationer Bestäm namnen på alla kunder som har ett lån från Perryridge-grenen: loan loan-number branch-name amount _x Perryridge borrower customer-name loan-number P._y _x Bestäm namnen på alla kunder som har både ett konto och ett lån i banken: depositor customer-name account-number borrower customer-name loan-number _x Bestäm namnen på alla kunder som har ett konto i banken, men inte har ett lån från banken: Negation depositor customer-name account-number borrower customer-name loan-number _x Bestäm namnen på alla kunder som har åtminståne två konton: depositor customer-name account-number _x _y _y

13 Andra relationella språk, QBE 5-12 Villkorsboxen Tillåter uttryck av begränsningar på domänvariabler som är antingen obekväma eller omöjliga att yttrycka inom skelettabeller. Komplicerade villkor kan användas i villkorsboxar Bestäm lånenummer för alla lån givna åt Smith, åt Jones eller åt båda gemensamt: borrower customer-name loan-number _n conditions _n = Smith or _n = Jones QBE understöder följande intressanta syntax för att uttrycka alternativa värden: branch branch-name branch-city assets P. _x conditions _x = (Brooklyn or Queens) Bestäm alla kontonummer med en balans större än 1300 och mindre än 1500: account account-number branch-name balance P. _x conditions _x > 1300 _x < 1500

14 Andra relationella språk, QBE 5-13 Bestäm alla kontonummer med en balans större än 1300 och mindre än 1500 men inte exakt 1400: account account-number branch-name balance P. _x conditions _x = (> 1300 and < 1500 and 1400 Bestäm alla grenar som har tillgångar större än åtminstone en gren belägen i Brooklyn: branch branch-name branch-city assets Brooklyn _y _z conditions _y > _z

15 5-14 Sammanfattning En realtidsdatamodell är baserad på en samling tabeller. Användaren kan ställa frågor mot dessa tabeller, insätta nya tupler, stryka tupler och modifiera tupler. Det finns flera språk för att utföra dessa operationer. Tupel relationskalkylen och domän relationskalkylen är icke-procedurala språk som representerar den grundläggande styrka som krävs i ett frågespråk. Relationsalgebra är ett proceduralt språk som är ekvivalent i styrka med båda formerna av rel.kalkyl när de begränsas till säkra uttryck. Relationsalgebra och relationskalkylerna är klara, formella språk som inte lämpar sig för den tillfällige användaren av databassystem. Kommersiella DBS har därför använt språk med mera "syntaktiskt socker". De vanligaste sådana språk är SQL, QBE och Quel, och kanske Datalog.

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella Relationsmodellen 2-1 Relationsmodellen Relations modellen är idag den mest änvända datamodellen för kommersiella applikationer. Relationsdatabasstruktur En relationsdatabas består av en samling tabeller,

Läs mer

SQL, nästlade delfrågor 3-19. Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga.

SQL, nästlade delfrågor 3-19. Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga. SQL, nästlade delfrågor 3-19 Nästlade delfrågor SQL har en mekanism för nästling av delfrågor: En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga. Delfrågor används

Läs mer

Relationell databasdesign

Relationell databasdesign Relationell databasdesign Kapitel 7 Relationell databasdesign sid Uppdelning m.h.a. funktionella beroenden 3 Funktionella beroenden - teori 12 Uppdelningsalgoritmer 27 Designprocess 33 Relational oath

Läs mer

Frågeoptimering. Frågeoptimering kapitel 14

Frågeoptimering. Frågeoptimering kapitel 14 Frågeoptimering kapitel 14 Frågeoptimering sid Introduktion 1 Transformering av relationsuttyck 4 Kataloginformation för kostnadsestimering Statisk information för kostnadsestimering Kostnadsbaserad optimering

Läs mer

Uppdelning. Relationell databasdesign, FB Teori 7-20. Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av

Uppdelning. Relationell databasdesign, FB Teori 7-20. Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av Relationell databasdesign, FB Teori 7-20 Uppdelning Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av R om R i = R, i=1,...,n. Dvs. varje R i är en delmängd av R och varje attribut

Läs mer

Databasdesign. E-R-modellen

Databasdesign. E-R-modellen Databasdesign Kapitel 6 Databasdesign E-R-modellen sid Modellering och design av databaser 1 E-R-modellen 3 Grundläggande begrepp 4 Begränsningar 10 E-R-diagram 14 E-R-design 16 Svaga entitetsmängder 19

Läs mer

Reducering till relationsscheman

Reducering till relationsscheman E-R-modellen, Reducering till rel.scheman 6-26 Reducering till relationsscheman En databas som överensstämmer med ett E-R-databasschema kan representeras som en mängd relationsscheman ty E-R-modellen och

Läs mer

Relationskalkyl (RK)

Relationskalkyl (RK) 1 Relationskalkyl (RK) Formellt frågespråk som är baserad på predikatkalkyl (logik) En formel i RK är icke-procedurell (deklarativ), dvs den specificerar vad som ska hämtas och inte hur Jämför med relationsalgebran

Läs mer

Avancerad SQL Kapitel 4. Databaser: Avancerad SQL. sid SQL datatyper 1 Integritetsbegränsningar 3 Auktorisering 7 Inbäddad SQL 10 Dynamisk SQL 10

Avancerad SQL Kapitel 4. Databaser: Avancerad SQL. sid SQL datatyper 1 Integritetsbegränsningar 3 Auktorisering 7 Inbäddad SQL 10 Dynamisk SQL 10 Avancerad SQL Kapitel 4 Avancerad SQL sid SQL datatyper 1 Integritetsbegränsningar 3 Auktorisering 7 Inbäddad SQL 10 Dynamisk SQL 10 Avancerad SQL, datatyper 4-1 Datatyper i SQL En datatyp, dvs. domän

Läs mer

Grunderna för relationsmodellen!

Grunderna för relationsmodellen! Grunderna för relationsmodellen! 1 Varför behöver jag lära mig relationsmodellen?! Relationsmodellen är den totalt dominerande datamodellen i moderna databassystem Beskriver databaser som en mängd tabeller

Läs mer

E-R-modellen, E-R-diagram 6-14. E-R-diagram. representerar entitetsmängder

E-R-modellen, E-R-diagram 6-14. E-R-diagram. representerar entitetsmängder E-R-modellen, E-R-diagram 6-14 Komponenter Rektanglar Ellipser Ruter Linjer E-R-diagram representerar entitetsmängder repr. attribut repr. relationskapsmängder länkar attribut till entitetsmängder och

Läs mer

Relationsalgebra. Relationsalgebra består av en mängd operatorer som tar en eller två relationer som input och producerar en ny relation som resultat.

Relationsalgebra. Relationsalgebra består av en mängd operatorer som tar en eller två relationer som input och producerar en ny relation som resultat. Database: Relationsalgeba 2-11 Relationsalgeba Relationsalgeba bestå av en mängd opeatoe som ta en elle två elatione som input och poducea en ny elation som esultat. De fundamentala opeationena ä unäa

Läs mer

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar

Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar Innehåll Föreläsning 7 Logik med tillämpningar 99-03-01 Första ordningens predikatlogik Objekt, predikat, kvantifierare Funktioner, termer, wffs Bindning och räckvidd Tolkningar och värderingar Satisfiering,

Läs mer

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar:

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar: DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL r s använder vi för att uttrycka frågor där ordet alla figurerar: Ex. Vilka personer har stamkundskort vid ALLA klädesbutiker i stad X? Vilka personer har bankkonto

Läs mer

Relationsalgebra. Varför behöver jag lära mig relationsalgebra?!

Relationsalgebra. Varför behöver jag lära mig relationsalgebra?! Relationsalgebra 1 Varför behöver jag lära mig relationsalgebra?! Relationsmodellen är den datamodell som används i de flesta moderna databassystemen Data beskrivs och lagras som relationer, dvs. som 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

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

Ett databashanteringssystem (DBHS) skiljer sig från andra programmeringssystem bl.a.

Ett databashanteringssystem (DBHS) skiljer sig från andra programmeringssystem bl.a. 1 Kap. 1 INTRODUKTION Ett databashanteringssystem (DBHS) skiljer sig från andra programmeringssystem bl.a. 1. Möjligheten att hantera persistenta data 2. Möjligheten att accessera stora mängder av data

Läs mer

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto Objekt och klasser - Introduktion Objekt Ð Begreppet objekt Ð Hur klasser anvšnds fšr att skapa objekt Ð Fšr-definierade klasser Ð Metoder och parameteršverfšring Ð Definiera klasser Ð Modifierare Ð Statiska

Läs mer

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

Deklarativt programmeringsparadigm

Deklarativt programmeringsparadigm Deklarativt programmeringsparadigm Det vi introducerade på förra föreläsningen var ett exempel på deklarativ programmering. Vi specificerade en fallanalys som innehöll fakta och regler för hur man skulle

Läs mer

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet Filosofisk logik Kapitel 15 Robin Stenwall Lunds universitet Dagens upplägg Första ordningens mängdlära Naiv mängdlära Abstraktionsaxiomet (eg. comprehension) Extensionalitetsaxiomet Små mängder Ordnade

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

Filosofisk logik Kapitel 19. Robin Stenwall Lunds universitet

Filosofisk logik Kapitel 19. Robin Stenwall Lunds universitet Filosofisk logik Kapitel 19 Robin Stenwall Lunds universitet Dagens upplägg Gödels fullständighetsteorem Sundhet och fullständighet Fullständighetsbeviset Vittneskonstanter Henkinteorin Eliminationsteoremet

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

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

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

EMPS(NAME, SALARY, DEPT)

EMPS(NAME, SALARY, DEPT) Databaser Design och programmering Relationsalgebra den matematiska grunden för att bearbeta data representerad i relationsmodellen Operationer i relationsalgebra Två typer av operationer: Operationer

Läs mer

Databaser - Design och programmering. Operationer i relationsalgebra. Att söka ut data. Exempel DBschema. Att plocka ut data, forts

Databaser - Design och programmering. Operationer i relationsalgebra. Att söka ut data. Exempel DBschema. Att plocka ut data, forts Databaser Design och programmering Relationsalgebra den matematiska grunden för att bearbeta data representerad i relationsmodellen Operationer i relationsalgebra Två typer av operationer: Operationer

Läs mer

Design av en klass BankAccount som representerar ett bankkonto

Design av en klass BankAccount som representerar ett bankkonto Klasser Kommer ta upp följande begrepp: Design av en klass Implementera en klass Testa en klass med en mainmetod Instansvariabler, lokala variabler, formella parametrar, aktuella parametrar och variablers

Läs mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

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

Läs mer

Induktion, mängder och bevis för Introduktionskursen på I

Induktion, mängder och bevis för Introduktionskursen på I Induktion, mängder och bevis för Introduktionskursen på I J A S, ht 04 1 Induktion Detta avsnitt handlar om en speciell teknik för att försöka bevisa riktigheten av påståenden eller formler, för alla heltalsvärden

Läs mer

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion. Databaser Design och programmering Relationsmodellen definitioner ER-modell -> relationsmodell nycklar, olika varianter Programdesign, databasdesign Databasdesign Konceptuell design Förstudie, behovsanalys

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

Karlstads Universitet, Datavetenskap 1

Karlstads Universitet, Datavetenskap 1 2003-01-20 DAV B04 - Databasteknik 2003-01-20 KaU - Datavetenskap - DAV B04 - MGö 26 Relationsmodellen En formell teori som baserar sig på (främst) mängdlära predikatlogik Föreslogs av E.F Codd 1970 i

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

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 12: Logikprogrammering Henrik Björklund Umeå universitet 16. oktober, 2014 Prolog Prolog har två klasser av formler. Atomära formler: country(sweden, 9000000).

Läs mer

Att öva på och förstå ett program med flera samverkande klasser.

Att öva på och förstå ett program med flera samverkande klasser. Inlämningsuppgift 4 klassen Kund (Customer) Att öva på och förstå ett program med flera samverkande klasser. Redovisning: Uppgiften redovisas i datasal: o Körning av programmet. o Redogöra för vad de olika

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

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

Normalisering av meningar inför resolution 3. Steg 1: Eliminera alla och. Steg 2: Flytta alla negationer framför atomära formler

Normalisering av meningar inför resolution 3. Steg 1: Eliminera alla och. Steg 2: Flytta alla negationer framför atomära formler Normalisering av meningar inför resolution På samma sätt som i satslogiken är resolution i predikatlogiken en process vars syfte är att vederlägga att en klausulmängd är satisfierbar. Det förutsätter dock

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

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik 2008-08-11 kl. 14 18

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik 2008-08-11 kl. 14 18 LiTH, Tekniska högskolan vid Linköpings universitet 1(5) IDA, Institutionen för datavetenskap Juha Takkinen Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik 2008-08-11 kl. 14 18 Lokal T2 och

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

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

Sats. Om t är en rätvinklig triangel så är summan av kvadraterna på kateterna i t lika med kvadraten på hypotenusan.

Sats. Om t är en rätvinklig triangel så är summan av kvadraterna på kateterna i t lika med kvadraten på hypotenusan. Lunds tekniska högskola Datavetenskap Lennart Andersson Föreläsningsanteckningar EDAF10 3 Predikatlogik 3.1 Motivering I satslogiken är de minsta beståndsdelarna satslogiska variabler som kan anta värdena

Läs mer

Objekt och klasser - Introduktion

Objekt och klasser - Introduktion Objekt och klasser - Introduktion Begreppet objekt Hur klasser används för att skapa objekt Fördefinierade klasser Metoder och parameteröverföring Definiera klasser Modifierare Statiska variabler och metoder

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Modeller och uttrycksfullhet hos predikatlogik Department of mathematics Umeå university Föreläsning 10 Dagens föreläsning 1 Innehåll på resten av kursen 2 Varför verifikation? Formella metoder för verifikation

Läs mer

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik DD1350 Logik för dataloger Fö 7 Predikatlogikens semantik 1 Kryssprodukt av mängder Om A och B är två mängder så är deras kryssprodukt A B mängden av alla par (a,b), där a A och b B. Ex: A={1,2}, B={3,4},

Läs mer

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema Databaser Design och programmering Relationsmodellen definitioner ER-modell -> relationsmodell nycklar, olika varianter Relationsmodellen Introducerades av Edward Codd 970 Mycket vanlig Stödjer kraftfulla

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

PROV. 12 Egenskaper (provavsnitt)

PROV. 12 Egenskaper (provavsnitt) 12 Egenskaper (provavsnitt) 12.1 Egenskaper 12.2 Deklaration av egenskaper 12.3 Åtkomsttjänster för egenskaper 12.4 Åtkomsttjänster med genererade instansvariabler 12.5 Åtkomsttjänster med egna instansvariabelnamn

Läs mer

Filosofisk logik Kapitel 15 (forts.) Robin Stenwall Lunds universitet

Filosofisk logik Kapitel 15 (forts.) Robin Stenwall Lunds universitet Filosofisk logik Kapitel 15 (forts.) Robin Stenwall Lunds universitet Dagens upplägg Antalet element i en mängd Kardinalitet Humes princip Cantors teorem Den universella mängden Några mängdteoretiska paradoxer

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

FUZZY LOGIC. Christopher Palm chrpa087

FUZZY LOGIC. Christopher Palm chrpa087 FUZZY LOGIC 900223-1554 Innehållsförteckning INLEDNING...2 HUR DET FUNGERAR...3 Crisp Sets och Fuzzy Sets...3 Operatorer...5 IF THEN regler...7 FUZZY INFERENCE...7 Fuzzification...8 Regelsättning...8

Läs mer

Föreläsning 3: Ekvationer och olikheter

Föreläsning 3: Ekvationer och olikheter Föreläsning 3: Ekvationer och olikheter En ekvation är en likhet som innehåller en flera obekanta storheter. Exempel: x = 9, x är okänd. t + t + 1 = 7, t är okänd. Vi säger att ett värde på den obekanta

Läs mer

DD1361 Programmeringsparadigm HT15

DD1361 Programmeringsparadigm HT15 DD1361 Programmeringsparadigm HT15 Logikprogrammering 1 Dilian Gurov, TCS Innehåll Logikprogrammering Kontrollflöde Unifiering Backtracking Negation Snitt Induktiva datatyper och rekursion Inbyggda datatyper:

Läs mer

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder Block 2 Algebra och Diskret Matematik A BLOCK INNEHÅLL Referenser Inledning 1. Följder 2. Rekursiva definitioner 3. Sigmanotation för summor 4. Strängar 5. Tal 6. Övningsuppgifter Referenser Följder, strängar

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

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

DD1361 Programmeringsparadigm HT16

DD1361 Programmeringsparadigm HT16 DD1361 Programmeringsparadigm HT16 Logikprogrammering 1 Dilian Gurov, TCS Delkursinnehåll Logikprogrammering Logisk versus procedurell läsning Kontrollflöde Unifiering, Backtracking, Snitt Negation Induktiva

Läs mer

= 0 vara en given ekvation där F ( x,

= 0 vara en given ekvation där F ( x, DERIVERING AV IMPLICIT GIVNA FUNKTIONER Eempel. Vi betraktar som en funktion av och,,), given på implicit form genom + + 6 0. Bestäm partiella derivator och i punkten P,, ) a) med hjälp av implicit derivering

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

DD1361 Programmeringsparadigm HT17

DD1361 Programmeringsparadigm HT17 DD1361 Programmeringsparadigm HT17 Logikprogrammering 1 Dilian Gurov, KTH Delkursinnehåll Logisk versus procedurell läsning Kontrollflöde: Unifiering, Backtracking, Snitt Induktiva datatyper och rekursion

Läs mer

LULEÅ TEKNISKA UNIVERSITET Ämneskod S0002M, MAM801, IEK600,IEK309 Institutionen för matematik Datum 2009-12-17 Skrivtid 0900 1400

LULEÅ TEKNISKA UNIVERSITET Ämneskod S0002M, MAM801, IEK600,IEK309 Institutionen för matematik Datum 2009-12-17 Skrivtid 0900 1400 LULEÅ TEKNISKA UNIVERSITET Ämneskod S0002M, MAM801, IEK600,IEK309 Institutionen för matematik Datum 2009-12-17 Skrivtid 0900 1400 Tentamen i: Statistik A1, 15 hp Antal uppgifter: 6 Krav för G: 13 Lärare:

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

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

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

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

Lek$on 4: Kunskapsrepresenta$on. Robin Keskisärkkä och Jonas Rybing

Lek$on 4: Kunskapsrepresenta$on. Robin Keskisärkkä och Jonas Rybing Lek$on 4: Kunskapsrepresenta$on Robin Keskisärkkä och Jonas Rybing Översikt Laborationerna så här långt Genomgång av Laboration 4 Uppgift Förberedelser Kunskapsrepresentation Framesteori Uppgi= Implementera

Läs mer

Schema XMLSIE_1_0.xsd

Schema XMLSIE_1_0.xsd Schema XMLSIE_1_0.xsd Elements Groups Complex types Simple types SIE BalanceGROUP BalanceWithPeriodTYPE AccountIdTYPE JournalInfoTYPE AccountTypeTYPE LedgerEntryTYPE CurrencyIdTYPE ObjectGroupReferenceTYPE

Läs mer

Logik för datavetare DVK:Log Tisdagen 28 oktober 2014. Institutionen för dataoch systemvetenskap David Sundgren

Logik för datavetare DVK:Log Tisdagen 28 oktober 2014. Institutionen för dataoch systemvetenskap David Sundgren Institutionen för dataoch systemvetenskap David Sundgren Logik för datavetare DVK:Log Tisdagen 28 oktober 2014 Skrivtid: 9 00-13 00. Inga hjälpmedel utom formelsamlingen på nästa sida är tillåtna. För

Läs mer

Structured Query Language (SQL)

Structured Query Language (SQL) Structured Query Language (SQL) Christer Stuxberg christer.stuxberg@im.uu.se Institutionen för Informatik och Media Översikt Introduktion Enkla frågor (queries) Hämta en specifik kolumn Sök Sammanfattning

Läs mer

sanningsvärde, kallas utsagor. Exempel på utsagor från pass 1 är

sanningsvärde, kallas utsagor. Exempel på utsagor från pass 1 är PASS 7. EKVATIONSLÖSNING 7. Grundbegrepp om ekvationer En ekvation säger att två matematiska uttryck är lika stora. Ekvationen har alltså ett likhetstecken och två deluttryck på var sin sida om likhetstecknet.

Läs mer

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

Typsystem. Typsystem... Typsystem... Typsystem... 2 * Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och

Läs mer

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar I. v. 2.0, den 24/4 2013

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar I. v. 2.0, den 24/4 2013 Filosofisk Logik (FTEA21:4) föreläsningsanteckningar I v. 2.0, den 24/4 2013 Om detta kompendium: Filosofiska institutionen, Lunds Universitet staffan.angere@fil.lu.se Förberedande Det här kompendiet är

Läs mer

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1. Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning

Läs mer

Predikatlogik: Normalformer. Klas Markström

Predikatlogik: Normalformer. Klas Markström 1 Precis som i satslogik så är det bekvämt att kunna hitta en normalform för meningar. Om vi kan utgå från att alla meningar är på normalform så behöver vi t.e.x. inte bekymra oss om en massa specialfall

Läs mer

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19 Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och

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

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

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad 1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen

Läs mer

Kapitel Ekvationsräkning

Kapitel Ekvationsräkning Kapitel Ekvationsräkning Din grafiska räknare kan lösa följande tre typer av beräkningar: Linjära ekvationer med två till sex okända variabler Högregradsekvationer (kvadratiska, tredjegrads) Lösningsräkning

Läs mer

Förra gången: Primitiva data

Förra gången: Primitiva data Förra gången: Primitiva data > 30 30 > 45.56 45.56 Variabler: > (define telnr 6000) > telnr 6000 DA2001 (Föreläsning 3) Datalogi 1 Hösten 2013 1 / 24 Förra gången: Procedurapplikation: > (+ 7900000 telnr)

Läs mer

SF1901 Sannolikhetsteori och statistik I

SF1901 Sannolikhetsteori och statistik I SF1901 Sannolikhetsteori och statistik I Jimmy Olsson Föreläsning 4 7 november 2017 1 / 29 Idag Förra gången Viktiga kontinuerliga fördelningar (Kap. 3.6) Fördelningsfunktion (Kap. 3.7) Funktioner av stokastiska

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

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Introduktion till programmering SMD180. Föreläsning 9: Tupler Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]

Läs mer

Tentamen i. TDDC67 Funktionell programmering och Lisp

Tentamen i. TDDC67 Funktionell programmering och Lisp 1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDC67 Funktionell programmering och Lisp och äldre kurser TDDC57 Programmering, Lisp och funktionell programmering

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

TDIU01 - Programmering i C++, grundkurs

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

Läs mer

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

1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta denna följd av tal, där varje tal är dubbelt så stort som närmast föregående

1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta denna följd av tal, där varje tal är dubbelt så stort som närmast föregående MATEMATISKA INSTITUTIONEN STOCKHOLMS UNIVERSITET Christian Gottlieb Gymnasieskolans matematik med akademiska ögon Induktion Dag 1 1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta

Läs mer

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

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

Läs mer

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010 Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2010 Tentamen TDDB53 TENTAMEN TDDB53 (provkod TEN2) den 7 april 2010 kl 8 12 Jour: Emil Nielsen, tel 070 499 89 88 Hjälpmedel:

Läs mer

Vardagssituationer och algebraiska formler

Vardagssituationer och algebraiska formler Modul: Algebra Del 7: Kommunikation i algebraklassrummet Vardagssituationer och algebraiska formler Cecilia Kilhamn, Göteborgs Universitet och Jörgen Fors, Linnéuniversitetet En viktig del av algebran

Läs mer

Modularitet och tillstånd. Stora system kräver en uppdelning. En lösning: modularitet. Basera programmets struktur på den fysiska systemets struktur:

Modularitet och tillstånd. Stora system kräver en uppdelning. En lösning: modularitet. Basera programmets struktur på den fysiska systemets struktur: Modularitet och tillstånd Stora system kräver en uppdelning. En lösning: modularitet Basera programmets struktur på den fysiska systemets struktur: En fysisk objekt en beräkningsobjekt Ett agerande en

Läs mer

Logik och bevisteknik lite extra teori

Logik och bevisteknik lite extra teori Logik och bevisteknik lite extra teori Inger Sigstam 2011-04-26 1 Satslogik (eng: propositional logic) 1.1 Språket Alfabetet består av följande symboler: satssymbolerna p 0, p 1, p 2,.... konnektiverna,,,,.

Läs mer