Dynamisk HTML JavaScript och webbläsarens objektmodell

Storlek: px
Starta visningen från sidan:

Download "Dynamisk HTML JavaScript och webbläsarens objektmodell"

Transkript

1 Dynamisk HTML 1 JavaScript och webbläsarens objektmodell Ove Lundgren (2009) Ove Lundgren DOMDHTML2009.doc

2 Innehåll Dynamisk HTML Webbläsarens variabler och metoder. Objektmodellen. Anropa metoder med JavaScript Händelsehanteraren onclick Skriv egna JavaScript-metoder Händelsehanteraren onload Variabler och metoder i objektet document Händelsehanterarna onmouseover och onmouseout Referera till objekt med name Referera till objekt med this Metoden bytabild() JavaScript JavaScript-övningar Förkunskapskrav Du bör vara väl förtrogen med HTML och CSS Det är en fördel om du kan (grunderna i) något programmeringsspråk (t.ex. C++ eller Java) Arbetssätt Läs noga igenom all text och gör övningarna. Övningar markeras med en liten kvadrat till vänster, så här t.ex: Skriv in följande (o.s.v.) Dynamisk HTML Förr var webbsidor statiska: När de väl var laddade gick det inte att ändra utseende eller innehåll utan att ladda om sidan. Numera är dokument på webben dynamiska: Utseende och innehåll kan förändras utan att sidan behöver laddas på nytt. För att bygga dynamiska webbsidor används dynamisk HTML (DHTML). DHTML är inte ett speciellt språk eller verktyg. DHTML är en kombination av följande: HTML CSS DOM ( = Document Object Model) JavaScript HTML och CSS känner du redan till. DOM är en standard för hur elementen i ett webbdokument är organiserade och innehåller metoder för att påverka elementens egenskaper. JavaScript utnyttjas för att exekvera metoderna i DOM, för att utföra beräkningar mm. Ove Lundgren DOMDHTML2009.doc

3 Webbläsarens variabler och metoder. Objektmodellen. I en webbläsare - t.ex. MicroSoft Internet Explorer (IE) och Mozilla Firefox finns ett antal inbyggda variabler och metoder (ibland använder man ordet funktioner i stället för metoder). Några exempel på variabler: navigator.appname navigator.appversion window.status Webbläsarens namn, t.ex. "Netscape" Webbläsarens versionsnummer t.ex. "4.5.." Vad statusraden visar (längst ned i fönstret) Exempel på metoder (funktioner) : window.alert(str) Visar meddelanderuta med texten str samt OK-knapp window.confirm(str) Meddelanderuta med texten str samt OK- och Avbryt-knapp Fuktionsvärdet blir true om man klickar OK, false om man klickar false window.prompt(str, str2) En meddelanderuta med texten str. Försedd med ett inmatningsfält som visar standardvärdet str2 Funktionsvärde blir det som står / skrivs in i inmatningsfältet window.setinterval(m,t) Startar timer. Metoden m anropas var t:e millisekund window.settimeout(m,t) Fördröjning. Metoden m anropas efter t millisekunder. window.open() Öppna nytt fönster Vissa metoder kräver att man skriver argument mellan parenteserna när metoden anropas. Detta är värden, tal eller texter, som "skickas med" för att på något sätt bearbetas av metoden. Om vi t.ex. gör anropat window.alert("hej") så är textsträngen "HEJ" argument. Metoden kommer att skriva ut just den texten i en meddelanderuta. Vissa metoder kräver flera argument, andra inget alls En del metoder lämnar ett värde, ett funktionsvärde, när de anropas. Sådana metoder kallas ofta funktioner. window.prompt() är exempel på en sådan. Funktionen kommer all lämna ett värde (returnera ett värde), nämligen den text som användaren matar in i inmatningsfältet. Metoder och variabler i webbläsaren är organiserade i en objektmodell: - Tänk dig ett objekt som något som äger en rad metoder och variabler. - Varje metod eller variabel i webbläsaren tillhör ett visst objekt. De variabler och metoder ovan vars namn börjar med navigator tillhör ett objekt som heter navigator. De variabler och metoder ovan vars namn börjar med window tillhör ett objekt som heter window. Om du har studerat objektorienterad programmering är du bekant med begreppet objekt. Om du inte har gjort det så räcker det (i denna kurs) att du tänker dej ett objekt som just detta: - Något som har en uppsättning metoder och variabler. Ove Lundgren DOMDHTML2009.doc

