Vad är programmering Jonas Lindemann

Relevanta dokument
Börja koda. Vad är programmering? Installera Processing

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Sphero SPRK+ Appen som används är Sphero Edu. När appen öppnas kommer man till denna bild.

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Lär dig programmera med Processing och Java

TDIU01 - Programmering i C++, grundkurs

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll

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

Konstprogrammering med codeart.ida.liu.se

Föreläsning 2. Operativsystem och programmering

JavaScript Block Editor:

Introduktion till programmering och Python Grundkurs i programmering med Python

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

Användarhandledning Version 1.2

Föreläsning 1 & 2 INTRODUKTION

Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas

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

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

Robotfotboll med Arduino

v. 42 Python HT17 En introduktion Oscar Bergqvist

Föreläsning 1 & 2 INTRODUKTION

C++ Slumptalsfunktioner + switch-satsen

Objektorienterad programmering i Java

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

TDIU01 - Programmering i C++, grundkurs

Programmering i C, 7,5 hp

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

Introduk+on +ll programmering i JavaScript

Föreläsning 3. Iteration while-satsen

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random

En kort text om programmering i C.

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

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

Extramaterial till Matematik Y

Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret L0 - Grunder i C++

Beräkningsvetenskap föreläsning 2

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

HI1024 Programmering, grundkurs TEN

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Programmering. Den första datorn hette ENIAC.

v. 43 Python HT17 En introduktion Oscar Bergqvist

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

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

Programmering. Scratch - grundövningar

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

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

Iteration while-satsen

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Programmeringsteknik med C och Matlab

Funk%oner. Vad är det och hur definierar vi en Top- down- programmering lokala globala variabler void och flera inparametrar

TDDI82 - Projekt. Christoffer Holm. Institutionen för datavetenskap (IDA)

Föreläsning 3-4 Innehåll

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Variabler och konstanter

HI1024 Programmering, grundkurs TEN

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

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

Övningar i 2D2050. Per-Anders Staav (kallas Pa) Epost: eller

JAVAUTVECKLING LEKTION 4

För att kunna utföra en variable data printning böhöver du följande filer:

Klassdeklaration. Metoddeklaration. Parameteröverföring

HI1024 Programmering, grundkurs TEN

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har

TDIU01 - Programmering i C++, grundkurs

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

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

Extramaterial till Matematik Y

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

ID1004 Laboration 3, 5-6 November 2012

Kojo med Inga Ingenjör. Lär dig programmera Nybörjaruppdrag

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Introduktion till programmering

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

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Digitalt lärande och programmering i klassrummet

TDDD78 Viktiga begrepp, del 2

Enkla datatyper minne

Modern Programmering (2546) Tentamen lördag

Chapter 3: Using Classes and Objects

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Kort om programmering i Python

Föreläsning 3. Programmering, C och programmeringsmiljö

Programmeringsteknik I

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Transkript:

Vad är programmering Jonas Lindemann

Vad är en dator? Består av e1 antal delar som samverkar Processorn U7ör instruk:oner (addera, skriv :ll minne, fly1a minne ) Minnet Lagrar de instruk:oner som skall u7öras Lagrar informa:on som används för a1 visa text grafik eller spela upp ljud

Vad är e1 program? E1 antal av dessa instruk:oner :llsammans utgör e1 program eller en applika:on Program lagras permanent på hårddisken i datorn när det inte används Opera:vsystemet (Windows, Mac OS X eller Linux) också e1 program laddar programmet :ll datorns minne och pekar processorn :ll rä1 posi:on i minnet

Vad är programmering? A1 gå från tanke :ll instruk:oner i en dator De instruk:oner som datorn u7ör kallas för maskinkod Mycket komplicerat a1 skriva dessa Behöver hjälp a1 skapa dessa För a1 göra det enklare använder vi istället e1 programspråk Använder instruk:oner / funk:oner som vi har lä1are a1 förstå Översä1s :ll maskinkod genom e1 speciellt program kallat kompilator I denna ak:vitet kommer vi a1 använda e1 programspråk och kompilator kallad Processing

Processing Programspråk, kompilator och utvecklingsmiljö Gra:s Finns för Windows, Mac OS X och Linux Hämtas på www.processing.org

Rita på skärmen Bildskärmar är uppbyggda av många små bildpunkter Varje bildpunkt består av 3 färger rö1, grönt och blå1 Genom a1 blanda dessa kan man få fram alla färger Uppritning genom a1 anropa funk:oner som färglägger bildskärmspunkterna, så a1 det ser ut som linjer, cirklar och rektanglar.

