Opgavesamling

← Oversigt ← Programmeringsværktøjer
🔑 Log ind
Løst: 0 / 0

C# — Let

Begynder
1

Minilommeregner

Skriv et program der beder brugeren om to tal. Programmet udskriver summen, differencen, produktet og kvotienten af de to tal.

Konsol
START
  SKRIV "Indtast første tal: "
  LÆS tal1
  SKRIV "Indtast andet tal: "
  LÆS tal2

  sum       ← tal1 + tal2
  differens ← tal1 − tal2
  produkt   ← tal1 × tal2
  kvotient  ← tal1 / tal2

  SKRIV "Sum:       " + sum
  SKRIV "Differens: " + differens
  SKRIV "Produkt:   " + produkt
  SKRIV "Kvotient:  " + kvotient
SLUT
2

Personkort

Programmet spørger brugeren om navn, alder og by. Det printer derefter et personkort med alle tre oplysninger præsenteret pænt.

Konsol
START
  SKRIV "Hvad hedder du? "
  LÆS navn
  SKRIV "Hvor gammel er du? "
  LÆS alder
  SKRIV "Hvilken by bor du i? "
  LÆS by

  SKRIV "╔══════════════════╗"
  SKRIV "║    PERSONKORT    ║"
  SKRIV "╠══════════════════╣"
  SKRIV "║ Navn:  " + navn
  SKRIV "║ Alder: " + alder + " år"
  SKRIV "║ By:    " + by
  SKRIV "╚══════════════════╝"
SLUT
3

Cirkelberegner

Bed brugeren om en radius. Beregn og print cirklens areal og omkreds. Brug π = 3.14159.

Konsol
START
  SKRIV "Indtast radius: "
  LÆS r

  pi      ← 3.14159
  areal   ← pi × r × r
  omkreds ← 2 × pi × r

  SKRIV "Areal:    " + areal
  SKRIV "Omkreds:  " + omkreds
SLUT
4

Valutaveksler

Bed om et beløb i danske kroner. Konvertér beløbet til euro med kursen 7,46 kr. pr. euro og print resultatet.

Konsol
START
  SKRIV "Indtast beløb i kroner: "
  LÆS kroner

  kurs ← 7.46
  euro ← kroner / kurs

  SKRIV kroner + " kr.  →  " + euro + " euro"
SLUT
5

Tidsomregner

Bed brugeren om et antal minutter. Omregn og print resultatet som timer og minutter. Eksempel: 95 minutter = 1 time og 35 minutter.

Konsol
START
  SKRIV "Indtast antal minutter: "
  LÆS total

  timer    ← total HELTALSDIVISION 60
  minutter ← total MODULO 60

  SKRIV total + " minutter = "
       + timer + " time og "
       + minutter + " minutter"
SLUT
6

Karaktergennemsnit

Bed brugeren om fem karakterer (hele tal). Beregn og print gennemsnittet.

Konsol
START
  sum ← 0

  GENTAG for i = 1 til 5
    SKRIV "Karakter " + i + ": "
    LÆS k
    sum ← sum + k
  SLUT GENTAG

  gennemsnit ← sum / 5
  SKRIV "Gennemsnit: " + gennemsnit
SLUT
7

Vejranbefaling

Bed om en temperatur i Celsius. Print en anbefaling baseret på temperaturen: under 0 grader, 0–15 grader, 16–25 grader og over 25 grader. Du bestemmer anbefalingsteksten.

Konsol
START
  SKRIV "Indtast temperatur: "
  LÆS c

  HVIS c < 0
    SKRIV "Tag handsker på!"
  ELLERS HVIS c <= 15
    SKRIV "Tag en jakke"
  ELLERS HVIS c <= 25
    SKRIV "T-shirt vejr"
  ELLERS
    SKRIV "Det er sommer!"
  SLUT HVIS
SLUT
8

Ugedage

Lav et array med ugedagenes navne. Print dem nummereret fra 1 til 7 ved hjælp af en løkke.

Konsol
START
  ugedage ← ["Mandag","Tirsdag","Onsdag",
              "Torsdag","Fredag","Lørdag","Søndag"]

  FOR i ← 0 TIL 6
    SKRIV (i+1) + ". " + ugedage[i]
  SLUT FOR
SLUT
9

Sekunder til tid

Bed om et antal sekunder. Omregn og print som timer, minutter og sekunder. Eksempel: 3723 sekunder = 1 time, 2 minutter og 3 sekunder.

Konsol
START
  SKRIV "Indtast antal sekunder: "
  LÆS total

  timer    ← total HELTALSDIVISION 3600
  rest     ← total MODULO 3600
  minutter ← rest HELTALSDIVISION 60
  sekunder ← rest MODULO 60

  SKRIV timer + " time, "
       + minutter + " min og "
       + sekunder + " sek"
SLUT
10

Drikkepenge

Bed om et restaurantregningsbeløb og en drikkepengeprocent. Beregn og print drikkepengene og den samlede pris inkl. drikkepenge.

Konsol
START
  SKRIV "Indtast regning (kr.): "
  LÆS regning
  SKRIV "Indtast procent: "
  LÆS procent

  drikkepenge ← regning × procent / 100
  total       ← regning + drikkepenge

  SKRIV "Regning:     " + regning
  SKRIV "Drikkepenge: " + drikkepenge
  SKRIV "Total:       " + total