4 Anropa metoder med JavaScript För att exekvera en metod i webbläsarens objektmodell används JavaScript. JavaScriptkod skrivs (normalt) mellan taggarna och och kan (i princip) placeras var som helst i koden. JavaScript startar en metod i webbläsarens objektmodell om man helt enkelt skriver den aktuella metodens namn, med eventuellt argument mellan parenteserna. En JavaScript-sats bör också ha ett semikolon (;) på slutet. Skriv in koden nedan. Spara som dovn1.html. Provkör. (Meddelanderuta med texten "HEJ" visas) window.alert("hej!"); Lägg märke till: En sträng (en text) skrivs inom citationstecken, t.ex. "HEJ" Ändra scriptet till: window.alert(navigator.appname); (Namnet på din web browser visas ) Ändra sedan till: window.alert("din webbläsare: " + navigator.appname + " Version " + navigator.appversion); (Namnet på din web browser med versionsnummer visas ) Lägg märke till hur man använder plustecken för att sammanfoga (konkatenera) textsträngar. Naturligtvis kan scriptet innehålla fler satser: Satserna åtskiljs av semikolon (;) I exemplet nedan deklareras först i scriptet en variabel som vi kallar namnet En variabel är något som kan lagra en textsträng eller ett tal. En variabel deklareras med ordet var Metoden (funktionen) window.prompt(str, str2) returnerar det som matats in i textrutan. (Om man inte skriver in något returneras standardvärdet - defaultvärdet - str2. ) Metoden window.alert(str) skriver ut ett välkomstmeddelande. Ändra scriptet enligt nedan. Spara och provkör. var namnet; namnet = window.prompt("skriv ditt namn!", "Kalle"); window.alert("välkommen " + namnet + "!"); Om du inte har programmerat förut kan det vara svårt med alla nya begrepp. Var lugn! En utförligare genomgång om JavaScript kommer senare Ove Lundgren DOMDHTML2009.doc

5 Händelsehanteraren onclick Det finns en speciell typ av attribut i HTML-taggar som kallas händelsehanterare. Dessa används för att starta ett JavaScript då en viss händelse inträffar, t.ex. när man klickar på en knapp. Händelsen "klicka på ett element" fångas upp av händelsehanteraren onclick. Vi ska börja med att bekanta oss med just onclick. Vi ska låta en knapp reagera på klickning. Vi skriver in attributet onclick i taggen <input type = "button"...> Skriv in kod enligt nedan. Spara som dovn2.html <input type="button" value="tryck" onclick = " window.alert('hej!'); " > Efter händelsehanteraren skriver man ett tilldelningstecken och citationstecken: onclick = " " Mellan citationstecknen skriver man JavaScript-kod! Vi har nyss lärt oss att sådan kod normalt ska skrivas mellan - taggar, men här är alltså ett undantag! Efter händelsehanterare skrivs JavaScript-kod mellan citationstecknen onclick=" window.alert('hej!'); " Observera apostroftecknen kring strängen HEJ Observera en viktig sak: Normalt omges textsträngar med citationstecken ( t.ex. "HEJ!" ) För all JavaScript-kod som skrivs efter händelsehanterare (alltså inom "yttre" citationstecken) måste man byta eventuella citationstecken i själva koden mot apostroftecken! Här skriver vi 'HEJ!' Ändra enligt nedan: <input type="button" value="tryck" onclick = " var namnet; namnet=window.prompt('skriv ditt namn!', 'Kalle'); window.alert('välkommen ' + namnet + '!'); " > Man kan alltså skriva flera satser. Tänk bara på att åtskilja satserna med semikolon. Och - glöm inte: Eftersom scriptet står inom "yttre" citationstecken måste alla 'inre' citationstecken bytas ut mot apostrofer. Ove Lundgren DOMDHTML2009.doc