Rityta Uppritning i Processing sker :ll e1 fönster med en rityta vi kan använda för uppritning Storleken på fönstret sä1 med funk:onen size(600,400);

Skärmkoordinatsystem För a1 datorn skall veta var någonstans vi vill rita i fönstret måste vi kunna ange de1a på något sä1. Processing använder e1 s.k. skärmkoordinatsystem för de1a. Övre högra hörnet är (0,0)

Skärmkoordinatsystem Exempel 1 size(600,400); line(200,150,400,300);

Skärmkoordinater Exempel 2 size(600,400); line(200,150,400,300); line(400,150,200,300);

Fler funkconer för uppritning (x, y) rect(x, y, bredd, höjd); höjd bredd (x, y) radie rect(x, y, bredd, höjd, radie); höjd bredd

Fler funkconer för uppritning (x2, y2) triangle(x1, y1, x2, y2, x3, y3); (x1, y1) (x3, y3) (x2, y2) quad(x1, y1, x2, y2, x3, y3, x4, y4); (x3, y3) (x1, y1) (x4, y4)

Fler funkconer för uppritning ellipse(x, y, bredd, höjd); (x, y) höjd bredd

Bakgrundsfärg size(600,400); background(64);

Bakgrundsfärg size(600,400); background(255);

Blanda färger i Processing Färger anges med värden för rö1, grönt och blå1 Max intensitet är 255 Minsta intensitet är 0 Svart = (0,0,0) Vi1 = (255,255,255) Gult = (255,255,0)

Bakgrundsfärg size(600,400); background(255,255,0);

Linjefärg size(600,400); background(255,255,255); stroke(255,0,0); rect(50,50,150,150); stroke(0,0,255); ellipse(300,125,150,150);

Fyllningsfärg size(600,400); background(255,255,255); stroke(255,0,0); fill(255,255,0); rect(50,50,150,150); stroke(0,0,255); fill(255,0,255); ellipse(300,125,150,150);

Fyllningsfärg size(600,400); background(255,255,255); nostroke(); fill(255,255,0); rect(50,50,150,150); stroke(0,0,255); nofill(); ellipse(200,125,150,150);

Linjetjocklek size(600,400); background(255,255,255); strokeweight(5); stroke(255,0,0); fill(255,255,0); rect(50,50,150,150); strokeweight(10); stroke(0,0,255); fill(255,0,255); ellipse(300,125,150,150);

Minne lagring och variabler Variabler lagrar siffror och text i datorns minne Ersä1er siffror som indata i funk:oner Förenklar hanteringen av informa:on. Fungerar som en byrålåda med e:ke1 Lådan innehåller värdet E:ke1en gör a1 vi kan hi1a lådan igen. 3 huvudsakliga variabler i Processing Variabeltyp Exempel int eller heltal float eller decimaltal String eller text 1, 2, 3, 4, 5 1.5, 43.65, 0.1 De1a är en text

Variabler Exempel 1 int d = 100; size(600,400); ellipse(50,50,d,d); ellipse(50+d,50,d,d);

Variabler Exempel 2 int d = 200; size(600,400); ellipse(50,50,d,d); ellipse(50+d,50,d,d);

Variabler Exempel 3 (x, y) w w w h h h size(600,400); float w = 100; float h = 50; float x = 50; float y = 50; rect(x, y, w, h); rect(x + 2*w, y, w, h); rect(x, y + 2*h, w, h); rect(x + 2*w, y + 2*h, w, h);

Variabler Exempel 3

Variabler Exempel 3 size(600,400); float w = 50; float h = 100; float x = 100; float y = 50; rect(x, y, w, h); rect(x + 2*w, y, w, h); rect(x, y + 2*h, w, h); rect(x + 2*w, y + 2*h, w, h);

