C# — Let
BegynderMinilommeregner
Skriv et program der beder brugeren om to tal. Programmet udskriver summen, differencen, produktet og kvotienten af de to tal.
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
Personkort
Programmet spørger brugeren om navn, alder og by. Det printer derefter et personkort med alle tre oplysninger præsenteret pænt.
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
Cirkelberegner
Bed brugeren om en radius. Beregn og print cirklens areal og omkreds. Brug π = 3.14159.
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
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.
START SKRIV "Indtast beløb i kroner: " LÆS kroner kurs ← 7.46 euro ← kroner / kurs SKRIV kroner + " kr. → " + euro + " euro" SLUT
Tidsomregner
Bed brugeren om et antal minutter. Omregn og print resultatet som timer og minutter. Eksempel: 95 minutter = 1 time og 35 minutter.
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
Karaktergennemsnit
Bed brugeren om fem karakterer (hele tal). Beregn og print gennemsnittet.
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
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.
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
Ugedage
Lav et array med ugedagenes navne. Print dem nummereret fra 1 til 7 ved hjælp af en løkke.
START
ugedage ← ["Mandag","Tirsdag","Onsdag",
"Torsdag","Fredag","Lørdag","Søndag"]
FOR i ← 0 TIL 6
SKRIV (i+1) + ". " + ugedage[i]
SLUT FOR
SLUT
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.
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
Drikkepenge
Bed om et restaurantregningsbeløb og en drikkepengeprocent. Beregn og print drikkepengene og den samlede pris inkl. drikkepenge.
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
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.
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
Stjernefirkant
Bed brugeren om et positivt heltal n. Print et n×n kvadrat bestående af stjerner.
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
Gangetabel
Bed brugeren om et tal. Print gangetabellen for det tal fra 1 til 10.
START
SKRIV "Indtast et tal: "
LÆS n
FOR i ← 1 TIL 10
resultat ← n × i
SKRIV n + " x " + i + " = " + resultat
SLUT FOR
SLUT
Hastighedsberegner
Bed om en distance i km og en køretid i timer. Beregn og print gennemsnitshastigheden i km/t.
START SKRIV "Indtast distance (km): " LÆS distance SKRIV "Indtast tid (timer): " LÆS tid hastighed ← distance / tid SKRIV "Gennemsnitshastighed: " + hastighed + " km/t" SLUT
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.
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
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.
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
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.
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
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.
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
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.
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
Bogstavtæller
Bed brugeren om et ord. Print hvor mange bogstaver ordet indeholder. Mellemrum tælles ikke med.
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
ØvetPasswordstyrke
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.
Romertal
Konvertér et heltal fra 1 til 3999 til dets romertalsskrivemåde. Eksempel: 2024 = MMXXIV.
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.
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.
Primtalsfaktorisering
Bed om et positivt heltal. Print dets primtalsfaktorisering. Eksempel: 360 = 2³ × 3² × 5.
Lottotal
Generér 7 unikke tilfældige lottotal fra 1 til 36. Print dem i stigende rækkefølge.
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.
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.
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.
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.
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.
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.
Matrixtransponering
Lav en 3×3 matrix med tallene 1–9. Print matrixen, og print derefter dens transponerede matrix (rækker og kolonner bytter plads).
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.
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 " / ".
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.
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.
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%).
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.
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.
C# — Svær
AvanceretStudieadministration
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.
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.
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.
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.
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.
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).
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".
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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
BegynderMinilommeregner
Skriv et script der beder brugeren om to tal. Scriptet udskriver summen, differencen, produktet og kvotienten.
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
Personkort
Spørg brugeren om navn, alder og by. Print et personkort med alle tre oplysninger præsenteret pænt.
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
Cirkelberegner
Bed om en radius. Beregn og print cirklens areal og omkreds. Brug π = 3.14159.
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
Valutaveksler
Bed om et beløb i danske kroner. Konvertér til euro med kursen 7,46 kr. pr. euro og print resultatet.
START SKRIV "Indtast beløb i kroner: " LÆS kroner kurs ← 7.46 euro ← kroner / kurs SKRIV kroner + " kr. → " + euro + " euro" SLUT
Tidsomregner
Bed om et antal minutter. Omregn og print som timer og minutter. Eksempel: 95 minutter = 1 time og 35 minutter.
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
Karaktergennemsnit
Bed om fem karakterer. Beregn og print gennemsnittet.
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
Vejranbefaling
Bed om en temperatur i Celsius. Print en vejranbefaling baseret på temperaturen. Definér mindst fire temperaturintervaller med hver sin tekst.
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
Ugedage
Lav et array med ugedagenes navne. Print dem nummereret fra 1 til 7 ved hjælp af en løkke.
START
ugedage ← ["Mandag","Tirsdag","Onsdag",
"Torsdag","Fredag","Lørdag","Søndag"]
FOR i ← 0 TIL 6
SKRIV (i+1) + ". " + ugedage[i]
SLUT FOR
SLUT
Sekunder til tid
Bed om et antal sekunder. Omregn og print som timer, minutter og sekunder.
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
Drikkepenge
Bed om et restaurantregningsbeløb og en drikkepengeprocent. Print drikkepengene og den samlede totalpris.
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
Møntkast
Simulér 10 møntkast. Print resultatet af hvert kast og print til sidst det samlede antal plat og krone.
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
Stjernefirkant
Bed om et positivt heltal n. Print et n×n kvadrat bestående af stjerner.
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
Gangetabel
Bed om et tal. Print gangetabellen for det tal fra 1 til 10.
START
SKRIV "Indtast et tal: "
LÆS n
FOR i ← 1 TIL 10
resultat ← n × i
SKRIV n + " x " + i + " = " + resultat
SLUT FOR
SLUT
Hastighedsberegner
Bed om en distance i km og en køretid i timer. Beregn og print gennemsnitshastigheden i km/t.
START SKRIV "Indtast distance (km): " LÆS distance SKRIV "Indtast tid (timer): " LÆS tid hastighed ← distance / tid SKRIV "Gennemsnitshastighed: " + hastighed + " km/t" SLUT
Indkøbsliste
Bed om 5 varer med tilhørende priser. Print listen med alle varer og priser samt den samlede pris.
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
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.
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
Temperaturkonverter
Bed om en temperatur i Celsius. Print temperaturen i Fahrenheit (F = C × 9/5 + 32) og Kelvin (K = C + 273.15).
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
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.
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
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.
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
Bogstavtæller
Bed om et ord. Print hvor mange bogstaver ordet indeholder. Mellemrum tælles ikke med.
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
ØvetPasswordstyrke
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.
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.
Ordfrekvens
Bed om en sætning. Find alle unikke ord og tæl forekomsterne. Print en oversigt sorteret efter hyppighed, hyppigst først.
Primtalsfaktorisering
Bed om et positivt heltal. Print dets primtalsfaktorisering. Eksempel: 360 = 2³ × 3² × 5.
Lottotal
Generér 7 unikke tilfældige lottotal fra 1 til 36. Print dem i stigende rækkefølge.
Tekststatistik
Bed om en tekst. Print antal tegn i alt, antal tegn uden mellemrum, antal ord og det længste ord.
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.
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.
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.
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.
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.
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.
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 " / ".
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.
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.
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%).
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.
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.
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.
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.
PowerShell — Svær
AvanceretLoganalyse-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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.