SLUT
11

Møntkast

Simulér 10 møntkast. Print resultatet af hvert kast (plat eller krone) og print til sidst det samlede antal plat og krone.

Konsol
START
  plat  ← 0
  krone ← 0

  FOR i ← 1 TIL 10
    r ← TILFÆLDIG HELTAL (0 eller 1)
    HVIS r = 0
      SKRIV "Kast " + i + ": Plat"
      plat ← plat + 1
    ELLERS
      SKRIV "Kast " + i + ": Krone"
      krone ← krone + 1
    SLUT HVIS
  SLUT FOR

  SKRIV "Plat: " + plat + "   Krone: " + krone
SLUT
12

Stjernefirkant

Bed brugeren om et positivt heltal n. Print et n×n kvadrat bestående af stjerner.

Konsol
START
  SKRIV "Indtast størrelse: "
  LÆS n

  FOR række ← 1 TIL n
    FOR kolonne ← 1 TIL n
      SKRIV "*" (uden linjeskift)
    SLUT FOR
    SKRIV linjeskift
  SLUT FOR
SLUT
13

Gangetabel

Bed brugeren om et tal. Print gangetabellen for det tal fra 1 til 10.

Konsol
START
  SKRIV "Indtast et tal: "
  LÆS n

  FOR i ← 1 TIL 10
    resultat ← n × i
    SKRIV n + " x " + i + " = " + resultat
  SLUT FOR
SLUT
14

Hastighedsberegner

Bed om en distance i km og en køretid i timer. Beregn og print gennemsnitshastigheden i km/t.

Konsol
START
  SKRIV "Indtast distance (km): "
  LÆS distance
  SKRIV "Indtast tid (timer): "
  LÆS tid

  hastighed ← distance / tid

  SKRIV "Gennemsnitshastighed: " + hastighed + " km/t"
SLUT
15

Indkøbsliste

Bed brugeren om 5 varer med tilhørende priser. Print listen med alle varer og priser, og print den samlede pris til sidst.

Konsol
START
  total ← 0

  FOR i ← 1 TIL 5
    SKRIV "Vare " + i + " navn: "
    LÆS navn[i]
    SKRIV "Vare " + i + " pris: "
    LÆS pris[i]
    total ← total + pris[i]
  SLUT FOR

  FOR i ← 1 TIL 5
    SKRIV navn[i] + "  " + pris[i] + " kr."
  SLUT FOR

  SKRIV "Total: " + total + " kr."
SLUT
16

Sælgerbonus

En sælger har en grundløn på 25.000 kr. og tjener 5% i bonus af sin omsætning. Bed om omsætningen og print grundløn, bonus og den samlede løn.

Konsol
START
  grundløn     ← 25000
  bonusProcent ← 5

  SKRIV "Indtast omsætning: "
  LÆS omsætning

  bonus     ← omsætning × bonusProcent / 100
  samletLøn ← grundløn + bonus

  SKRIV "Grundløn:   " + grundløn
  SKRIV "Bonus:      " + bonus
  SKRIV "Samlet løn: " + samletLøn
SLUT
17

Temperaturkonverter

Bed om en temperatur i Celsius. Print temperaturen i Fahrenheit og i Kelvin. Formel Fahrenheit: F = C × 9/5 + 32. Formel Kelvin: K = C + 273.15.

Konsol
START
  SKRIV "Indtast temperatur i Celsius: "
  LÆS c

  fahrenheit ← c × 9/5 + 32
  kelvin     ← c + 273.15

  SKRIV c + "°C  →  " + fahrenheit + " °F"
  SKRIV c + "°C  →  " + kelvin + " K"
SLUT
18

Simpel quiz

Lav et program med tre spørgsmål om et emne du selv vælger. For hvert spørgsmål: print spørgsmålet, læs brugerens svar og tjek om det er korrekt. Print den samlede score til sidst.

Konsol
START
  score  ← 0
  spm[]  ← [spørgsmål 1, 2, 3]
  facit[] ← [korrekte svar 1, 2, 3]

  FOR i ← 1 TIL 3
    SKRIV "Spørgsmål " + i + ": " + spm[i]
    LÆS brugerSvar
    HVIS brugerSvar = facit[i]
      SKRIV "Korrekt!"
      score ← score + 1
    ELLERS
      SKRIV "Forkert. Svaret er: " + facit[i]
    SLUT HVIS
  SLUT FOR

  SKRIV "Score: " + score + " ud af 3"
SLUT
19

Talbyttespil

Lav to variabler med hvert sit tal. Byt om på indholdet af de to variabler uden at skrive tallene direkte om — brug en hjælpevariabel. Print variablerne før og efter bytningen.

Konsol
START
  a ← 5
  b ← 9

  SKRIV "Før: a=" + a + ", b=" + b

  hjælp ← a
  a     ← b
  b     ← hjælp

  SKRIV "Efter: a=" + a + ", b=" + b
SLUT
20

Bogstavtæller

Bed brugeren om et ord. Print hvor mange bogstaver ordet indeholder. Mellemrum tælles ikke med.