Upprepning Oga måste man upprepa funk:oner många gånger i e1 program För a1 förenklar de1a kan man använda s.k. loopar eller upprepningssatser I Processing använder vi oss av for- satsen for (x=80; x<=400; x=x+2*d) { ellipse(x, y, d, d); startvärde Villkor för a1 avsluta Uppräkning av loop- loop variabel Anger start/slut av loopen x kommer a1 få värdena 80, 180, 280, 380 FunkConer som skall upprepas

Upprepning Exempel 1 size(600,400); float d = 50; float x = 80; float y = 80; for (x=80; x<=400; x=x+2*d) { ellipse(x, y, d, d);

Upprepning Exempel 2 size(500,500); int d = 50; int x = 80; int y = 80; for (x=80; x<=400; x=x+2*d) { for (y=80; y<=400; y=y+2*d) { ellipse(x, y, d, d);

Slumptal Något datorn är bra på är fak:skt a1 kasta tärning Resultatet av tärningskasten i datorn kallas för slumptal. placera ut monster i labyrinter eller rita upp intressanta mönster på skärmen Funk:onen random( ) kan skapa slumptal

Slumptal exempel size(500,500); float d = 50; float x = 80; float y = 80; for (int i=1; i<=300; i=i+1) { x = random(400); y = random(400); ellipse(x+50, y+50, d, d);

InterakCvitet Hiqlls har programmen inte innehållit någon interak:on med mus eller tangentbord Interak:va program måste implementera egna funk:oner setup() Anropas en gång när programmet startas draw() Anropas helat :den under programmets körning

InterakCvitet Exempel 1 // Variabler som skall vara tillgängliga // för alla funktioner i programmet. int d = 50; int x = 80; int y = 80; // setup() anropas en gång när programmet startats. void setup() { size(500,500); // draw() anropas av Processing hela tiden void draw() { background(192); for (x=80; x<=400; x=x+2*d) { for (y=80; y<=400; y=y+2*d) { ellipse(x, y, d, d);

Använda musen Exempel 1 // Variabler som skall vara tillgängliga // för alla funktioner i programmet. int d = 50; int x = 80; int y = 80; // setup() anropas en gång när programmet startats. void setup() { size(500,500); // draw() anropas av Processing hela tiden void draw() { background(192); fill(255,255,0); strokeweight(3); stroke(0); ellipse(mousex, mousey, 20, 20); mousex och mousey är speciall variabler i Processing som innehåller musens aktuella posi:on

Använda musen Exempel 2 // Variabler som skall vara tillgängliga // för alla funktioner i programmet. int d = 50; int x = 80; int y = 80; // setup() anropas en gång när programmet startats. void setup() { background(192); size(500,500); pmousex och pmousey innehåller musens posi:on i föregående uppritning // draw() anropas av Processing hela tiden void draw() { strokeweight(3); stroke(0); line(pmousex, pmousey, mousex, mousey);

Villkor eller if- satser Villkor Vik:gt a1 kunna u7öra olika funk:oner beroende på värdet på olika variabler eller funk:oner I Processing görs de1a med en if- sats Två varianter If (a>2) { // u7örs när a>2 Villkor If (a>2) { // u7örs när a>2 else { // u7örs när a>2 inte är // uppfyllt FunkConer som uwörs när villkoret är uppfyllt FunkConer som uwörs när villkoret är uppfyllt

Använda musen Exempel 3 // Variabler som skall vara tillgängliga // för alla funktioner i programmet. int d = 50; int x = 80; int y = 80; // setup() anropas en gång när programmet startats. void setup() { background(192); size(500,500); // draw() anropas av Processing hela tiden void draw() { strokeweight(3); stroke(0); if (mousepressed == true) { line(pmousex, pmousey, mousex, mousey);

Använda musen Exempel 4 // Variabler som skall vara tillgängliga // för alla funktioner i programmet. int d = 50; int x = 80; int y = 80; // setup() anropas en gång när programmet startats. void setup() { background(192); size(500,500); // draw() anropas av Processing hela tiden void draw() { strokeweight(3); stroke(0); if (mousepressed == true) { if (mousebutton == LEFT) { line(pmousex, pmousey, mousex, mousey); else { background(192);

Egna funkconer Ibland kan det vara bar a1 gruppera ihop e1 antal funk:oner i en egen funk:on. I processing görs de1a på följande sä1: startvärde FunkConens indata void ansikte(float x, float y) { ellipse(x, y, 150, 150); Anger start/slut av funkcon FunkConer som skall uwöra.

Egna funkconer Exempel // Egen funktion för uppritning av ansikte. void ansikte(float x, float y) { strokeweight(5); stroke(0,0,0); fill(255,255,0); ellipse(x,y,150,150); fill(0,0,255); ellipse(x- 30,y- 30,20,20); ellipse(x+30,y- 30,20,20); line(x- 30,y+30,x+30,y+30); // setup() anropas en gång när programmet startats. void setup() { background(192); size(500,500); stroke(0); // draw() anropas av Processing hela tiden void draw() { background(192); ansikte(mousex, mousey);