đź’± Valutakonverter

Lær om App Lab (code.org) ved at bygge videre på en valutakonverter.

Kort overblik

Opgave 1 - afprøv eksisterende applikation:

  1. Besøg valutakurser.dk. Hvad kan siden bruges til?
  2. Hvor meget er 100 DKK i euro EUR?
  3. Hvor meget er 100 USD i Danske kroner? DKK

Opgave 2 - Opret konto og kopier en app

  1. Opret elevkonto pĂĄ code.org (Jeg er elev eller I'm a Student i Engelsk udgave).
  2. Ă…bn appen i App Lab: Valutakonverter (projektlink).
  3. 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

  1. Prøv at køre din kopi af app’en
  2. Hvad kan den? Hvad kan den ikke endnu?

Opgave 4 – Undersøg app’en - objekter har navne (aka ID)

  1. GĂĄ til Design. Find navnene (ID) pĂĄ:
    • Label med teksten DKK.
    • Inputfeltet under DKK.
    • Knap DKK → EURO.
  2. Navnene skal være unikke, dvs. to objekter må ikke hedde det samme.
  3. 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.

  1. Skift til Kode og vælg Vis tekst i højre side.
  2. 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);
        });
  1. 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?
  2. 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?

  1. 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

  1. I Design, tilføj en ny knap. Lad den foreløbigt hedde button2 og giv den teksten EURO → DKK.
  2. Klik på knappen og vælg Tilføj event‑handler.
  3. Undersøg koden:
    onEvent("button2", "click", function (event) {
            // kode som kører ved klik
          });
    Svar: Hvad er id, og hvad betyder "click"?
  4. Test at eventet kører ved klik:
    console.log("Klik på EURO → DKK-knappen");
  5. Læs beløbet fra DKK‑feltet og skriv resultat i EURO‑feltet (dummy for at teste flowet):
    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)
                });
    Prøv med 0, 1, 12.5 – giver det mening?
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

  1. Skift visning i højre side: Vis blokke ↔ Vis tekst.
  2. Kig kort i tekst-koden. Diskuter med "nabo" om hvad i tror koden gør.
  3. 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)

  1. Gå til Design og omdøb:
    • button1 → btnDKK2EUR
    • button2 → btnEUR2DKK
  2. Gå til Kode og erstat alle steder hvor der står "button1" og "button2" med de nye ID’er.
  3. 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.

  1. Sørg for at knappen hedder btnEUR2DKK og har teksten EURO → DKK.
  2. 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.

  1. Design: Tilføj et inputfelt til kurs og giv det ID, fx text_kurs.
  2. 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)

↩ Til forsiden