You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/da/2-js-basics/3-making-decisions/assignment.md

6.1 KiB

At træffe beslutninger: Studerendes karakterbehandling

Læringsmål

I denne opgave vil du øve dig på beslutningstagning fra denne lektion ved at bygge et program, der behandler studerendes karakterer fra forskellige karaktersystemer. Du vil bruge if...else-udsagn, sammenligningsoperatorer og logiske operatorer til at afgøre, hvilke studerende der består deres kurser.

Udfordringen

Du arbejder på en skole, der for nylig er fusioneret med en anden institution. Nu skal du behandle studerendes karakterer fra to helt forskellige karaktersystemer og afgøre, hvilke studerende der består. Dette er en perfekt mulighed for at øve dig på betinget logik!

Forståelse af karaktersystemerne

Første karaktersystem (Numerisk)

  • Karakterer gives som tal fra 1-5
  • Bestået karakter: 3 og derover (3, 4 eller 5)
  • Dumpet karakter: Under 3 (1 eller 2)

Andet karaktersystem (Bogstavkarakterer)

  • Karakterer bruger bogstaver: A, A-, B, B-, C, C-
  • Beståede karakterer: A, A-, B, B-, C, C- (alle nævnte karakterer er bestået)
  • Bemærk: Dette system inkluderer ikke dumpede karakterer som D eller F

Din opgave

Givet følgende array allStudents, der repræsenterer alle studerende og deres karakterer, skal du oprette et nyt array studentsWhoPass, der indeholder alle studerende, der består i henhold til deres respektive karaktersystemer.

let allStudents = [
  'A',    // Letter grade - passing
  'B-',   // Letter grade - passing  
  1,      // Numeric grade - failing
  4,      // Numeric grade - passing
  5,      // Numeric grade - passing
  2       // Numeric grade - failing
];

let studentsWhoPass = [];

Trinvist tilgang

  1. Opsæt en løkke for at gennemgå hver karakter i allStudents-arrayet
  2. Tjek karaktertypen (er det et tal eller en streng?)
  3. Anvend de relevante regler for karaktersystemet:
    • For tal: tjek om karakteren er >= 3
    • For strenge: tjek om det er en af de gyldige beståede bogstavkarakterer
  4. Tilføj beståede karakterer til studentsWhoPass-arrayet

Hjælpsomme kodeteknikker

Brug disse JavaScript-koncepter fra lektionen:

  • typeof operator: typeof grade === 'number' for at tjekke, om det er en numerisk karakter
  • Sammenligningsoperatorer: >= for at sammenligne numeriske karakterer
  • Logiske operatorer: || for at tjekke flere bogstavkarakterbetingelser
  • if...else-udsagn: for at håndtere forskellige karaktersystemer
  • Array-metoder: .push() for at tilføje beståede karakterer til dit nye array

Forventet output

Når du kører dit program, skal studentsWhoPass indeholde: ['A', 'B-', 4, 5]

Hvorfor disse karakterer består:

  • 'A' og 'B-' er gyldige bogstavkarakterer (alle bogstavkarakterer i dette system er bestået)
  • 4 og 5 er numeriske karakterer >= 3
  • 1 og 2 dumper, fordi de er numeriske karakterer < 3

Test din løsning

Test din kode med forskellige scenarier:

// Test with different grade combinations
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
let testGrades2 = [5, 'A', 2, 'C-', 4];

// Your solution should work with any combination of valid grades

Bonusudfordringer

Når du har fuldført den grundlæggende opgave, kan du prøve disse udvidelser:

  1. Tilføj validering: Tjek for ugyldige karakterer (som negative tal eller ugyldige bogstaver)
  2. Tæl statistik: Beregn, hvor mange studerende der består vs. dumper
  3. Karakterkonvertering: Konverter alle karakterer til et enkelt numerisk system (A=5, B=4, C=3 osv.)

Bedømmelseskriterier

Kriterier Fremragende (4) Kompetent (3) Under udvikling (2) Begynder (1)
Funktionalitet Programmet identificerer korrekt alle beståede karakterer fra begge systemer Programmet fungerer med mindre problemer eller kanttilfælde Programmet fungerer delvist, men har logiske fejl Programmet har betydelige fejl eller kører ikke
Kodestruktur Ren, velorganiseret kode med korrekt if...else-logik God struktur med passende betingede udsagn Acceptabel struktur med nogle organisatoriske problemer Dårlig struktur, svært at følge logikken
Brug af koncepter Effektiv brug af sammenligningsoperatorer, logiske operatorer og betingede udsagn God brug af lektionskoncepter med mindre mangler Nogle brug af lektionskoncepter, men mangler vigtige elementer Begrænset brug af lektionskoncepter
Problemløsning Viser klar forståelse af problemet og elegant løsningsmetode God problemløsningsmetode med solid logik Tilstrækkelig problemløsning med noget forvirring Uklart tilgang, viser ikke forståelse

Indsendelsesvejledning

  1. Test din kode grundigt med de givne eksempler
  2. Tilføj kommentarer, der forklarer din logik, især for de betingede udsagn
  3. Bekræft output matcher forventede resultater: ['A', 'B-', 4, 5]
  4. Overvej kanttilfælde som tomme arrays eller uventede datatyper

💡 Gode råd: Start simpelt! Få den grundlæggende funktionalitet til at fungere først, og tilføj derefter mere sofistikerede funktioner. Husk, målet er at øve beslutningstagning med de værktøjer, du har lært i denne lektion.


Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi er ikke ansvarlige for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.