Kort overblik
- Tjek en rigtig valutaside og kør en færdig App Lab-app.
- Lav kopi og undersøg hvad den består af.
- Tilføj knap til EUR → DKK og få begge retninger til at virke.
- Gør kursen redigerbar med et ekstra inputfelt.
Opgave 1 - afprøv eksisterende applikation:
- Besøg valutakurser.dk. Hvad kan siden bruges til?
- Hvor meget er 100 DKK i euro EUR?
- Hvor meget er 100 USD i Danske kroner? DKK
Opgave 2 - Opret konto og kopier en app
- Opret elevkonto pĂĄ code.org (Jeg er elev eller I'm a Student i Engelsk udgave).
- Ă…bn appen i App Lab: Valutakonverter (projektlink).
- Lav en kopi af app'en til din egen konto: Klik Kode (øverst til venstre) → Bland igen (midt for, for oven, blå). Nu ligger en kopi af app'en på din konto.
Opgave 3 – Undersøg app’en - Prøv at køre kopien
- Prøv at køre din kopi af app’en
- Hvad kan den? Hvad kan den ikke endnu?
Opgave 4 – Undersøg app’en - objekter har navne (aka ID)
- GĂĄ til Design. Find navnene (ID) pĂĄ:
- Label med teksten DKK.
- Inputfeltet under DKK.
- Knap DKK → EURO.
- Navnene skal være unikke, dvs. to objekter må ikke hedde det samme.
- Hvad mon navnene kan bruges til?
Opgave 5 – Hændelser (events)
Mål: Forstå hvordan den eksisterende knap virker, uden at ændre noget i koden.
- Skift til Kode og vælg Vis tekst i højre side.
- Find den funktion, der starter med
onEvent("button1", "click", ...):
onEvent("button1", "click", function (event) {
var kroner = getText("text_krone");
var euro = kroner / 8; // midlertidig fast kurs
setText("text_euro", euro);
});
- Kig pĂĄ linje for linje og skriv med egne ord, hvad der sker:
onEvent("button1", "click", ... )– hvornår kører denne kode?var kroner = getText("text_krone");– hvad hentes her?var euro = kroner / 8;– hvad beregnes her?setText("text_euro", euro);– hvad skrives tilbage på skærmen?- Skriv 1–2 linjers kommentarer i koden, der forklarer med egne ord hvad der sker, når man klikker på knappen.
Hvad betyder de tre ting i onEvent("button1", "click", function(event){...})?
"button1": ID på det element (knap), som lytter efter hændelsen."click": typen af hændelse (her: klik med musen eller tryk med fingeren).function(event): koden der udføres, når hændelsen sker.
Opgave 6 – Undersøg app’en - Hvad har du lært indtil nu?
- Klik pĂĄ Hint-kasserne herunder.
- Hvad er en variabel - forklaret med egne ord?
- Hvad er en funktion, f.eks. som SetText() - forklaret med egne ord?
- Hvad er et Event (hændelse)? - forklaret med egne ord?
Hint: Hvad er en variabel?
En variabel er en lille kasse i hukommelsen, hvor vi midlertidigt gemmer en værdi. Fx: var kroner = getText("text_krone");
Hint: Hvad gør setText()?
setText(id, værdi) skriver en værdi ind i et tekstfelt eller label. Fx: setText("text_euro", euro);
Hint: Hvad er et event?
Et event er en begivenhed, appen reagerer på – fx et klik på en knap. I App Lab bruger man typisk onEvent(id, "click", function(event) { ... }) for at sige: “Når den knap klikkes, så…”.
Opgave 7 – Hændelser (events): Tilføj ny knap og giv den kode
- I Design, tilføj en ny knap. Lad den foreløbigt hedde
button2og giv den teksten EURO → DKK. - Klik på knappen og vælg Tilføj event‑handler.
- Undersøg koden:
Svar: Hvad eronEvent("button2", "click", function (event) { // kode som kører ved klik });id, og hvad betyder"click"? - Test at eventet kører ved klik:
console.log("Klik på EURO → DKK-knappen"); - Læs beløbet fra DKK‑feltet og skriv resultat i EURO‑feltet (dummy for at teste flowet):
Prøv med 0, 1, 12.5 – giver det mening?onEvent("button2", "click", function (event) { var euro = getText("text_euro"); // læs euro som tekst setText("text_krone", euro); // skriv det direkte i DKK-feltet (dummy) });
Hvad betyder de tre ting i onEvent(id, "click", function(event){...})?
id: elementets ID (fx"button2")."click": typen af hændelse.function(event): koden der kører ved hændelsen.
Opgave 8 – Undersøg app’en - tilføj kommentarer
- Skift visning i højre side: Vis blokke ↔ Vis tekst.
- Kig kort i tekst-koden. Diskuter med "nabo" om hvad i tror koden gør.
- Tilføj kommentarer i koden med
// Comment(Værktøjskasse → Functions). Tilføj kommentar ud for hver linje kode om hvad du tror koden gør.
Opgave 9 – Giv knapperne bedre navne (ID’er)
- Gå til Design og omdøb:
button1→btnDKK2EURbutton2→btnEUR2DKK
- GĂĄ til Kode og erstat alle steder hvor der stĂĄr
"button1"og"button2"med de nye ID’er. - Hvorfor er gode navne vigtige? Svar kort.
Opgave 10 – Tilføj beregning fra EUR til DKK
MĂĄl: Erstat din dummy i Opgave 7 med rigtig beregning.
- Sørg for at knappen hedder
btnEUR2DKKog har teksten EURO → DKK. - Byt dummy‑koden ud med beregning (midlertidig kurs 8):
onEvent("btnEUR2DKK", "click", function(){ var euro = getNumber("text_euro"); var kroner = euro * 8; // midlertidig fast kurs setText("text_krone", kroner.toFixed(2)); });
Opgave 11 – Gør kursen redigerbar
MĂĄl: Brugeren kan selv skrive den aktuelle kurs i et nyt inputfelt.
- Design: Tilføj et inputfelt til kurs og giv det ID, fx
text_kurs. - I koden: Læs kursen og brug den i stedet for tallet
8.
Eksempel
// DKK → EUR
onEvent("btnDKK2EUR", "click", function(){
var kurs = Number(getText("text_kurs"));
var kroner = Number(getText("text_krone"));
if (!kurs) { setText("text_euro", ""); return; } // simpelt værn
var euro = kroner / kurs;
setText("text_euro", euro.toFixed(2));
});
// EUR → DKK
onEvent("btnEUR2DKK", "click", function(){
var kurs = Number(getText("text_kurs"));
var euro = Number(getText("text_euro"));
if (!kurs) { setText("text_krone", ""); return; }
var kroner = euro * kurs;
setText("text_krone", kroner.toFixed(2));
});
Tip: Fejlforebyggelse
Hvis kurs ikke er et tal (eller er 0), sĂĄ vis en besked i et label, fx "Skriv en gyldig kurs", og stop beregningen.
Refleksion (hurtig exit‑ticket)
- Hvor i koden læser du input?
- Hvor laver du beregningen?
- Hvor viser du resultatet?
- Hvad var forskellen pĂĄ event, variabel og
setText()?