Daniel Karlsson Jonas Markström Oskar Mårtensson Patrik Nordström

Storlek: px
Starta visningen från sidan:

Download "Daniel Karlsson (c11dkn@cs.umu.se) Jonas Markström (c11jmm@cs.umu.se) Oskar Mårtensson (c11omn@cs.umu.se) Patrik Nordström (c04pnm@cs.umu."

Transkript

1 UMEÅ UNIVERSITET 3 februari 2014 Institutionen för Datavetenskap Laborationsrapport Efterforskning om ett programspråk Programspråk 5DV086 FORTH Daniel Karlsson (c11dkn@cs.umu.se) Jonas Markström (c11jmm@cs.umu.se) Oskar Mårtensson (c11omn@cs.umu.se) Patrik Nordström (c04pnm@cs.umu.se)

2 FORTH Innehåll Innehåll 1 Språkets ursprung 1 2 Skaparens filosofi Vision Omvänd polsk notation Vanliga och viktiga kommandon Funktioner Aritmetik och logiska operatorer IF/ELSE Stack-hantering Variabler Användbara kommandon Fördelar & nackdelar med Forth 7 5 Forth i modern tid 7 Programspråk i 3 februari 2014

3 FORTH 2 Skaparens filosofi 1 Språkets ursprung Det var vid Kitt Peaks observatorium som FORTH kom till riktig användning för första gången Charles H. Moore, då 32 år gammal, hade på egen hand utvecklat språket under 1960-talet och kunde nu använda det för att rikta in anläggningens stora radioteleskop. Charles föddes i McKeesport utanför Pittsburgh 1938 och var duktig i skolan. Han antogs till MIT med ett stipendium tilldelat speciellt lovande studenter. Hösten 1957 skickade Ryssland upp Sputnik 1 i omloppsbana kring jorden och detta ledde till en febril aktivitet i USA. SAO (Smithsonian Astrophysical Observatory), ansvarig för att spåra satelliter, plockade in studenter för att göra beräkningar på dess bana. Charles skrev i samband med detta sitt första Figur 1: FORTH:s skapare Chuck H. Moore program i Fortran II (Ephemeris 4) för att utföra beräkningarna. Med programmet började hans anställning hos SAO där han jobbade med beräkningar av omloppsbanor, vid sidan av sina studier. På 1950-talet skedde programmering med hålkort. Det var som en tolk för att kontrollera programmen på dessa hålkort som FORTH startade. Tolken skrevs i Fortran och hade till en början några få kommandon. Efter att ha tagit ut en fysikexamen vid MIT började Moore att studera matematik vid Stanford Han jobbade då deltid vid Stanford Linear Center och skrev programmet Curve för att utföra statistiska beräkningar. Det använde en stack för att utvärdera inkommande kommandon och tillförde fler ord till det som skulle bli FORTH:s vokabulär lämnade han Stanford och blev en frilansande programmerare. Han livnärde sig på att skriva program i Fortran, Algol, Jovial, PL/I och assemblerspråk. Det var nu som terminaler dök upp och FORTH förseddes med kommandon för inläsning och utskrift av tecken började han jobba vid Mohasco och arbetade hårt för att använda Forth i samklang med de andra COBOL-modulerna. Forth kodades om i assembler. Tre år efter att Forth kommit till användning för allra första gången startade Charles, med hjälp av investerare, företaget Forth, Inc och kunde därefter göra Forth tillgängligt på olika plattformar: mini-, micro- och mainframe -datorer [Moore 2010]. 2 Skaparens filosofi Den främsta anledningen till att Chuck Moore skapade Forth var att han fann andra språk onödigt komplexa, med många lager som gör att det blir väldigt svårt att sätta sig in i allt som händer. Han såg detta som ett hinder dels för användare av program, då varje extra lager innebär ytterligare begränsningar i vad som kan utföras, och dels för programmerare, då de måste anpassa sig till konstruktioner och regler som tvingas på av dessa lager. [Forth, Inc 2014] Dessutom ogillade Moore att andra språk (Fortran, COBOL, Algol) gav väldigt lite direkt kontroll över hur datorn utför olika uppgifter medan assembler eller maskinkod var arbetskrävande att debugga. [Moore, 1970, s. 8-10] Programspråk 1 3 februari 2014

4 FORTH 2 Skaparens filosofi När Forth skapades fanns det två huvudtyper av programspråk. Interpreterande språk: Programkoden kompileras samtidigt som den körs vilket gör att det går snabbt att skriva program men programmen tar längre tid att köra. Kompilerande språk: Tar längre tid att skriva i och med att det måste kompileras separat (vilket tog lång tid back in the days) men är desto snabbare när det körs. Forth skapades med filosofin att vara det bästa av båda världarna. Dels så skulle det gå fort att skapa program med Forth och programmen skulle kompileras direkt och det slutgiltiga programmet skulle också gå att köra relativt fort. För att få detta att fungera så implementerade man Forth så att koden inte kompileras direkt till maskinkod utan till en lista innehållandes addresser till maskinkods-rutiner. Resultatet av denna teknik är alltså att Forth blev ett snabbt programspråk som dessutom var interaktivt. 2.1 Vision Chuck Moore definierade vad han kallade för The Basic Principle: Keep it simple Do not speculate! Do it yourself! Detta innebär att ett program bara ska ha de funktioner som faktiskt kommer att användas och inte innehålla sådant som kanske kan komma till användning senare. Om det uppstår ett behov för dessa funktioner senare ska de implementeras vid den tidpunkten. Chuck Moore menar att det finns oändligt många tänkbara funktioner som skulle kunna komma att användas, vilket leder till att varje enskild tänkbar funktion har sannolikheten 0 att faktiskt behövas. The Basic Principle innebär även att man ska undvika bibliotek med färdiga funktioner eftersom de är generella och innehåller mycket kod som inte behövs för just ditt ändamål. [Moore, 1970, s. 16] Denna princip är exakt vad Forth är. Forth har ett lager mellan människa och dator, vilket ger mycket direkt kontroll över vad datorn gör. Dessa designprinciper har lett fram till ett språk som genererar mycket kompakta, effektiva och direkt kontrollerbara program. 2.2 Omvänd polsk notation Forth är stackbaserat, vilket innebär att alla operatorer tar sina argument från stacken, utför beräkningen och returnerar eventuellt resultat till stacken. Syntaxen är anpassad efter detta och upplagd på datorns villkor. Därför används omvänd polsk notation, som påbjuder att operanderna anges in före operatorn. De kan då läggas på stacken och finnas tillgängliga när beräkningen ska göras => * - Programspråk 2 3 februari 2014

5 FORTH 3 Vanliga och viktiga kommandon 3 Vanliga och viktiga kommandon Forth har en uppsättning kommandon som, relativt enkelt, går att utöka på egen hand med hjälp av funktioner. Kommandon är ofta centrerade kring stacken vilket innebär att dessa hämtar och/eller lägger till skapade värden på stacken. Kommentarer går att använda genom att skriva ett följt av ett mellanslag. T.ex. Här kan du skriva kommentaren. 3.1 Funktioner Funktioner kallas även för words i Forth. Dessa avslutas med ett semi-kolon (;) och kan t.ex. se ut såhär [ACM, 1993]: : ADD_10 ( t1 r ) \ Funktion som lägger till 10 på första talet på stacken \ <Första talet på stacken> + 10 (RPN-tolkning) ; Sedan kan vi anropa funktionen genom att skriva: 5 ADD Forth svarar med: OK Om vi tömmer stacken, med., kommer Forth att svara:. 15 OK 3.2 Aritmetik och logiska operatorer Forth använder sig, som sagt var, av omvänd polsk notation (RPN). Detta innebär att aritmetiken kommer se lite annorlunda ut. De fyra räknesätten blir då: Lägger 10 och 5 på stacken, sedan tas dessa värden och adderas. Resultat läggs på stacken Lägger 10 och 5 på stacken, sedan tas dessa värden och subtraheras. Resultat läggs på stacken * Lägger 10 och 5 på stacken, sedan tas dessa värden och multipliceras. Resultat läggs på stacken / Lägger 10 och 5 på stacken, sedan tas dessa värden och divideras. Resultat läggs på stacken. Dessa operatorer är heltalsoperatorer som har intervallet [ , ] [Brodie, 2014, kap2]. Om vi har uttrycket: 4 + (17 12) Programspråk 3 3 februari 2014

6 FORTH 3 Vanliga och viktiga kommandon och ska skriva det i omvänd polsk notation blir det: alternativt eftersom vi först tar resultatet av och lägger det på stacken, sedan adderar vi det med 4 (resultatet läggs till på stacken). Det bör noteras att det även finns hantering för flyttal, men detta tas inte upp i denna föreläsning [Brodie, 2014, kap5]. Forth representerar värdet TRUE som -1 (och ibland alla värden utom 0) och värdet FALSE som 0 [Haskell, 2013] med de vanliga villkorsoperatorerna: < Mindre än. > Större än. = Lika med. <> Icke lika med. <= Mindre än eller lika med. >= Större än eller lika med. T.ex < kommer lägga TRUE (-1) på stacken. Forth har även operatorer som bara kräver ett värde ur stacken och kollar mot 0: 0< Mindre än 0. 0> Större än 0. osv. Utöver villkorsoperatorerna har Forth även ett antal logiska operatorer: AND - Bitwise AND. OR - Bitwise OR. XOR - Bitwise XOR. NOT - Icke (Finns i vissa kompilatorer). T.ex AND kommer lägga 0 (FALSE) på stacken. Programspråk 4 3 februari 2014

7 FORTH 3 Vanliga och viktiga kommandon 3.3 IF/ELSE Forth använder sig av stacken när den ska evaluera sina IF...ELSE-satser. Om det översta värdet på stacken är TRUE (-1) så kommer det efter IF att exekvera, annars kommer det efter ELSE att exekveras. Alltså: IF <Detta exekveras om översta värdet på stacken är TRUE (-1)> ELSE <Detta exekveras om översta värdet på stacken är FALSE (0)> THEN ELSE kan även skippas så att det endast är kvar: IF <Detta exekveras om översta värdet på stacken är TRUE (-1)> THEN Loopar De loopar som Forth stöder är: DO...LOOP BEGIN...UNTIL BEGIN...WHILE...REPEAT BEGIN...AGAIN DO...LOOP kan liknas vid en for-loop i ett traditionellt programmeringsspråk. DO tar två värden från stacken som kommer vara ett intervall som loopen ska köra igenom, t.ex: 10 2 DO... LOOP...kommer loopa igenom 8 gånger, från 2 till 10. I en DO...LOOP kan man använda sig av I, som innehåller vilket värde i intervallet man befinner sig i. BEGIN...UNTIL kan liknas vid en do-while-loop i ett traditionellt programmeringsspråk. När programmet kommer till UNTIL så kollas översta värdet på stacken, är detta TRUE (-1) så kommer programmet inte göra om loopen igen, är översta värdet på stacken FALSE (0) så kommer programmet köra om loopen [Haydon, 1997]. BEGIN...WHILE...REPEAT är användbar när man vill kolla en flagga innan kodsekvensen körs. BEGIN <kod1> WHILE <kod2> REPEAT WHILE tar översta värdet på stacken som flagga. Om flaggan är TRUE så kommer <kod2> att köras, annars kommer loopen att skippas och programmet kommer fortsätta på kommandot efter REPEAT. När <kod2> har exekverats och programmet kommer till REPEAT så kommer programmet hoppa tillbaka till BEGIN. <kod1> innehåller oftast koden som sätter flaggan till WHILE. BEGIN...AGAIN är en oändlig loop och kan liknas vid en while(true) i traditionella programmeringsspråk. AGAIN är en unconditional branch till BEGIN [Quozl, 2014]. 3.4 Stack-hantering Eftersom stacken är en sån central del av Forth kommer programmeringsspråket med ett antal kommandon för hantering och manipulering av stacken. De vanligaste är [Lindström, 1984, ]: Programspråk 5 3 februari 2014

8 FORTH 3 Vanliga och viktiga kommandon SWAP Byter plats på de två översta elementen på stacken. DUP Duplicerar det översta värdet på stacken. DROP Tar bort det översta värdet på stacken. OVER Lägger en kopia på det näst översta elementen överst på stacken. ROT Roterar stackens tredje element till stackens topp. PICK Tar översta värdet på stacken och går bakåt lika många steg i stacken (översta värdet räknas inte) som värdet och lägger det elementet överst på stacken. T.ex. 5 PICK kommer ta det sjätte elementet på stacken och lägga det överst. 3.5 Variabler Forth stöder användning av variabler. Man kan definiera variabler genom att skriva VARIABLE <namn>. På vissa kompilatorer och dialekter av Forth kommer variabeln även att få översta värdet på stacken som initiellt värde. Vi kan skriva: VARIABLE ABC Vilket kommer skapa variabeln ABC på en minnesadress. Vi kan få variablens minnesaddress genom att skriva: ABC och vi kan få värdet på variablen genom att lägga efter variabelnamnet: Resultaten kommer att läggas överst på stacken. För att tilldela värden på variabler använder vi oss av!. Funktionen! kommer ta de två översta elementen på stacken, en minnesadress och ett värde, och sätta värdet på minnesadressen. T.ex: 7 ABC! Varefter variabeln ABC får värdet 7. [Lindström, 1984, sid ] 3.6 Användbara kommandon CR - Nyrad. Sträng - Forth skriver ut strängen som är inom citattecknen.. är funktionen som skriver ut allt tills ett citattecken påträffas. Viktigt är att det måste vara ett mellanslag mellan citattecknen och strängen. Under projektets gång har ett antal kodsekvenser skrivits i Forth för att utforska programspråket. Bubblesort är en av de sorteringsalgoritmer som implementerats (se figur 3). En annan funktion är den primtalsutvärderande funktionen ISPRIME, som kontrollerar om det översta värdet i stacken är ett primtal eller ej, lägger svaret på stacken och skriver ut till användaren (se figur 4). Programspråk 6 3 februari 2014

9 FORTH 5 Forth i modern tid 4 Fördelar & nackdelar med Forth Figur 2: FORTH Forth är som sagt skapat för att vara en kombination av två olika typer av språk. Detta gör att det både är ett språk där det går snabbt att skriva program men även att programmen är snabba när de väl körs. En av de främsta fördelarna med Forth är att man inte bara kan använda det som ett högnivåspråk, utan även som ett lågnivåspråk. Detta gör att ett av de främsta användningsområdena för Forth är i microprocessorer eftersom det är lätt att hålla reda på vad som händer på instruktionsnivå med Forth. En annan fördel med Forth är att användardefinierade funktioner direkt blir ett eget kommando i språket och kan användas överallt i koden. Detta samt att språket är interaktivt gör att Forth går snabbt att lära sig då man slipper kompilera om hela koden separat varje gång man ändrar något. En nackdel med Forth är att själva koden är relativt svårläst och svårförståelig för en människa. Detta beror delvis på notationen som används (Omvänds polsk notation). Många kommandon som t.ex. fetch contents -kommandot har också en väldigt kort notation (skrivs vilket ännu en gång gör språket svårläsligt för människor. Att hela programspråket är stackbaserat också kan gör det svårt att hålla reda på alla värden i programmet för en oinsatt programmerare. [Williams, 1980, h2g2 2004] 5 Forth i modern tid Forth var som populärast på 80-talet då språket var väl anpassat för att fungera i microkontroller. Sedan har språket används för att göra program i en rad olika områden, däribland matematik, el-teknik och rymdteknik. NASA är en av de organisationer som använt microprocessorer exekverande FORTH-program. Satelliten IMAGE sköts upp den 25:e Mars 2000 med uppdraget att undersöka jordens magnetosfär. Utrustningen bestod bland annat av en mottagare av ultraviolett strålning, som var kontrollerad av en FORTH-programmerad microprocessor. [?] [NASA 2000] Boening har även använt Forth för att konstruera delar av Boening 777s flygsystem. Forth slog dock aldrig igenom rejält och används idag enbart i moduler som boot-loaders (se t.ex. Open Firmware) och små inbyggda system. Det finns några implementationer av Forth som fortfarande underhålls som t.ex. GNUs Gforth vars senaste version släpptes Sedan har Forth även inspirerat andra språk såsom PostScript som är ett språk som används för att skriva vektorgrafik och är en standard för sidbeskrivning vid utskrift. [Wikipedia 2014] Programspråk 7 3 februari 2014

10 ( BUBBLESORT FUNKTION SOM SORTERAR STACKENS N ÖVERSTA VÄRDEN, MAX 100. NÄR ANROP SKER SKALL STACKEN BESTÅ AV ETT ANTAL VÄRDEN OCH ANTALET VÄRDEN SOM SKA SORTERAS. T.EX. <VÄRDE> <VÄRDE> <VÄRDE> <ANTAL VÄRDEN> BUBBLESORT I DETTA FALL ÄR <VÄRDE> <VÄRDE> <VÄRDE> DEN OSORTERADE LISTAN. DEN SORTERADE LISTAN KOMMER SKRIVAS UT OCH SPARAS PÅ STACKEN MED DET HÖGSTA VÄRDET ÖVERST PÅ STACKEN. ) 100 CONSTANT MAXVALUES VARIABLE SORTED \ ANVÄNDS FÖR ATT KOLLA OM SWAPS HAR INTRÄFFAT. VARIABLE VALUES \ ANGER HUR MÅNGA VÄRDEN SOM SKICKATS IN. CREATE ARR MAXVALUES CELLS ALLOT \ SKA INNEHÅLLA VÄRDENA SOM SKA SORTERAS. : BUBBLESORT ( N LIST -- SORTED ) VALUES! 0 DO \ LÄGG IN VÄRDENA I ARRAYEN. 1 - I - CELLS ARR +! LOOP BEGIN \ BÖRJA SORTERINGEN. -1 SORTED! 1-0 DO \ GÅR IGENOM LISTAN EN GÅNG. I CELLS ARR I 1 + CELLS ARR > \ KOLLA VILKEN SOM ÄR STÖRST. IF \ KOLLA OM PLATSBYTE SKALL SKE. I CELLS ARR \ LÄGG ELEMENT I PÅ STACKEN. I 1 + CELLS ARR \ LÄGG ELEMENT I + 1 PÅ STACKEN. SWAP \ BYT PLATS. 0 SORTED! \ FLAGGA ATT LISTAN EJ VAR SORTERAD. I 1 + CELLS ARR +! \ LAGRA I ARRAYEN. I CELLS ARR +! THEN ; LOOP -1 = \ KOLLA OM LISTAN VAR SORTERAD. UNTIL \ OM EJ SORTERAD, LOOPA OM IGEN. CR \ UTSKRIFT. 0 DO I CELLS ARR DUP. LOOP Figur 3: Ett kodexempel i Forth som sorterar stacken med algoritmen Bubblesort, icke-rekursivt.

11 ISPRIME VARIABLE VALUEISPRIME : ISPRIME ( r - t ) DUP -1 VALUEISPRIME! 2 > IF DUP 1-2 DO DUP I MOD 0 = IF THEN DROP LOOP THEN 0 VALUEISPRIME! IF." YES IT S PRIME! " ELSE." NO, IT S NOT PRIME " THEN ; Figur 4: Ett annat kodexempel i Forth. Denna funktion kollar om översta värdet på stacken är ett primtal, lägger en flagga på stacken och skriver ut svaret till användaren.

12 FORTH Referenser Referenser [Moore 2010] Charles H Moore, , besökt :59 [Moore 1991] Charles H Moore, 1991, besökt :38 [Wikipedia 2014] Wikipedia, Forth (Programming Language), besökt :00, senast uppdaterad :22 [NASA 2003] NASA, , besökt :30 [NASA 2000] NASA, NASA Science Missions, besökt , 13:30 [Forth, Inc 2014] Forth, Inc 2014, The Evolution of Forth, besökt :45, Senast Uppdaterad: 2014 [Williams, 1980] Williams, Gregg (1980), Byte magazine #8, McGraw-Hill Inc., Hancock, NH [h2g2 2004] h2g2, Forth - the Programming Language, besökt :39, uppdaterad [Wikipedia 2014] Wikipedia foundation, PostScript en.wikipedia.org/wiki/postscript, besökt :43, uppdaterad [FIG 2011] Forth Interest Group(2011), besökt , uppdaterad [Moore, 1970] Moore, Charles H(1970), Pintaske, Juergen (2012), PROGRAMMING A PROBLEM-ORIENTED LANGUAGE, besökt: , uppdaterad: [Galli, 1984] Galli, Paul J (1984), Programmering i FORTH, Studentlitteratur, Lund [Winfield, 1983] Winfield, Alan (1983), THE COMPLETE FORTH, Sigma Technical press, Wilmslow [Lindström, 1984] Lindström, Bengt (1984), ABC om FORTH, Liber Teknikutbildning, Stockholm [ACM, 1993] Philip J. Koopman jr., ACM, A Brief Introduction to Forth, koopman/forth/hopl.html, besökt , uppdaterad: 1993 [Brodie, 2014] Leo Brodie, Starting FORTH:Arithmetic, besökt: , uppdaterad: 2014 [Haskell, 2013] Haskell, Richard E.,The Forth Course: Lesson 4 - Forth Decisions, besökt: , uppdaterad: :27 Programspråk 10 3 februari 2014

13 FORTH Referenser [Haydon, 1997] Haydon, Glen B., The forth guide: chapter X - Structures, besökt: , uppdaterad: 2011 [Quozl, 2014] Quozl, Forth Lesson 7, besökt: , uppdaterad: :34 Programspråk 11 3 februari 2014

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

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

Läs mer

Att använda pekare i. C-kod

Att använda pekare i. C-kod Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare

Läs mer

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen? ICT LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen? Daniel Lindfors 12/9/07 dlindf@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Denna laboration

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

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

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

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

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

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

Läs mer

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 1. Introduktion till webbprogrammering Webbprogrammering består av ett antal

Läs mer

Programmeringsuppgifter 1

Programmeringsuppgifter 1 Programmeringsuppgifter 1 Redovisning: Ni demo-kör och förklarar för handledaren några av de program ni gjort. Ni behöver inte hinna allt, redovisa så långt ni kommit. Om ni hinner mer kan ni alltid redovisa

Läs mer

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

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

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

Grunderna i stegkodsprogrammering

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

Läs mer

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack 725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab TAIU07 Matematiska beräkningar med Matlab Datorlektion 2. Villkor och Repetition 1 Logiska uttryck Uppgift 1.1 Låt a=3 och b=6 Vad blir resultatet av testerna ab? Uppgift 1.2 Låt a, b,

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga

Läs mer

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

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

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Digitalt lärande och programmering i klassrummet

Digitalt lärande och programmering i klassrummet Digitalt lärande och programmering i klassrummet Innehåll Programmering Vad är programmering och varför behövs det? Argument för (och emot) programmering Kort introduktion om programmering Några grundbegrepp

Läs mer

Twincat: PLC Control

Twincat: PLC Control Dokument Förklaring Dat. Revision KI-221-003-003 Kom igång med trukturerad Text 080402 1.0 Twincat: PLC Control Kom igång med Strukturerad Text (ST) programmering 1. Kod exempel. a. Exemplen som demonstreras

Läs mer

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

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

Läs mer

Sätt att skriva ut binärträd

Sätt att skriva ut binärträd Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer

Läs mer

8-4 Ekvationer. Namn:..

8-4 Ekvationer. Namn:.. 8-4 Ekvationer. Namn:.. Inledning Kalle är 1,3 gånger så gammal som Pelle, och tillsammans är de 27,6 år. Hur gamla är Kalle och Pelle? Klarar du att lösa den uppgiften direkt? Inte så enkelt! Ofta resulterar

Läs mer

F5 Introduktion till digitalteknik

F5 Introduktion till digitalteknik George Boole och paraplyet F5 Introduktion till digitalteknik EDAA05 Roger Henriksson Jonas Wisbrant p = b! (s " r) George Boole (1815-1864) Professor i Matematik, Queens College, Cork, Irland 2 Exklusiv

Läs mer

Tentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102

Tentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102 Tentamen på kursen DA7351, Programmering 1 051102, kl 08.15-12.15 Tillåtna hjälpmedel: Valfri bok om Java. Vid bedömning av lösningarna tas hänsyn till om dessa uppfyller de krav på programkvalitet (strukturering,

Läs mer

MMA132: Laboration 1 Introduktion till MATLAB

MMA132: Laboration 1 Introduktion till MATLAB MMA132: Laboration 1 Introduktion till MATLAB De flesta numeriska metoder låter oss få en tillräckligt bra lösning på ett matematiskt problem genom att byta ut komplexa matematiska operationer med kombinationer

Läs mer

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

Tentamen: Programutveckling ht 2015

Tentamen: Programutveckling ht 2015 Tentamen: Programutveckling ht 2015 Datum: 2015-11-04 Tid: 09:00-13:00 Sal: Ansvarig: Resultat: Hjälpmedel: Maxpoäng: Betygsgränser: Anslås inom 3 veckor. Inga 40 p 20 p för G, 32 p för VG. Iakttag följande:

Läs mer

Tentamen TEN1 HI1029 2014-05-22

Tentamen TEN1 HI1029 2014-05-22 Tentamen TEN1 HI1029 2014-05-22 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

Felsökning av mjukvara

Felsökning av mjukvara KUNGLIGA TEKNISKA HÖGSKOLAN Felsökning av mjukvara Programmering av en NXT-robot Max Kufa [03/08-13] mkufa@kth.se Introduktionskurs i datateknik (II1310) Sammanfattning Syftet med laborationen var att

Läs mer

Föreläsning 4: Kombinatorisk sökning

Föreläsning 4: Kombinatorisk sökning DD2458, Problemlösning och programmering under press Föreläsning 4: Kombinatorisk sökning Datum: 2009-09-25 Skribent(er): Kristina Nylander, Dennis Ekblom, Marcus Öman Föreläsare: Fredrik Niemelä 1 Introduktion

Läs mer

Datorsystem Laboration 2: Minnesmappade bussar

Datorsystem Laboration 2: Minnesmappade bussar Datorsystem Laboration 2: Minnesmappade bussar Senast uppdaterad: 14 oktober 2012 Version 1.2 Student: Lärare: Underskrift: Underskrift: Datum: Datorsystem Laboration 2 1 Innehåll 1 Inledning 2 1.1 Introduktion..................................

Läs mer

Björn Abelli Programmeringens grunder med exempel i C#

Björn Abelli Programmeringens grunder med exempel i C# Björn Abelli Programmeringens grunder med exempel i C# Övningshäfte (bearbetning pågår) Senaste uppdatering: 2004-12-12 I denna version finns övningar för de mest centrala avsnitten. Häftet kommer att

Läs mer

Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.

Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP. Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär

Läs mer

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012 1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

Läs mer

Matematisk Modellering

Matematisk Modellering Matematisk Modellering Föreläsning 1 Anders Heyden Matematikcentrum Lunds Universitet Matematisk Modellering p.1/37 Denna föreläsning (läsvecka 1) Vad handlar kursen om, mål, kurskrav, ide. Matematisk

Läs mer

Föreläsning 2: Avlusning och antilustekniker

Föreläsning 2: Avlusning och antilustekniker 2D1458, Problemlösning och programmering under press Föreläsning 2: Avlusning och antilustekniker Datum: 2007-09-11 Skribent(er): Emil Hesslow, Stefan Pettersson Föreläsare: Per Austrin Föreläsningen handlade

Läs mer

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet 1 Texthantering I detta avsnitt tas det upp två sätt att arbeta med text i C++ program. Det första sättet som behandlas är hanteringen av textfält. Texter i C++ består utav en serie med enstaka tecken

Läs mer

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Programmering I Tobias Wrigstad fredag, 2009 augusti 28 Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,

Läs mer

LEGO Mindstorm-robot

LEGO Mindstorm-robot KUNGLIGA TEKNISKA HÖGSKOLAN LEGO Mindstorm-robot Programmering av LEGO Mindstorm-robot i språket NXC Kim Hammar 2/6-2013 Kimham@kth.se Introduktionskurs i Datateknik 1311 Sammanfattning En viktig del av

Läs mer

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa Lena Kallin Westin 2005-08-22 Institutionen för datavetenskap Umeå universitet TENTAMEN Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa Inlämnad Poäng Kurs : Programmeringsteknisk

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Datastrukturer och algoritmer Föreläsning 16 2 Innehåll Snabbrepetition Exempeltentamen Kursutvärdering Mina målsättningar Kursens mål: 3 Rolig och viktig kurs Bli en bättre programmerare och inse att

Läs mer

Dugga Datastrukturer (DAT036)

Dugga Datastrukturer (DAT036) Dugga Datastrukturer (DAT036) Duggans datum: 2012-11-21. Författare: Nils Anders Danielsson. För att en uppgift ska räknas som löst så måste en i princip helt korrekt lösning lämnas in. Enstaka mindre

Läs mer

Uppgift 1 (Oläsliga krypterade meddelanden)

Uppgift 1 (Oläsliga krypterade meddelanden) Uppgift 1 (Oläsliga krypterade meddelanden) Ofta vill man kryptera text för att inte andra skall se vad man skrivit. I den givna filen KRYPTERAD_TEXT.TXT finns en krypterad text som kan vara av intresse

Läs mer

NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot

NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot KUNGLIGA TEKNISKA HÖGSKOLAN NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot Gabriel Vilén 30/8-2012 gvilen@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Vi har programmerat

Läs mer

DSV A Procedurell programmering 5 poäng Tentamen 2002-12-04

DSV A Procedurell programmering 5 poäng Tentamen 2002-12-04 DSV A Procedurell programmering 5 poäng Tentamen 2002-12-04 Uppgift 1 3 poäng Vilka uppgifter ingår i programutveckling, dvs vilka faser bör man gå igenom när man utvecklar ett större program? Beskriv

Läs mer

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print. 1 Inmatning och utskrift Inmatning från tangentbord och utskrift till skärm sker i java med hjälp av objekten System.out och System.in. Dessa båda objekt är exempel på strömmar. En ström är en typ som

Läs mer

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

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

Läs mer

Innehållsförteckning. Exempel. Åtkomst & användarhandledning

Innehållsförteckning. Exempel. Åtkomst & användarhandledning Framsidan Framsidan på din labrapport kan du utforma ganska fritt. Tänk bara på att den ska vara läsbar, och innehålla (minst) följande information: Ditt namn Din e-mail adress här på CS! Kursens namn

Läs mer

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)

Läs mer

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Inledande programmering med C# (1DV402) 27+15=42 1 (22) 27+15=42 1 (22) Variabler Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

Användarhandledning Version 1.2

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

Läs mer

Editering, Kompilering och Exekvering av Javaprogram

Editering, Kompilering och Exekvering av Javaprogram UMEÅ UNIVERSITET Institutionen för informatik B.1, Programmeringens grunder, 5 poäng Editering, Kompilering och Exekvering av Javaprogram Introduktion Syftet med kursmomentet Programmeringens grunder (B.1)

Läs mer

Program & programmering

Program & programmering Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,

Läs mer

Programmerbar logik. Kapitel 4

Programmerbar logik. Kapitel 4 Kapitel 4 Programmerbar logik Programmerbar logik (PLC: Programmable Logic Controller; fi. ohjelmoitava logiikka) är en sorts mikrodatorliknande instrument som är speciellt avsedda för logik- och sekvensstyrningsproblem.

Läs mer

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010 Föreläsning 6 Kapitel 5 5.1 switch-satsen Vi ser på ett par exempel ur boken: int a; srand(time(0)); a=rand()%6+1; if(a==1) printf("hej Du glade\n"); else if(a==2) printf("god dag\n"); else if(a==3) printf("är

Läs mer

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm. Algoritmanalys Analys av algoritmer används för att uppskatta effektivitet. Om vi t. ex. har n stycken tal lagrat i en array och vi vill linjärsöka i denna. Det betyder att vi måste leta i arrayen tills

Läs mer

Grunderna i SQL del 1

Grunderna i SQL del 1 Grunderna i SQL del 1 1. SELECT-frågor 2. SELECT 3. WHERE 4. ORDER BY 5. Inre join 6. Yttre join 7. Andra typer av join 8. Union 9. Aggregatfunktioner 10. Gruppera och summera Kap. 3 Kap. 4 Kap. 5 utom

Läs mer

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...

Läs mer

IT för personligt arbete F6

IT för personligt arbete F6 IT för personligt arbete F6 Datalogi del 2 DSV Peter Mozelius Datarepresentation Det som lagras i en dator representeras i grunden som 1:or och 0:or Dessa binära värden kan sedan tolkas på olika sätt i

Läs mer

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål? 1DV33 HT13 Antal : I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål? - ha fått grundläggande kunskaper om strukturerad programmering

Läs mer

Visual Basic, en snabbgenomgång

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

Läs mer

Föreläsning 13 och 14: Binära träd

Föreläsning 13 och 14: Binära träd Föreläsning 13 och 14: Binära träd o Binärträd och allmänna träd o Rekursiva tankar för binärträd o Binära sökträd Binärträd och allmänna träd Stack och kö är två viktiga datastrukturer man kan bygga av

Läs mer

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 27 maj 2008

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 27 maj 2008 Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 27 maj 2008 Christian 27 maj 2008 Uppgift 1 Flera av dem jag talade med efter tentan hade blivit förskräckta när

Läs mer

2.4. Teckensträngar och logiska uttryck

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

Läs mer

Tentaupplägg denna gång

Tentaupplägg denna gång Några tips på vägen kanske kan vara bra. Tentaupplägg denna gång TIPS 1: Läs igenom ALLA uppgifterna och välj den du känner att det är den lättaste först. Det kan gärna ta 10-20 minuter. Försök skriva

Läs mer

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs TE/RC Datorövning 4 Syfte: 1. Lära sig beräkna konfidensintervall och täckningsgrad 2. Lära sig rita en exponentialfördelning 3. Lära sig illustrera

Läs mer

16 Programmering TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

16 Programmering TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5 16 Programmering Skriva program till TI-86... 214 Köra program... 221 Arbeta med program... 223 Hämta och köra assemblerprogram... 226 Arbeta med strängar... 227 TI -86 M1 M2 M3 M4 M5 F1 F2 F3 F4 F5 214

Läs mer

Gaussiska primtal. Christer Kiselman. Institut Mittag-Leffler & Uppsala universitet

Gaussiska primtal. Christer Kiselman. Institut Mittag-Leffler & Uppsala universitet 195 Gaussiska primtal Christer Kiselman Institut Mittag-Leffler & Uppsala universitet 1. Beskrivning av uppgiften. De förslag som presenteras här kan behandlas på flera olika sätt. Ett första syfte är

Läs mer

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201) Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201) Lars-Henrik Eriksson Fredag 5 april 2013, kl 14:00 17:00, i Polacksbackens skrivsal Hjälpmedel: Inga. Inte heller elektronisk

Läs mer

En snabb titt på XML LEKTION 6

En snabb titt på XML LEKTION 6 LEKTION 6 En snabb titt på XML Bokstaven x i Ajax står för XML, ett mycket användbart beskrivningsspråk som gör det möjligt för Ajax-tillämpningar att hantera komplex strukturerad information. I den här

Läs mer

VHDL och laborationer i digitalteknik

VHDL och laborationer i digitalteknik V:1.1 VHDL och laborationer i digitalteknik Vid laborationskursen i digitalteknik används VHDL till alla laborationerna utom den första. VHDL är ett stort språk och enbart en liten del av språket behövs

Läs mer

Stack och subrutiner Programmeringskonventionen

Stack och subrutiner Programmeringskonventionen Stack och subrutiner Programmeringskonventionen Du ska förstå hur en instruktion behandlas i processorn Du ska känna till några fler instruktioner Du ska veta hur maskinkoden för ett program byggs upp

Läs mer

Peter Ottosson 31/8-2012 petott@kth.se Introduktionskurs i datateknik II1310

Peter Ottosson 31/8-2012 petott@kth.se Introduktionskurs i datateknik II1310 KUNGLIGA TEKNISKA HÖGSKOLAN Robotlabb En introduktion till Datateknik 31/8-2012 petott@kth.se Introduktionskurs i datateknik II1310 1 Innehållsförteckning 1. Inledning... 3 1.1 Bakgrund... 3 1.2 Syfte

Läs mer

Föreläsning 4: Poster

Föreläsning 4: Poster Föreläsning 4: Poster Följande är genomgånget: type Person_Type is Namn : String(30); Skonr : Float; Kon : Boolean; Diskussion runt detta med olika typer m.m. Har tagit upp vilka operationer man kan göra

Läs mer

Föreläsning 11. Giriga algoritmer

Föreläsning 11. Giriga algoritmer Föreläsning 11 Giriga algoritmer Föreläsning 11 Giriga algoritmer Användning Växelproblemet Kappsäcksproblemet Schemaläggning Färgläggning Handelsresandeproblemet Uppgifter Giriga algoritmer (Greedy algorithms)

Läs mer

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1. PASS 9. OLIKHETER 9. Grundbegrepp om olikheter Vi får olikheter av ekvationer om vi byter ut likhetstecknet mot något av tecknen > (större än), (större än eller lika med), < (mindre än) eller (mindre än

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 - Inbyggda system - Analog till digital signal - Utvecklingssystem, målsystem - Labutrustningen - Uppbyggnad av mikrokontroller - Masinkod, assemblerkod

Läs mer

6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom:

6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom: 6 Rekursion 6.1 Rekursionens fyra principer Problem löses genom: 1. förenkling med hjälp av "sig själv". 2. att varje rekursionssteg löser ett identiskt men mindre problem. 3. att det finns ett speciellt

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

Introduktion till PHP

Introduktion till PHP PHP - Grund Copyright 2016 Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Introduktion till PHP PHP = PHP: Hypertext Preprocessor PHP är ett programmeringsspråk. PHP är ett skriptspråk som körs

Läs mer

Objektsamlingar i Java

Objektsamlingar i Java 1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och

Läs mer

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras. Laboration 1, Databashantering med MySQL Av: Marcus Rejås I denna laboration skall du se till att du kommer åt databasmotorn och att det fungerar. Du kommer också att skapa en tabell

Läs mer

Tentamen i Objektorienterad programmering

Tentamen i Objektorienterad programmering CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar

Läs mer

Motivering och kommentarer till enkätfrågor

Motivering och kommentarer till enkätfrågor ga 2 Motivering och kommentarer till enkätfrågor Kön Valet av denna variabel grundar sig på att vi vill se om det finns några skillnader mellan kön och hur de rekryterar. Kommentar: Vi hörde på namnet

Läs mer

varandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext.

varandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext. PASS 8 EKVATIONSSYSTEM OCH EN LINJES EKVATION 8 En linjes ekvation En linjes ekvation kan framställas i koordinatsystemet Koordinatsystemet består av x-axeln och yaxeln X-axeln är vågrät och y-axeln lodrät

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

LEGO NXT Robotprogrammering

LEGO NXT Robotprogrammering KUNGLIGA TEKNISKA HÖGSKOLAN LEGO NXT Robotprogrammering Laboration med parprogrammering Filip Forsby 2012-08-27 forsby@kth.se II1310 Introduktionskurs i datateknik Sammanfattning Denna rapport beskriver

Läs mer

Slutrapport för projektet Programmeringsundervisning i skolor med webbaserad konstprogrammering Annika Silvervarg, Linköping universitet

Slutrapport för projektet Programmeringsundervisning i skolor med webbaserad konstprogrammering Annika Silvervarg, Linköping universitet Slutrapport för projektet Programmeringsundervisning i skolor med webbaserad konstprogrammering Annika Silvervarg, Linköping universitet Inledning Dagens barn och ungdomar är flitiga användare av datorer,

Läs mer

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

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

Läs mer

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1) 2 n stycken tal från 0 till 2 n 1 F1.2) 9 bitar (512 kombinationer) Talsystem - 2-

Läs mer

Programmera en NXT Robot

Programmera en NXT Robot KUNGLIGA TEKNISKA HÖGSKOLAN Programmera en NXT Robot Med hjälp utav NXC Peyman Torabi 2012-09-03 E-post: peymant@kth.se Introduktionskurs i datateknik (II1310) Sammanfattning Uppgiften var att analysera

Läs mer

Textsträngar från/till skärm eller fil

Textsträngar från/till skärm eller fil Textsträngar från/till skärm eller fil Textsträngar [Kapitel 8.1] In- och utmatning till skärm [Kapitel 8.2] Rekursion Gränssnitt Felhantering In- och utmatning till fil Histogram 2010-10-25 Datorlära,

Läs mer

Lära känna skrivbordet

Lära känna skrivbordet Är det första gången du använder Windows 7? Den här versionen har mycket gemensamt med tidigare versioner av Windows, men du kan behöva hjälp med att få upp farten. Den här guiden innehåller praktisk information

Läs mer

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

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

Läs mer

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS-regeln Procedurell dekomposition DRY-regeln Algoritmer Sortering och sökning Stegvis förfining Metod för att skapa ett program från

Läs mer

TDIU01 - Programmering i C++, grundkurs

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

Läs mer