Konsol
START
  SKRIV "Indtast et ord: "
  LÆS ord

  tæller ← 0
  FOR hvert tegn i ord
    HVIS tegn ≠ mellemrum
      tæller ← tæller + 1
    SLUT HVIS
  SLUT FOR

  SKRIV "Antal bogstaver: " + tæller
SLUT

C# — Middel

Øvet
1

Passwordstyrke

Skriv et program der undersøger om et password er stærkt. Et stærkt password skal have: mindst 8 tegn, mindst ét tal, mindst ét stort bogstav, mindst ét lille bogstav og mindst ét specialtegn (!@#$%). Print præcist hvilke krav der ikke er opfyldt.

Konsol
2

Romertal

Konvertér et heltal fra 1 til 3999 til dets romertalsskrivemåde. Eksempel: 2024 = MMXXIV.

Konsol
3

Terningduel

To spillere kaster hver en terning i 10 runder. Terningen er tilfældig (1–6). Print resultatet af hver runde og angiv hvem der vinder den. Print en samlet pointtavle til sidst.

Konsol
4

Ordfrekvens

Bed om en sætning. Find alle unikke ord og tæl hvor mange gange hvert ord optræder. Print en oversigt sorteret efter hyppighed, hyppigst først.

Konsol
5

Primtalsfaktorisering

Bed om et positivt heltal. Print dets primtalsfaktorisering. Eksempel: 360 = 2³ × 3² × 5.

Konsol
6

Lottotal

Generér 7 unikke tilfældige lottotal fra 1 til 36. Print dem i stigende rækkefølge.

Konsol
7

Tekststatistik

Bed om en tekst. Print følgende statistik: antal tegn i alt, antal tegn uden mellemrum, antal ord og det længste ord i teksten.

Konsol
8

Binær konvertering

Bed om et heltal fra 0 til 255. Konvertér det til en binær talstreng og print den. Du må ikke bruge Convert.ToString eller lignende indbyggede konverteringsmetoder.

Konsol
9

Rekursiv ciffer-sum

Skriv en rekursiv metode der beregner summen af cifrene i et positivt heltal. Eksempel: 1234 giver 1+2+3+4 = 10. Fortsæt rekursivt indtil resultatet er et encifret tal.

Konsol
10

Lønliste

Lav et program for 5 ansatte. For hver ansat: indtast navn, timeløn og antal arbejdstimer. Beregn bruttolønnen, træk 38% i skat og print nettobeløbet. Print til sidst en liste sorteret fra højest til lavest bruttoløn.

Konsol
11

Elevatortur

En elevator befinder sig på etage 1 i en bygning med 10 etager. Brugeren indtaster en sekvens af etager elevatorens skal stoppe ved. Beregn og print det samlede antal etager elevatorens kører og ruten.

Konsol
12

Trekanttype

Bed om tre sidelængder. Afgør først om de tre sider kan danne en gyldig trekant. Hvis ja: afgør om trekanten er ligesidet, ligebenet eller uregelmæssig, og om den er retvinklet.

Konsol
13

Matrixtransponering

Lav en 3×3 matrix med tallene 1–9. Print matrixen, og print derefter dens transponerede matrix (rækker og kolonner bytter plads).

Konsol
14

Tidsformat

Bed brugeren om en tid i formatet "TT:MM:SS". Konvertér den til det totale antal sekunder og print resultatet. Konvertér derefter et brugerangivet antal sekunder tilbage til TT:MM:SS-format.

Konsol
15

Morsekode

Oversæt en sætning bestående af bogstaver og mellemrum til morsekode. Du skal selv oprette en oversættelsesoversigt over alle 26 bogstaver. Mellemrum mellem ord markeres med " / ".

Konsol
16

Kassakø

Simulér en kassakø med 10 kunder. Hver kunde har en tilfældig servicetid på 1–5 minutter. Print hvornår hver kunde begynder og slutter at blive ekspederet, og hvornår den samlede kø er færdig.

Konsol
17

Tekstkryptér/dekryptér

Kryptér en tekst ved at bytte om på hvert nabopar af tegn: tegn 0 og 1 bytter plads, tegn 2 og 3 bytter plads osv. Skriv også en dekryptéringsmetode. Verificér at dekryptering af krypteringen giver den originale tekst.

Konsol
18

Skudsimulation

Kast to terninger 1000 gange. Tæl hvor mange gange summen er 7. Udregn den procentvise sandsynlighed fra din simulation og sammenlign med den teoretiske sandsynlighed (6/36 ≈ 16,7%).

Konsol
19

Bankkonto-menu

Lav et simpelt banksystem med en tekstmenu der kører i en løkke: 1) Indsæt beløb, 2) Hæv beløb, 3) Vis saldo, 4) Afslut. Saldoen må ikke gå under nul. Print en besked hvis brugeren forsøger at hæve mere end saldoen.

Konsol
20

Sætningsbygger

Lav et array med 5 navneord, 5 udsagnsord og 5 tillægsord. Generer og print 10 tilfældige sætninger på formen "[Navneord] [udsagnsord] [tillægsord]". Ingen sætning må gentages.

Konsol

C# — Svær

Avanceret
Disse opgaver er uden for pensum — de er beregnet til elever der vil udfordre sig selv ud over det forventede niveau.
1

Studieadministration

Lav en klasse Studerende med navn, studienummer og en liste over karakterer. Klassen skal have metoder til at tilføje en karakter, beregne gennemsnit og printe en individuel rapport. Opret mindst 5 studerende-objekter, udfyld dem med data og print en samlet klasserangordning fra højest til lavest gennemsnit.

2

Minesweeper-bræt

Generér et 8×8 Minesweeper-bræt med 10 tilfældigt placerede miner. For hvert felt der ikke er en mine: beregn og gem antallet af nabofelter med miner (0–8). Print brættet så det ligner det klassiske Minesweeper-udseende.

3

Run-length encoding

Implementér run-length encoding (RLE). Kryptering: "aaaabbbcc" bliver til "4a3b2c". Dekryptering: "4a3b2c" bliver til "aaaabbbcc". Skriv begge metoder og verificér at dekomprimering af komprimering giver den originale streng.

4

Linked list

Implementér en enkelt-hægtet liste uden at bruge LinkedList<T> fra .NET. Listen skal understøtte: tilføj forrest, tilføj bagerst, fjern et element, find et element, print alle elementer og vend listen om.

5

Markovkæde

Byg en simpel Markov-kæde fra en inputtekst: for hvert ord i teksten, gem hvilke ord der efterfølger det. Brug kæden til at generere en ny tekst af en given længde ved at starte fra et tilfældigt ord og følge sandsynlighederne.

6

Udtryksevaluator

Skriv et program der kan beregne resultatet af et simpelt matematisk udtryk givet som en tekststreng, f.eks. "3 + 4 * 2 - 1". Operatorpræcedens skal overholdes (gangetegn og divisionstegn har højere prioritet end plus og minus).

7

Polynomiumsberegner

Lav en klasse Polynomium der kan repræsentere et vilkårligt polynomium med heltallige koefficienter. Klassen skal kunne: evaluere polynomiet for et givet x, differentiere polynomiet og printe det i læsbar form, f.eks. "3x² + 2x - 5".

8

Binært søgetræ

Implementér et binært søgetræ med metoderne: indsæt et tal, søg efter et tal, slet et tal og print alle tal i sorteret rækkefølge (in-order traversal). Test med mindst 15 indsætninger og 3 sletninger.

9

Minifortolker

Skriv en fortolker for et lille programmeringssprog med følgende kommandoer: SET x 5 (tildel variabel), PRINT x (udskriv variabel eller udtryk), ADD x y z (sæt z = x + y), IF x > y GOTO n (hop til linje n). Udfør et testprogram på mindst 10 linjer.

10

Grafsøgning

Repræsentér en sammenhængende graf med mindst 6 knuder som en naboliste. Implementér dybde-først søgning (DFS) og bredde-først søgning (BFS). Print stien fra en given startknude til alle andre knuder for begge algoritmer.

11

Huffman-kodning (forenklet)

Tæl bogstavfrekvenserne i en inputtekst. Tildel kortere koder til hyppige bogstaver og længere koder til sjældne (du bestemmer strategien, men den skal være konsistent). Print kodningstabellen, den kodede version og sammenlign den totale bitlængde med en fast 8-bit kodning.

12

Sætoperationer

Implementér en klasse MinSaet<T> der opfører sig som en matematisk mængde: ingen dubletter tillades. Klassen skal have metoderne Tilfoej, Fjern, Indeholder, Foreningsmaengde (union) og Faellesmaengde (intersection). Test med mindst to sæt af tal og to sæt af strenge.

13

Opgaveplanlægger

Du har en liste af opgaver, hver med et navn, en varighed (i timer) og en deadline (i timer fra nu). Implementér en greedy-algoritme der planlægger så mange opgaver som muligt inden for en given tidsramme uden at overskride nogen deadlines. Print den valgte rækkefølge og de opgaver der ikke nåede at blive planlagt.

14

Simpel tekstdatabase

Implementér et in-memory database-system der gemmer data som rækker i tabeller. Tabellerne er lister af dictionaries. Understøt operationerne: INSERT (tilføj række), SELECT med WHERE-filtrering, DELETE med WHERE-betingelse og PRINT TABLE (vis alle rækker formateret).

15

Tilstandsmaskine

Implementér en endelig automat (FSM) der genkender gyldige dansk CPR-numre. Et CPR-nummer har formatet DDMMYY-XXXX hvor de første 6 cifre er en dato. Automaten skal aflæse tegnet for tegn og afgøre om det er gyldigt. Test med 10 teststrenge.

16

Kortspil

Lav klasserne Kort (farve + værdi) og Kortbunke (52 kort). Kortbunken skal kunne blandes (Fisher-Yates shuffle) og dele kort ud. Implementér et simpelt "Krig"-kortspil: to spillere trækker skiftevis et kort, den med højest kort vinder runden. Spil 26 runder og print vinderen.

17

RPN-beregner

Implementér en beregner der bruger omvendt polsk notation (reverse Polish notation). Eksempel: "3 4 + 2 *" giver (3+4)×2 = 14. Brug en stak. Understøt +, -, * og /. Håndtér fejl som division med nul og utilstrækkeligt antal operander.

18

Vigenère-cipher

Implementér Vigenère-krypteringen: teksten krypteres ved hjælp af et nøgleord der gentages. Hvert bogstav i teksten forskydes med det tilsvarende bogstavs position i nøgleordet. Skriv både kryptér- og dekryptér-metode. Kun bogstaver krypteres. Test med mindst to forskellige nøgleord.

19

Minitest-framework

Byg et lille test-framework med metoderne AssertEqual(forventet, faktisk), AssertTrue(betingelse) og AssertThrows(handling). Alle fejlede tests skal printe en klar fejlbesked med forventet og faktisk værdi. Brug dit framework til at skrive mindst 15 tests for metoder du selv laver til formålet.

20

Simulering: Spredning

Simulér spredning i et 20×20 gitter. Start med én smittet celle i midten. I hver runde spredes smitte til nabofelter med 30% sandsynlighed. Print gitteret for hver runde (brug tegn for rask/syg). Stop når hele gitteret er smittet eller efter 50 runder. Print hvor mange runder det tog.

PowerShell — Let

Begynder
1

Minilommeregner

Skriv et script der beder brugeren om to tal. Scriptet udskriver summen, differencen, produktet og kvotienten.

Konsol
START
  SKRIV "Indtast første tal: "
  LÆS tal1
  SKRIV "Indtast andet tal: "
  LÆS tal2

  sum       ← tal1 + tal2
  differens ← tal1 − tal2
  produkt   ← tal1 × tal2
  kvotient  ← tal1 / tal2

  SKRIV "Sum:       " + sum
  SKRIV "Differens: " + differens
  SKRIV "Produkt:   " + produkt
  SKRIV "Kvotient:  " + kvotient
SLUT
2

Personkort

Spørg brugeren om navn, alder og by. Print et personkort med alle tre oplysninger præsenteret pænt.

Konsol
START
  SKRIV "Hvad hedder du? "
  LÆS navn
  SKRIV "Hvor gammel er du? "
  LÆS alder
  SKRIV "Hvilken by bor du i? "
  LÆS by

  SKRIV "╔══════════════════╗"
  SKRIV "║    PERSONKORT    ║"
  SKRIV "╠══════════════════╣"
  SKRIV "║ Navn:  " + navn
  SKRIV "║ Alder: " + alder + " år"
  SKRIV "║ By:    " + by
  SKRIV "╚══════════════════╝"
SLUT
3

Cirkelberegner

Bed om en radius. Beregn og print cirklens areal og omkreds. Brug π = 3.14159.

Konsol
START
  SKRIV "Indtast radius: "
  LÆS r

  pi      ← 3.14159
  areal   ← pi × r × r
  omkreds ← 2 × pi × r

  SKRIV "Areal:    " + areal
  SKRIV "Omkreds:  " + omkreds
SLUT
4

Valutaveksler

Bed om et beløb i danske kroner. Konvertér til euro med kursen 7,46 kr. pr. euro og print resultatet.

Konsol
START
  SKRIV "Indtast beløb i kroner: "
  LÆS kroner

  kurs ← 7.46
  euro ← kroner / kurs

  SKRIV kroner + " kr.  →  " + euro + " euro"
SLUT
5

Tidsomregner

Bed om et antal minutter. Omregn og print som timer og minutter. Eksempel: 95 minutter = 1 time og 35 minutter.

Konsol
START
  SKRIV "Indtast antal minutter: "
  LÆS total

  timer    ← total HELTALSDIVISION 60
  minutter ← total MODULO 60

  SKRIV total + " minutter = "
       + timer + " time og "
       + minutter + " minutter"
SLUT
6

Karaktergennemsnit

Bed om fem karakterer. Beregn og print gennemsnittet.

Konsol
START
  sum ← 0

  GENTAG for i = 1 til 5
    SKRIV "Karakter " + i + ": "
    LÆS k
    sum ← sum + k
  SLUT GENTAG

  gennemsnit ← sum / 5
  SKRIV "Gennemsnit: " + gennemsnit
SLUT
7

Vejranbefaling

Bed om en temperatur i Celsius. Print en vejranbefaling baseret på temperaturen. Definér mindst fire temperaturintervaller med hver sin tekst.

Konsol
START
  SKRIV "Indtast temperatur: "
  LÆS c

  HVIS c < 0
    SKRIV "Tag handsker på!"
  ELLERS HVIS c <= 15
    SKRIV "Tag en jakke"
  ELLERS HVIS c <= 25
    SKRIV "T-shirt vejr"
  ELLERS
    SKRIV "Det er sommer!"
  SLUT HVIS
SLUT
8

Ugedage

Lav et array med ugedagenes navne. Print dem nummereret fra 1 til 7 ved hjælp af en løkke.

Konsol
START
  ugedage ← ["Mandag","Tirsdag","Onsdag",
              "Torsdag","Fredag","Lørdag","Søndag"]

  FOR i ← 0 TIL 6
    SKRIV (i+1) + ". " + ugedage[i]
  SLUT FOR
SLUT
9

Sekunder til tid

Bed om et antal sekunder. Omregn og print som timer, minutter og sekunder.

Konsol
START
  SKRIV "Indtast antal sekunder: "
  LÆS total

  timer    ← total HELTALSDIVISION 3600
  rest     ← total MODULO 3600
  minutter ← rest HELTALSDIVISION 60
  sekunder ← rest MODULO 60

  SKRIV timer + " time, "
       + minutter + " min og "
       + sekunder + " sek"
SLUT
10

Drikkepenge

Bed om et restaurantregningsbeløb og en drikkepengeprocent. Print drikkepengene og den samlede totalpris.

Konsol
START
  SKRIV "Indtast regning (kr.): "
  LÆS regning
  SKRIV "Indtast procent: "
  LÆS procent

  drikkepenge ← regning × procent / 100
  total       ← regning + drikkepenge

  SKRIV "Regning:     " + regning
  SKRIV "Drikkepenge: " + drikkepenge
  SKRIV "Total:       " + total
SLUT
11

Møntkast

Simulér 10 møntkast. Print resultatet af hvert kast og print til sidst det samlede antal plat og krone.

Konsol
START
  plat  ← 0
  krone ← 0

  FOR i ← 1 TIL 10
    r ← TILFÆLDIG HELTAL (0 eller 1)
    HVIS r = 0
      SKRIV "Kast " + i + ": Plat"
      plat ← plat + 1
    ELLERS
      SKRIV "Kast " + i + ": Krone"
      krone ← krone + 1
    SLUT HVIS
  SLUT FOR

  SKRIV "Plat: " + plat + "   Krone: " + krone
SLUT
12

Stjernefirkant

Bed om et positivt heltal n. Print et n×n kvadrat bestående af stjerner.

Konsol
START
  SKRIV "Indtast størrelse: "
  LÆS n

  FOR række ← 1 TIL n
    FOR kolonne ← 1 TIL n
      SKRIV "*" (uden linjeskift)
    SLUT FOR
    SKRIV linjeskift
  SLUT FOR
SLUT
13

Gangetabel

Bed om et tal. Print gangetabellen for det tal fra 1 til 10.

Konsol
START
  SKRIV "Indtast et tal: "
  LÆS n

  FOR i ← 1 TIL 10
    resultat ← n × i
    SKRIV n + " x " + i + " = " + resultat
  SLUT FOR
SLUT
14

Hastighedsberegner

Bed om en distance i km og en køretid i timer. Beregn og print gennemsnitshastigheden i km/t.

Konsol
START
  SKRIV "Indtast distance (km): "
  LÆS distance
  SKRIV "Indtast tid (timer): "
  LÆS tid

  hastighed ← distance / tid

  SKRIV "Gennemsnitshastighed: " + hastighed + " km/t"
SLUT
15

Indkøbsliste

Bed om 5 varer med tilhørende priser. Print listen med alle varer og priser samt den samlede pris.

Konsol
START
  total ← 0

  FOR i ← 1 TIL 5
    SKRIV "Vare " + i + " navn: "
    LÆS navn[i]
    SKRIV "Vare " + i + " pris: "
    LÆS pris[i]
    total ← total + pris[i]
  SLUT FOR

  FOR i ← 1 TIL 5
    SKRIV navn[i] + "  " + pris[i] + " kr."
  SLUT FOR

  SKRIV "Total: " + total + " kr."
SLUT
16

Sælgerbonus

Grundløn er 25.000 kr., bonus er 5% af omsætning. Bed om omsætningen og print grundløn, bonus og samlet løn.

Konsol
START
  grundløn     ← 25000
  bonusProcent ← 5

  SKRIV "Indtast omsætning: "
  LÆS omsætning

  bonus     ← omsætning × bonusProcent / 100
  samletLøn ← grundløn + bonus

  SKRIV "Grundløn:   " + grundløn
  SKRIV "Bonus:      " + bonus
  SKRIV "Samlet løn: " + samletLøn
SLUT
17

Temperaturkonverter

Bed om en temperatur i Celsius. Print temperaturen i Fahrenheit (F = C × 9/5 + 32) og Kelvin (K = C + 273.15).

Konsol
START
  SKRIV "Indtast temperatur i Celsius: "
  LÆS c

  fahrenheit ← c × 9/5 + 32
  kelvin     ← c + 273.15

  SKRIV c + "°C  →  " + fahrenheit + " °F"
  SKRIV c + "°C  →  " + kelvin + " K"
SLUT
18

Simpel quiz

Lav tre spørgsmål om et emne du selv vælger. For hvert spørgsmål: print det, læs svaret og tjek om det er rigtigt. Print den samlede score til sidst.

Konsol
START
  score  ← 0
  spm[]  ← [spørgsmål 1, 2, 3]
  facit[] ← [korrekte svar 1, 2, 3]

  FOR i ← 1 TIL 3
    SKRIV "Spørgsmål " + i + ": " + spm[i]
    LÆS brugerSvar
    HVIS brugerSvar = facit[i]
      SKRIV "Korrekt!"
      score ← score + 1
    ELLERS
      SKRIV "Forkert. Svaret er: " + facit[i]
    SLUT HVIS
  SLUT FOR

  SKRIV "Score: " + score + " ud af 3"
SLUT
19

Talbyttespil

Lav to variabler med hvert sit tal. Byt om på indholdet af de to variabler uden at skrive tallene direkte om. Print variablerne før og efter bytningen.

Konsol
START
  a ← 5
  b ← 9

  SKRIV "Før: a=" + a + ", b=" + b

  hjælp ← a
  a     ← b
  b     ← hjælp

  SKRIV "Efter: a=" + a + ", b=" + b
SLUT
20

Bogstavtæller

Bed om et ord. Print hvor mange bogstaver ordet indeholder. Mellemrum tælles ikke med.

Konsol
START
  SKRIV "Indtast et ord: "
  LÆS ord

  tæller ← 0
  FOR hvert tegn i ord
    HVIS tegn ≠ mellemrum
      tæller ← tæller + 1
    SLUT HVIS
  SLUT FOR

  SKRIV "Antal bogstaver: " + tæller
SLUT

PowerShell — Middel

Øvet
1

Passwordstyrke

Skriv et script der undersøger om et password er stærkt: mindst 8 tegn, mindst ét tal, ét stort bogstav, ét lille bogstav og ét specialtegn. Print præcist hvilke krav der ikke er opfyldt.

Konsol
2

Terningduel

To spillere kaster hver en terning i 10 runder. Print resultatet af hver runde med angivelse af hvem der vinder den. Print en samlet pointtavle til sidst.

Konsol
3

Ordfrekvens

Bed om en sætning. Find alle unikke ord og tæl forekomsterne. Print en oversigt sorteret efter hyppighed, hyppigst først.

Konsol
4

Primtalsfaktorisering

Bed om et positivt heltal. Print dets primtalsfaktorisering. Eksempel: 360 = 2³ × 3² × 5.

Konsol
5

Lottotal

Generér 7 unikke tilfældige lottotal fra 1 til 36. Print dem i stigende rækkefølge.

Konsol
6

Tekststatistik

Bed om en tekst. Print antal tegn i alt, antal tegn uden mellemrum, antal ord og det længste ord.

Konsol
7

Binær konvertering

Bed om et heltal fra 0 til 255. Konvertér det til binær repræsentation uden at bruge indbyggede konverteringsmetoder. Print resultatet.

Konsol
8

Rekursiv ciffer-sum

Skriv en rekursiv funktion der beregner summen af cifrene i et positivt heltal. Eksempel: 1234 giver 1+2+3+4 = 10. Fortsæt rekursivt til resultatet er encifret.

Konsol
9

Lønliste

Lav et script for 5 ansatte: navn, timeløn og antal arbejdstimer. Beregn bruttoløn og nettoløn (38% skat). Print listen sorteret fra højest til lavest bruttoløn.

Konsol
10

Elevatortur

En elevator starter på etage 1 i en 10-etagers bygning. Brugeren angiver en sekvens af etager. Beregn og print det samlede antal etager elevatorens kører og ruten.

Konsol
11

Trekanttype

Bed om tre sidelængder. Afgør om de danner en gyldig trekant. Hvis ja: afgør om den er ligesidet, ligebenet eller uregelmæssig, og om den er retvinklet.

Konsol
12

Tidsformat

Bed om en tid i formatet "TT:MM:SS". Konvertér til totalt antal sekunder. Konvertér derefter et brugerangivet antal sekunder til TT:MM:SS-format.

Konsol
13

Morsekode

Oversæt en sætning med bogstaver og mellemrum til morsekode. Opret selv en mapping af alle 26 bogstaver. Mellemrum mellem ord markeres med " / ".

Konsol
14

Kassakø

Simulér en kassakø med 10 kunder. Hver kunde har tilfældig servicetid 1–5 minutter. Print hvornår hver kunde begynder og slutter, og hvornår køen er færdig.

Konsol
15

Tekstkryptér/dekryptér

Kryptér en tekst ved at bytte nabopar af tegn: 0↔1, 2↔3 osv. Skriv også dekryptér-funktionen. Verificér at dekryptering af krypteringen giver den originale tekst.

Konsol
16

Skudsimulation

Kast to terninger 1000 gange. Tæl antallet af gange summen er 7. Udregn den simulerede sandsynlighed og sammenlign med den teoretiske (6/36 ≈ 16,7%).

Konsol
17

Bankkonto-menu

Lav et simpelt banksystem med en tekstmenu i en løkke: 1) Indsæt, 2) Hæv, 3) Vis saldo, 4) Afslut. Saldoen må ikke gå under nul.

Konsol
18

Sætningsbygger

Lav tre arrays: 5 navneord, 5 udsagnsord og 5 tillægsord. Generer og print 10 tilfældige sætninger på formen "[navneord] [udsagnsord] [tillægsord]". Ingen sætning må gentages.

Konsol
19

Adgangskode-analyse

Lav et array med 10 passwords. For hvert password: beregn styrkescoren baseret på: længde, tal, store/små bogstaver og specialtegn. Print en liste med passwords og styrke, og angiv gennemsnitslængde samt antal stærke og svage passwords.

Konsol
20

Script med param-blok

Skriv et script med en param()-blok der tager navn og alder som input. Alder skal valideres til at ligge i intervallet 0–120. Tilføj comment-based help med .SYNOPSIS, .PARAMETER og .EXAMPLE. Kør scriptet med og uden parametre og vis hvad der sker.

Konsol

PowerShell — Svær

Avanceret
Disse opgaver er uden for pensum — de er beregnet til elever der vil udfordre sig selv ud over det forventede niveau.
1

Loganalyse-suite

Byg en logfil-simulator: generer 100 log-linjer med tidsstempel og tilfældig type (INFO, WARN, ERROR). Gem dem i en variabel. Skriv funktioner til: filtrer på type, søg efter nøgleord, og generer en statistikoversigt (antal af hver type, tidspunkt for første og sidste ERROR).

2

INI-fil parser

Skriv et script der kan læse og skrive en INI-lignende konfigurationsfil med sektioner ([sektion]) og nøgle-værdi-par (nøgle=værdi). Implementér funktionerne Get-IniValue, Set-IniValue og Get-IniSection. Gem og indlæs fra en reel fil.

3

Statistik-suite

Implementér funktioner til: gennemsnit, median, varians, standardafvigelse og et ASCII-histogram. Test med 50 tilfældige tal fra 1–100. Histogrammet skal vise fordelingen visuelt med vandrette søjler af #-tegn.

4

Linked list (klasse)

Implementér en enkelt-hægtet liste som en PS5-klasse. Listen skal understøtte: tilføj forrest, tilføj bagerst, fjern et element (ved værdi), find et element, print alle elementer og vend listen om.

5

Markovkæde

Byg en simpel Markov-kæde fra en inputtekst: for hvert ord, gem alle ord der efterfølger det i en hashtabel. Generer ny tekst af en given længde ved at starte fra et tilfældigt ord og følge sandsynlighederne.

6

Udtryksevaluator

Skriv en funktion der beregner resultatet af et simpelt matematisk udtryk givet som tekststreng, f.eks. "3 + 4 * 2 - 1". Operatorpræcedens skal overholdes. Ingen brug af Invoke-Expression.

7

Binært søgetræ

Implementér et binært søgetræ som en PS5-klasse med metoderne: Indsæt, Søg, Slet og InOrder-traversal (print alle i sorteret rækkefølge). Test med mindst 15 indsætninger og 3 sletninger.

8

RPN-beregner

Implementér en beregner der evaluerer udtryk i omvendt polsk notation (RPN) ved hjælp af en stak. Eksempel: "3 4 + 2 *" giver 14. Understøt +, -, * og /. Håndtér fejl som division med nul og forkert antal operander.

9

Vigenère-cipher

Implementér Vigenère-kryptering med funktionerne ConvertTo-Vigenere og ConvertFrom-Vigenere. Krypteringen bruger et nøgleord der gentages. Kun bogstaver krypteres. Verificér at dekryptering af krypteringen giver den originale tekst.

10

Minesweeper-bræt

Generér et 8×8 Minesweeper-bræt med 10 tilfældigt placerede miner. For hvert felt der ikke er en mine: beregn antallet af nabofelter med miner. Print brættet med miner markeret og cifre for øvrige felter.

11

Huffman (forenklet)

Tæl bogstavfrekvenser i en inputtekst. Tildel kortere koder til hyppige bogstaver og længere til sjældne — brug en konsistent strategi. Print kodningstabellen, den kodede version og sammenlign bitlængden med en fast 8-bit kodning.

12

Grafsøgning

Repræsentér en graf med mindst 6 knuder som en hashtabel af nabolister. Implementér dybde-først søgning (DFS) og bredde-først søgning (BFS). Print stien fra en startknude til alle andre knuder for begge algoritmer.

13

Sprogdetektor

Skriv et script der gætter sproget i en tekst (dansk, engelsk eller tysk) baseret på frekvensen af typiske stopord for hvert sprog. Du bestemmer stopordslisten. Test med mindst tre tekster på hvert sprog.

14

Simpelt DSL

Definer et mini-programmeringssprog med kommandoerne: SET variabel værdi, PRINT udtryk, ADD a b c (c = a+b), IF a GT b GOTO linjennummer. Skriv en fortolker der læser og udfører et program linje for linje. Kør et testprogram på mindst 10 linjer.

15

Opgaveplanlægger

En liste af opgaver har hver et navn, en varighed (timer) og en deadline (timer fra nu). Implementér en greedy-algoritme der planlægger så mange opgaver som muligt inden for en given tidsramme uden at overskride deadlines. Print valgte og fravalgte opgaver.

16

Simulering: Spredning

Simulér spredning i et 20×20 gitter. Start med én smittet celle i midten. Hver runde spredes smitte til nabofelter med 30% sandsynlighed. Print gitteret for hver runde. Stop når alt er smittet eller efter 50 runder. Print antal runder.

17

Pipeline-transformer

Skriv mindst tre avancerede pipeline-funktioner der accepterer input fra pipeline med process{}-blok. Funktionerne skal kunne kædes: f.eks. hent en liste af tal, filtrer dem, transformer dem og formater output. Demonstrér kædningen med 1..50.

18

Minitest-framework

Byg et test-framework med funktionerne Assert-Equal, Assert-True og Assert-Throws. Fejlede tests skal printe en klar besked med forventet og faktisk værdi. Skriv mindst 15 tests for funktioner du selv laver til formålet.

19

Sætoperationer

Implementér en klasse MySaet der fungerer som en matematisk mængde uden dubletter. Klassen skal have metoderne: Tilfoej, Fjern, Indeholder, Union og Intersection. Test med to sæt af tal og to sæt af strenge.

20

CSV-parser

Skriv en funktion der parser en CSV-streng uden brug af Import-Csv eller ConvertFrom-Csv. Funktionen skal håndtere citationstegn rundt om felter med kommaer, og returnere et array af hashtabeller med kolonnenavne fra første linje som nøgler. Test med mindst 10 datarækker.

📁 Læremateriale

Dokumenter til undervisningsbrug. Kræver login for at åbne.