6 Skriv egna JavaScript-metoder Om det blir mycket kod ska man inte skriva koden direkt efter händelsehanteraren. Då definierar man i stället en egen metod och anropar denna i händelsehanteraren. Så här går det till: Skriv koden nedan. Spara som dovn3.html Definitionen av egna JavaScript-metoder placerar vi mellan <SCRIPT>-taggar i HEAD-blocket function hejsan() { var namnet; namnet = window.prompt("skriv ditt namn!", "Kalle"); window.alert("välkommen " + namnet + "!"); <input type="button" value="tryck" onclick=" hejsan(); " > Här anropas metoden hejsan() Man deklarerar en egen metod med ordet function följt av det metodnamn man har hittat på. I vårt exempel är metodnamnnet hejsan(). Observera att metodnamnet ska följas av två parenteser. Sedan kommer ett antal satser som står inom "krullparenteser" {. Där beskriver man vad metoden ska göra. Hela metoddefinitionen lägger man inom -taggar i -blocket. Metoden anropas sedan med metodens namn, hejsan(). Händelsehanteraren onload Händelsen "ny webbsida laddas och visas" fångas upp med händelsehanteraren onload. I föregående övning: Skriv in händelsehanteraren onload i body-taggen. Så här: <body bgcolor="silver" onload=" hejsan()"> Nu visas inmatningsrutan direkt när sidan laddats Ove Lundgren DOMDHTML2009.doc

7 Variabler och metoder i objektet document I webbläsarens objektmodell finns objektet document som har variabler och metoder som har att göra med den aktuella webbsidan! Exempel på variabler i document: document.bgcolor document.lastmodified Webbsidans bakgrundsfärg t.ex. "red" eller "#ff0000" Datum när sidan senast uppdaterades Variabler som beskriver egenskaper hos en bild på webbsidan (se bild nedan) : document.images[0].src Filnamn "Katt.jpg" document.images[0].width Bilden bredd t.ex "109" (pixels) document.images[0].height Bilden höjd t.ex "83" (pixels) Om webbsidan har ytterligare en bild har den variablerna (se bild nedan) : document.images[1].src Filnamn "Lejon.jpg" document.images[1].width Bilden bredd t.ex "109" (pixels) document.images[1].height Bilden höjd t.ex "83" (pixels) Variabler för formulär: Antag att en webbsida har ett formulär med två textfält (se bild nedan) : document.forms[0].elements[0].value document.forms[0].elements[1].value Textinnehållet i det första textfältet t.ex Mjau Textinnehållet i det andra textfältet t.ex. Grrr document.images[0] document.images[1] Mjau Grrr document. forms[0].elements[0] document. forms[0].elements[1] Tryck Vi ska i nästa dynamiska övning utnyttja document.images[0].src för att påverka en bild. Vi ska få en <img>-tagg att växla bild. Bilder för övningarna finns här: dynabilder.zip Ove Lundgren DOMDHTML2009.doc

8 Händelsehanterarna onmouseover och onmouseout Händelsen "muspilen går in över ett element" fångas upp av händelshanteraren onmouseover Händelsen "muspilen lämnar ett element" fångas upp av händelshanteraren onmouseout Vi ska få något att hända då muspilen går in över, respektive lämnar, en länk. Vi placerar alltså händelsehanterarna i ankartaggen, a. Skriv in nedanstående kod och spara som dovn4.html och testa. <h1>katter</h1> <img src = "Katt.jpg"> <a href="#" onmouseover="document.images[0].src = 'Lejon.jpg';" onmouseout="document.images[0].src = 'Katt.jpg';" > Klicka </a> (Ny bild visas när muspilen går in över länken. Den ursprungliga återkommer när muspilen lämnar ) Flytta <img>-taggen så att den ersätter länk-texten Klicka. Så här alltså: <h1>katter</h1> <a href="#" onmouseover="document.images[0].src = 'Lejon.jpg';" onmouseout="document.images[0].src = 'Katt.jpg';" > <img src = "Katt.jpg" > </a> ( När muspilen går in över bilden byts bilden.. ) Tips: När bilden, som här, är en länk visas en ram kring bilden. Denna kan tas bort med attributet border="0" i <img>-taggen. Ove Lundgren DOMDHTML2009.doc

9 Referera till objekt med name När vi skriver t.ex. document.images[0] så pekar vi ut det objekt som "håller reda på" den första bilden. ( Vi kan då påverka någon egenskap hos det objektet, t.ex. innehållet med document.images[0].src ) Ofta säger vi att document.images[0] är en pekare eller en referens till objektet. Det finns andra sätt att referera till objekt: Om vi utnyttjar attributet name för att sätta ett namn på en <img>-tagg (t.ex. name = "minbild" ) så kan man sedan referera till <img>-elementet med detta namn (t.ex. document.minbild ) Gör följande ändringar i dovn4.jpg. Spara sedan filen som dovn5.jpg <h1>katter</h1> <a href="#" onmouseover="document.kattbild.src = 'Lejon.jpg';" onmouseout="document.kattbild.src = 'Katt.jpg';" > <img src = "Katt.jpg" name = "kattbild" > </a> Referera till objekt med this I äldre webbläsare var man ofta hänvisad till ankartaggen (som i föregående avsnitt) när man behövde ett muskänsligt element. Men om vi nu inte har för avsikt att skapa en länk till en annan sida, utan bara vill att bildelementet ska byta innehåll när vi pekar på det, så kan vi numera skriva händelsehanterarna i själva <img>-taggen. Skriv in koden nedan. Spara som dovn6.html <h1>katter</h1> <img src = "Katt.jpg" name = "kattbild" onmouseover = "document.kattbild.src='lejon.jpg';" onmouseout = "document.kattbild.src='katt.jpg';" > Enkelt, eller hur? Referensen document.kattbild i övningen ovan refererar ju till det element där den är skriven. Referensen pekar på sitt eget element! I sådana fall kan vi ersätta referensen med ordet this. Ändra så att koden blir enligt nedan: <h1>katter</h1> <img src = "Katt.jpg" onmouseover = "this.src = 'Lejon.jpg';" onmouseout = "this.src = 'Katt.jpg';" > Ove Lundgren DOMDHTML2009.doc

10 Metoden bytbild() I exemplen ovan skriver vi JavaScript inom citationstecken direkt efter onmouseover respektive onmouseout. Många gånger anropar man i stället här en egendefinierad metod. Nedan finns ett förslag på hur en sådan metod kan utformas: Skriv in koden nedan. Spara filen som dovn7.html function bytbild( x ) { if (x == 0) document.kattbild.src = "Katt.jpg"; else document.kattbild.src = "Lejon.jpg"; <h1>katter</h1> <img src = "Katt.jpg" name = "kattbild" onmouseover = "bytbild(1);" onmouseout = "bytbild(0);" > Metoden bytbild(x) är försedd med en parameter som vi kallat x. När metoden anropas med bytbild(0); så kommer parametern x att få värdet 0 (noll). Se på koden i metoddefinitionen! Där står det att om x är lika med 0 (noll) så ska Katt.jpg visas, annars, det vill säga om x inte är lika med noll, så ska bilden Lejon.jpg visas. Det värde som man skriver på parameterns plats vid anrop brukar man kalla metodens argument. Observera att vi inte kan använda referensen this här eftersom elementen inte pekas ut inuti <img>-taggen. Vi har nu sett att i html-kod som är avsedd för moderna webbläsare kan vi skriva in händelsehanterare i t.ex. <img>- och <div>-taggar och på sätt göra dessa muskänsliga. Vi kommer att lära oss sätt att referera till andra element än bilder och formulär. Vi kommer då att dynamiskt kunna förändra textinnehåll och texters utseende, ändra storlek och placering hos lager, och på så sätt skapa animeringar, med mera. Allt detta tar vi upp i häfte 2. Se till att du har sparat filen dovn7.html ovan. Vi använder den i häfte 2. Detta häfte avslutar vi med en kort genomgång av scriptspråket JavScript och några övningar. Ove Lundgren DOMDHTML2009.doc

11 JavaScript Var skrivs JavaScript-kod? JavaScript skrivs inom -taggar. Satserna i JavaScript åtskiljs av semikolon (;) och/eller genom radbyte. Exempel: <script language = "JavaScript"> sats; sats; sats sats; Råd: Använd semikolon så att du får överensstämmelse med C++ och Java! Efter en händelsehanterare skrivs JavaScript inom citationstecken. Eventuella citationstecken i koden byts då ut mot apostrof. Exempel: onclick=" window.alert('hej!'); " Kommentarer En kommentar är ett stycke kod som nonchaleras av webbläsaren (Används för att skriva minnesanteckningar, med mera, i koden) I JavaScript skriver man kommentarer på samma sätt som i C++ och Java: Efter en "dubbel-slash" ( // ) - kommentaren gäller då raden ut. Flerradiga kommentarer skrivs mellan "slash-stjärna" och "stjärna-slash": /* en kommentar... */ Namnge och deklarera variabler Du har arbetat med variabler i matematiken (bokstavsbeteckningar för tal) På samma sätt kan en variabel i JavaScript ha (lagra) olika värden. De tecken som kan användas i variabelnamnet är bokstäverna a-z och siffror (0-9) samt understrykningstecken ( _ ) Använd t.ex. inte blanktecken eller å, ä, ö i variabelnamn! I början av ett script brukar man deklarera de variabler man tänker använda. Man skriver då ordet var följt av variabelnamnen, t.ex. så här: var i,j; var x; var namn2, reg_nr; var vippa; I de flesta programmeringsspråk är variabeldeklarationen obligatorisk. I JavaScript är den frivillig. Variablerna tilldelas värden i koden. Tilldelning sker med likhetstecknet, så här: i = 7; j = -6; x = 3.14; namn2 = Bengt-Åke Karlsson ; reg_nr = ABC123 ; vippa = true; // heltal // heltal // flyttal // sträng // sträng // boolean Deklaration och tilldelning kan göras samtidigt, i en enda sats, så här: var i = 7; Likhetstecknet kallar vi i JavScript-, Java- och C++-sammanhang hellre tilldelningstecknet. Ove Lundgren DOMDHTML2009.doc

12 Variabler kan också tilldelas värden från andra variabler. Exempel: Med satsen c = a + b; får c värdet av summan av de tal som lagrats i a respektive b Satsen k = k + 1; gör att k ökar sitt värde med 1 (ett) Satsen k++; är en kortform för samma sak, det vill säga k ökar med 1 Datatyper Vi arbetar med fyra datatyper: Heltal, flyttal, strängar och boolean. Se avsnittet Variablerna tilldelas värden i koden ovan. Variablerna i och j ovan har tilldelats heltal. Variabeln x har tilldelas ett decimaltal, eller flyttal som man brukar säga i programmeringskretsar. Observera att decimaltecknet ska vara en punkt inte ett kommatecken! Variablerna namn2 och reg_nr har tilldelats strängar. En sträng är en följd av tecken (bokstäver, siffror eller andra tecken vilka som helst). En sträng ska omges av citationstecken. Se upp när du tilldelar tal till en variabel! Exempel: Med x = 3.14 blir x inte ett tal utan en sträng. Variabeln x kan då inte ingå i en räkneformel t.ex. Variabel vippa har tilldelats ett boolskt värde. Det finns bara två: true och false. Variablerna tilldelas värden från tangentbordet Variabler kan tilldelas värden från tangentbord, via inmatningsruta eller textfält. Exempel: namn2 = window.prompt("skriv ditt namn!", ""); Variabeln namn2 tilldelas den sträng som matas in i inmatningsrutan. reg_nr = document.mittfrm.mintxt.value; Variabeln reg_nr tilldelas den sträng som matas in i textfältet. Metoderna parseint( ) och parsefloat( ) Detta är två av JavaScripts fördefinierade metoder. Vi ska se hur de används: Det som står i inmatningsrutor och textfält är strängar. Antag att vi vill kunna tilldela en heltalsvariabel ett värde från tangentbordet. Då måste vi kunna omvandla en sträng till ett tal. För detta ändamål används metoden parseint( ) Exempel: i = parseint( window.prompt("skriv ett heltal!", "") ) ; Antag att du matar in 325 Metoden window.promp() returnerar strängen "325" Metoden parseint() omvandlar strängen "325" till talet 325. Variabeln i får alltså heltalsvärdet 325. Metoden parsefloat( ) omvandlar en sträng till ett flyttal. Exempel: s = document.mittfrm.mintxt.value; // Om s exempelvis har värdet "12.75" x = parsefloat( s ); // så kommer x att få värdet Ove Lundgren DOMDHTML2009.doc

13 Aritmetiska operatorer addition + subtraktion - multiplikation * division / modulus % (resten vid heltalsdivision) Sammanfoga strängar med strängar och strängar med tal Plustecknet har ytterligare en betydelse. Det används för att sammanfoga (konkatenera) strängar. Exempel: s1 = "Hej "; s2 = s1 + "Kalle"; Strängvariabeln s2 har efter att dessa satser utförts värdet "Hej Kalle" Exempel: t = 17; s2 = "Talet är " + t ; När en sträng konkateneras med ett tal blir resultatet - en sträng! s2 får alltså värdet "Talet är 17" Utskrift Med alert-metoden. Exempel: window.alert("hej!"); Utskrift i ett textfält. Exempel: document.mittfrm.mintxt.value = "HEJ"; (Fler möjligheter att få snyggare utskrifter kommer senare ) Selektion ( = val ) Exempel if (a > b) { sats; sats;... else { sats; sats;... Om det är sant (true) att a > b så utförs dessa satser annars utförs dessa satser Om det bara är en enda sats som ska utföras efter if (eller else)behövs inte krullparenteserna. Exempel: if (a > b) sats; else sats; Om ingenting ska utföres efter else tar man inte med else över huvud taget. Exempel: if (a > b) { sats; sats;... Relationsoperatorer Större än > Mindre än < Större än eller lika med >= Mindre än eller lika med <= Lika med == (Obs! dubbelt likhetstecken) Ej lika med!= Ove Lundgren DOMDHTML2009.doc

14 Logiska operatorer Ett uttryck som kan ha värdet true eller värdet false kallas ett logiskt uttryck (eller boolskt uttryck) Exempel: (a > b) är ett logiskt uttryck. Flera sådana uttryck kan sättas samman till ett logiskt uttryck med de logiska operatorerna && ("logiskt OCH") och ("logiskt ELLER") Exempel: (a > b ) && ( c > d ) (a > b ) ( c > d ) Hela uttrycket är sant om båda deluttrycken är sanna Hela uttrycket är sant om minst ett av deluttrycken är sant ( Pipe-tecknet,, hittar du långt ned till vänster på tangentbordet, på samma tangent som tecknen < och > ) Den logiska operatorn "icke" skrivs med ett utropstecken,! Denna operator ger motsatt värde hos en boolsk variabel. Exempel: vippa =!vippa ; //om vippa är true blir det nya värdet false och tvärtom. Iteration ( = upprepning) Följande konstruktion gör att satserna i blocket kommer att upprepas n gånger: for(var i = 0; i < n; i++) { sats; sats;... for-loopen används när man vet hur många gånger något ska upprepas. Ibland vill man att något ska upprepas så länge ett viss logiskt uttryck är sant. Då används while-loopen: while ( logiskt uttryck ) { sats; sats;... Egna metoder Det vanligaste är att JavaScript-kod återfinns i egendefinierade metoder som sedan anropas från en händelsehanterare. Egna metoder skriver man mellan -taggar i head-blocket. Man hittar på ett lämpligt namn på metoden. (Namngivningsreglerna är de samma som för variabeler.) Metodnamnet ska föregås av function och följas av parenteser. Sedan följer ett block inom "krullparenteser". Där skrivs vad metoden ska göra. Så här alltså: function minmetod() { sats; sats; Metoden anropas sedan med t.ex. onclick = " minmetod() ; " Ove Lundgren DOMDHTML2009.doc

15 En metod kan också förses med (en eller fler) parametrar. Vi tar ett exempel: function namnloop( s, n) { for(var i = 0 ; i < n ; i++) { document.write( s + "<br>" ); En sådan metod måste anropas med lämpliga argument. Om metoden anropas exempelvis så här onclick = " namnloop('lisa',3);" så kommer namnet Lisa att skrivas 3 gånger i ett nytt dokument. Metoder som returnerar värde Metoder som returnerar ett värde (funktionsvärde) kallas ofta funktioner. Vi tar ett exempel: function rektarea( a, b ) { var area = a * b; return area; Arean för en rektangel med sidorna a och b kommer att beräknas. Observera att det som funktionen ska" lämna ifrån sig" ska föregås av ordet return. Vi anropar metoden med lämplig argument. Exempel: Utskrift av "Arean är " + rektarea(4,5) ger resultatet Arean är 20 Exempel: Satsen area = rektarea(3,4); gör att variabeln area tilldelas värdet 12 De två typerna av metoder har lite olika benämningar i olika programmeringsspråk: Metod som ej returnerar värde Metod som returnerar värde JavaScript metod metod (ofta funktion) Java void metod metod C++ void funktion funktion Pascal procedur funktion Ove Lundgren DOMDHTML2009.doc

16 JavaScript-övningar Här är några övningar där du får tillämpa vad du lärt dig om JavaScript. Du får också utnyttja några metoder och variabler i objektmodellen som vi nämnt, men inte använt tidigare. Försök att lösa uppgifterna på egen hand. Lösningsförslag finns på efterföljande sidor. (Observera att det är lösningsförslag. Uppgifterna kan lösas på flera likvärdiga sätt ) JS1 Skriv html-kod för en enkel webbsida med bakgrundsfärg "silver". Lägg in ett formulär med en knapp. När man trycker på knappen ska bakgrunden bli röd. JS2 Som ovan men ersätt knappen med tre radioknappar. Beroende på vilken knapp som klickas ska bakgrundsfärgen bli röd, grön eller blå och den aktuella färgens namn ( red, green, blue ) ska visas på statusraden. JS3 Skapa ett formulär med tre textfält och en knapp. Man ska skriva in heltal i textfälten. När man trycker på knappen ska det tredje textfältet visa summan av talen i de övriga textfälten. JS4 Som ovan, men ersätt knappen med fyra radioknappar. Beroende på vilken knapp som klickas ska summan, differensen, produkten resp. kvoten beräknas och visas. JS5 Skapa ett formulär med två textfält och en knapp. I det första textfältet skriver man ett namn, i det andra ett heltal. Om man exempelvis skriver Kalle respektive talet 5 ska strängen Hejsan Kalle skrivas ut 5 gånger på en ny webbsida. JS6 Skriv html-kod för en webbsida med denna body: <body bgcolor="silver" onload= " window.setinterval( 'bildloop()', 500 ); "> <img src="katt.jpg" width="109" height="83" name="bilden"> Metoden bildloop() kommer att anropas var 500:e millisekund. Skriv metoden bildloop() så att bilden byts ut vid varje anrop. Använd minst två (gärna fler) bilder. JS7 Skriv html-kod för en webbsida som visar en knapp. När man klickar på knappen ska metoden window.open() anropas: window.open("minsida.html","mittfonster","width=200,height=200"); Det första argumentet i window.open( ) är en länk till den sida som ska visas i fönstret. Det andra argumentet är ett namn på det nya fönstret. Det tredje argumentet kan se ut så här: "toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes, scrollbars=yes,resizable=yes,width=200,height=200" Här anges alltså (med yes eller no) vilka egenskaper fönstret ska ha. Testa gärna! Allt skrivs på en enda rad. Inga blanktecken (mellanslag) får förekomma i argumenten. Ove Lundgren DOMDHTML2009.doc

17 Lösningsförslag <title> js1 </title> <form> <input type="button" value = "Tryck" onclick = " document.bgcolor='red'; " > </form> <title>js2</title> function farg(f) { document.bgcolor = f ; <form> <input type="radio" name = "färg" onclick = "farg('red');" > Röd <br> <input type="radio" name = "färg" onclick = "farg('green');" > Grön <br> <input type="radio" name = "färg" onclick = "farg('blue');" > Blå </form> <br> <title>js3</title> function rakna() { var x, y, summa; x = parseint( document.frm.t1.value ); y = parseint( document.frm.t2.value ); summa = x + y; document.frm.t3.value = "Summan är " + summa; <form name="frm"> <input type="text" name = "t1" ><br> <input type="text" name = "t2" ><br> <input type="text" name = "t3" ><br> <input type="button" value="tryck" onclick = "rakna();" > </form> Ove Lundgren DOMDHTML2009.doc

18 <title>js4</title> function rakna(t) { var x, y, r; x = parseint( document.frm.t1.value ); y = parseint( document.frm.t2.value ); if(t=='+'){r=x+y; document.frm.t3.value = "Summan är " + r; if(t=='-'){r=x-y; document.frm.t3.value = "Differensen är " + r; if(t=='*'){r=x*y; document.frm.t3.value = "Produkten är " + r; if(t=='/'){r=x/y; document.frm.t3.value = "Kvoten är " + r; <form name="frm"> <input type="text" name = "t1" ><br> <input type="text" name = "t2" ><br> <input type="text" name = "t3" ><br> <input type="radio" value = "aritm" onclick = "rakna('+');" >+<br> <input type="radio" value = "aritm" onclick = "rakna('-');" >-<br> <input type="radio" value = "aritm" onclick = "rakna('*');" >*<br> <input type="radio" value = "aritm" onclick = "rakna('/');" >/<br> </form> <title>js5</title> function namnloop( s, n) { for(var i = 0 ; i < n ; i++) { document.write( s + "<br>" ); <form name="frm"> <input type="text" name = "t1" ><br> <input type="text" name = "t2" ><br> <input type="button" value = "Tryck" onclick = " namnloop(document.frm.t1.value, parseint(document.frm.t2.value));"> </form> <title>js6</title> var i=0; function bildloop() { i++; if (i == 1) document.bilden.src = "Katt.jpg"; if (i == 2) document.bilden.src = "Lejon.jpg"; if (i==2) i=0; <body bgcolor="silver" onload= "window.setinterval( 'bildloop()', 500 );"> <img src="katt.jpg" width="109" height="83" name="bilden"> Ove Lundgren DOMDHTML2009.doc

19 <title> js7 </title> function OppnaFonster() { window.open("js20.html","mittfonster","width=200,height=200"); <body bgcolor="lightblue" > <h1>testar script</h1> <FORM> <INPUT TYPE="BUTTON" NAME="knapp1" VALUE="Tryck" onclick ="OppnaFonster();"> </FORM> Testa med följande stäng som tredje argument i window.open() "toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes, scrollbars=yes,resizable=yes,width=200,height=200" Fortsätt med arbetshäftet Dynamisk HTML 2: DOM och mer om JavaScript Ur innehållet: DOM (document object model) Referera till objekt med id Förändra textinnehåll på en webbsida Förändra style-egenskaper på en webbsida Fler händelsehanterare Egna namn på pekare Synlig osynlig Animering JavaScripts coreobjekt Ove Lundgren DOMDHTML2009.doc

JAVASCRIPT. Beteende

JAVASCRIPT. Beteende JAVASCRIPT Beteende OVERVIEW HTML Formulär JavaScript Syntax Events DOM Validering av fomulär WEBBPROGRAMMERING PÅ KLIENTSIDAN Skriptspråk som körs på klientsidan (klientskript) Koden exekveras i webbläsaren

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

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript? Innehåll JavaScript En introduktion till skriptspråket JavaScript och till DOM Scripting Introduktion till JavaScript och DOM JavaScript Syntax DOM och DOM Scripting Händelsehantering och CSS Historia

Läs mer

Övningar i JavaScript del 2

Övningar i JavaScript del 2 Övningar i JavaScript del 2 Genm dessa övningar frtsätter intrduktinen av JavaScript. Vi tar nu upp if-satser ch lite mer m funktiner. Vi kmmer ckså in på tillämpningar sm att byta en bild på webbsidan

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

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

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

Innehåll. JavaScript - Grundkurs. Vad är JavaScript? Vad är JavaScript? Vad behövs? Lite historia

Innehåll. JavaScript - Grundkurs. Vad är JavaScript? Vad är JavaScript? Vad behövs? Lite historia JavaScript - Grundkurs Mahmud Al Hakim mahmud@dynamicos.se www.dynamicos.se www.webbacademy.se Innehåll Introduktion till JavaScript JavaScript i HTML-dokument Lite om DOM (Document Object Model) Händelser

Läs mer

Introduk+on +ll programmering i JavaScript

Introduk+on +ll programmering i JavaScript Föreläsning i webbdesign Introduk+on +ll programmering i JavaScript Rune Körnefors Medieteknik 1 2012 Rune Körnefors rune.kornefors@lnu.se Språk Naturliga språk Mänsklig kommunika+on T.ex. Svenska, engelska,

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

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

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

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM. JavaScript del1 Syftet med detta häfte är att sammanfatta det viktigaste i JavaScript så kort och koncist som möjligt men ändå tillräckligt omfattande för att ge god kännedom om en av de vanligaste teknikerna

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

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

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

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

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

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

Övningar Dag 2 En första klass

Övningar Dag 2 En första klass Kurs i C++ Sid 1 (5) Övningar Dag 2 En första klass Denna övning går ut på att steg för steg bygga upp en klass och skapa objekt. Vi kommer att utgå från en sammansatt datatyp i en struct och parallellt

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

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

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

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

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

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

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

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

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

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler 1 Datorn som miniräknare I detta avsnitt tas upp hur man kan skriva program som utför enkla räkneoperationer och skriver resultat på skärmen. Syftet är i huvudsak att se hur flera satser kan bygga upp

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

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

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

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

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

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java (Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart

Läs mer

1 Funktioner och procedurell abstraktion

1 Funktioner och procedurell abstraktion 1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

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

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

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

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

Beräkningsvetenskap föreläsning 2

Beräkningsvetenskap föreläsning 2 Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa

Läs mer

Att göra spel med Game Maker. Rum. Grundläggande delar. Gamemaker, dagens föreläsning. Programmeringsmodell

Att göra spel med Game Maker. Rum. Grundläggande delar. Gamemaker, dagens föreläsning. Programmeringsmodell Gamemaker, dagens föreläsning Vad innehåller Gamemaker? Rum Objekt Händelser Aktioner Sprites Ljud Variabler och uttryck Live exempel: Början på Pac Man Att göra spel med Game Maker Programmeringsmodell

Läs mer

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp

Läs mer

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner

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

DE FYRA RÄKNESÄTTEN (SID. 11) MA1C: AVRUNDNING

DE FYRA RÄKNESÄTTEN (SID. 11) MA1C: AVRUNDNING DE FYRA RÄKNESÄTTEN (SID. 11) 1. Benämn med korrekt terminologi talen som: adderas. subtraheras. multipliceras. divideras.. Addera 10 och. Dividera sedan med. Subtrahera 10 och. Multiplicera sedan med..

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

JavaScript. DOM Scripting

JavaScript. DOM Scripting JavaScript DOM Scripting Vad är Document object Model (DOM)? En standardiserad modell där man ser en webbsida och dess innehåll som objekt document.getelementsbytagname( p ); document.getelementbyid( mittid

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

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

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

Föreläsning 3.1: Datastrukturer, en översikt

Föreläsning 3.1: Datastrukturer, en översikt Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,

Läs mer

Applets med komponenter

Applets med komponenter 5 Applets med komponenter Knappar Om gränssnitt (interface) Händelser Måla om appletytan Etiketter och textrutor Förvandla strängar till tal Aritmetik Omvandla datatyper med cast Felhantering Kap 5: Sid

Läs mer

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C 1 of 7 Örebro universitet Institutionen 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

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Java, klasser, objekt (Skansholm: Kapitel 2)

Java, klasser, objekt (Skansholm: Kapitel 2) Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma

Läs mer

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen

Läs mer

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110.

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110. 1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Denna tenta kommer att vara färdigrättad On 14/1-04 och kan då hämtas på mitt

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

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

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

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004 Programmering hh.se/db2004 Föreläsning 10: Objektorienterad programmering - datatyper Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Påminnelse: en datatyp för bilder Vad är

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på

Läs mer

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner Lektion 4, del 1, kapitel 10 Funktioner i JavaScript Inlärningsmål Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner Introduktion

Läs mer

Övning 1 Vi börjar med en vanlig html-fil där html används för både innehåll och utseende:

Övning 1 Vi börjar med en vanlig html-fil där html används för både innehåll och utseende: Uppsala universitet Institutionen för utbildning, kultur och medier IKT A HT 2009 Monica Langerth Zetterman 2009-09-23 Testa stilmallar Övning 1 Vi börjar med en vanlig html-fil där html används för både

Läs mer

Övningar i JavaScript del 7

Övningar i JavaScript del 7 Övningar i JavaScript del 7 I denna labratin återanvänder vi bilderna på frukter, sm vi haft i ett par tidigare labratiner. Denna gång ska vi lägga till visuella effekter då en frukt väljs. Klickar man

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

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

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20.

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20. Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer:

Läs mer

Övning2. Variabler. Data typer

Övning2. Variabler. Data typer Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man

Läs mer

Översikt över Visual Basic

Översikt över Visual Basic Översikt över Visual Basic Om denna översikt Denna översikt ger en kort introduktion till de viktigaste delarna i programspråket Visual Basic 6.0. På alla ställen där det beskrivs hur man skriver kod gäller

Läs mer

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera Föreläsning 2 Operatorer Tilldelning Kodblock if satsen Logiska uttryck Att programmera En operator tar ett eller två data och producerar ett svar. Typexemplet är +. Den tar t.ex två heltal och producerar

Läs mer

Hjälpmedel för kompilatorkonstruktion, DVB004

Hjälpmedel för kompilatorkonstruktion, DVB004 Hjälpmedel för kompilatorkonstruktion, DVB004 Version 4.2 021104 Göran Fries 031104 GF Kompilatorn kan lämpligen konstrueras i tre ganska fristående pass (p1,p2,p3). Första passet gör en lexikalisk analys,

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

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

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

Läs mer

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

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

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

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013 1 of 7 Örebro universitet Institutionen 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

Grundläggande programmering

Grundläggande programmering 1 Grundläggande programmering Javaprogram Talvariabler Selektioner Teckenvariabler Strängar Iterationer Sammanfattning Övningar Kap 1: Sid 2 Observera! För övningarna i detta kapitel: Skapa en mapp med

Läs mer

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl 13.00. Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1, 040607.

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl 13.00. Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1, 040607. 1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl 13.00. Denna tenta kommer att vara färdigrättad On 9/6 och kan då hämtas på mitt tjänsterum,

Läs mer

"if"-satsen. Inledande programmering med C# (1DV402)

if-satsen. Inledande programmering med C# (1DV402) "if"-satsen 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 i verket if-satsen

Läs mer

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. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

Parameteröverföring. Exempel. Exempel. Metodkropp

Parameteröverföring. Exempel. Exempel. Metodkropp Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU 2015/2016 Matematiska vetenskaper Introduktion till Matlab 1 Inledning Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på många tekniska högskolor och universitet runt

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

För att skriva CSS-kod använder man sig av olika kommandon. Ett exempel på hur man kan skriva kod för att ändra textfärg kan vara:

För att skriva CSS-kod använder man sig av olika kommandon. Ett exempel på hur man kan skriva kod för att ändra textfärg kan vara: Hemsida CSS Introduktion till Cascading Style Sheets (CSS) Detta är en mycket kort genomgång av CSS med exempel på hur sådan kod ska läsas och hur den kan användas på IdrottOnline-sidor. Är man ute efter

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

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

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

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

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

Variabler och konstanter

Variabler och konstanter Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!

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

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är

Läs mer

5 Grundläggande in- och utmatning

5 Grundläggande in- och utmatning 5 Grundläggande in- och utmatning För att användaren skall kunna kommunicera med programmet krävs att man inkluderar ett eller flera bibliotek med rutiner. I Ada finns det ett antal paket som gör detta

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

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator Programmering C: Tentamen 2008-05-31 1 of 5 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se) Tentamen i Programmering grundkurs och Programmering

Läs mer

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer